|
說明1:對(duì)點(diǎn)擊“推薦“的朋友表示感謝,博客園有沒有可以看到是誰推薦的功能呢?
說明2:對(duì)所有的評(píng)論朋友表示感謝,即使是批評(píng)意見也很有價(jià)值。
說明3:是這個(gè)系列的第一篇,忍不住放入太多內(nèi)容,導(dǎo)致重點(diǎn)不突出,等有時(shí)間把文章重構(gòu)成2-3篇。
說明4:題目中的Hacker是特指編程技術(shù)超牛的程序員。而不是指黑客,由于中文把Hacker翻譯成了黑客所以導(dǎo)致了混淆。
黑客又被稱為黑帽黑客(Black Hat),cracker,腳本小子,是利用所學(xué)技術(shù)繼續(xù)進(jìn)行系統(tǒng)破解的人群。
本系列的Hacker都是指編程頂尖高手,也被稱為白帽黑客(White Hat) ,比如hacker老大 Linus。
這也就是Redhat名字的出處吧。
重量級(jí)秘密之二 :保護(hù)眼睛
上一篇提到過Hacker都是“以我為主”的。提高編程效率是為了增加競(jìng)爭(zhēng)力和收入。保護(hù)眼睛就是為了減少支出,延長(zhǎng)編程生涯的壽命。
一個(gè)程序員,坐在空調(diào)房,沒有體力勞動(dòng),可以說是一個(gè)非常舒服的工作,但是他有一樣?xùn)|西是過度使用的,那就是眼睛。
特別是鼠標(biāo)型程序員,他們每一分種都在做手眼協(xié)同。一般來說一個(gè)程序員用眼度是一個(gè)文員的200%。
而一個(gè)Hacker的用眼度可能只有程序員5%,沒有寫錯(cuò),只有5%,甚至更少。
所以有很多大胡子Hacker。因?yàn)榫幊滩恍枰昧猓芮面I盤就可以,所以只要保護(hù)好眼睛,就可以干到很大年紀(jì)。
也就是說他們產(chǎn)出高達(dá)100倍,損耗卻只有5%,真是無語呀。
那么他們是怎么做到的呢?(以下方法都是從用眼的角度去考慮,當(dāng)然也有其他方面的考慮,只是暫時(shí)忽略)
首先是開發(fā)環(huán)境,Hacker盡量使用命令行,并使用良好的配色(深色底,淺色字),如果使用VS的朋友,如果你的背景色是白色,建議趕快換成深色(VS有很多theme)
很多人會(huì)嘲笑hacker的古董界面,他們總是一笑了之,依然故我。我也嘲笑過命令行程序員,恐怕當(dāng)時(shí)他們看著我的紅紅的眼睛暗暗發(fā)笑吧。
其次是編輯器,也就是傳說中的vim,emacs這樣的神器。用他們有以下幾個(gè)好處。
1、用機(jī)器去找, 而不用眼睛去找。
以VIM為例
找文件的話,用所謂fuzzyfind,比如 app/controller/user_controller.cs這個(gè)文件, 你只需要輸入 acu三個(gè)字母,文件就自動(dòng)打開了。這個(gè)可以節(jié)省用眼30%
找整個(gè)詞的話,輸入/user,這個(gè)可以節(jié)省用眼5%
查找單個(gè)字母,輸入fo,就自動(dòng)跳到 user.name="Tom"中的o,這個(gè)可以省眼5%
2、連擊技
這個(gè)就厲害了,利用查看和動(dòng)作,可以行成“連擊技“
比如 User user=User.new,要?jiǎng)h除new,鼠標(biāo)在第一U上,輸入cfn+find,直接就把User.new改成了User.find,可以省眼30%,(一般做這個(gè)動(dòng)作,我總會(huì)閉上眼)
還有內(nèi)刪除,比如要?jiǎng)h除find(Name user,Age age),輸入f(,光標(biāo)定位到(上,然后ci(三鍵將括號(hào)里面的內(nèi)容刪除干凈。
還有幾百種連擊技,大多我也不懂。不過即使掌握了10種,省眼也有50%。
3、snippet和autocompele
snippet比較普遍了, autocomplete要提一下, 這個(gè)不同于Intellsence,因?yàn)閍utocomplete開頭的字母一定要輸入正確,才可以補(bǔ)齊的,所以Hacker都是要背api的(第一篇已經(jīng)提到過背api了)。
以上只是vim技巧的一滴水珠而已,vim是需要用一生去相處的朋友。(注:emacs比vim難,建議還是從vim入手),不過很多初學(xué)者由于沒有人指點(diǎn),所以往往都最后失敗了。其實(shí)是方法不對(duì),反向不對(duì),以后要專門寫一篇Vim的最佳學(xué)習(xí)法。
然后就是編程方法了,比如Hacker推崇的TDD,MVC。
所謂TDD,就是用程序去檢查程序,成功綠色,失敗紅色,這個(gè)可以省眼30%。(Hacker的機(jī)器小秘?!!)
所謂MVC就是把顯示隔離開,做MC的時(shí)候,和TDD結(jié)合,繼續(xù)省眼,有些Hacker很寂寞,所以即使做View的時(shí)候,他們也搞出了沒有顯示的瀏覽器(Headless Brower),還是命令行!
還就是用腦力換眼力,Hacker盡可能的把代碼的結(jié)構(gòu)建立在大腦中,比如文件夾的結(jié)構(gòu),文件的名字,比如類的namespace,比如庫(kù)的結(jié)構(gòu),比如函數(shù)名稱,(當(dāng)然背api是入門功夫了)。一個(gè)頂級(jí)的Hacker可以在腦中建立起代碼庫(kù)的全息索引。
然后利用神器,指哪打哪了。
最后就是social coding,就是大家一起團(tuán)結(jié)起來,代碼互換,開源就是最重要的一種social coding。
也許你會(huì)說,這里省30%,那里省10%,到最后不是要閉著眼睛編程序了?
這個(gè)厲害了, 谷歌的盲人Hacker Raman,就是閉著眼編程序的。
it知識(shí)庫(kù):Hacker傳說之不能說的秘密(2),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。