Make it run, make it right, make it fast
如果問我工作十多年后相比剛畢業(yè)參加的時(shí)候,學(xué)到了哪些重要的經(jīng)驗(yàn),那么“Make it work, make it right, make it fast”一定是其中最重要的經(jīng)驗(yàn)之一。第一次聽到這句話是從以前老板?
@沈嶸
?那里,然后發(fā)現(xiàn)是來源自大牛?Kent Beck?《Make It Work Make It Right Make It Fast》。這是軟件項(xiàng)目開發(fā)的一條經(jīng)典原則,實(shí)際上不限于軟件開發(fā)領(lǐng)域,它把一個(gè)項(xiàng)目分成三個(gè)階段,每個(gè)階段有不同的側(cè)重。
Make it work
在這個(gè)階段,了解項(xiàng)目需求后,聚焦于項(xiàng)目所需要的最小需求,盡快讓項(xiàng)目先跑起來,不必過于追求設(shè)計(jì)和性能。同時(shí),展示你的結(jié)果,并根據(jù)反饋快速調(diào)整。
這個(gè)階段的重點(diǎn)在于需求的響應(yīng),以最快的速度實(shí)現(xiàn)需求。這是個(gè)快速試錯,快速迭代,驗(yàn)證需求的過程。
Make it right
到了這個(gè)階段,需求基本上已經(jīng)穩(wěn)定,要保證項(xiàng)目執(zhí)行結(jié)果正確,更多的測試,盡可能少的bug。但"Make it right"并不僅僅意味著只要結(jié)果正確就夠了,還需要對系統(tǒng)進(jìn)行重構(gòu),優(yōu)化系統(tǒng)設(shè)計(jì),讓代碼更簡潔結(jié)構(gòu)更清晰,易于擴(kuò)展和維護(hù)。
這個(gè)階段的重點(diǎn)在于保障系統(tǒng)的穩(wěn)定,同時(shí)優(yōu)化設(shè)計(jì)和重構(gòu)。
Make it fast
當(dāng)系統(tǒng)已經(jīng)穩(wěn)定,設(shè)計(jì)也趨于成熟的時(shí)候,還需要對系統(tǒng)進(jìn)行性能上的優(yōu)化,良好的性能,不僅可以提升用戶體驗(yàn),同時(shí)也能降低運(yùn)維的成本。這里的“fast”,不僅體現(xiàn)在程序的性能,也包括對整體項(xiàng)目流程效率的提升,例如自動編譯、自動部署的工具或腳本,如果前期沒有做,那么這時(shí)候就要加上了。
這個(gè)階段的重點(diǎn)在于系統(tǒng)的性能優(yōu)化,包括項(xiàng)目流程效率的優(yōu)化。
常見誤區(qū)
“Make it work, make it right, make it fast” 這個(gè)原則拆開來很好理解,但這三個(gè)階段不是孤立的,而是一個(gè)整體,同時(shí)又是有先后次序的。
在我初學(xué)編程的時(shí)候,要達(dá)到Make it work也并不是太難的事情,網(wǎng)上找些開源項(xiàng)目,參考書上的教程,總能把一個(gè)不算太復(fù)雜的項(xiàng)目搭出來,但卻沒有能力去make it right,更沒有辦法去make it fast。最終的結(jié)果就是做出來的項(xiàng)目難以維護(hù),性能低下。
在我學(xué)了一段時(shí)間編程后,懂了一些設(shè)計(jì)模式,了解了一些性能優(yōu)化的辦法,于是開始直接省略第一步,首先考慮的是“Make it fast”,假想系統(tǒng)有超大用戶超大訪問量,然后考慮的是“Make it right”,設(shè)計(jì)的時(shí)候?yàn)榱嗽O(shè)計(jì)模式而設(shè)計(jì)模式,恨不得把所有設(shè)計(jì)模式應(yīng)用個(gè)遍,最后再想著"Make it work",但這時(shí)候因?yàn)榍捌诘倪^度設(shè)計(jì),系統(tǒng)復(fù)雜而臃腫,要讓它work,簡直是太難了,最終就是開發(fā)頻繁延期,甚至難產(chǎn),做出來的程序也難以維護(hù)。
?
經(jīng)過這么多年的磨煉,現(xiàn)在大到項(xiàng)目,小到具體功能,在每個(gè)版本都會盡可能的按照這個(gè)原則來實(shí)行:
經(jīng)歷這些階段后,項(xiàng)目的進(jìn)度和質(zhì)量都會有一個(gè)比較好的結(jié)果。
總結(jié)
以上是生活随笔為你收集整理的Make it run, make it right, make it fast的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 涨工资的那点事
- 下一篇: 记录下两个孩子在MineCraft里面还