《代碼大全》閱讀心得二python與lua閉包的一點不同

來源:互聯網
上載者:User

在第三四部分中,主要探討的是具體的編程開發實踐過程中的注意事項,相比一二部分,這些更具體,具體到變數。如果一個編程新手看這邊書,從這裡入手應該是個不錯的選擇,因為它貼近實戰,能給人最直接的感受。可惜的是,初學編程時我並沒有看到這本書。

這裡,對變數命名是拒絕隨意定義的,非常強調變數表達的含義,作者相信合理的變數命名可以讓程式自我注釋,讀起來很自然,也就不容易犯錯。變數一般是需要初始化的,儘管很多語言並不強制這一點,剛開始學編程的時候也容易忘記這一點;控制變數的範圍,全域變數少用;密切注意程式中的指標和動態分配記憶體,通過它們產生的記憶體泄露和緩衝區溢位,已經困擾了人們幾十年,雖然發表了眾多的論文和工具,問題卻依然存在。在現在的開發過程中(Lua語言),如果你在某個位置(預定義允許位置外)定義了全域變數,是會給出輸出警告的,必須把它修改為局部變數。關於範圍,在python、Lua或者OCaml這樣的語言中,允許在函數中定義函數(閉包),這時候產生了所謂的upvalue,是特別要注意的,而且不同的語言中其作用方式是有差異的(python與lua閉包的一點不同),所以請記得深入一種語言去編程。

使用語句的時候書中也討論了很多方面,就是要讓程式可讀、易讀、美觀,為了達到理想的效果,作者也提出了一些方法如表驅動法,通常來說,一條語句至少不能太長不能一口氣表達太多的操作或者條件判斷,語句間不能嵌套的太深,所有的語句應是在同一個抽象層次上表達操作,注意預期的正常路徑和非法路徑的安排順序,避免雖然正確但容易被人誤解(主要是還不完全熟悉語言的人,可誰能說自己完全熟悉某語言呢)的表述(如優先順序次序問題),對goto的謹慎使用(Lua中沒有goto也用的挺好)。在實際的工作中發現,其實更多的問題並不是語句本身,而是對問題抽象的把握,該把哪些語句組織在一起成為一個功能函數,確定了這個,變數的命名、語句的編寫都會順利很多。

這兩部分的實用性和可操作性都很強,特別適合正在入門的人閱讀學習,剛開始的時候習慣容易養成也容易改,接受好的習慣是一個優秀的習慣。這兩部分涉及的問題,處理的效果如何將決定系統的最終品質,規劃設計的再完美最終要落實到正確可靠的實現上體現,作為最一線的編碼人員一定要認真領會。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.