進階軟體工程第8次作業
一、請參考第一次作業,當初你對課程的承諾和期望都兌現了嗎?
第一次作業中http://www.cnblogs.com/wtting/p/7517686.html,我對課程的承諾:
第四部分:課程期望
你對這門課的期望是什麼?你打算平均每周拿出多少小時用在這門課上?你願意為了一個你感興趣的項目、或得到實戰鍛煉而付出更多時間和精力(包括熬夜)嗎?(必答)
我之前沒有接觸過軟體工程這方面,我希望通過這門課可以讓我對軟體工程有一個自己的認識,而不是冷冰冰的定義。平均每周拿出10·~20小時用在這門課。我願意為了一個你感興趣的項目、或得到實戰鍛煉而付出更多時間和精力。
很慶幸當時指導老師“強制”我們選了這門課,開始上課的時候,覺得很痛苦,作業好多,事情好多。好多關于軟體工程的東西都要從無到有的學。在這門課上的時間大大超出了我最初的預期,後來團隊項目每一周花至少40小時,熬夜調bug也是常有的事。我覺得讓我成長最快的還是結對程式設計和團隊項目,在團隊項目中,我和小夥伴也是結對程式設計的。當我們的APP做出來的時候,我們團隊好開心。但由于開發時間太短,很多功能未能實作。
非常感謝老師和助教對我們提出的批評建議。正如老師說的,人的惰性會讓改革舉步維艱。但是老師頂住了壓力,堅持了下來,很慶幸我也堅持了下來。
二、總結這門課程的實踐給你帶來的提升,包括
1.學習和使用的新軟體
暫時沒有使用新的軟體
2.學習和使用的新工具
學會了使用github和git,将代碼上傳到github上,讓它幫忙管理代碼相當的友善,小夥伴們每天早上pull一份,大家做了什麼一目了然。
結對程式設計的時候,由于小夥伴使用的IDE是Intellij IDEA,我就換了和她一樣的IDE,發現它确實挺好用的。
學習使用部落格園和Markdown。最開始使用markdown特别不習慣,第一次作業就沒有用Markdown寫,後來老師說,我們在部落格園上的作業不是隻給自己看的,而是作為大家互相學習互相分享的資料。讓大家願意看你的部落格,并願意給你點評,才能幫助自己快速進步。現在已經習慣用Markdown了,不過Markdown的表格是真心不好用!!
3.學習和掌握的新語言、新平台
之前對Android開發隻是了解一些皮毛,現在了解的雖然還是皮毛,但應該是更深厚的皮毛了。
學習了雲伺服器Bmob的使用,通過對它的使用,雲計算服務商已經不是一個幹巴巴的概念,變成了一個有血有肉的形象。我們在Bmob上建立了資料庫,引入Bmob開發的SDK,就可以将Bmob當成一個強大的伺服器背景了。
4.統計一下,你在這門軟體工程實踐中,完成了多少行的代碼
在課程裡面,寫了2000~3000行代碼。
個人項目有500行;結對項目400行(基礎代碼選擇的是小夥伴的代碼,是以結對項目的代碼量集中在可視化程式設計);團隊項目代碼2000行左右。
5.學習和掌握的新方法
學到的新方法展開說的話就太瑣碎了,合并起來說又找不到重點了。在結對程式設計的時候,我和小夥伴最開始想用Java web,後來決定用Java swing。因為我沒有用過Java swing,可視化程式設計用的是C#,是以上手的時候有一點不适應,不過兩者類似,學起來也快。在團隊項目裡,我發現調試日志真的相當的好用,程式在運作過程中的問題一目了然。
6.其他的提升
與小夥伴的協作能力。尤其是在團隊項目裡,溝通協作顯得尤為重要。非常開心與我的小夥伴們有這次共同進步的機會,我從他們身上學到了很多,包括他們面對難題的态度,肯深究肯鑽研的勁頭,以及他們分享給我的靈感。
三、寫下屬于自己的人月神話——項目實踐中的經驗總結+執行個體/例證結合的分析
1.需求分析要做足做細。
一個項目在籌備初期,走先做的就是需求分析。有幾點是必須想明白的。
我們要做什麼?
我們為什麼要做這個?
做了有什麼用?
我們做這個與現有的軟體差別在哪裡?
我們軟體的的優勢在哪裡?
這幾個問題一定要想好,避免後面開發過程中出現不知所出、不知所去的情況。
2.原型設計要考慮周全。
我們項目組在設計初期拟用學生學号作為登陸賬号,并用這個方案設計了原型系統。可是到開發後期,我們并沒有拿到可以導入學生學号的權限,不得不對最開始的登陸注冊設計進行修改。
3.多和隊友溝通,多和隊友溝通,多和隊友溝通!!
重要的事情說三遍。在團隊項目裡,雖然大家都分工明确了,但是有許多業務邏輯需要大家溝通商定好,否則雙方代碼無法合并,業務邏輯走不通,前功盡棄。例如在MyGod(買尬)開發過程中,涉及到商品、訂單等的狀态資訊,我們大家必須要協調溝通好狀态資訊如何設定,才能為後面的分工程式設計提供友善。
4.代碼規範、注釋規範
團隊項目裡,你的代碼不僅是給自己看,還是給小夥伴看,是以代碼規範一定要注意,注釋規範也要注意。可以參照《構造之法》第4章 兩人程式設計 中,關于代碼規範的說明。
四、分析一下自己所處的團隊。《建構之法》上說團隊的發展有幾個階段,你的團隊都經曆過麼,最後到達了“創造”階段了麼?
萌芽:大家都是熟悉java,才有幸聚在一起,決定做武大校園二手app也是我們共同的想法
磨合:大家都在互相适應彼此的節奏,求同存異。
規範:經過Alpha、Beta版本之後,我們小組的規範性得到了很大的提高
創造:應該還沒有。
五、在今後的教學中,老師們還将根據同學們的基礎、期望達到的目标,在教學内容和作業量上做更多的調整,争取為大家提供一個更加個性化的學習過程。你對課程設計(授課内容、方式、作業内容)有什麼建議嗎?另外,作為學長的你,對後面的學弟學妹們有什麼建議?
雖然老師說已經給我們化簡任務了,但是作業量還是有點大的,不過可以接受,因為自己也确實完成了作業。在個人項目和結對項目的時候,時間還是挺充足的。但是到了團隊項目的時候,時間就特别趕了。我們組相當于兩周做完了“買尬”APP,都在全力主攻這個作業。這個作業量還是可以的,我們能堅持住,希望老師能頂住壓力,挺住!!
上課互動不多,能明顯感覺的老師上課需要講的東西很多,不快點講就講不完了。但是聽的人幾乎沒有。老師在講台上不停的說,我們在下面改bug==!
學弟學妹們來選這門課吧,接受一下暴風雨的洗禮,能讓自己更快的成長!
大學的時候學過一門英語課,感受跟這門課極其相似,開始诟病不已,課程結束才明白老師良苦用心,那也是一門讓我受益終生的課,感謝您!解老師!
六、助教老師為課程的順利開展做了很多工作,與老師們的交流也讓大家獲益匪淺。你對助教老師的工作可以提一些意見和建議嗎?
非常感謝助教老師!也非常感謝鄒欣老師給予的批評與建議!沒有什麼特别要說的,希望助教和老師都堅持住!!尤其是出鏡率極高的Grey_Zeng;我還意外的挖到了助教的微網誌,關注了一波,助教有個微網誌我覺得寫的超好,拿出來作為結束語,與君共勉!
你不會的知識,你懶于想通的東西,總是會在一個必要的時候提醒你、懲罰你。
将沒有搞懂的、希望做到的東西,寫在紙上、貼在面前,認真實踐,
當你做到的越來越多的時候,你就會越來越自信,你的層次會提高的。