快速通讀教材《構建之法》,並參照提問模板,提出5個問題。
如何提出有價值的問題? 請看這個文章:http://www.cnblogs.com/rocedu/p/5167941.html ,以及 在互聯網時代如何提問題。 還有這些要點:html
一個模板能夠是這樣:程序員
我看了這一段文字 (引用文字),有這個問題(提出問題)。 我查了資料,有這些說法(引用說法),根據個人實踐,我獲得這些經驗(描述本身的經驗)。 可是我仍是不太懂,個人困惑是(說明困惑)。編程
或者這樣:小程序
我反對做者的觀點(提出做者的觀點,本身的觀點,以及理由)。安全
大學生應該能寫出本身的思考, 而不是摘抄書本內容。網絡
提示:編程經驗很少的同窗,建議看16章 「創新」, 提出本身的問題。app
【附加題】:請將問題提交至豆瓣:https://book.douban.com/subject/27069503/, 並在博客中給出連接
在豆瓣頁面的最下方 「讀書筆記」 那裏發言, 《構建之法》的做者會親自答覆問題運維
在第一章概論中有提到spa
軟件團隊的人員也會流動,新的成員要儘快讀懂已有的程序,瞭解程序的設計。設計
在第一節軟件工程課上,老師就講了一下這個學期的教學安排,其中就有提到在作團隊項目時,有個環節就是要進行成員交換。對於這個我不是很能理解,當你在這個團隊已經一段時間,足夠熟悉這個項目的需求以及程序的設計,而且跟其餘成員也有必定的配合度,忽然交換成員,若是是能力較強的成員那卻是影響不大,可是能力稍差的,則又須要必定時間去磨合,去熟悉程序的設計。這不是多費了一份功夫嗎?
在第四章4.3節中我看到了這段話,
當程序的主要功能實現後,一些程序員會樂觀地估計只須要另外20%的時間,給代碼加一些錯誤處理就大功告成了,可是這20%的工做每每須要所有項目80%的時間。
錯誤處理 1.參數處理 2.斷言
從這段咱們能夠看出對程序的錯誤處理是很重要的,錯誤處理可使得代碼更加穩定。可是像咱們在平時的編寫小程序,或者作項目中,咱們通常都忽視了這個問題,只把主要功能實現了,而沒有作到錯誤處理。因此在書中所提到對於錯誤處理中,斷言的理解我不是很懂。什麼是斷言?在百度百科裏提到
斷言能夠有兩種形式
1.assert Expression1
2.assert Expression1:Expression2
其中Expression1應該老是一個布爾值,Expression2是斷言失敗時輸出的失敗消息的字符串。若是Expression1爲假,則拋出一個 AssertionError,這是一個錯誤,而不是一個異常,也就是說是一個不可控制異常(unchecked Exception),AssertionError因爲是錯誤,因此能夠不捕獲,但不推薦這樣作,由於那樣會使你的系統進入不穩定狀態。
繼而又產生了異常與錯誤,異常與斷言是什麼關係,是什麼意思的疑惑?何時該用斷言,何時該用異常?
在第四章和第五章裏講到結對和團隊的問題,文中提到
兩個角色:駕駛員、領航員
程序各方面的質量取決於一對程序員中各方面水平較高的那一位
一個很現實的問題就是隊員的問題。咱們平時上課作實驗有時候就是得搭檔着作,作課設的時候也有須要搭檔着作的時候,那麼在團隊裏總有人能力較強有人能力不強。像在兩我的的結對中,萬一有一方能力較差一點,總不能全部事情都讓另外一方去作。這樣能力較弱的一方都沒學到什麼,更甚者兩個編程能力都不強的人結對又該如何保證代碼質量,要怎麼去處理這個問題?在團隊裏,要怎麼正確的給每一個人分配工做,又要怎麼的把每一個人作的部分整合起來?
在第六章敏捷流程中,提到敏捷開發的一條原則:
常常發佈可用的軟件,發佈間隔能夠從幾周到幾個月,能短則短
一個可用的軟件,並不等於一個好用,用戶滿意的軟件。在經過百度搜索後看到,提到敏捷開發的一項主張——「簡單」,主張最簡單的解決方案就是最好的解決方案。不要過度構建你的軟件。可是若是是一款簡單的軟件,當它在發佈間隔能短則短的狀況下發布,那麼若是用戶發現並無它所須要的功能,就不會喜歡它,即便以後有更新版本也不必定還會願意去下載。在這發佈間隔短,主張簡單的狀況下,如何保證用戶還會下載最新版,如何保證軟件的用戶使用量?
在用戶體驗這一章,提到
用戶體驗的要素之一:從用戶的角度考慮問題
我想知道軟件開發者是如何判斷某個功能的設計是不是用戶所滿意的?好比手機百度app中,在更早以前的版本里,當你在訪問某個頁面的時候不當心按到首頁鍵時,你能夠經過按返回鍵從新返回訪問頁面。然而在如今的版本里首頁鍵設置在屏幕的右下角很容易不當心按到,這時候若是你正在訪問某個頁面時,那麼你只能經過「個人」-「歷史」中找到相應連接從新訪問,而不是簡單的按下返回鍵就能夠返回,在用戶設置了不顯示搜索歷史時,那又該如何返回訪問頁面。
在第十六章IT創新中,提到一點「迷思之五:要成爲領域的專家,才能創新」,書中寫到
統計數據代表:70%的創新者說,它最成功的創新,是在他們的拿手領域以外發現的。
確實像書中所寫的,阿里巴巴的創始人他所學的專業也不是與計算機、互聯網有關的,而是英語,並非全部的創新必定是由該領域的專家才能實現創新。那麼我想問,對於不是該領域專家的人,要怎麼get到與這個領域相關的創新,而且願意去付之行動,創新都是有失敗的風險,不說該領域的人,就對於非該領域的人,又該如何作好創新失敗的防範?
對於之後從事什麼方向的工做,有考慮往運維方向走。書中提到
軟件工程是把系統的、有序的、可量化的方法應用到軟件的開發、運營和維護上的過程。
可是運維跟咱們如今學的《現代軟件工程》有什麼聯繫?emmm...,上文裏提到,軟件的開發...的過程。百度百科是這麼解釋網絡運維的,"是指爲保障電信網絡與業務正常、安全、有效運行而採起的生產組織管理活動,簡稱運維管理或OAM"。那麼我該如何學好,運用這門課?爲何這門也是做爲網絡專業的必修課而不是選修課?