《都說(shuō)編程難,編程到底難在哪里?》要點(diǎn):
本文介紹了都說(shuō)編程難,編程到底難在哪里?,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
都說(shuō)程序員一天只有三件事:吃飯、睡覺(jué)、敲代碼.
都說(shuō)學(xué)會(huì)編程很簡(jiǎn)單,可是要學(xué)好編程可是很難.
那,編程到底哪里難?
(圖片來(lái)源于網(wǎng)絡(luò))
有一個(gè)人總結(jié)了軟件開(kāi)發(fā)中無(wú)法規(guī)避的四個(gè)難點(diǎn):復(fù)雜度、一致性、可變性、弗成見(jiàn)性
這個(gè)人便是IBM大型機(jī)之父,Frederick Brooks.
復(fù)雜度:
規(guī)模上,軟件實(shí)體可能比任何由人類創(chuàng)造的其他實(shí)體還要復(fù)雜,因?yàn)闆](méi)有任何兩個(gè)軟件部門是相同的.如果有相同的情況,我們會(huì)把它們合并成共調(diào)用的子函數(shù).
數(shù)字計(jì)算機(jī)本身就比人類建造的大多數(shù)東西要來(lái)的復(fù)雜,由于復(fù)雜度,團(tuán)隊(duì)成員之間的溝通非常困難,導(dǎo)致產(chǎn)品開(kāi)發(fā)中會(huì)出現(xiàn)很多問(wèn)題,使本錢超支、進(jìn)度跟不上;復(fù)雜度不僅帶來(lái)技術(shù)上的困難,還會(huì)引發(fā)很多管理上的問(wèn)題,它使全面理解問(wèn)題變得很難,從而妨礙了概念上的完整性.
一致性:
工程師必需控制的數(shù)據(jù)很多是隨心所欲的、毫無(wú)規(guī)則可言的,來(lái)自若干必需遵循的人為慣例和系統(tǒng).它們隨不同的接口而改變,隨時(shí)間的推移而改變,而且這些變化不是必需的,僅僅由于它們是不同的人設(shè)計(jì)的結(jié)果.
某些情況下,因?yàn)槭情_(kāi)發(fā)最新軟件,所以它必須遵循各種接口.另一些情況下,軟件的開(kāi)發(fā)目標(biāo)就是兼容性.在上述的所有情況中,很多復(fù)雜性來(lái)自堅(jiān)持與其他接口的一致,對(duì)軟件的任何再設(shè)計(jì),都無(wú)法簡(jiǎn)化這些復(fù)雜性.
可變性:
所有成功的軟件都會(huì)發(fā)生變更.當(dāng)人們發(fā)現(xiàn)軟件很有用時(shí),會(huì)在原有的應(yīng)用范圍的界限,或者在超越界限的情況下使用軟件.功能擴(kuò)展的壓力主要來(lái)自那些喜歡基本功能,又對(duì)軟件提出很多新用法的用戶們.
簡(jiǎn)而言之,軟件產(chǎn)品扎根于文化的母體中,如各種應(yīng)用、用戶、自然及社會(huì)規(guī)律、計(jì)算機(jī)硬件等等.后者持續(xù)不斷的變化著,這些變化無(wú)情的逼迫著軟件隨之變化.
弗成見(jiàn)性:
軟件是不可見(jiàn)和無(wú)法可視化的.軟件的客觀存在不具有空間的形體特征.當(dāng)我們?cè)噲D用圖形來(lái)描述軟件結(jié)構(gòu)時(shí),會(huì)發(fā)現(xiàn)它不僅僅包括一個(gè),而是很多相互關(guān)聯(lián)的、重疊在一起的圖形.
除去軟件結(jié)構(gòu)上的限制和簡(jiǎn)化方面的進(jìn)展,軟件仍然堅(jiān)持著無(wú)法可視化的固有特征,從而剝奪了一些具有強(qiáng)大功能的概念工具的構(gòu)造思路.這種缺憾不僅限制了個(gè)人的設(shè)計(jì)過(guò)程,也嚴(yán)重阻礙了相互之間的交流.
(部門觀點(diǎn)來(lái)源于網(wǎng)絡(luò))
維易PHP學(xué)堂逐步分享更多《都說(shuō)編程難,編程到底難在哪里?》相關(guān)教程。歡迎交流
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/9269.html