程式設計漫談(十六) 設計與程式設計

2022-01-13 09:33:25 字數 1283 閱讀 4602

設計先行。

設計是構思一件事應該是怎樣、方案的形態、並論證可行性的過程與產出。

站在設計者的角度:應該是什麼樣子,為什麼? 主要考慮如下要素:

安全、實用、可靠、效率、便捷、流暢、簡潔、易懂、易操作

需要根據實際情況進行取捨權衡。

軟體設計的主要工作是:

程式設計是實現指定功能的具體方法和步驟,是執行者角度。

站在執行者的角度:怎麼彌合現實與理想的鴻溝?

程式設計的主要工作是:

程式世界是無界限的。沒有所謂的前後端開發測試運維之分(那只是管理術語)。因為所有的程式基於相同的思想與本質。當心中無狹隘的邊界之分時,就可以自由遨遊於技術的海洋,從多樣化的技術中汲取營養。謙遜、好奇、自由。

要寫出好程式,有四個小經驗:

抽象與分層。乙個流程裡,engine, checker,fetcher, assembler, transformer, ... , 構建合適的抽象與分層,流程與互動會更清晰可讀;

關注點分離。將大量細小的業務點分離成單一職責的方法,更易測易復用而不易出錯,也會更容易組合而擴充套件與配置。

防禦式程式設計。牢記:錯誤將無孔不入。乙個流程或功能有哪些潛在的錯誤以及如何精細處理好,是區分合格程式設計師與優秀程式設計師的一大依據。乙個檔案讀操作,可能會發生哪些錯誤呢?

設計模式,資料結構與演算法、函式式程式設計與元程式設計、ioc與aop是增強程式設計內功的不二法門。

最近排查解決乙個問題,突然又想到那個問題:軟體維護成本是怎麼產生的?除新需求外,往往來自之前埋下的坑。那麼坑又是怎麼產生的呢?通常是設計不嚴謹導致。 由於設計不嚴謹,遇到特定情況或者擴充套件就要做特殊處理,要做相容,乙個相容可能引發一系列相容,尤其源頭的不嚴謹,會導致源到端的一整條路徑的相容,**就會比較難看難理解,這樣就埋坑了;解決坑的時候,相容性的解決方案,在事情的變化中又會埋下新的坑。程式猿媛們就在埋坑和填坑的往復迴圈中「痛苦並快樂著」。

那麼設計不嚴謹又是怎麼產生的呢? 通常是抽象和分層做的不夠導致的。開發人員習慣於按照流程順手寫下來,而不細思和提煉出流程中的概念、關聯、實體、互動等,將其構建成一件精妙的邏輯裝置。結果就是當有變化的時候,裝置就出毛病罷工,就要做難看的相容。這要求開發者能夠克制性地向前一步思考,不急於著手,而是仔細推敲流程,提煉出關鍵因素,進行抽象和分層,在其指引下進行開發和程式設計。

抽象與分層能力,是程式設計師的內功心法。能夠細緻思考抽象與分層的開發人員,做出的設計和寫出的**往往更加簡潔優雅。而考察程式設計師,不僅僅看其已經掌握的知識和技能,更要看他是怎麼去思考和解決問題的。不同人的多樣化的思考和解決方式,或許比標準答案更加有趣。

程式設計漫談 十 六個最基本內功心法

程式設計即是有序地組織計算指令,使之完成合乎預期的事情和效果。怎樣學會和提公升程式設計技能呢?中國武學講究內功心法和招式變術。招式變術是千變萬化的,而內功心法則穩定而綿延不絕。內功心法的深度決定了可以學習的招式變術的上限高度。學習程式設計亦如此道 具體的技術是招式變術,而計算原理和機制是內功心法。習...

程式設計漫談(七) 意義與自由

我所能做的,就是一點一點地耕耘 積累,直到生命漸漸發出光芒,抑或者嘎然而止。在 其實並不重要,重要的是,無論在什麼地方,我與我的心同在,與我的夢同在,與我的愛同在。從今天起,我要使用自己寫的軟體,也許介面不酷,也許功能簡陋,不過,作為一名要從事程式設計工作的職業人員,這會是一件很棒的事情。程式設計,...

程式設計漫談(十二) 選擇程式設計職業

選擇程式設計開發作為職業對於不善交際的人是比較幸運的。第一,程式設計不需要高精尖的科學學術背景和高大上的裝置,而對邏輯分析思維和語言表達能力要求較高,需要深且廣的計算知識體系和條理清晰的語言表達才能寫出像樣的不被同行罵的程式,能夠持續理解和完善日益複雜的大型邏輯系統。程式設計行業所需的知識壁壘可以過...