【軟件工程】第一次閱讀做業

內容說明

項目 內容
這個做業屬於哪一個課程 羅傑
這個做業的要求在哪裏 第一次閱讀

看完《構建之法》後仍然不懂的問題

4.3.2 goto

函數最好有單一的出口,爲了達到這一目的,可使用goto。只要有助於程序邏輯的清晰體現,什麼方法均可以使用,包括goto。html

  在我第一次接觸c語言時,老師就力勸咱們不要使用goto語句。這裏使用goto語句的說法是從有助於程序邏輯的清晰體現的角度來看的,是否忽略了其餘方面的問題呢?好比在一些比較複雜的代碼塊中,因爲goto語句致使了程序結構的凌亂,而這還可能致使在某種狀況下忘記執行在塊中退出時的操做,如釋放指針等。有時還會由於它可能跳過了某些對象的構造、變量的初始化、重要的計算等語句致使錯誤或留下隱患。linux

4.5.4 如何結對編程

  書中說到,駕駛員負責寫設計文檔,進行編碼和單元測試等XP開發流程。web

  關於這裏我有一個疑問,就是設計文檔應該是在設計階段就已經完成的工做,具體的設計應該是在兩我的溝通交流後達成的共識,設計文檔的寫做須要固定的分配給某個角色來完成嗎(尤爲這裏駕駛員和領航員還不是固定的一我的,而是一段時間一輪換的)?編程

16.1.2 迷思之二:你們都喜歡創新

不但大衆不喜歡創新,甚至連創新者本身都不例外,有些創新者甚至恨創新。咱們設想一下:編程語言

假如你發明了電報,創辦了電報公司,並花費畢生精力建起了覆蓋全國的電報網。這時有個年輕的發明家上門推銷了他的創新——電話。函數

  在這裏,我的認爲「你」對推銷新的發明的年輕人的恨(若是有的話),我的認爲不主要是出於一個曾經的「創新者」對新的創新的不喜歡,而是既得利益者對變革的不滿。工具

16.1.4 迷思之四:創新者都是身先士卒

  在這裏,文中說到單元測試

其實,大部分紅功的創新者都不是先行者,例如搜索引擎,Google是很晚才進入這個領域的。又如Apple的音樂播放器iPod,發佈於2001年10月23日,在它以前市面上已經有不少同類的產品了。測試

  Google和Apple等的確不是第一個進入該領域的,不能算是身先士卒,但他們必定也會他們本身的獨到之處,比該領域的第一個產品在某些方面有本身獨到的創新。好比文中以後提到的,蘋果公司推出iPod,經過iTunes提供高質量的音樂內容,打破了常規的商業模式,相對於先行者,蘋果公司有了這些創新,藉助這些綜合手段才能後來居上。ui

17.4 關於豬、雞和鸚鵡的故事

  關於豬、雞和鸚鵡的故事,書中說到:

豬:提供豬肉,作燻肉。

雞:提供雞蛋,作煎蛋。

鸚鵡:提供諮詢,天天閱讀大量博客,給其餘團隊成員提供建議,……

……

把一件事情作成須要不少人的幫助,創業者要不拘一格吸引人才。可是咱們也要分清楚團隊或成員的投入/承諾/責任屬於哪一個級別,哪些是豬,哪些是雞,哪些是鸚鵡。一羣豬全身心投入看似不錯,但不管多麼努力,豬無法下蛋。……

  對於這一段的描述,個人理解是「豬」是全身心的投入項目中的人,「雞」是因爲某些不是特別重要的緣由而加入項目中的「大佬」,「鸚鵡」是圍觀級別的參與者。「雞」和「豬」的區別是在對項目的投入程度上,而不是在職業水平上的,那麼「不管多麼努力,豬無法下蛋」是否有失偏頗了?

請問 「軟件」 和 「軟件工程」 這些詞彙是如何出現的 - 什麼時候、何地、何人?

  • 目前,許多人認爲「軟件」一詞是由John Tukey於1958年的論文「The Teaching of Concrete Mathematics」中提出的。
  • 「軟件工程」一詞最先是由Margaret Hamilton在爲阿波羅11號作軟件開發的任務時提出來的。

你們知道了軟件和軟件工程的起源,請問軟件工程發展的過程當中有什麼你以爲有趣的冷知識和故事?

  • Guido van Rossum喜歡看喜劇團體Monty Python,因此發明了一個編程語言叫做Python。一樣的,Python自帶的那個IDE,IDLE名字來源於該團體的成員Eric Idle。此外,用來表示垃圾郵件的單詞spam也是出自Monty Python這部做品,而這個單詞在劇中指的是Spam品牌的午飯肉。
  • 編程語言Perl的名字來源於珍珠Pearl,發明者Larry但願給語言起一個簡短而有積極含義的名稱。受到這個影響,松本行弘在發明Ruby的時候也從珠寶中選擇名字,而且選擇了Ruby。松本還提到,Ruby還跟誕生石(birthstone)有關,但是生於4月的松本行弘爲何選擇了七月份出生的同事的誕生石紅寶石呢。

上網調查一下目前流行的源程序版本管理軟件和項目管理軟件都有哪些, 各有什麼優缺點? 請按照最近一兩年使用人數的多少, 從多到少排序並說明各自有多少用戶(估計),工具的優缺點。

  目前流行的源程序版本管理軟件和項目管理軟件的用戶數排序

Name Users Projects
Assembla Unknown 526,581+
Phabricator Unknown Unknown
GitHub 31,000,000 100,000,000
Bitbucket 5,000,000 Unknown
Launchpad 3,965,288 40,881
SourceForge 3,700,000 500,000
GitLab 100,000 546,000
GNU Savannah 93,346 3,848
OSDN 54,826 6,294
Ourproject.org 6,353 1,846
  1. GitHub
    • 優勢:GitHub提供Git存儲庫服務,基於web,容許你使用Git的源代碼管理功能,或者其特性。GitHub提供Git存儲庫服務,基於web,容許你使用Git的源代碼管理功能,或者其特性。
    • 缺點:可能不是捕捉創意過程和記錄創意點子的最佳工具。對於這種特殊功能模擬能夠選擇LayerVault 或其餘類似工具。以前,咱們已經強調過Github很是適用代碼跟蹤,可是卻不是最好的設計跟蹤工具。將圖片內容轉化爲代碼,或者將設計用於產品設置,看起來依舊不是那樣順利。
  2. Trac
    • 優勢:很是靈活,能夠爲所欲爲控制能夠和SVN集成。
    • 缺點:功能不是很強大。
  3. Bugzilla
    • 優勢:免費,有中文版支持。
    • 缺點:快速搜索結果不許確。只能管理缺陷。
  4. Apple Xcode
    • 優勢:編譯速度極快,每次操做都很快速和輕鬆。自動提供撤消、重作和保存功能,無需編寫任何編碼。
    • 缺點:更新版本後,某個插件可能會失效。
  5. Microsoft TFS
    • 優勢:是對敏捷,msf,cmmi等項目、過程管理、過程改善的支持。任務版上能將需求、項目進度盡收眼底,對於小團隊而言,比甘特圖更有用。
    • 缺點:能應用起來的團隊、公司的數量極少,多數真正用起來,也就是源代碼管理這部分,這也僅僅是佔TFS極小部分功能。

參考資料

[1] John Tukey-wiki

[2] 就是她,寫出了讓阿姆斯壯成功登錄月球的代碼!

[3] https://www.zhihu.com/question/19811764/answer/19136365

[4] 目前流行的源程序版本管理軟件和項目管理軟件都有哪些, 各有什麼優缺點?

[5] Comparison of source-code-hosting facilities

相關文章
相關標籤/搜索