不積硅步,無以至千里;不積小流,無以成江海,大型的專案是由一個個小模塊構建而成,每一個小模塊里面又包含著許多子程式,如果每一個子程式都能做到高質量,那么整個專案代碼的質量必然很高,??
建立一個子程式的步驟

《代碼大全》這本書將設計程式列為首要步驟,該步驟在我看來就像是為這個程式賦予特別的意義,整個程序就好像捏泥人,你要去決定他的性別是男是女,頭發是卷是直,個子是高是矮等,設計程式的第一步是要求設計者想清楚三個問題,第一該程式要解決什么問題,第二我為什么要設計該程式,設計出該程式帶來什么樣的好處,第三我該如何設計出一個健壯的、優秀的程式,不難看出,這兩個問題都是設計者對自己的一個提問,是為了讓設計者明確這個程式的必要性價值和意義,只有前兩個問題想通了,才能著手去思考如何設計的問題,
設計并實作一個程式需要考慮哪些步驟?
- 合適的命名,一個優秀的命名是對程式功能的高度概括,
- 考慮程式所需的效率,設計程式需要考慮它的運行環境,比如環境對程式執行時間有著高要求,那么考慮一個時間復雜度較小的演算法或高效的資料結構是必要的,
- 考慮合適的演算法和資料結構,根據第2條選擇合適的演算法和資料結構,
- 撰寫詳細的PDL,
- 檢查PDL,
- 編碼實作PDL,
- 檢查程式編碼
- 糾錯并修改
- 按需重復...
撰寫PDL到底帶來了多大的便利性?
PDL在我看來就是注釋,用自然語言描述整個程式的設計程序,撰寫一個清晰的PDL有以下幾個好處:第一方便review,reviewer應該更希望看到你的設計思路,而不是硬看代碼,尤其是沒有注釋的代碼,真的讓人抓狂,第二方便修改,一旦發現考慮不周的地方,就可以直接用自然語言修改,這樣效率更快,第三方便編程,一份精確無誤的PDL會為接下來的編程實作提供一個完整的思路,因為PDL本身就是注釋,我們僅需要根據注釋,填充正確的代碼即可,
為什么要花費大量時間在高層次的設計上,而花費少量時間在Coding?
有時候“慢即是快”,將每一步走穩,才能走的遠,
花費大量的時間在高層次的設計上會幫助我們明確自己的設計目標,設計思路,擁有一個清晰、明確的設計思路太重要了,尤其是撰寫PDL、檢查PDL、細化PDL步驟,會讓我們對自己設計的子程式有一個清晰透徹的理解,如此,之后的編碼實作也會更加的準確,
如果上來直接Coding,大概率會返工,一遍遍的將大量的時間花費在除錯代碼,修改代碼步驟上,
一個有效的、富有表達力的PDL該如何描述?
- 一定是自然語言描述,不要用編程語言描述,你用自然語言描述,實作者看懂思路后,可以用任意語言實作子程式,
- 要詳細且精確,因為PDL未來是要用來程式語言編碼的基礎,PDL寫的越清楚,實作出來的子程式就越準確,建議是在描寫一個PDL之前,先用自然語言精確描述子程式的作用,然后再撰寫關于這個子程式的高層次的PDL,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/551730.html
標籤:其他
下一篇:返回列表
