在龐大的工程面前,「語言」究竟扮演着什麼樣的角色?答案是,語言只是工具。從代碼、方法、過程、工程到組織,程序員
對於一個程序員或者以程序員自命的人來講,看清楚這一切的第一步,就是認識到:語言只是工具。算法
咱們從程序提及,程序=算法+結構,這是編程的精義,在全部開發行爲以前,它就已經存在,就像愚公在數千年前編程
就已經用類同的行爲在作編程實踐。只是有了邏輯以後,咱們拿什麼來實踐行爲?沒錯,推進這種邏輯向前發展的,是工具
方法以及方法論的出現。長期的實踐,不斷地積累,必然會沉澱爲某種方法。以後,會出現「過程」、「對象」,最後是相對象
關的方法論。這是時間的必然發展結果,而不是因爲某我的或者某個組織的關係,換句話說,就算是沒有你,也會有別資源
人總結出這些方法。模式做爲一種方法,就是你昨天書寫代碼的那個行爲,意識到作事的行爲,才能感覺到模式做爲一開發
種方法的價值,這就須要編程經驗。而經驗來源於回顧、理解和分析,這在理解過程當中也是須要的。軟件
伴隨着工程,過程出現了,解決的是工程中角色之間的關係問題。團隊在一塊兒進行開發,分化出每個環節,就有了程序
角色,有了溝通,哪些環節重要則取決於具體的編程行爲,也就是具體的項目。談到項目,就會提及項目經理,分不清方法
玩家和客戶的項目經理是可怕的,意味着他不懂哪一個環節更加劇要。那麼在角色中,溝通最重要,工程組織是否合適,
相互的協做是否緊密是這個項目成功的保障。
再來講說工程,最狹義的說法工程是對目標的描述和成果的檢測。在這之中,目標的實現靠的是「過程」和「方法」,而
要想快速的實現其所需,取決於「工具」,即語言。
過程伴隨工程而出現,那麼工程是怎樣出現的呢?幾年前開發一個小工具能夠不講工程,可是隨着軟件規模的不斷增
大,會要求不一樣的知識領域的角色參與,要求更多的人力、技術與管理資源。因此,「團隊」做爲開發行爲的模式,是軟件
規模和複雜度漸次累積的結果。而那些沒有團隊意識的軟件公司,在此面前將沒法繼續生存。
工程須要組織,這是項目經理所要擔任的職責,因此說做爲項目經理,可能說絕大部分的工做都是非技術性的。爲項
目的各個階段創建計劃並細化;確立階段目標以及評覈辦法;對角色展開培訓,爲每個人準備其所須要的資源;組織交
流,讓每個成員意識到項目所存在的風險。須要注意的是,咱們平時所說的BOSS並非組織者而是經營者。
總的來講,從最初一個小小的編程到現在團隊工程的組織開發,咱們的目的都是爲了實現一個目的,這是軟件開發的
本質需求,因此,過程、單元、記錄、對象的出現,都是出自於實現的須要。