Atitit 提升水平 把代码写的有技术含量 目录 1. 提高可读性(重要) 2 1.1. 异常模式代替返回值 2 1.2. Dsl 2 1.3. 流畅接口方法链 2 1.4. 层次结构抽象 2 1

Atitit 提升水平 把代码写的有技术含量

 

目录

1. 提高可读性(重要) 2

1.1. 异常模式代替返回值 2

1.2. Dsl 2

1.3. 流畅接口方法链 2

1.4. 层次结构抽象 2

1.5. 附加多种文字方便解读 3

1.6. 辞藻要华丽(fac proxy 等系统高大上词汇) 3

1.7. 典故成语  缩略图与设计模式 3

1.8. 选择选择表格化 3

1.9. 要流畅读出来 3

1.10. Meta 元数据化,数据的数据 4

1.11. 适当利用字符画,提升可读性 4

2. 其他 4

2.1. 抽象 向上抽象 提升扩展性 4

2.2. 通用化底层抽象 4

2.3. 高性能化 4

2.4. 稳定化 5

2.5. 注意编码 5

2.6. 提升准确性 5

2.7. 提升智能性 以不变应万变 5

2.8. 高重用与积累 分离与组合  细粒度 5

2.9. Bp最佳实践寻求 提升效率 5

2.10. 了解api新特性,使用最新趋势的api 6

2.11. 移植 6

2.12. 通用api 6

2.13. 方法与类名命名 6

2.14. Other 6

3. 提炼算法 6

4. 提炼数据结构  8

5. 通用格式 8

5.1. 常见格式xml  json yaml  toml  Html 8

5.2. 私有格式javastr phpstr 8

5.3. 非完全格式Urlparam Propini csv csvWzHead 8

5.4. Ref 10

 

1. 提高可读性(重要)

1.1. 异常模式代替返回值

比如登录,如果密码错误返回一个false那就太落后了,应该抛出异常  pwdException

异常代替返回值。。

 

现在的很多 接口就是返回值模式,如抛出异常模式曾更好。。

 

1.2. Dsl

查询 一个list ,里面都是map ,按照一个map属性 age大于12

普通人写法,一堆循环,然后里面判断

 

好的方法是使用dsl

Select().from(list)where(“age>12”)

 

或者 Select(“*”).from(list)where($“age”.biggerthan(12) )

 

 

1.3. 流畅接口方法链

比如map 返回新建一个map,多个put,写法就不好了。

 

使用builder模式改写一行写完 ,流畅接口

   mapBuilder.$().put("cpu", cpuuseLinux).put("mem", memusageLinux).put("io", ioinfo).build();

1.4. 层次结构抽象

比如吧多个map,加入到list里面去

System.out.println(new ArrayList() {

{

this.add(new HashMap() {

{

this.put("k", "");

}

});

this.add(new HashMap() {

{

this.put("y", "");

}

});

}

});

}

 

 

1.5. 附加多种文字方便解读

比如一些业务系统命名,属于生僻,简直惨不忍睹,此时需要附加拼音后干脆你直接附加汉字,提升可读性

 

1.6. 辞藻要华丽(fac proxy 等系统高大上词汇)

1.7. 典故成语  缩略图与设计模式

就像写文章用典故言简意赅。。多用设计模式很有帮助

1.8. 选择选择表格化

表格化有利于提升

 

1.9. 要流畅读出来

如果一段代码读起来语气不通,就像文章一样,那就不是一个好代码  好的代码语句通顺,没有难懂词汇与命名。确需术语,附加通用词汇

1.10. Meta 元数据化,数据的数据

1.11. 适当利用字符画,提升可读性

2. 其他

2.1. 抽象 向上抽象 提升扩展性

 

"一个优秀的程序员,在接到一个要编写“毁灭地球”的任务的时候,他不会简单的写一个destroyEarth()的方法;而是会写一个destroyPlanet()的方法,将earth作为一个参数传进去。"
忘了哪里看到的
//System.out.println("--------------我是分割线----------------------");
 

2.2. 通用化底层抽象 

比如浏览器输出  字符串    

PrintWriter writer = response.getWriter();

writer.print(content);

但这会面临编码问题,因为是字符,而不是字节

 

那么输出图片呢,,很明显需要一个更加底层的读写字节流的东西

buff是字节数组

  response.getOutputStream().write(buff);

2.3. 高性能化

比如遍历文件夹,读取所有文件夹列表再循环列表就是一个普通方法。。如果你要遍历一个大文件夹,或者驱动器。那就歇菜了。。

 

好的方法是传入回调函数来遍历

 

了解并发的模式趋势与进化 threadfuture forkjoin stream  

 

2.4. 稳定化

主要是try catch 时刻牢记

2.5. 注意编码

涉及到文字类型的参数统统需要增加编码参数。。比如读取shell等地方

 

2.6. 提升准确性

比如识别汉字,,我们的含义一般是识别2500常见汉字简体。。

 

而网上的方法几乎都只是识别双字节汉字,包括日本汉字韩国汉字越南汉字全角字符台湾香港字符等,明显都不符合需求

 

要真正识别汉字2500常见汉字简体,只能自己使用字库对比map。。

 

 

2.7. 提升智能性 以不变应万变

Request 获取参数乱码,普通人的做法是修改环境,如果换一个环境呢,换个webserver呢,如何做到动态调整解码编码。。这就需要高水平了。。

 

乱码监测,乱码判断,乱码纠正,策略模式等一系列东东。。

 

2.8. 高重用与积累 分离与组合  细粒度

粒度越细重用越好

2.9. Bp最佳实践寻求 提升效率

比如做并发,不要使用thread这类原始api,,使用stream

 

了解并发的模式趋势与进化 threadfuture forkjoin stream  

 

2.10. 了解api新特性,使用最新趋势的api

2.11. 移植

比如java里面没有linq apinet里面有。普通人也就算了。

高手就把linq移植到java里面来就是了。。

 

2.12. 通用api

是否面临过吧java php net js 代码互相翻译。。。怎么做到api统一化。。。提升翻译效率和可读性

 

2.13. 方法与类名命名

尽可能使用通用名称在前面附加。这样生命力才持久。。

比如你要写一个spring工具类,不要只写个  springUtil  ,若干年后,鬼知道spring是个啥东西。。。你写个  IocSrpingUtil,,前面附加一个通用概念ioc前缀,保证能用几十年。。

2.14. Other

3. 提炼算法

随便一个业务系统里面用到的算法千儿八百很多,需要提炼出来,特别是通用的

光是数据查询算法常用就有50多个,共有三百多个数据查询算法

 

 

Atitit 算法之道 attilax

 

1. 编码算法 3

1.1. Base64 htmlencode  urlencode 3

2. Ui方面的算法 3

2.1. 软键盘算法  计算软键盘上下左右按键位置 3

2.2. Gc回收算法 游戏常用 3

2.3. Sprire生成随机位置算法  随机数算法 3

2.4. 布局算法  3

2.5. 查找搜索算法 二分查找算法 BFS(广度优先搜索) 3

3. 通讯算法 互操作算法 4

4. 加解密算法 aes md5 3des 4

5. 排序算法 4

5.1. 第二部分(Part II) 排序与顺序统计(Sorting and Order Statistics 4

5.2. 第六章 堆排序(Heapsort 4

5.3. 第七章快速排序(Quicksort 4

5.4. 第八章 线性时间中的排序(Sorting in Linear Time 4

5.5. 第九章 中值与顺序统计(Medians and Order Statistics 4

6. 日期时间算法 4

6.1. 农历 阴历算法那 4

7. 统计算法 聚合算法 4

7.1. Sum  avg Min max group_concat 4

7.2. 4

7.3. 5

8. 数据库算法 5

8.1. 数据融合算法那 5

8.2. Atitit 数据同步方案的 一致性算法.docx 5

8.3. Atitit 数据操作4大算法.docx 5

8.4. atitit 数据集group by算法.docx.txt 5

8.5. atitit 数据集合连接join算法.docx.txt 5

9. 图像处理算法 5

9.1. Atiti 图像分类算法 v2 qb2.docx.txt 6

9.2. Atitit  图像特征总结以及图像特征提取算法 attilax 总结.docx 6

9.3. Line 17: Atitit 图像二值化算法 v2 r66.docx 6

9.4. Line 18: Atitit 图像处理  膨胀算法 源码 v2 qb16.docx 6

9.5. Line 19: Atitit 图像处理30大经典算法attilax总结 v2.docx.txt 6

9.6. Line 20: Atitit 图像处理压缩与 缩放算法 v2 r21 attilax总结.docx 6

9.7. Line 21: Atitit 图像处理去噪算法的研究attilax总结.docx 6

9.8. Line 22: atitit 图像拼合算法.docx 6

9.9. Line 23: Atitit 图像旋转与色相旋转算法.docx 6

9.10. Line 24: Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结.docx.txt 6

9.11. Line 25: Atitit 图像清晰度评价算法.docx 6

9.12. Line 26: Atitit 图像相似度算法phash PSNR ssim.docx 7

9.13. Line 75: Atitit图像频率分离的算法.docx 7

10. 分类算法 7

11. Gis算法 7

12. 其他算法 7

12.1. 银行家算法 7

13. 队列算法 内存换页算法 缓存淘汰算法 7

13.1. FIFO算法(Second Chance Page Replacement Algorithm) 7

13.2. LRULeast Recently Used,最近最少使用最久未使用算法(LRU Page Replacement Algorithm) 7

13.3. LFULeast Frequently Used,最不经常使用 7

13.4. 最佳置换(OptimalOPT) 8

14. 相似度算法 距离算法 8

14.1. 汉明距离算法 8

15. 图像滤镜算法 8

15.1. Hsv算法转换  jpg算法等 8

16. 其他 数据挖掘算法 8

16.1. 彩票行业算法 视频h264  mpg算法等 8

17. 参考资料 8

 

4. 提炼数据结构
 

 

5. 通用格式

5.1. 常见格式xml  json yaml  toml  Html 

5.2. 私有格式javastr phpstr

5.3. 非完全格式Urlparam Propini csv csvWzHead

 

 

·  1.1. 常见格式

· xml  Html

· json

· yaml  

· toml  

· 1.2. 私有格式

· Serialize  javastr phpstr

· 源码 and ast

· 变量

· 1.3. 非完全格式

· TLV(三元组编码)

· Urlparam Prop、

· ini

· csv

· csvWzHead

· 4. 专用格式.常用格式 3

· 4.1. Diary 格式 3

· 4.2. 财务记录excel 3

· 4.3. 用户信息vcf 通讯录导出的一种格式 3

· 4.4. 导入导出数据csv,excel格式 3

· 4.5. Browser ,fav data ,html format..eg 360se 3

· 4.6. Zip  rar 3

· 4.7. Music Lrc歌词  mid 3

 

 

Atitit data fmt sumup 常用的数据交换格式    标准

 

 

目录

1. 分类标准 2

1.1. 按照结构化与非结构化分类 2

1.2. 按照资料性质分类常见的数据格式txt doc picmusic vodio 2

1.3. 通用与专用格式 2

1.4. 完全与受限 比如xmlini 2

1.5. 文本 vs 二进制 2

1.6. 工业标准vs私有标准 json vs  java php str 2

2. 通用格式json yaml toml xml Html 2

2.1. Serialize phpstr  javastr 2

2.2. 源码 and ast 2

2.3. 变量     将数据写成标准的PHP赋值语句存放在文本文件中,在程序执行过程中包含进来, 2

2.4. 非完全格式Urlparam Propini csv csvWzHead3 3

2.5. TLV(三元组编码):  T(标记/类型域)L(长度/大小域)V(值/内容域), 3

3. 专用格式 4

4. 专用格式.常用格式 4

4.1. Diary 格式 4

4.2. 财务记录excel 4

4.3. 用户信息vcf 通讯录导出的一种格式 4

4.4. 导入导出数据csv,excel格式 4

4.5. Browser ,fav data ,html format..eg 360se 4

4.6. Zip  rar 4

4.7. Music Lrc歌词  mid 4

5. 专用格式 . 其他 4

5.1.1. 邮件格式eml 4

5.1.2. Im 4

5.1.3. Doc docx 4

5.1.4. 翻译软件词条,haosyo 马个标准的..使用txt xml的有.. 4

5.1.5. 视频元数据 info 4

5.1.6. 输入法,词库格式 5

5.1.7. News  rss vs atom 5

5.1.8. Dev ,sql 5

5.1.9. 商品信息excel  ecshop标准 5

5.1.10. 地图,地理位置格式 5

5.1.11. 日历格式,excel格式,貌似没有标准格式 5

5.1.12. 天气软件格式 5

6. Ref 5

6.1. Atitit.常见软件 数据 交换格式 标准.docx 5

5.4. Ref

Atitit  数据交换格式总结脑图.docx

Atitit data fmt sumup 常用的数据交换格式    标准

Atitit 算法之道 attilaxv3 s22.docx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值