1.**規範
拜讀了構建之法,感觸頗多,從**規範開始說起吧,書中將其分為風格規範和設計規範。並且詳細的闡述了一條條規則。下面是我對**規範的理解:
1)外在規範
**,是給機器看的,這不錯,但同樣它也是給人看的,因為**隨著時間的推移總會產生變化。到時會有不同的人來修改檢查**,換句話說,**也具有生命,一段時間需要重新修改,這樣才會有生生不息的生命力。
下面說一些我所理解的外在規範重要環節:
ⅰ.注釋:這無需贅述,因為大的工程往往幾十幾百萬行**,如果不加注釋就好像天書一樣,因為文字描述的確非常重要,它可以讓閱讀者盡快地了解編寫 者的核心思想,並對其進行修改,從而使**煥發出新的生命力。再者說,一些大的軟體使用者就可以直接開啟看到他們的**,可是沒有注釋,這就注定我們對 **的修改毫無頭緒,所以注釋對規範性來說是首當其衝的。
ⅱ.縮排:使用四個空格,不用tab間的原因是tab在不同的情況下會顯示不同的長度。
ⅳ.括號:括號的作用是表明邏輯優先順序,括號不規範的的後果是,連續出現了許多錯誤,找得焦頭爛額,卻發現原因在於少了幾個括號,為了幾個括號可能 好幾天的成果付之一炬,一點也不值得。
ⅵ.下劃線:用來分隔變數名字中的作用域標註和變數的語義。
ⅶ.大小寫:多個不同單詞組成的變數名,用大小寫區分更方便讀者觀察。
總而言之,這些規範不是做給機器的,是做給人的,因為**具有生命力,它對機器的命令和對人的反饋同等重要,它需要與人好好的溝通,就像一本無價的書可以告訴我們世間所有的秘密,我們得到了卻不懂裡面的文字,無法操作,也沒有用處。
2)內在規範
這裡的內在規範就與前不同,外在規範很容易,無非是費點時間,花點精力,對能力並無什麼太高的要求。而內在規範就是真正考察乙個程式設計師實力的時候了。
ⅰ.函式:只做一件事,並且要做好。
ⅱ.函式最好有單一出口。
ⅲ.錯誤處理:這裡就是功力所在,這裡考察乙個程式設計師的心思是否細膩,是否洞察到所有的異常,並且在處理錯誤的過程中可能會產生新的未知的錯誤,這些錯誤很有可能改變你的思路以及你的想法,這一點需要注意。所以處理錯誤是非常重要的,它直接體現了我們的應對能力以及變通能力。
ⅳ.模組化:這是乙個程式設計師程式設計思想的體現,並且可以很好的對**進行掌控和布局,達到內部規範的效果。
ⅴ.使用者需求:這一點其實也是屬於內部規範,因為軟體編寫為了使用者,如果編了使用者無法使用,又有什麼意義呢。
總而言之,程式設計其實是我們能力的展現,它不像繪畫**那樣可以天馬行空的發揮我們的思想和想象力,但是這並不表明這些內部外部規則就可以束縛我們,不管是規則也好,需求也罷,都需要我們有足夠的能力去想去應對。簡而言之,程式設計是在眾多規則掩飾下看似木訥的藝術,在規則之後,是程式設計師天馬行空的想象和福爾摩斯似的邏輯。
2. 列乙個checklist
階段檢查項
結果需求分析
使用者需求是否有矛盾
使用者需求是否現實
使用者是否有預設的需求
設計設計人員是否有能力完成
在設計中可能遇到的困難
設計人員分組模組化設計
不同組的模組能否正確銜接
統一規則,標準
制定短期時間規劃
開發檢查**的功能是否簡潔
檢查方法的使用是否有重合
處理錯誤**
檢查**的效能
檢查**的可移植性
進行單元測試
設計並檢查是否使用者友好型
檢查系統承受能力
對**進行優化
檢查是否遵循標準
3. 效能分析和測試
4. 使用者需求
1)功能需求:
ⅰ.使用者的功能需求有些時候是矛盾的,需要及時提出並加以修改。
ⅱ.使用者提出的功能有些用現在的技術手段難以實現。
ⅲ.有些需求使用者不會提,因為在他們的字典裡,那是必須的,所以事先一定要確定好。
2) 非功能需求:
ⅰ.賞心悅目的介面,以及獨特的點都是軟體的加分點,想想看有多少人為了聽林志玲的聲音而使用的高德導航就知道了。
ⅱ.軟體的正常執行也同樣必不可少,試想誰會使用乙個經常自動崩潰的軟體呢。
ⅲ.人性化關心:雖然這裡提這個有點不符,但是打感情牌也不失為一些軟體長期存在的理由。
5. 過程控制:燃盡圖、魚刺圖、甘特圖
1) 燃盡圖
燃盡圖(burn down chart)是在專案完成之前,對需要完成的工作的一種視覺化表示。燃盡圖有乙個y軸(工作)和x軸(時間)。
2) 魚刺圖
問題或缺陷(即後果)標在"魚頭"外。在魚骨上長出魚刺,上面按出現機會多寡列出產生生產問題的可能原因。
3) 甘特圖
以圖標的方式通過活動列表和時間刻度形象地表示出任何特定專案的活動順序與持續時間。基本是一條線條圖,橫軸表示時間,縱軸表示活動(專案),線條表示在整個期間上計畫和實際的活動完成情況。它直觀地表明任務計畫在什麼時候進行,及實際進展與計畫要求的對比。
比較:燃盡圖是對時間進行分析,工作量進行分析。
魚刺圖是對缺陷進行分析和解決。
甘特圖是對任務量進行分析解決。
6. psp
工作型別
日期開始時間
結束時間
中斷時間
淨時間閱讀構建之法
讀書2016.3.15
18:00
18:50
0min
50min
查閱相應的知識點
查閱2016.3.15
19:00
19:30
0min
30min
編寫隨筆
隨筆2016.3.15
21:00
22:30
30min
60min
對比軟體
隨筆22:30
23:00
0min
30min
7. 從範圍的角度,對比一類軟體(3個軟體)
範圍 軟體
人人微博
適用範圍,年齡
所有所有
所有圈子範圍中小
大使用熱度小大
中功能度量差優
良訪問他人
半限制有限制
無限制介面友好
看不懂很友好
一般般系統測試
經常崩很好
很好存在可用資料潛力極大少
少總結人人俗稱校內,敗在它的圈子有限,校內人不像社會那樣圈子互相融合,僅僅是個孤立的小群體,再加上使用者軟體之類的做的不好,所以不常用,但是資料潛力極大,如果更改方式,必定有所作為。
未來預計
不好說維持現狀,穩步提高
維持現狀
本篇隨筆字數:2551
第二週作業
實驗作業 1.編寫調式執行第乙個c 程式,要求輸出你的班級 姓名和學號 2.輸入課本例題1.2,除錯執行程式,並分析程式。3.分析程式中哪些是識別符號,哪些是關鍵字。4.回答什麼是程式 工程,原始檔 目標檔案 執行檔案 編譯預處理 名字空間 函式.主函式 功能 顯示輸出班級 姓名 學號 includ...
第二週作業
第一題 include stdafx.h int main int argc,char argv 第二題 include using namespace std int max int x,int y int main 好吧,老師我實在不知道錯在 啊。我都是照著書本來打的,打了幾次還是這樣。第三題 ...
第二週作業
作業1 輸出學生的班級 姓名和學號 include using namespace std int main 以下是主函式 int main 主函式 int number1,number2 定義兩個基本整型變數 number1和number2 cout 請輸入兩個數 輸出 請輸入兩個數 cin nu...