IntelliJ——代碼優化

高質量代碼

重構

重構是爲了提高代碼的可讀性,或者對某些方法快速修改

變量

  • 在菜單欄Refactor下的Rename,將光標停留在變量上,使用快捷鍵shift + F6
  • 如圖,變量及其被引用的地方可以同步修改
    在這裏插入圖片描述

函數

  • 當我們發現調用某個方法時參數不滿足要求,可以在調用處進行預設,再返回定義處修改
  • 同樣在菜單欄Refactor下Change Signature,快捷鍵ctrl + F6
    在這裏插入圖片描述
  • 也可修改後使用強大的Alt+Enter,實現同樣的效果!

抽取

  • 顧名思義,當我們想要將部分代碼內容替換成需要的形式,可以將其抽取出來的同時重新定義

變量

  • Refactor下Extract下Variables,使用快捷鍵Ctrl + Alt + V
    在這裏插入圖片描述
    代碼就會變成這樣:
    public void main(String[] args) {
        String name = "Roy";
        int age = 18;
        String myName = name;	// 抽取成變量myName
        say(myName, this.age);
        say(myName, this.age);
        say(myName, this.age);
        say(myName, this.age);
        say(myName, this.age);
    }
    

    面對如此整齊的格式你可能想使用Ctrl + Alt + Shift + J,當然可以!

靜態變量

  • 將使用的字符串變爲靜態變量,快捷鍵Ctrl + Alt + C
    在這裏插入圖片描述
    public static final String ROY = "roy";	// 抽取成靜態變量
    

成員變量

  • 使用快捷鍵Ctrl + Alt +F,因爲成員對應Field
    在這裏插入圖片描述
    private int myAge;	// 抽取成成員變量
    

方法參數

  • 當方法內部依賴於成員變量的時候,爲了部分解耦可以將其抽取成方法參數
  • 快捷鍵Ctrl + Alt + P,parameter的意思!
    public void say() {
        System.out.println(this.name);
    }
    
    在這裏插入圖片描述
    public void say(String name) {	// 抽取成方法參數
            System.out.println(name);	
        }
    

函數

  • 將複雜的代碼邏輯分塊寫成函數
    public void main(String[] args) {
        String name = "Roy";
        int age = 18;
        say("我是誰", "我多大");
        say("你是Roy", "你18");
        say("你幹啥的", "幹多久了");
        say("我是神", "一萬年");	// 感受到它的複雜了嗎
    }
    
  • 快捷鍵Ctrl + Alt + M,method的意思
    在這裏插入圖片描述
    	public void main(String[] args) {
            String name = "Roy";
            int age = 18;
            resume();
            job();
        }
    
        private void job() {	// 抽取成一個函數
            say("你幹啥的", "幹多久了");
            say("我是神", "一萬年");
        }
    
        private void resume() {
            say("我是誰", "我多大");
            say("你是Roy", "你18");
        }
    
  • 你想將它抽取成什麼呢?快試試吧!

按圖索驥

  • 在一個大型項目中,如果對別人寫的某一行代碼不理解,怎麼快速確定這段代碼出自誰之手?

git集成

  • 現在最常用的是git版本控制,這裏記錄一些git相關的操作
  • 如果還不瞭解git可以參考其他博客入門,或者找廖雪峯老師的教程
  1. 獲取作者信息
    在這裏插入圖片描述如圖,只需要在這行代碼的左側欄右鍵Annotate,鼠標移動上去就會出現相關信息
  2. 回顧修改的地方
    在help中搜索“Previous Change”就可以找到Ctrl + Shift + Alt + ↑/↓
    在這裏插入圖片描述
  3. 撤銷
    如果改動之後忘了之前的狀態或者需要刪除改動,可以help搜索“Revert”找到
    只需將光標停留在改動處,Alt + Ctrl + Z即可
    我們也可以在整個文件或者項目上使用,會出現如下提示:
    在這裏插入圖片描述

Local History

  • 如果我們沒有使用版本控制,IntelliJ默認提供了記錄功能
  • help搜索“Local History”,可能沒有快捷鍵,使用Alt+Enter自定義一個,我使用Alt + L
    在這裏插入圖片描述
    伴隨着“Show history”還有一個“Put label”,這類似於git中的commit,這裏將修改提交到history並自定義名稱,例如我這裏的“recent change”
    在這裏插入圖片描述

關聯

  • 和之前說到的跳轉類似,但這裏是基於框架和數據庫的關聯功能

Spring

  • Spring是一個輕量級控制反轉(IoC)和麪向切面(AOP)的容器框架,目的是解決企業應用開發的複雜性
  • 類似於PHP中的Thinkphp你懂嗎hhh,如果開發java Web項目得學一下
  • 這裏簡單介紹一下它的關聯方式
    在Spring項目中,File->Project Structure->Facets下,添加一個Spring即可
    在這裏插入圖片描述
    在自定義的類左側出現Spring標誌,點擊Spring標誌,可跳轉到定義位置

數據庫

  • 使用java連接數據庫:在側邊欄的Database中點擊“+”號
    在這裏插入圖片描述
  • 這裏連接本地數據庫,可以使用Test Connection測試連接,如果第一次連接需要下載Driver
  • 可能需要在Advanced裏面設置一下timezone
  • 在Java中操作數據庫可以使用MyBatis,是一個持久層框架
  • 在編輯sql代碼時可以自動關聯數據庫,通過修改SQL mapper可以自動同步到數據庫,修改數據庫後可以自動更改mapper
    在這裏插入圖片描述

小結

這裏記錄了IDEA中優化、跟蹤代碼的一些技巧,還有框架的功能,在實際項目中多摸索,會發現更多值得掌握的技巧!
下節記錄IDEA中的調試和文件操作相關技巧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章