轉(zhuǎn)帖|行業(yè)資訊|編輯:我只采一朵|2014-10-20 10:01:06.000|閱讀 268 次
概述:下面為程序員分享10個非常實用的編程技巧,幫助你提高編程效率。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
下面為程序員分享10個非常實用的編程技巧,幫助你提高編程效率,讓工作更加得心應(yīng)手。
不知道各位有沒有這樣的經(jīng)歷,當(dāng)你正在給別人描述問題的時候,突然靈機(jī)一動想到了解決方案?這種情況的產(chǎn)生是有科學(xué)依據(jù)的。高談闊論能讓我們的大腦重新 有條理地組織問題。在這種情況下,你的聊天對象就是“橡皮鴨”。團(tuán)隊中的每個人都應(yīng)該積極主動樂意地成為彼此的“橡皮鴨”。有時候,如果你幸運的話,你的 “橡皮鴨”搞不好還能給出有效的建議呢。
一旦寫好代碼就要盡快得到反饋。當(dāng)你和我們在HubSpot一樣,收到大量的Pull請求,不妨做些細(xì)微的改動,然后立馬打開PR,討論設(shè)計和代碼。和你的“橡皮鴨”交流一下,請他們提點建議。要知道,迭代原型可遠(yuǎn)比糾正成品要節(jié)約成本。
有的團(tuán)隊結(jié)構(gòu),最初可能并不要求寫代碼。因為實體模型、白板設(shè)計等等,這些成本都比一下子刪改上千行代碼的成本要低。
當(dāng)我們在解決問題和完成功能時,很容易深入到細(xì)節(jié)問題的研究。這里有一個好方法,能讓我們盡快搞定端至端。
例如,假設(shè)我需要在網(wǎng)頁上設(shè)置一個功能,能在用戶點擊之后做一些復(fù)雜運算并把結(jié)果存儲到服務(wù)器中。有些童鞋可能想著想著就先去研究這個運算方式了。我的 做法是,先為用戶的操作設(shè)置事件處理程序,用一些固定的值來模擬計算,然后調(diào)用API向服務(wù)器請求數(shù)據(jù)。這樣一來,我們就沒必要先考慮每一個具體細(xì)節(jié),可 以直接端至端地測試系統(tǒng)。同時,這個快速的反饋回路有助于我們更快地迭代和寫代碼。一開始出來的設(shè)計可能并不完美,但是通過親眼目睹各個部件是如何組合 的,我們將會對整個系統(tǒng)有一個更清晰的了解,做出最優(yōu)的設(shè)計。
在HubSpot,在產(chǎn)品還沒完成之前,我們就先將功能推出去了,這樣我們就可以及時進(jìn)行內(nèi)部測試。這是對此端至端概念更進(jìn)一步的深化。
有時候在調(diào)試時,console.logging無處不在,最好的方法就是測試代碼。也有的時候,你絞盡腦汁嘔心瀝血地想要解決一些復(fù)雜的設(shè)計和問題而 不得其法,那么你最好先暫時離開一會。雖然這聽上去有點不可思議,但是有的時候,我的確是在廁所想到了問題的癥結(jié)所在。我的愛人,她也是一枚軟件工程師, 曾告訴我,當(dāng)她睡著的時候常常會有各種奇思妙想(有時閉上眼睛天馬行空,有時夢里各種方案紛至沓來)。打個盹、散散步、上個廁所……都可以,總之適時離開 電腦。
高效的開發(fā)人員會將很多繁瑣的進(jìn)程自動化。不過一直以來很多人都認(rèn)為自動化只能節(jié)約時間,這是一個很普遍的誤解。其實不僅如此,自動化最大的優(yōu)點是讓你的思想策馬奔騰無所阻礙,朝著完成目標(biāo)的方向奮勇前行。
舉個例子,假設(shè)我需要經(jīng)常運行一個相當(dāng)復(fù)雜SQL查詢,而過程真心很長,每次又都要重新輸入一遍。我當(dāng)然不會傻乎乎的這么做,我會使用類似于Alfred的程序保存于剪貼板中,或者自己想個辦法節(jié)約一些步驟。于我而言,自動化是一種更為積極的工作態(tài)度。
當(dāng)我們在設(shè)計新代碼時,都希望自己能寫出完美的代碼,發(fā)現(xiàn)每一個抽象概念。但是當(dāng)我們致力于設(shè)計新代碼時,抽象概念卻又成為了干擾因素,即便這些抽象再 怎么顯而易見、易于設(shè)計。我的做法是,不要立刻思考各種抽象概念,先簡單機(jī)械地復(fù)制一些代碼作為原型。這能讓我迅速上手新項目,效果比我僅僅只是紙上談兵 要好,之后所能做的抽象發(fā)散也更廣闊。不過,可不要光復(fù)制,還要清理代碼,不然它們很快就會變成一筆爛攤子。
寫代碼其實并不能燃燒很多卡路里,因此我們必須強(qiáng)迫自己動起來。可以不時地伸伸懶腰,經(jīng)常性地走來走去。在HubSpot,我們有一個俱樂部,我每周會有三天在午飯前去健身。此外,我的習(xí)慣是每隔一小時左右做幾個俯臥撐,拉伸肌肉,保持活力。
閱讀別人的文檔、技術(shù)文章和代碼常常讓我抓狂。為了不氣得抓耳撓腮、捶胸頓足,不妨先閱讀前文,以期更多的細(xì)節(jié)內(nèi)容。程序中的概念很難用線性方式表達(dá)出來。閱讀前文能讓我們更清楚文章內(nèi)容和代碼在說什么。
有些組織化程度較低的開發(fā)人員可能會對這個技巧嗤之以鼻。知道我是怎么做的嗎?我會將每一天我做了什么、遇到的問題以及我是如何解決這些問題的等等,都 詳細(xì)地記錄下來。然后當(dāng)我再次碰到類似的問題時,那就再也不會只能“執(zhí)手相看淚眼,竟無語凝噎”了。這些筆記成為了我無價的財富,因為我可以運用之前的經(jīng) 驗和智慧來解決現(xiàn)在的問題。而且要是碰到1對1績效考核時,我也能迅速想起自己為公司所做的貢獻(xiàn)和自己的成就。
要么是下班回家之前,要么是晚上睡覺前,我都會在筆記本中為第二天列個待辦事項列表。這樣,當(dāng)這一天來臨的時候,我的目標(biāo)就很明確,知道自己要做什么,專心致志,聚精會神,朝著目標(biāo)前進(jìn)。知道嗎,這種方法讓我完成任務(wù)的速度更快質(zhì)量更高,這樣我就有更多的時間休息了。
Via ITeye
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn