魔扣论坛

魔扣源码论坛业务
查看: 1077|回复: 8

如果你具备这18条程序员法则,升职、加薪根本不是问题!

[复制链接]

该用户从未签到

13

主题

0

回帖

17

积分

魔扣新手

Rank: 1

魔扣币
2
贡献
2
威望
2
发表于 2018-8-12 22:16:48 | 显示全部楼层 |阅读模式
魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
原文:http://www.artima.com/weblogs/viewpost.jsp?thread=331531

作者:
Christopher Diggins



好的编程原则跟好的系统设计原则和技术实施原则有着密切的联系。下面的这些编程原则在过去的这些年里让我成为了一名优秀的程序员,我相信,这些原则对任何一个开发人员来说,都能让他的编程能力大幅度的提高,能让他开发出可维护性更强、缺陷更少的程序。




1. 不要自我重复(DRY - Don't repeat yourself)


这也许是在编程开发这最最基本的一个信条,就是要告诉你不要出现重复的代码。我们很多的编程结构之所以存在,就是为了帮助我们消除重复(例如,循环语句,函数,类,等等)。一旦程序里开始有重复现象的出现(例如很长的表达式、一大堆的语句,但都是为了表达相同的概念),你就需要对代码进行一次新的提炼,抽象。




2. 提炼原则(Abstraction Principle)


跟“不要自我重复原则”相关,这一原则是说“程序中任何一段具有功能性的代码在源代码文件中应该唯一的存在。”




3. 保持简单(KISS - Keep it simple, stupid!)


简单化(避免复杂)永远都应该是你的头等目标。简单的程序让你写起来容易,产生的bug更少,更容易维护修改。




4. 不要开发你目前用不到的功能(Avoid Creating a YAGNI - You aren't going to need it)


除非你真正需要用到它,否则不要轻易加上那些乱七八糟用不到的功能。




5. 用最简单的方法让程序跑起来(Do the simplest thing that could possibly work)


在开发时有个非常好的问题你需要问问自己,“怎样才能最简单的让程序跑起来?”这能帮助我们在设计时让程序保持简单。




6. 不要让我动脑子(Don't make me think)


这实际上是Steve Krug 关于web界面操作的一本书的书名,但也适用于编程。主旨是,程序代码应该让人们花最小的努力就能读懂和理解。如果一段程序对于阅读者来说需要花费太多的努力才能理解,那它很可能需要进一步简化。




7. 开放/封闭原则(Open/Closed Principle)


程序里的实体项(类,模块,函数等)应该对扩展行为开放,对修改行为关闭。换句话说,不要写允许别人修改的类,应该写能让人们扩展的类。




8. 为维护者写程序(Write Code for the Maintainer)


任何值得你编写的程序在将来都是值得你去维护的,也许由你维护,也许由他人。在将来,当你不得不维护这些程序时,你对这些代码的记忆会基本上跟一个陌生人一样,所以,你最好还是当成一直在给别人写程序。一个有助于你记住这个原则的办法是“写程序时时刻记着,这个将来要维护你写的程序的人是一个有严重暴力倾向,并且知道你住在哪里的精神变态者”。




9. 最少意外原则(Principle of least astonishment)


最少意外原则通常是使用在用户界面设计上,但这个原则同样适用于编写程序。程序代码应尽可能的不要让阅读者感到意外。也就是说应该遵循编码规范和常见习惯,按照公认的习惯方式进行组织和命名,不符常规的编程动作应该尽可能的避免。




10. 单一职责原则(Single Responsibility Principle)


一个代码组件(例如类或函数)应该只执行单一的预设的任务。




11. 最小化耦合关系(Minimize Coupling)


一个代码片段(代码块,函数,类等)应该最小化它对其它代码的依赖。这个目标通过尽可能少的使用共享变量来实现。“低耦合是一个计算机系统结构合理、设计优秀的标志,把它与高聚合特征联合起来,会对可读性和可维护性等重要目标的实现具有重要的意义。”




12. 最大化内聚性(Maximize Cohesion)


具有相似功能的代码应该放在同一个代码组件里。




13. 隐藏实现细节(Hide Implementation Details)


隐藏实现细节能最小化你在修改程序组件时产生的对那些使用这个组件的其它程序模块的影响。




14. 笛米特法则(Law of Demeter)


程序组件应该只跟它的直系亲属有关系(例如继承类,内包含的对象,通过参数入口传入的对象等。)




15. 避免过早优化(Avoid Premature Optimization)


只有当你的程序没有其它问题,只是比你预期的要慢时,你才能去考虑优化工作。只有当其它工作都做完后,你才能考虑优化问题,而且你只应该依据经验做法来优化。“对于小幅度的性能改进都不该考虑,要优化就应该是97%的性能提升:过早优化是一切罪恶的根源”—Donald Knuth。




16. 代码复用(Code Reuse is Good)


这不是非常核心的原则,但它跟其它原则一样非常有价值。代码复用能提高程序的可靠性,节省你的开发时间。




17. 职责分离(Separation of Concerns)


不同领域的功能应该由完全不同的代码模块来管理,尽量减少这样的模块之间的重叠。




18. 拥抱变化(Embrace Change)
这是Kent Beck的一本书的副标题,它也是极限编程和敏捷开发方法的基本信条之一。很多的其它原则都基于此观念:面对变化,欢迎变化。事实上,一些经典的软件工程原则,例如最小化耦合,就是为了让程序更容易面对变化。不论你是否采用了极限编程方法,这个原则对你的程序开发都有重要意义。




其实都是一些老生常谈的话,重要的是在于你怎么去落实。




1、求职联系小编微信:szweican
2、找工作留言:姓名+电话+QQ+岗位+工作年限

请问这三个人谁是凶手?

一个人面向墙壁倒下,手里抓着当天3月31的日历纸。警察观察了墙壁,发现墙上有钉子。3个嫌疑人,都是死者遗产继承人,玉龙,玉仁,玉漱。问:这三个人谁是凶手?(没猜到可回复“面壁 ”查看分析)

下方 原文[img=auto,10]https://bbs.morko.net/https://bbs.morko.net/source/plugin/csdn123_news/csdn123_showimg.php?url=http://mmbiz.qpic.cn/mmbiz/ekIfBdRticwQK9Cgeh1N6t1OiaIWK3PfNt5PGRiba7ym9qur1ibpic0Db9nPk3Fw0ckHEnic8Km2cBicniap2oIZb7icKxA/0/mmbizgif?wxfrom=5[/img]最新JAVA/Web/PHP/Android工程师招聘信息
                    
                        


来源链接: http://mp.weixin.qq.com/s?__biz=MzAwNjA3NDMyOA==&mid=400130664&idx=4&sn=37dac9c1359c302b67ac1cd3d330e62a&3rd=MzA3MDU4NTYzMw==&scene=6#rd

该用户从未签到

0

主题

242

回帖

484

积分

中级魔扣

Rank: 3Rank: 3

魔扣币
242
贡献
242
威望
0
发表于 2018-8-21 18:30:14 | 显示全部楼层
为毛老子总也抢不到沙发?!!

该用户从未签到

2

主题

234

回帖

470

积分

中级魔扣

Rank: 3Rank: 3

魔扣币
234
贡献
234
威望
0
发表于 2018-9-22 17:34:52 | 显示全部楼层
撸过

该用户从未签到

0

主题

289

回帖

578

积分

高级魔扣

Rank: 4

魔扣币
289
贡献
289
威望
0
发表于 2019-3-15 13:06:45 | 显示全部楼层
激动人心,无法言表!再次感谢魔扣帮我找到此极品源码!

该用户从未签到

2

主题

291

回帖

584

积分

高级魔扣

Rank: 4

魔扣币
291
贡献
291
威望
0
发表于 2019-7-19 09:15:14 来自手机 | 显示全部楼层
路过

该用户从未签到

1

主题

241

回帖

484

积分

中级魔扣

Rank: 3Rank: 3

魔扣币
242
贡献
242
威望
0
发表于 2020-1-12 20:13:23 来自手机 | 显示全部楼层
打开每天挂念的空间,想念每个与网络相遇的朋友,认真翻阅着每条留言,此时只有温馨与感动驻满心田。当我看到你的留言时感觉真好无论你身在何方,魔扣源码论坛,让快乐飞进你的小屋,让好运降落在你身边,让幸福常常与你相伴,让如意流淌你的心房,让岁月的诗句写满真诚与难忘,让我的留言为你带来快乐和吉祥!

该用户从未签到

4

主题

265

回帖

534

积分

高级魔扣

Rank: 4

魔扣币
265
贡献
265
威望
0
发表于 2020-7-13 14:17:17 来自手机 | 显示全部楼层
支持楼主,用户楼主,楼主英明呀!!!

该用户从未签到

0

主题

240

回帖

480

积分

中级魔扣

Rank: 3Rank: 3

魔扣币
240
贡献
240
威望
0
发表于 2020-7-19 16:45:30 | 显示全部楼层
如果觉得生活是一种刁难,一开始就输了。如果觉得刁难是一种雕刻,迟早都会赢的。',

该用户从未签到

1

主题

246

回帖

493

积分

中级魔扣

Rank: 3Rank: 3

魔扣币
246
贡献
246
威望
0
发表于 2020-7-21 16:21:12 | 显示全部楼层
在这网络博客世界里,因为有您,我的生活才能更加丰富多彩。不压抑,还开心,珍贵的友情总是一点一滴凝聚起来的,它包含了许多欢笑、温馨、浪漫,许多记忆,魔扣源码论坛真诚地谢谢您我的好友愿您每天忙碌的工作中有个好心情天热注意休息保重。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 联系我们
  • 新浪微博 :
  • 在线客服 :魔扣科技 
  • 源码QQ群 :魔扣源码论坛官方总群
  • 联系邮箱 :charlin#morko.net
  • 微信扫一扫
快速回复 返回顶部 返回列表