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