項目 | 內容 |
---|---|
這個做業屬於哪一個課程 | 2019春BUAA SCSE軟件工程 |
這個做業的要求在哪裏 | 第1次我的做業 |
我在這個課程的目標是 | 學習團隊開發項目,爲之後的工做提供經驗 |
這個做業在哪一個具體方面幫助我實現目標 | 閱讀了《構建之法》,瞭解到了軟件工程的思想 |
既然代碼複審能發現這麼多問題,有這麼好的效果,若是咱們每時每刻都處在代碼複審的狀態,那不是很好麼?事實上,極限編程(Extreme Programming)正是這一思想的體現——爲何不把一些卓有成效的開發方法用到極致(Extreme),讓咱們無時不刻地使用它們?
-- 引用自《構建之法》4.5 結對編程 P78git
在結對編程模式下,一對程序員肩並肩、平等地、互補地進行開發工做。他們並排坐在一臺電腦前,面對同一個顯示器,使用同一個鍵盤、同一個鼠標一塊兒工做。他們一塊兒分析,一塊兒設計,一塊兒寫測試用例,一塊兒編碼,一塊兒作單元測試,一塊兒作集成測試,一塊兒寫文檔,等等。
-- 引用自《構建之法》4.5 結對編程 P79程序員
這樣的結對編程真的是有效率的方法嗎?它和普通的兩人團隊效率會更好嗎?最初的結對編程多是由於資源的不足,可是現現在可能除了時間之外的資源都是充足的,這種傳統意義上的結對編程是否是會太過於消耗時間?賽車和飛機裏駕駛員和領航員是不能同時開飛機,但對於代碼的撰寫能夠兩人同時撰寫,再抽出必定的時間進行審查,是否會比這種純粹的結對編程效率高?github
函數最好有單一的出口,爲了達到這一目的,可使用goto。只要有助於程序邏輯的清晰體現,什麼方法均可以使用,包括goto。
-- 引用自《構建之法》4.3 代碼設計規範 P69編程
在我最開始學習C語言(《C Primer Plus》)的時候,我記得很清楚,書上關於goto語句的態度就是不建議使用,我也常常據說不建議使用goto語句,由於goto語句確實可能存在着必定的問題,並且很難被本身發現,儘管goto語句在某些狀況很是好用,好比在上學期的編譯課程設計裏對於各類各樣的錯誤處理,使用goto語句會很是的簡單,可是我最終仍是沒有采用,而是使用了大量的if-else和return語句來進行處理。我我的仍是不太喜歡使用。服務器
的確,如書中所提到的有些行業的先行者到了後來並非該行業的領導者,可是我以爲這正是由於該行業的後來者的創新而致使的,因爲後來者的創新,他們有了新功能,有了更加吸引消費者的地方,所以他們才能成爲領導者,創新也才能身先士卒。網絡
我以爲在如今,讓用戶犯簡單的錯誤卻成了一種設計——如今不少的常見的軟件老是將廣告塞在巧妙的地方,不仔細看都不會發現那小小的「廣告」兩個字,好比微博中常常就有這種廣告,配以誘惑性的圖片和文字,當手指移過去才反應過來這是個廣告。這種廣告必定程度上影響了用戶的體驗,卻可能提升了廣告的效應同時可能增大了企業的利益,那麼該如何平衡項目受益以及用戶體驗呢?同時,提升用戶的體驗勢必要付出更多的代價,這裏又該如何平衡呢?分佈式
70%的創新者說,他們最成功的的創新,是在他們的那首領域以外發現的。
-- 引自《構建之法》16.1創新的迷思 P347函數
我認爲這的確是個迷思,我以爲其中的緣由多是當一我的成爲了某一行業的專家,那麼他確定是有着必定的研究方向,其產生創新的機率就比那些剛入門的人小,由於他頗有可能會堅持這本身的方向去鑽研。那咱們又該如何避免這一問題出現呢?畢竟咱們也是要一直研究、一直學習的,是否是意味着,咱們到後來也將沒法產生創新?被後人所追趕?gitlab
根據維基百科,「軟件」這一律念最先是Richard R. Carhart在出版於1953年8月的蘭德公司研究備忘錄(Rand Corporation Research Memorandum)裏出現的。單元測試
「軟件工程」這個詞在1965年6月就在計算機與自動化的期刊被提出了(來源維基),但瑪格麗特·漢密爾頓則在1968年北約的科學家們所開的一屆會議上比較正式的提出了這一個概念,使之成爲一種專業術語。
軟件 | 優勢 | 缺點 |
---|---|---|
Microsoft TFS | 強大 集成了多種功能,適合團隊使用 |
搭建起來複雜,難以維護 |
Git | 分佈式版本控制 易於控制,很是靈活 |
命令太多,學習起來難度略大 |
Mercurial | 命令行 簡潔 服務器部署相對容易 |
執着於向後兼容 |
GitHub | 免費 開源 基於Git |
依賴於網絡 |
Bitbucket | 支持hg(Mercurial?)和Git 免費閉源 |
限制人數 |
來源: