技術驅動是這樣的:不考慮投資回報比、不考慮市場需求,怎么做作符合技術的要求我就怎么來。
比如 你開了家互聯網公司,你負責技術。
現在你們公司一個客戶都沒有,但是你說,我們的架構,要和什么什么高大上的架構一樣、要能經得起百萬級用戶量的訪問;我們的開發人員,每人都要熟練掌握設計模式、多用設計模式、變量命名要符合XXX標准、單元測試覆蓋率要達到90%以上………
你這樣做了兩年,產品還沒出來,公司沒錢了,死了。
正確的做法是:f**k先給我搞出一個1.0版本啊,哪怕demo都可以,先讓市場有東西看啊,你把所有功能都寫到main里我都不care。
變量命名?大哥 我現在招的人如果英文不好難道我還先培訓他英文?拼音命名就可以啊。
技術,要服從於公司需求、公司需求是源自市場反饋的。不能倒過來。
我騰訊的朋友說,微信的很多后台源代碼,你肯定不敢信,拼音命名、流程和協議混亂的模塊多了去了。
所以,先活下來,我才能給你招聘更多更好的程序員,到時候你想怎么折騰怎么優化,沒人攔着你。
當然,如果真到了這一步,公司是不會給你三年五載去優化的,你會被公司賦予新的項目去做… 所以,任何一個項目,技術上看都會有各種個樣的坑留在那里。 到這個項目生命周期結束,都填不完的。
你去看chrome的源代碼,一樣坑很多很多。不過chrome的維護人員我感覺有點閑啊,整了很多設計模式進去,讓代碼可讀性下降了n倍…這么好下去,如果哪天要做結構性調整,恐怕chrome很多模塊要重寫了……這就是技術的一個特點:無止境。
你開發一個功能,如果完全從技術角度考慮的話,是無止境的、根本沒完。
功能完了還有測試、測試完了還有結構優化、結構優化完了還有可謂可測性提升、系統容災和備份,如果你還不爽,用性能分析工具把尼服務器里跑到服務性能分析圖畫出來,然后把硬件吃透然后聯系intel公司給你高度定制化芯片。
這些事情都做完,我估計你孫子都七老八十了。