Principles of Good Programming

知道原则很重要,更重要的是,看完要坚持原则,坚持原则,坚持原则,重要的事说三遍。

原文在此

DRY

Don’t repeat yourself

这就是常说的程序员喜欢重复造轮子。每一次重复,就多了一层抽象,多了一层复杂性,难道你喜欢一次穿好多双袜子吗?

DRY

99.999%以上你的问题,世界上别的程序猿已经碰到过,思考过,解决过,所以,千万别急,千万别异想天开,至少参考一下。

KISS

Keep it simple, stupid!

我更喜欢解读成 - Keep it stupid, so it can be simple,笨方法往往是最好的方法,是不是有点哲学的味道?

KISS

Avoid Creating a YAGNI

You aren’t going to need it

创业里讲的MVP(Minimum Viable Product)- 极简原则,可造可不造 - 别造, 可用可不用 - 别用,不知道怎么做 - 别做,设计API时非常有用。

Abstraction Principle

抽象原则 - 好像说的是数学,不过也可用在编程上,数学的力量来源于抽象,代码的力量也来源于抽象 - 说得好像是OO,不过这是有代价的哦。

Minimize Coupling

解耦原则:复杂问题的解决方法来源解耦,解的过程就是深入认识问题的过程。如果代码的力量来源抽象,那么系统的威力就来源于解耦。这是两根大棒,但不要“滥用”,得不断提高这方面的能力。

Separation of Concerns

和“解耦原则” & “单一原则”一样,不同的东西放在一起,自己都不清楚在干啥。不同的东西需要不同的思维,写代码如此,做事情如此,做人如此。

Single Responsibility Principle

单一原则:一次只做一件小事,一段代码只做一件事情,并把它做到极致。

Maximize Cohesion

不知如何解释,所谓的有组织有条理吧,尽量把相同或类似的东西放在一起。像搭积木一样,解决问题和写代码时尽量采用组合或延续的办法而不是从头开始。

Open/Closed Principle

把一份代码/系统/设计/工作做完整(closed)- 别人不需要七改八改才能工作;把一份代码/系统/设计/工作做得灵活(open)- 别人可以七加八加,完成更多不同的事情。完整性和灵活性是架构师和优秀程序猿时常考虑的问题,也是nb或菜鸟的区别所在。

Write Code for the Maintainer

可读性:好的代码和好的书一样,是给人读的 - 自己和别人。

可读性

Don’t make me think

命名,信息,尽量精确,完整,别偷懒,好的东西符合三原则:

有用(userful)
易用(effortless)
好用(enjoyable)

Principle of least astonishment

一切和想的一样,no news is good news。

Avoid Premature Optimization

先解决问题,再想如何优化,过早优化是一切灾难的来源:

premature optimization is the root of all evil” - Donald Knuth

显示 Gitment 评论