軟件開發(fā)的核心是什么?
我們一直這樣做開發(fā),時間做久了,便忘了當初的本意。
有關軟件系統(tǒng)開發(fā),我們談些什么?
我們談過程,編碼規(guī)范、開發(fā)流程、同行評審、結(jié)對編程、持續(xù)集成,從瀑布到敏捷再到極限編程。
我們談架構(gòu),企業(yè)級、J2EE、容器化、SOA(面向服務架構(gòu))、Microservices(微服務化)。
我們談規(guī)模,大容量、高并發(fā)、大數(shù)據(jù)。
這一切的核心是什么?
先講個電力行業(yè)的一個故事:
記得有個給我們上培訓課的主講老師是個須發(fā)皆白的老先生,進門后掏出一堆零件放在講臺上, 酒精燈、小水壺、葉片、小電機、小燈泡。 老先生往壺里倒了些水,點燃酒精燈,不一會兒水開了,從壺嘴里噴出了蒸汽,帶動葉片旋轉(zhuǎn),然后小燈泡就亮了。
他說:這就是電廠。
他還說:如果燒的是煤炭,這就是燃煤電廠;如果燒的天然氣,這就是燃氣電廠;
如果獲得熱能的方式是核裂變,這就是核電廠;如果帶動葉片的能量來自水從高處流向低處,這就是水電廠。
老先生說:你們或許會問 “那我們看到的電廠怎么這么復雜”,答案其實很簡單, 電力項目需要復雜系統(tǒng)的目的,一是為了確保安全(Safety),二是為了提高效率(Efficiency)。
安全和效率的平衡,是所有工程技術的核心。
聽他如此說來,我就感覺到所謂 “大道至簡” 大概就是這樣的。
開發(fā)軟件系統(tǒng)的根本在于滿足需求,不能滿足需求的系統(tǒng)本身是沒有意義的。 就像一個再安全、有效率的電廠不能發(fā)電又有什么意義呢。 所以軟件系統(tǒng)開發(fā)也就是圍繞根本的基礎上確保安全與提高效率。
需求作為軟件的根本差異很大,需求是多樣,需求也是復雜的。 一個大型 ERP 系統(tǒng),一個大型倉儲系統(tǒng),一個大型網(wǎng)站系統(tǒng),到底誰更復雜,沒有一個定量標準,甚至都不好定性分析。 所以前面我們談軟件系統(tǒng)開發(fā)那么多內(nèi)容都是關于 “安全” 和 “效率” 這兩個圍繞根本的核心。
所有軟件開發(fā)的方法論,像瀑布、敏捷到極限編程圍繞的是開發(fā)活動的效率問題,而編碼規(guī)范、流程制定、同行評審等等則是有關開發(fā)的安全問題。 那么進一步微服務化其實同時考慮到了安全與效率,服務化拆分有利于大規(guī)模開發(fā)團隊的并行開發(fā),提升了開發(fā)效率, 但上線部署復雜了降低了運維效率,但運維效率可以通過自動化來得到彌補,而開發(fā)則不可能自動化。
匯新云—軟件協(xié)同產(chǎn)業(yè)生態(tài)鏈平臺友情提醒需求方和開發(fā) |
 |
|