Don't Repeat Yourself
这是软件开发的一个基础原则,即不要做重复性劳动,也是现在所说的“极客文化”的一种。代码重复、工作重复在软件开发过程中都是不合理的存在,利用各种手段消除这些重复是软件开发的一个核心工作准则
如果软件行业比作建筑行业的话,那么建筑行业里有工程师,建造师、监理、设计师、泥瓦匠等等。而重复性工作就相当于泥瓦匠!只是重复的在砌砖。
Keep it simple stupid
即KISS原则。在做软件设计的工作中,很多时候都不要想得过于复杂,也不要过度设计和过早设计,用最简单且最行之有效的方案也就避免了复杂方案带来的各种额外成本。这样既有利于后续的维护,也有利于进一步的扩展。
软件开发行业基本都知道要避免过度设计,但是如何拿捏尺度是一个很大问题。经验少点的开发可能会出现设计过于简单导致开发流程的问题或者设计过于复杂导致项目过大难度较高,所以着也是区分开发者能力的一项重要指标。
附:https://www.zhihu.com/question/19993179知乎大佬们对过度设计的讨论QAQ
You Ain't Gonna Need It
即 YAGNI原则。只需要将应用程序必须的功能包含进来,而不要试图添加任何其他你认为可能需要的功能。因为在一个软件中,往往80%的请求都花在20%的功能上
Done is better than perfect
在面对一个开发任务时,最佳的思路应该是先把东西坐出来。再去优化迭代。如果一开始就面面俱到,考虑到各种细节,那么很容易钻牛角尖而延误项目进度
Choose the most suitable things
这是在做方案选择,技术选型时的一个很重要的原则。在面对许多技术方案,开源实现的时候,务必做到不能盲目求新,要选择最合适的而不是吹得天花乱坠的。
这三个原则感觉其实就是为了解决过度设计的问题。
网友评论