器:指的的是工具,我們平時使用的各種編輯器、編譯器如AndroidStudio phpStorm ,接口調試使用postMan,網絡抓包使用的fiddler,linux上使用的文本編輯器vim等,這些都屬於器的範疇,一般剛剛入門的程序員首先要解決的就是器即工具的使用。
術:實際解決具體問題的手段,技能。比如知道設置mysql的innodb_io_capacity參數值等於磁盤的 IOPS值,解決了數據庫的抖動問題,但是不知道爲什麼數據庫會產生抖動,也不一定知道只有使用SSD硬盤時這個參數參會比較有意義。一般初中級的工程師都停留在這個狀態,這個狀態的程序員知識都是離散的不成體系。看似具有舉一反三的能力,實際上很多頂層表象不同,底層類似或相同的問題卻不能夠關聯在一起,不能做到真正的融會貫通。
法:指的是思想、方式方法,比如驅動模型設計DDD、各種業務問題與技術問題之間的取捨,在這一個階段的程序員一般已經具有了自己的一套知識脈絡、形成了自己的知識體系,在百變中找到了不變,術是使用套路,法是創造套路。
道:最高境界,是客觀規律,很多事情已無因無果,這種境界很少有人能夠企及,我們往往說的高手也可能僅僅到了法的層次。
道、法、術、器境界有高低,重要程度無高低。只有法不行,問題不能及時的落地解決,只有術也不行,頭痛醫頭腳痛醫腳,找不到產生,解決問題的根源。