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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

最好的编程语言是怎样的?

發布時間:2024/1/8 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最好的编程语言是怎样的? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

沒有語言是完美的。

因語言演化,不同時期不同版本的程序員寫的代碼,在用同一門語言在編程。所以,我們經??吹礁鞣N不同時期風格代碼并存。

新的語言特性都是為提高代碼表達性,減少犯錯幾率。多用新語言特性寫代碼,絕對沒毛病!

那應該如何使用“新”語言特性,讓代碼寫得更好?

Optional


暫不考慮缺乏封裝問題。這段代碼有問題。因為未考慮對象可能為 null。
更好的寫法:

這種寫法很稀缺,所以,新項目總是各種NPE。如果你要問程序員為什么不寫對象為 null 的判斷,答曰:忘了。

空指針的發明者 Tony Hoare 將其稱為“自己犯下的十億美元錯誤”。

還好Java 8有Optional,它提供了一個對象容器,你需要從中“取出(get)”你所需要對象,但取出前,你需判斷該對象容器中是否真的存在一個對象。

你再不會忘掉判斷對象是否存在,因為你需要從 Optional 取出存在里面的對象。正是這多余的一步,避免你“忘”了。

更簡潔的寫法:

項目中所有可能為 null 的返回值,都要返回 Optional,可大大減少各種意外驚喜。

函數式編程


準備參數的代碼:

  • 篩選出審核通過的章節
  • 再把章節轉換成與翻譯引擎通信的格式
  • 最后把所有得到的單個參數打包成一個完整的章節參數。

Java8后,不是不需要遍歷集合,而是有了更好的遍歷集合方式。函數式編程,大部分操作都可歸結成列表轉換,最核心的列表轉換就是 map、filter 和 reduce。

大部分循環語句都是在對一個元素集合進行操作,而這些操作基本上都可以用列表操作進行替代。

再CR這段代碼,有一循環語句,這循環語句在處理的是一個集合中的元素,可用列表轉換:

有人可能說這段代碼還不如我原來的循環語句簡單。兩種寫法根本差異是抽象層次不同,可讀性完全不同:

  • 循環語句是在描述實現細節
    必須要做一次“閱讀理解”知曉其中細節才能知曉整個場景
  • 列表轉換的寫法是在描述做什么
    基本上和我們用語言敘述過程對應。

其實大多數人選擇循環語句只是因為對列表轉換不熟練,多寫即可。

為什么我的感覺實踐中,使用這種風格,為寫出來的代碼更難理解?
你在列表轉換過程中寫了太多代碼!很多人直接在列表轉換過程中寫 lambda。lambda 本身相當于一個匿名函數,所以,很多人寫成長函數了。
lambda 是為了寫短小代碼提供的便利,所以,lambda 中寫出大片代碼,根本就是違反 lambda 設計初衷的。最好的 lambda 應只有一行代碼。

那若一個轉換過程中就有很多操作咋辦?

提取出一個函數!就像 toSectionParameter:完成從 Section 到 SectionParameter 轉換。這樣一來,列表轉換的本身就完全變成了一個聲明,這樣的寫法才是能發揮出列表轉換價值的寫法。

總結

代碼風格逐步演化,每個程序員對語言的理解程度都有所差異,所以,我們的屎山項目中,各種代碼風格并存,各具風騷,加重代碼理解難度,這其實就是:不一致的壞味道。

編程風之所以格會過時,是因為它存在問題,新風格就是用更好方案,注意跟上時代,擁抱變化,多用新特性!

總結

以上是生活随笔為你收集整理的最好的编程语言是怎样的?的全部內容,希望文章能夠幫你解決所遇到的問題。

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