單元測試必須由最熟悉代碼的人(程序的做者)來寫。git
雖然理論上來說沒有人會比做者更瞭解本身的代碼,但正因如此,做者每每只能查驗那些他在編寫過程當中就已經考慮到的問題,沒法發現本身沒有考慮到的問題。在實際工程中,測試和代碼編寫每每是兩個不一樣的部門來負責,所以我認爲結對互相編寫單元測試可能會更好(前提是知道對方的需求)。github
函數最好有單一的出口,爲了達到這一目的,可使用goto。只要有助於程序邏輯的清晰體現,什麼方法均可以使用,包括goto數據庫
goto函數真的有必要使用嗎?由於不少時候爲了簡便,並不想設定惟一出口,以往的編程中沒有這個習慣。編程
代碼複審和單元測試的區別在哪?後端
身邊的不少同窗都有考計算機二級,然而我問了一下同系的同窗,基本上沒有人去考過級,這種考級對於咱們真的有必要嗎?它並不像導遊證之於導遊專業,會計證之於會計專業那樣不可或缺吧。網絡
在上學期的一些課程中,我所在的團隊常常召開會議,可是每每是無功而返,最終什麼都沒有改變(就像老師提到的「過後諸葛亮會議」)。在這學期的軟件工程課程中,長達十五週的團隊項目確定須要開不少會議,儘管書中已經給過一些建議,可是咱們當中並無一個相似PM的人,該如何避免重蹈覆轍呢?app
現在軟件的用戶體驗,除了流暢和功能強大以外,用戶每每但願廣告可以儘量的少,但在軟件開發者的角度考慮,廣告投放彷佛是必要的。雖然在咱們的課程中沒必要考慮這個問題,但在實際運用中如何投放不會讓人反感的廣告呢?分佈式
不但大衆不喜歡創新,甚至連創新者本身都不例外,有些創新者甚至恨創新。函數
在這一部分中,老師提到了電報和電話的矛盾。實際生活中,雅虎和阿里巴巴彷佛更讓人熟悉。同是互聯網大頭,一個捷足先登卻不思進取,另外一個追求創新後來者居上。在互聯網時代,拒絕創新彷佛是致命的,可是在咱們的學習過程當中,咱們不斷地去了解基本概念,不斷的去學習那些舊知識。學校彷佛沒有考慮爲咱們灌輸新興思想(AI算是當下正火的),這是爲何呢?單元測試
「軟件」的概念最先由阿蘭圖靈在1935年提出,但也有人認爲軟件正式出如今1958年John Turkey的論文中。
「軟件工程」的概念最先由Margaret Hamilton在1968年聯邦德國召開的會議上提出。
《美麗心靈》上映後,有記者採訪納什:電影拍得真實嗎?恐怕藝術加工的成分很大吧。納什:你說得對,其實查爾斯沒那麼高。
——查爾斯是約翰納什臆想中存在的室友。
著名計算機科學家Donald Knuth(高德納)寫的排版軟件TeX版本號能夠算是個趣事,從TeX第三版開始,以後的升級是在小數點後加入一個新數位,使之愈來愈接近Pi的值。TeX目前的版本是3.1415926。
一、github:約31,000,000用戶量
二、SourceForge:約3,700,000用戶量
三、Bitbucket:約5,000,000用戶量
四、GitLab:約100,000用戶量
Git:
1.是一個開源的分佈式版本控制系統,能夠有效、高速地處理從很小到很是大的項目版本管理。
2.速度快、靈活,分支之間能夠任意切換。
3.離線工做,不影響本地代碼編寫,等有網絡鏈接之後能夠再上傳代碼,而且在本地能夠根據不一樣的須要,本地新建本身的分支。
4.對初學者不夠友好。
5.國內速度較慢。
Trac:
1.有着良好的擴展性。
2.Trac的權限體系是比較完備的設計。
3.須要安裝不少插件,較繁瑣。
BUGZILLA:
1.檢索功能強大。
2.後端數據庫支持功能強大。
3.配置文件較複雜。
4.本地化不夠友好。
Mercurial:
1.命令兼容SVN。
2.擴展性強,append only的存儲結構。
3.不少命令有雙字母的簡稱,使用起來方便。如hg commit的簡稱爲hg ci。
4.功能太過簡陋。