一、請回望暑假時的第一次作業,你對于軟體工程課程的想象
1)對比開篇部落格你對課程目标和期待,“希望通過實踐鍛煉,增強計算機專業的能力和就業競争力”,對比目前的所學所練所得,在哪些方面達到了你的期待和目标,哪些方面還存在哪些不足,為什麼?
達成的目标和期待:
進行了團隊協作開發。
結識了新朋友。
學習了新的程式設計語言。
對自己進行了規範程式設計的訓練。
熟悉了新的架構。
學習使用了許多新的開發工具和平台。
文檔的書寫能力有了提高
對于軟體開發有了更深刻的認識。
了解了搜尋引擎和中文分詞
存在的不足:
項目有了一定經驗,對于實際場景背景的高并發并沒有涉及。
UML等相關工具的使用隻是體驗式的,缺乏深入學習。
在項目代碼管理做的不是很好,github不是熟練。
2)總結這門課程的實踐總結和給你帶來的提升:
關于代碼量——PHP:1200行左右,C++:500行左右。
團隊合作中我學會了很多,互相交流,代碼風格得到了規範。
學習和使用的新軟體 學習和使用的新工具 學習和掌握的新語言、新平台 學習和掌握的新方法 其他方面的提升
有思維導圖,福昕閱讀器, Navicat Premium,PhpStorm,Wampserver64 PHP,GitHub,sphinx 學習和使用coreseek進行站内搜尋,學習使用ThinkPHP5.0架構,,學習使用phpExcel架構
二、寫下屬于自己的人月神話——個人或結對或團隊項目實踐中的經驗總結+執行個體/例證結合的分析
關于進度:發現很多時候會發生後期進度來不及的情況,而這會導緻軟體品質無法得到保證,甚至沒法完成。是以我們要避免這種情況,首先在項目之初就應該結合自身團隊和資源情況全面考慮工作内容和進度安排,并留出最後一部分時間用于彈性安排。第二點是,其實很多進度來不及是因為總是把工作放在最後,總是拖拉,拖欠工作量。是以隊友和隊友之間要發揮好互相督促作用,把每一階段的工作在指定的時間内完成。
關于代碼規範:在軟體開發過程中,一個團隊一定要有一套統一的代碼規範,混亂的代碼風格會使平常工作的代碼整合工作異常艱難,同時給代碼的維護和運作埋下很多隐患。我們又如何去解決這個問題呢?我們首先要統一一套代碼規範,并且善用GitHub工具,在日常工作中就時時整合代碼,隊友之間互相監督代碼規範的實施。
三、對下一屆實踐的建議,或者對于開學初的你,對于大一的你,對于開學初的我,你有什麼想建議和告知的呢?對于後來人的期許。 特别地,特别地,下一屆要不要中途換隊員?
對于下一屆的告知與建議:我覺得大家一定要選擇一個自己喜歡的題目,這樣我們才能堅持完成它,而不容易半途而廢。
關于要不要中途換隊員:這個問題,我的意見是換。其實如果有同學在像這個問題,說明隊伍已經出現了很糟糕的情況。但是我覺得想換隊友的話,必須弄清楚發生的問題的原因,并了解其他隊伍的情況,想好自己在新的團隊中又應該以何種角色存在、可以做出什麼貢獻。不要一換再換。
四、分析一下自己所處的團隊。軟體工程實踐是大學裡少有的認真的團隊協作經驗。《建構之法》上說團隊的發展有幾個階段,你的團隊都經曆過麼,最後到達了“創造”階段了麼?(參考《建構執法》第17章 人、績效和職業道德)
第一階段:其實團隊裡的同學是自己班級互相了解的同學和兄弟班的幾個同學。雖然不是很熟悉,但是在思考選題的過程中大家積極的發表意見,交流地很激烈。這是我們地破冰儀式,這之後大家初步建立起了團隊、并安排分工。
第二階段:在明确了目标、分工後,正式進入了協助完成作業階段
第三階段:在正式開發期間,我們遇到的問題最多,一邊學習,一邊開發。一起讨論需求和個版本地完成,雖然很難,但是在隊友的一起努力下,我們都克服了。
五、怎樣證明你學會了軟體工程?
1)研發出符合使用者需求的軟體
必須公開釋出,有實際的使用者,一定的使用者量和持續使用量 (3 天後能保持10 - 100個使用者);而不是: 做沒有使用者使用的軟體
在軟體開發前需要做好産品針對的群體定位,提出需求,并調查其是否确實存在。根據問卷結果分析,我們軟體所要完成的功能是符合使用者需求的。
在選題答辯環節中,接受老師和同學們的建議,指出了我們産品設計的一些痛點,我們也在積極地思考。
2)通過一系列工具,流程,團隊合作,能夠在預計的時間内釋出 “足夠好” 的軟體
有項目規劃/需求/設計/實作/釋出/維護,有定時的進度釋出 ; 而不是: 通過臨時熬夜,胡亂拼湊,大牛一人代勞,延遲傳遞等方式糊弄
我主要做的是後端部分功能的實作,我就說說後端的情況。在整個項目期間,我們先完成了api文檔,以api的個數來确定工作量大小。根據耦合度高低将api分成幾個部分,由不同隊友完成。
在alpha版本和bate版本進度彙報中,我們均有展示每個隊友在這個項目中的代碼量,沒有一個人是閑着的。
3)并且通過資料展現軟體是可以維護和繼續發展的。
而不是 找不到源代碼,代碼無文檔,代碼不能編譯,沒有task/bug 等項目的發展資料
在此貼出編碼期間産生的後端部分api文檔圖檔:
