Don't Repeat Yourself
這是軟件開發(fā)的一個基礎(chǔ)原則,即不要做重復(fù)性勞動,也是現(xiàn)在所說的“極客文化”的一種。代碼重復(fù)、工作重復(fù)在軟件開發(fā)過程中都是不合理的存在,利用各種手段消除這些重復(fù)是軟件開發(fā)的一個核心工作準(zhǔn)則
如果軟件行業(yè)比作建筑行業(yè)的話,那么建筑行業(yè)里有工程師,建造師、監(jiān)理、設(shè)計師、泥瓦匠等等。而重復(fù)性工作就相當(dāng)于泥瓦匠!只是重復(fù)的在砌磚。
Keep it simple stupid
即KISS原則。在做軟件設(shè)計的工作中,很多時候都不要想得過于復(fù)雜,也不要過度設(shè)計和過早設(shè)計,用最簡單且最行之有效的方案也就避免了復(fù)雜方案帶來的各種額外成本。這樣既有利于后續(xù)的維護,也有利于進一步的擴展。
軟件開發(fā)行業(yè)基本都知道要避免過度設(shè)計,但是如何拿捏尺度是一個很大問題。經(jīng)驗少點的開發(fā)可能會出現(xiàn)設(shè)計過于簡單導(dǎo)致開發(fā)流程的問題或者設(shè)計過于復(fù)雜導(dǎo)致項目過大難度較高,所以著也是區(qū)分開發(fā)者能力的一項重要指標(biāo)。
附:https://www.zhihu.com/question/19993179知乎大佬們對過度設(shè)計的討論QAQ
You Ain't Gonna Need It
即 YAGNI原則。只需要將應(yīng)用程序必須的功能包含進來,而不要試圖添加任何其他你認(rèn)為可能需要的功能。因為在一個軟件中,往往80%的請求都花在20%的功能上
Done is better than perfect
在面對一個開發(fā)任務(wù)時,最佳的思路應(yīng)該是先把東西坐出來。再去優(yōu)化迭代。如果一開始就面面俱到,考慮到各種細(xì)節(jié),那么很容易鉆牛角尖而延誤項目進度
Choose the most suitable things
這是在做方案選擇,技術(shù)選型時的一個很重要的原則。在面對許多技術(shù)方案,開源實現(xiàn)的時候,務(wù)必做到不能盲目求新,要選擇最合適的而不是吹得天花亂墜的。
這三個原則感覺其實就是為了解決過度設(shè)計的問題。