一. 编程命名
1. 驼峰命令法(Camel
): 第一个单词首字母小写,其余首字母大写,例如myFirstName
、myLastName
。
2. 帕斯卡命名法(Pascal
): 又叫大骆驼命名法
, 每个单词首字母都大写。如UserName
、GetOrderDetail
。
3.匈牙利命名法(Hungarian
):变量名=属性+类型+对象描述
,如fn_search
、btn_login
、hWnd(Windows对象句柄)
。
4.下划线命名法(UnderScore
): 多见于javascript和数据库表等,如user_name
、task_server_group
。
二. 抽象三原则
1. DRY
(Don’t repeat yourself) : 不要重复自己
- 多次遇到同样的问题,就应该抽象出一个通用方法,而不是重复同样的代码。
2. YAGNI
(You aren’t gonna need it) : 你不会需要它
- 除了最核心的功能,其他功能一概不要部署,尽可能快、尽可能简单地让软件运行起来。即不要为了抽象而抽象,不要让代码一开始就变成华而不实的空中楼阁。
3. Rule Of Three
: 三次原则
- 第一次用到某个功能时,你写一个特定的解决方法;
- 第二次又用到的时候,你拷贝上一次的代码;
- 第三次出现的时候,你才着手"抽象化",写出通用的解决方法。
总结: 该抽象的时候一定要抽象,不该抽象的时候就不要抽象,事不过三,三次或以上的重复代码再做抽象化。
三. 码农定律
1. 墨菲定律
: 怕什么来什么,防止一切坏的可能性。
2. 布鲁克定律
: 不要因为项目延期而增加人手。
3. 霍夫施塔特定律
: 项目实际完成时间总要比预期时间长。
4. 康威定律
: 软件的结构反应来开发软件的组织结构。
5. 波斯托定律
: 自由输入,保守输出。
6. 二八法则
: 即帕累托法则,80%的bug来自20%的代码,20%的不合理性导致来80%的复杂性。
7. 彼得法则
: 在一个等级制度中,每个人都倾向于晋升到他无法胜任的职位。
8. 林纳斯定律
: 如果有足够多的眼睛,所有bug都将无处遁形。
9. 克努特优化法则
: 过早的优化是万恶之源。
10. 真香定律
: 一方面批判,另 一方面却又想得的技术。