天天看點

個人作業收官

個人作業收官——軟體工程實踐總結

一、回望過去

軟工實踐嘛- -、在我還在讀大一的時候,就聽說了。當時棟哥在給我們班上C++。棟哥說了一句你們大三還有機會上我的課,軟體工程。高冷的補了一句:你們還不一定能選的上呢。- -當時棟哥的小姿态老高老高了。不過轉眼到了大二下,棟哥的軟工課在他的毒奶之後好像不那麼熱門。不過在學長學姐的安利下我還是堅持選擇了棟哥的軟工實踐。額額額,好像扯遠了,陳年舊事都提起了。

對比現在的你和開學初部落格開篇的課程目标和期待

當初

項目完成後學習到的能力的預期
  • 對安卓的知識有更加深刻的了解和認識。特别是安卓四大元件的應用、活動碎片的生命周期等。
  • 鍛煉自己的邏輯思維,使自己的思維更清晰。
  • 提高編碼能力以及編碼的規範性,寫出結構清晰,規範易讀的代碼.
  • 提高與團隊成員溝通交流的能力。
對項目課程的期望
  • 希望自己的能力能夠有所提高,學到更多的知識,積累項目開發的經驗
  • 希望通過這次的軟工實踐的項目課程,能夠提高自己的團隊配合的能力。
對項目的願景規劃
  • 我們開發的app有實用價值,能夠友善人們的生活
  • 如棟哥所說,有“情懷”,讓我們的app在互動的時候更具人性化。

如今

  • 通過這次開發學生導師互選系統安卓端,基本達到了我當初對學習到的能力的預期。對安卓的開發懂得更多的知識。舉個栗子:向隊友學習到了okhttp的使用、android原生的側滑菜單欄的實作、gson解析json資料,當然還有我自己摸索的一個常用的功能——搜尋。搜尋是我網上找的開源架構導入我們的項目的。剛開始不會用别人的架構,硬是搗鼓了兩三天。到最後實在是沒辦法隻能硬着頭皮去看一下人家的源碼。以前都沒想過去看源碼,不過這次嘗試了一下,有種體會,就是要多看别人的源碼,看看别人是怎麼實作的,而且開源架構很多都是大神寫的,人家的代碼規範,實作的邏輯是我們這些小菜鳥應該要學習的。
  • 代碼規範,自我感覺還是挺好的。規規矩矩來,一樣的套路- -、每個函數之前都有備注。不過也有做得不太好的小點就是每個activity沒有備注一下這個activity是做什麼用的。看了同組的瑞钰寫的,才發現自己這一小點沒做好,争取下次做項目改掉。
  • 至于團隊的配合嘛,可能不那麼盡如人意,但是總體來說還是可以。可能也是我帶的不夠好吧,沒有很好的磨合大家,是以做出反思。然後自己也參與編碼,導緻時間沒有全心全意的投入項目管控上面。是以、如棟哥所說,組長還是編碼少一點的好。
  • 談談以前做項目沒有體會的過程。我現在想想,棟哥前期花那麼的時間讓我們做需求分析、原型設計是很重要的。特别是原型設計,後期編碼很經常就要回到原型上面來。有時候會感覺沒有原型的參考,無法進行下一步。原型沒有做好,沒有做清楚,開發起來就很棘手。
  • 對于部落格,當初還不懂md是什麼呢。在棟哥的強制要求下,學了一下!沒錯愛不釋手了- -。而我目前對部落格認識的隻停留在每次學到一個東西可以記錄下來,為了以後自己再用到的時候可以随時翻閱,畢竟我自己的記憶力沒有那麼強。不過等到我可以裝逼的時候,我更想在自己的部落格上面寫一下有内涵的東西,跟大家一起分享學習。
  • 最後就是對整個軟體開發的流程有了更深的了解。

總結這門課程的實踐給你帶來的提升

學習和使用新的軟體

  • android studio(安卓死丢丢)
  • Typora(來自小喬的推薦)
  • processOn這個網站很不錯的,思維導圖、類圖甚至原型設計都可以哦。關鍵是不用下載下傳不用安裝,讓我特别喜歡。
  • leangoo,項目協同的工具,我們alpha、beta版本的燃盡圖都是采用它生成的。同上是一個網站,使用起來很友善。

學習和使用新的工具

  • 這次體會最深刻的當然是git的使用了!默默的告訴自己,熟練使用圖形化的工具的同時一定一定要回歸指令行!熟練使用git指令行的才是大神。
  • md咯- -、排版比Word強多了。而且可以專注碼字,效率杠杠的。

學習和掌握的新語言、新平台

  • android開發暑假接觸過,不過那時候沒有這次了解的深刻。

統計一下,在軟工實踐上完成了多少行代碼

不好統計呀- -。2千?3千?應該有吧。不過有很多是備援的代碼。我決定利用寒假的時間好好重構一下。

學習和掌握的新方法

  • 結對程式設計。真心感覺這個方法很好!當一個人在編碼的時候,隊友在一旁看着,可以幫忙糾錯。累了就隊友上。
  • 團隊一起在活動室開發:這是我們小組的規定,沖刺的時候,每天都集中在一起。有問題當面可以提出來。

其他提升

和客戶溝通交流的能力。

二、自己的人月神話

項目實踐中的經驗總結

  • 作為組長php背景的代碼我稽核的很少,可以說幾乎都沒稽核php的代碼。一個是我自己不懂php代碼,另一個是小黃同學挺給力的,各個方面都做得不錯,是以我就要求他自己做好自我review再送出。并且讓他帶智強學習php方面的知識。很不錯!他也帶的很好,讓我省心了很多。
  • 大部分的時間都花在了android端的代碼稽核。發現看别人的代碼是一個痛并快樂着的過程吧。一方面是可以看着别人的代碼學習知識,但是也有個問題是,隊友有的代碼也不是很規範。是以會要求隊友修改,可能要求多了會煩躁,是以團隊之間會有小摩擦。
  • 還有一個就是作為組長,我還要修煉修煉。對項目的把控做得不是很好,雖然到最後還是把項目做完了,但是過程可能沒有那麼輕松愉快。哪些時間點要完成哪些工作,還有分工上面有待提高
  • 要懂得知人,用人。(棟哥指導的- -,表示下次再做項目,我一定要像棟哥說的那樣,站在另一個角度,予以一些滿足。)

執行個體/例證結合的分析

alpha版本的時候android端的分工沒有那麼明确,導緻了隊友間做了重複的工作,效率不高。

三、建議

  • 選棟哥的軟工、軟工實踐不虧。
  • 沒有做過項目的一定要選棟哥的實踐!
  • 基礎還是蠻重要的,如果學安卓開發,java的那些知識點還是得搞清楚一下,比如多線程之類的。還有内部類啊,像我寫着寫着new一個内部類都不會了。
  • 還有多看幾遍第一行代碼,android入門書籍。很基礎!
  • 多看看别人優秀的代碼。有時間當然可以閱讀閱讀源碼。
  • 三個臭皮匠賽過諸葛亮。

四、團隊成長

萌芽

剛開始組隊的時候,我們打算做一個打賭的軟體。不過在評審之後,棟哥給我們建議别反人類、反人性設計。是以後面考慮了一下就做學生導師雙向選擇這個系統。

**磨合 **

alpha版本的時候分工不細緻,隊友間有做了重複的工作。然後git送出出了一些問題,引燃了團隊之間的沖突,是以alpha版本推倒了一次,讓隊裡的大神重新寫了個架構,然後我們一起按照棟哥安利的那種方式,分層,每個人隻負責一個層的代碼。不過後面好像還是跑偏了- -。又回到了分子產品的那種模式去了。

**規範 **

在Beta版本中,我參與編碼就少了。主要負責一些自動化測試的代碼、部落格、項目管控、稽核android端的代碼,以及教毛仲傑同學一些自動化測試的代碼。整體來說代碼還是相對規範的。

**創造 **

這次的團隊合作還是給了我很多經驗的。讓我再一次體會了團隊開發中溝通、了解、合作的重要性。

五、代碼品質

由于期末考鴨梨真的好大好大,隻能粗略看看論文。

我自己感覺自己在寫java和xml代碼的時候還是比較規範的。但是設計寫menu檔案、style檔案的時候,自己就會一團糟,寫得比較亂。一方面可能是比較少涉及這方面的UI的開發之類的。是以有機會好好研究一下,好好想想怎麼規範。

六、怎樣證明你學會了軟體工程

  • 首先當然是能夠了解使用者的需求。有句話叫做"萬事開頭難"。最難的也是最重要的。要了解使用者的需求,并且要理清楚,否則開發到一半,發現跟當初的使用者需求不一緻,那麼面臨的可能就是當初的活都白幹了,白忙活了一場。
  • 我們是一個團隊。通過這次android端的互選系統,我感受到了,一個人是絕對絕對完成不了這種項目的。是以就需要團隊的合作。而團隊的合作也是需要磨合的,通過燃盡圖等協同工具可以掌控整個項目的進度。通過每日的站立式會議又能夠了解隊友間彼此的進度以及分享一些技術上面的幹貨。
  • 工具的使用,Git我隻想給它膝蓋!還有就是android的可視化工具也是很贊的,能夠提高開發的效率。
  • 後期的維護:這隻是開始,并不是結束。如棟哥說的,軟體的開發隻占過程中的30%,70%是維護。是以接下來的時間,可能我寒假都得貢獻給我的互選系統了。嗚嗚嗚---

七、自我介紹

陳逸超,性别男,愛好女。來自福州大學數學與計算機科學學院計算機五班。很開心(其實我說了反話- -在緊張的期末的時間裡,還深愛着我的軟工實踐,到這裡我已經碼了3457個字了)通過我的不懈努力終于選上了棟哥的軟工實踐(- -當初投分數的時候可是投得老高老高了)。這次的軟工實踐讓我經曆了很多。分享一下這次的開心吧:通了四次宵Orz--、幾乎資料挖掘的課全翹了、和隊友吵架了。回頭想想還是别有一番滋味啦。

安利自己一波雞湯,革命尚未成功,同志仍需努力。

八、軟工紀念