程序員,特別是一個(gè)新手程序員而言,工作的壓力會(huì)讓你整天灰頭土臉,了解一些實(shí)用的小技巧,積極的去面對(duì)漫長(zhǎng)的程序員生涯。
leader問(wèn)任務(wù)時(shí)間,若答不上來(lái),可能是任務(wù)拆分還不夠細(xì)。寧可多算一周,不可少估一天。過(guò)于“樂(lè)觀”容易讓boss受驚嚇。最有用的語(yǔ)言是English。其次的可能是Python。百聞不如一見(jiàn)。畫出結(jié)果,一目了然。調(diào)試耗時(shí)將大大縮短。重構(gòu)是程序員的主力技能,工作日志能提升腦容量,先用profiler調(diào)查,才有單元測(cè)試總是合算的。不要先寫框架再寫實(shí)現(xiàn)。最好反過(guò)來(lái),從原型中提煉框架。代碼結(jié)構(gòu)清晰,其它問(wèn)題都不算事兒。
編程之事,隔離是方向,起名是關(guān)鍵,測(cè)試是主角,調(diào)試是補(bǔ)充,版本控制是后悔藥。一行代碼一個(gè)兵。形成建制才能有戰(zhàn)斗力。單位規(guī)模不宜過(guò)大,千人班,萬(wàn)人排易成萬(wàn)人坑。重構(gòu)/優(yōu)化/修復(fù)Bug,同時(shí)只能作一件。簡(jiǎn)單模塊注意封裝,復(fù)雜模塊注意分層。
人腦性能有限,整潔勝于雜亂。讀不懂的代碼,嘗試整理下格式; 不好用的接口,嘗試重新封裝下。迭代速度決定工作強(qiáng)度。想多快好省,就從簡(jiǎn)化開(kāi)發(fā)流程,加快迭代速度開(kāi)始。
好的項(xiàng)目作風(fēng)硬派,一鍵測(cè)試,一鍵發(fā)布,一鍵部署; 爛的項(xiàng)目生性猥瑣,口口相傳,不立文字,神神秘秘。編碼不要畏懼變化,要擁抱變化。常充電。程序員只有一種死法:土死的。
忘掉優(yōu)化寫代碼。過(guò)早優(yōu)化等同惡意破壞;忘掉代碼作優(yōu)化。優(yōu)化要基于性能測(cè)試,而不是糾結(jié)于字里行間。最好的工具是紙筆;其次好的是markdown。
與主流意見(jiàn)/方法/風(fēng)格/習(xí)慣相悖時(shí),先檢討自己最可靠。出現(xiàn)bug主動(dòng)查,不管是不是你的。這能讓你業(yè)務(wù)能力猛漲、個(gè)人形象飆升; 如果你的bug被別人揪出來(lái).....呵呵,那你會(huì)很被動(dòng)不知怎么選技術(shù)書時(shí)就挑薄的。起碼不會(huì)太貴,且你能看完。
資源、代碼應(yīng)一道受版本管理。資源匹配錯(cuò)誤遠(yuǎn)比代碼匹配錯(cuò)誤更難排查。不要基于想象開(kāi)發(fā), 要基于原型開(kāi)發(fā)。原型的價(jià)值是快速驗(yàn)證想法,幫大家節(jié)省時(shí)間。
東西交付之前偷偷測(cè)試一遍, 問(wèn)別人之前偷偷谷歌一下,版本發(fā)布之前反復(fù)檢查七八遍,用check-list, 用谷歌,用英文搜索。
做十件事不如做好一件事,奪取話語(yǔ)權(quán)只有一條路徑,就是超出別人的預(yù)期,心要皮實(shí),但話語(yǔ)和臉皮要柔軟,記住有句老話叫,伸手不打笑臉人。 先假裝你就是專家,慢慢為了裝得像,不得不去學(xué),假的就成真了。
序列化首選明文文本 。諸如二進(jìn)制、混淆、加密、壓縮等等有需要時(shí)再加。編譯器永遠(yuǎn)比你懂微觀優(yōu)化。只能向它不擅長(zhǎng)的方向努力。不要定過(guò)大、過(guò)遠(yuǎn)、過(guò)細(xì)的計(jì)劃。即使定了也沒(méi)有用。至少半數(shù)時(shí)間將花在集成上。時(shí)間,時(shí)間,時(shí)間總是不夠。
git是最棒的。簡(jiǎn)單,可靠,免費(fèi)。僅對(duì)“可預(yù)測(cè)的非理性”拋斷言。Log要寫時(shí)間與分類。并且要能重定向輸出。注釋是稍差的文檔。更好的是清晰的命名。讓代碼講自己的故事。造輪子是很好的鍛煉方法。前提是你見(jiàn)過(guò)別的輪子。
code review最好以小組/結(jié)對(duì)的形式。對(duì)業(yè)務(wù)有一定了解,建議會(huì)更有價(jià)值(但不絕對(duì))。而且不會(huì)成為負(fù)擔(dān)。管理員個(gè)人review則很容易成team的瓶頸。提問(wèn)前先做調(diào)研。問(wèn)不到點(diǎn)上既被鄙視,又浪費(fèi)自己的時(shí)間。永遠(yuǎn)別小看程序媛
新手程序員和經(jīng)驗(yàn)豐富的程序員的一個(gè)很大區(qū)別來(lái)自于debug的能力。在設(shè)計(jì)和建設(shè)網(wǎng)站時(shí)不能只知道表面的,卻不知深層次的問(wèn)題,程序員必須了解的更深,明白的更多,才能從新手變?yōu)榇笊瘛?br />
本文地址:http://jiujiu9.com//article/2378.html