日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

王银《编程的智慧》

發布時間:2023/12/14 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 王银《编程的智慧》 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

編程是一種創造性的工作,是一門藝術

?

一:反復推敲代碼

反復提煉,剔除垃圾

二:寫優雅的代碼

枝丫分明,樹狀代碼

三:寫模塊化的代碼

  • 避免寫太長的函數
  • 制造小的工具函數(編譯時會內聯/inline)
  • 每個函數只做一件簡單的事情
  • 避免使用全局變量和類成員(class member)來傳遞信息,盡量使用局部變量和參數

四:寫可讀的代碼

  • 使用有意義的函數和變量名字
  • 局部變量應該盡量接近使用它的地方(清晰易讀)
  • 局部變量名字應該簡短
  • 不要重用局部變量(易讀)
  • 把復雜的邏輯提取出去,做成“幫助函數”
  • 把復雜的表達式提取出去,做成中間變量
  • 在合理的地方換行(不要讓換行干擾語義理解)

五:寫簡單的代碼

  • 避免使用自增減表達式(i++,++i,i–,–i):讀和寫這兩種完全不同的操作不能混淆纏繞
  • 永遠不要省略花括號。
  • 合理使用括號,不要盲目依賴操作符優先級
  • 避免使用continue和break
  • 如果出現了continue,你往往只需要把continue的條件反向,就可以消除continue。
  • 如果出現了break,你往往可以把break的條件,合并到循環頭部的終止條件里,從而去掉break。
  • 有時候你可以把break替換成return,從而去掉break。
  • 如果以上都失敗了,你也許可以把循環里面復雜的部分提取出來,做成函數調用,之后continue或者break就可以去掉了。
  • 六:寫直觀的代碼

    如果有更加直接,更加清晰的寫法,就選擇它,即使它看起來更長,更笨,也一樣選擇它。

    七:寫無懈可擊的代碼

    if雙分支,窮盡可能,滴水不漏

    八:正確處理錯誤異常

    • 務必處理異常返回值
    • 盡量在異常出現的當時就作出處理
    • 異常捕獲應該盡量具體,不可寬泛
    • try { … } catch里面,應該包含盡量少的代碼

    九:正確處理null指針

    • 盡量不要產生null指針(盡量不要用null來初始化變量,函數盡量不要返回null)
    • 不要catch NullPointerException
    • 不要把null放進“容器數據結構”里面(如果你真要表示“沒有”,那你就干脆不要把它放進去;你可以指定一個特殊的,真正合法的對象,用來表示“沒有”)
    • 函數調用者:明確理解null所表示的意義,盡早檢查和處理null返回值,減少它的傳播(null在不同的地方可能表示不同的意義)
    • 函數作者:明確聲明不接受null參數,當參數是null時立即崩潰
    • 使用@NotNull和@Nullable標記
    • 使用Optional類型(把“檢查”和“訪問”這兩個操作合二為一,成為一個“原子操作”)

    十:防止過度工程

    先可用后重用、擴展

    • 先把眼前的問題解決掉,解決好,再考慮將來的擴展問題。
    • 先寫出可用的代碼,反復推敲,再考慮是否需要重用的問題。
    • 先寫出可用,簡單,明顯沒有bug的代碼,再考慮測試的問題。

    原文:編程的智慧-王垠

    總結

    以上是生活随笔為你收集整理的王银《编程的智慧》的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。