<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    瘋狂的java
    好的藝術(shù)家復(fù)制,偉大的藝術(shù)家偷竊!
    posts - 3,  comments - 4,  trackbacks - 0
    本文轉(zhuǎn)載自Tyr Chen的博客在文中作者總結(jié)了他認(rèn)為高效能程序員應(yīng)該具備的七個習(xí)慣,原文內(nèi)容如下。 

    昨天收到一個讀者留言,問作為程序員,有什么學(xué)習(xí)和工作上的好習(xí)慣可以借鑒?想了想,干脆附庸風(fēng)雅一下,總結(jié)個『高效能程序員的七個習(xí)慣』吧。Disclaimer:一家之言,可不信,但也可以部分信。 

    1.  擁抱unix哲學(xué) 

    每個程序員入門的第一堂和第二堂課應(yīng)該是和unix哲學(xué)相關(guān)的內(nèi)容,簡言之就是:做一件事,做好它。具體點(diǎn):

    • 小即是美。
    • 讓程序只做好一件事。
    • 盡可能早地創(chuàng)建原型。
    • 可移植性比效率更重要。
    • 數(shù)據(jù)應(yīng)該保存為文本文件。
    • 盡可能地榨取軟件的全部價值。
    • 使用shell腳本來提高效率和可移植性。
    • 避免使用可定制性低下的用戶界面。
    • 所有程序都是數(shù)據(jù)的過濾器。

    2.  選一個樣板,follow之 

    每個NBA新秀都有自己的樣板,我們也總習(xí)慣稱某足球新星為『小羅』,『小小羅』。樣板為你提供了可模仿可追趕的對象,同時也讓你審視自己究竟想成為什么樣的程序員。我的樣板是Greg Pass和Werner Vogels,雖然我這輩子可能也達(dá)不到他們的高度,可這并不妨礙向著我心目中的明星一步步靠近。 

    3.  寫代碼,而不是調(diào)代碼 

    寫軟件最糟糕的體驗(yàn)恐怕是邊寫邊調(diào),寫一點(diǎn),運(yùn)行一下,再寫一點(diǎn)。是很多程序員都會這么干。原因有二:1. 不熟悉相關(guān)的代碼(類庫),需要邊寫邊運(yùn)行保證代碼的正確。2. 現(xiàn)代編程語言的REPL(Read-Evaluate-Print-Loop,就是語言的shell)能力助長了這一行為。 

    寫系統(tǒng)軟件的人很少這么做。他們手頭糟糕的工具讓邊寫邊調(diào)的行為成為效率殺手 —— 如果稍稍改動,編譯就要花去幾分鐘,甚至更長的時間,你還會這么干么?所以他們往往是寫完一個模塊,再編譯調(diào)試。(由此看來,高效的工具有時候是把雙刃劍?。?nbsp;

    我覺得寫代碼就跟寫文章一樣,構(gòu)思好,有了大綱,就應(yīng)該行云流水一樣寫下去,一氣呵成,然后回過頭來再調(diào)整語句,修改錯別字。如果寫完一段,就要回溯檢查之前寫的內(nèi)容,效率很低,思維也會被打散。 

    靠邊寫邊調(diào)做出來的代碼還往往質(zhì)量不高。雖然局部經(jīng)過了雕琢,但整體上不那么協(xié)調(diào),看著總是別扭。這就好比雕刻,拿著一塊石頭,你先是精修了鼻子,然后再一點(diǎn)一點(diǎn)刻畫面部。等修到耳朵的時候,鼻子可能過大或過小,即便再精美,它也得不到贊賞。 

    4.  聰明地調(diào)試 

    軟件總會出問題。遇到問題,很多程序員就會用IDE在各種可能的地方加斷點(diǎn)調(diào)試,如果沒有IDE,那么各種print/log手段一齊拋出,有棗沒棗打一桿子再說。 

    優(yōu)秀的程序員會在撰寫代碼的時候就考慮到調(diào)試問題,在系統(tǒng)關(guān)鍵的節(jié)點(diǎn)上注入各種等級的調(diào)試信息,然后在需要的時候打開相應(yīng)的調(diào)試級別,順藤摸瓜,避免了不靠譜的臆測。這是調(diào)試之『道』。 

    很多問題打開調(diào)試開關(guān)后就原形畢露,但有時候靠調(diào)試信息找到了初步原因,進(jìn)一步定位問題還需要具體的工具,也就是調(diào)試之『術(shù)』,如上文所述之?dāng)帱c(diǎn)調(diào)試。有些時候,遇到靠類似gdb(如python的pdb)的工具無法解決的問題時(如性能問題),你還需要更多的調(diào)試工具做runtime profiling,如systemtap。 

    5.  使用標(biāo)記語言來寫文檔,而非word/power point 

    不要使用只能使用特定軟件才能打開的工具寫文檔,如word/page或者power point/keynote。要使用『放之四海而皆可用』的工具。 

    java的市場口號是:『一次編寫,到處運(yùn)行』,對于文檔,你也需要這樣的工具。Markdown(md) / Restructured Text(rst)(以及任何編輯語言,甚至是jade)就是這樣的工具。通過使用一種特定的文本格式,你的文檔可以被編譯成幾乎任意格式(html,rtf,latex,pdf,epub,...),真正達(dá)到了『一次編寫,到處運(yùn)行』。最重要的是,由于邏輯層(文章本身)和表現(xiàn)層(各種格式,字體,行距等)分離,同樣的文檔,換個模板,就有完全不一樣的形象。 

    除非必須,我現(xiàn)在所有的文檔都是md或者rst格式。 

    6.  一切皆項目 

    程序員的所有產(chǎn)出應(yīng)該項目制。軟件自不必說,文檔和各種碎片思想也要根據(jù)相關(guān)性組織成項目。舉一些我自己的例子: 

    • 我的博客是一個名叫jobs的github項目
    • 我的微信文章全部放在craftsman這個項目中
    • 我學(xué)習(xí)某種知識的過程(比如說golang)會放在一個或若干個項目中
    • 我工作上每個項目的各種產(chǎn)出(包括會議紀(jì)要)會按照項目對應(yīng)生成git repo

    項目制的好處是具備可回溯性。每個項目我可以用git來管理,這樣,幾乎在任何一臺設(shè)備上我都可以看到我之前的工作。想想你三年前寫的某個文檔,你還能找到它么?你還能找回你的修改歷史么? 

    項目制的另一大好處是可以在其之上使能工具。比如說你看到的這些微信文章,我隨時可以“make publish YEAR=2014”來生成包含了2014年我所寫文章的pdf。 

    7.  心態(tài)開放,勇于嘗試 

    在程序員社區(qū)里,語言之爭,系統(tǒng)之爭,軟件思想之爭幾乎是常態(tài)。python vs ruby,go vs java vs erlang vs rust,scala vs cljure,OOP vs FP,iOS vs Android。其實(shí)不管黑貓白貓,抓到老鼠的就是好貓,facebook還用php呢。程序員應(yīng)該用開放的心態(tài)去包容新的技術(shù),新的思想,勇于嘗試,而不是立即否定。這個世界最悲哀的是,手里有把錘子,看什么都是釘子(或者說,眼里就只能看見釘子)。 

    我接觸mac時間不過三年??蛇@三年時間,我從對mac不屑,到深深熱愛,最終成為mac的一個重度用戶。很多東西用過才知道,不嘗試不接觸我可能永遠(yuǎn)活在自己下意識構(gòu)筑的無形之墻的另一邊。
    posted on 2014-04-13 10:17 永志歌德 閱讀(332) 評論(0)  編輯  收藏 所屬分類: 思想學(xué)習(xí)篇

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    <2014年4月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    文章檔案

    收藏夾

    我的博客

    牛人博客

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲AV无码久久精品蜜桃| 亚洲国产精品人人做人人爱| 亚洲天堂视频在线观看| 中文字幕无线码中文字幕免费| 亚洲国产婷婷香蕉久久久久久| 成年免费大片黄在线观看com| 亚洲国产一区二区视频网站| 人妻巨大乳hd免费看| 亚洲综合在线另类色区奇米| 最新国产乱人伦偷精品免费网站| 亚洲理论电影在线观看| 美女内射无套日韩免费播放 | 亚洲美女高清一区二区三区 | 国产精品免费观看视频| 国产亚洲精品不卡在线| 久久99毛片免费观看不卡| 99ri精品国产亚洲| 色窝窝免费一区二区三区| 亚洲av无码兔费综合| 伊人久久大香线蕉亚洲五月天| AAA日本高清在线播放免费观看| 亚洲成人在线免费观看| 免费高清在线影片一区| 一级毛片免费不卡直观看| 亚洲gv白嫩小受在线观看| 无码一区二区三区AV免费| 深夜特黄a级毛片免费播放| 亚洲人色婷婷成人网站在线观看| 在线免费观看你懂的| 亚洲乱码日产精品一二三| 中文字幕亚洲综合久久菠萝蜜| 91青青青国产在观免费影视| 亚洲人成人伊人成综合网无码 | 免费大黄网站在线看| 99免费在线观看视频| 亚洲精品无码不卡在线播放| 亚洲线精品一区二区三区影音先锋 | 国产综合成人亚洲区| 久久久久亚洲av无码专区蜜芽| 无码免费午夜福利片在线| 亚洲一级片免费看|