1. 程式人生 > >Chisel3 - Scala語言專家

Chisel3 - Scala語言專家

https://mp.weixin.qq.com/s/j8mt_qvwliKIKtlN6JcyqQ   介紹Intellij IDEA安裝Scala外掛後,如何在閱讀和編碼兩方面助益開發者。     1. 語言專家   Scala是一門多正規化程式語言,在支援面向物件程式設計的同時,也支援函式式語法。再加上隱式規則和巨集等特性,以及眾多的語法糖。使得Scala的學習曲線異常陡峭。   除了語言規範、教程圖書、網路資料之外,一個強大的能夠智慧提示補全、時時檢查提醒的編輯器或者IDE,可以極大的提高學習速度和編碼效率。
  事實上,除了語言的父親(father of Scala)、語言規範委員會、編譯器實現團隊之外,編輯器或IDE的開發者可能是對語言最為擅長的了。他們開發的編輯器或IDE相較於一般的初學者,也能被稱作專家了。   現代化的IDE是相當智慧和強大的,猶如一個貼身語言專家,為開發者保駕護航。   Intellij IDEA就是這樣的一個IDE,當之無愧。     2. 注意事項   在介紹Intellij IDEA之前,首先列幾點Scala程式設計注意事項:
  1) 程式碼不只是要功能正確,還要用於溝通協同。所以程式碼要在功能正確的基礎上,儘量的簡單易懂;   2) 不要炫技:Scala是一門很優秀的語言,包含眾多的語法糖。編寫時以信達雅為要,不要在不必要的情況下,使用花哨的語法糖;   3) 不用巨集:巨集的程式碼較為艱澀,且巨集程式設計是一個試驗性的語言特性。除非必須,不要使用;   4) 慎用隱式規則:隱式規則是一個潘多拉魔盒,使程式碼難以理解;若必須使用,則不宜預設的匯入,需要在使用的地方顯式匯入(import x.y.z.implicits._)。
    3. 程式碼閱讀   以Rocket-Chip原始碼為例。   1) 程式碼跟蹤   a. 按住Ctrl,使用滑鼠點選,可以跟蹤各類定義,如類、方法、變數等;   b. 跟蹤子類   點選左側圖示,如:   點選之後,顯示如下:   c. 跟蹤方法在哪些子類中實現     點選後顯示如下:     d. 跟蹤方法覆蓋的父類方法定義     點選後跳轉至父類的方法:   e. 查詢使用之處         2) 程式碼提示   a. package與資料夾路徑不一致     按住快捷鍵Alt+Enter,會提示可以採取的措施,以修復這個提示:   選中之後即可實施。   b. 優化建議:多餘的花括號     按住快捷鍵Alt+Enter,即可給出建議。使用Unwrap可以把多餘的花括號去掉:   c. 優化建議:提示帶上返回值型別     d. 程式碼提示:檢視程式碼型別   Scala程式碼可以省略變數型別,根據後面賦值的變數型別進行推斷。   Alt+Enter,   Enter,     e. 提示隱式巨集呼叫     f. 優化建議:map/foreach   看到過但沒找到,所以不貼程式碼了。   這兩個都是針對每個元素執行一個函式,只是一個有返回值,一個無返回值。 易於混用,這個也會提示到。   g. 優化建議:indices     Alt+Enter,   Enter,   h. 優化建議:無用的import     i. 優化建議:無用的括號     j. 優化建議:無用的佔位符         4. 程式碼編寫   1) 自動生成必須要實現的父類方法     Enter,   2) 選擇覆蓋或實現某個方法         3) 提示及補全