讀《大道至簡》有感

仙人兵马俑發表於2024-07-30

在暑假期間,我拜讀了周愛民所著的《大道至簡——軟體工程實踐者的思想》。在此之前,我先了解了一下這本書的作者——周愛民。
周愛民(Aimingoo),有十餘年的軟體開發、專案管理、團隊建設的經驗。曾任多家軟體公司高階程式設計師、專案經理、部門經理、區域總經理等職,前支付寶(中國)公司業務架構師,前盛大網路平臺架構師。目前主要從事軟體工程、體系架構和語言基礎方面的研究與實踐。這是百度百科上查到的資料,從他的生平中不難看出,他是一個有著豐富管理經營經驗和程式設計經驗的軟體工程實踐者,可以說是我們這些軟體工程學生們的楷模了。這樣一個人在2012年出版的《大道至簡》想必凝聚了這位軟體工程實踐者半生的智慧。
這本書中無意義的話非常少,幾乎每一句都能引發人的思考。我在拜讀過程中經歷了一次又一次的頭腦風暴,書中的很多術語都讓我覺得不明覺厲。但看著看著,我發現,書中的反例好像與我不謀而合。我貌似就是書中作者所說勤奮的“愚公”——即十分勤奮,拿到問題就開始解決,不考慮方法,經常加班的人。即使在學了一學期的物件導向的程式設計之後,我還是更傾向於將程式寫在一個檔案中,這種設計理念在設計簡單程式時並不會有太大的問題,但一個軟體肯定是會越來越複雜的,在設計複雜的程式時,往往要寫成千上萬條程式碼,這些程式碼放到一個檔案中不僅在檢查時會十分困難,在分工時也會很困難。在解決大型實際問題時肯定不能只讓一個人來解決,這樣的工程量對一個人來說簡直時不可能完成的事情,即使有一個牛人能完成這樣的程式,那花費的時間不是會將軟體公司拖死就是會將甲方公司拖死。而《大道至簡》中所提倡的方法就是物件導向的程式設計。周愛民提倡我們將程式分為一個個“模組”,把大“模組”分成小“模組”,再把小“模組”分成小小“模組”,這樣我們就可以分工作了,一部分人寫這幾個模組,另一部分人寫那幾個。
在我們步入工作後,工作內容肯定不是簡簡單單的程式設計。我們不僅要調節好開發人員之間的關係,還要調節好開發人員與客戶之間的關係。書中以一個管理者的視角講述瞭如何管理一個團隊,即不能輕易改變一個團隊的既定習慣,也不能放任團隊中的負面價值的習慣存在。看似矛盾的一句話卻是管理者作用的精髓。開發人員可能希望客戶用c的方式講述自己的需求,但不肯能每個客戶都精通c語言,這時經理就是二者之間交流的紐帶。
這套理論似乎再程式設計中也適用,客戶從外界輸入資訊,經理就是接收資訊,並且把資訊處理後以規定形式傳輸給開發人員的“模組“,而開發人員就是接收規定資訊,並且將這些資訊按照客戶的需要處理的”模組“。這樣看來,似乎公司就是一個程式,程式就是一個公司,既要有接收資訊的”模組“,也要有處理資訊的”模組“,還可能會有管理記憶體的”模組“,管理“模組”之間關係的“模組”等等。
這些就是我拜讀《大道至簡》後得到的拙劣見解。

相關文章