開發團隊中的兩種程式設計高手

2021-08-16 18:06:41 字數 1174 閱讀 2535

第一種程式設計高手

給一段複雜的程式,比如有7個區域性變數,5層迴圈和if巢狀,他能赤手空拳上陣,迅速領會程式意圖、找到bug,不用借助任何工具甚至紙筆。

給乙個複雜的問題,能在乙個函式之內一氣呵成,立馬給出正確實現,這個函式可能有七個變數,5層迴圈和if巢狀。沒有廢話,刪無可刪,但是單一函式複雜度高,一般人要費老鼻子勁方能看懂。

第二種程式設計高手

給一段複雜的程式,比如有7個區域性變數,5層迴圈和if巢狀,他無法馬上看出程式的意圖,但是他通常會借助紙筆寫寫畫畫,最終搞定。

給乙個複雜的問題,要磨嘰磨嘰好半天,一般用幾個函式組合起來實現,這些函式職責單一明確,身段苗條,通常一兩個變數,迴圈和if不超過2層巢狀。單一函式複雜度低,一般人都能輕輕鬆鬆看懂。

團隊中的第三種高手是?

第一種程式設計高手是天生的聰明人,他們處理複雜事物的能力是天生的,可以流利的心算三位數加三位數帶進製的加法。根據認知負載理論,這類人的working memory容量超越常人,他們可以將多種因素同時納入大腦進行思考而不會出現大腦過載。他們寫出來的複雜程式,一般的看法是沒有掌握分而治之的正確程式設計風格,其實際是他們腦筋太好使,普通人為了克服認知過載而發明的程式設計方法對他們而言純粹就是多此一舉。當遇到更為複雜的問題時,他們自然會分而治之。缺點是不經刻意訓練,他們按照自己的認知能力寫出來的程式普通人維護起來有困難。

第二種程式設計高手是天資正常的普通人,working memeory的容量大概就是可以心算兩位數加兩位數帶進製的加法。但是他們掌握了解決認知負載的方法。閱讀複雜**的時候,他們借助紙筆,把對其中的小片段的分析結論先寫下來,避免大腦快取太多東西,然後就這些數量變少的中間結果再進行分析,始終保持放入大腦的東西不要太多。寫**的時候,他們無法一下子把所有的細節想清楚,因此需要分步搞定,要麼先把關鍵步驟逐次實現好再去整合整個方案,要麼先寫好乙個大而化之的框架,然後分頭實現細節。往往寫完之後會發現有一點顧此失彼,因此還要調整清理一番。特點是不管那種方法,大腦在任何乙個階段都不會過載。按照這種方法寫出來的**,也不會讓它的讀者大腦過載。

對於團隊來說,我們希望程式設計師具有第一種程式設計高手的天份,同時寫出來的**要像第二種程式設計高手那樣方便理解。需要注意提公升的是第三種程式設計高手,他們缺乏第一種程式設計高手的天資,同時還沒有掌握第二種程式設計高手的技能,經常自己被自己寫出來的**搞糊塗(蠢哭了的那種)。

JMS的兩種程式設計模型

jms訊息機制主要分為兩種模型 ptp模型和pub sub模型。ptp模型 point to point 對點模型 每乙個訊息傳遞給乙個訊息消費者,保證訊息傳遞給訊息消費者,且訊息不會同時被多個消費者接收。如果訊息消費者暫時不在連線範圍內,jms會自動保證訊息不會丟失,直到訊息消費者進入連線,訊息將...

Android開發中FPS遊戲實現的兩種方式比較

如何用android平台開發fps遊戲,其實現過程有哪些方法,這些方法又有哪些不同的地方呢?首先讓我們先了解下什麼是fps 英文名 fps first personal shooting 第一人稱視角射擊遊戲顧名思義就是以玩家的主觀視角來進行射擊遊戲。玩家們不再像別的遊戲一樣操縱螢幕中的虛擬人物來進...

UIView 動畫的兩種程式設計方式

2011 09 18 unmi ios 中的 uiview 動畫程式設計其實還是很簡單的,像 css3 一樣,在給定的時間內完成狀態連續性的變化呈現。比如背景色,frame 大小,位移 翻轉,特明度等。以前我使用的程式設計方式都是用下面那樣的三段式處理 1 2 3 4 5 6 7 8 uiviewb...