個人作業——軟件工程實踐總結&個人技術博客


一、總覽和相關鏈接

這個作業屬於哪個課程 2020春|W班
這個作業要求在哪里 個人總結作業要求
這個作業的目標 對本課程進行回顧和總結,並提出建議
作業正文 銀沙灣的個人總結
其他參考文獻

二、回望

對比開篇博客你對課程目標和期待,“希望通過實踐鍛煉,增強軟件工程專業的能力和就業競爭力”,對比目前的所學所練所得,在哪些方面達到了你的期待和目標,哪些方面還存在哪些不足,為什么?

  

我當初的期待

  • 鍛煉嚴謹的邏輯思維
  • 制作精美網頁和游戲
  • 能夠開發和維護軟件
  • 朝陽行業,就業良好

一點一點來講

  • 鍛煉嚴謹的邏輯思維:軟件開發人員不應該以體力勞動為主,而應把大部分時間花在思考和設計上。課程開啟前我都是邊編碼邊修補,思考過程少的可憐,更別談設計了,更是一塌糊塗。自寒假第二次熱身作業后,跟隨着助教的指引,我開始注重正式編碼前的思考和設計工作,並開始比較不同設計模式的優缺點,挑選合適的設計模式完成項目的開發。
  • 制作精美網頁和游戲:我負責團隊項目一部分的原型設計,選用了Ant Design設計了一個一站式通知和備忘的頁面。雖然算不上精美上乘,但是也是比較簡約和舒適的。游戲開發的話到現在也還只是想一想,還未接觸過相關技術。
  • 能夠開發和維護軟件:本課程的團隊作業模擬了一個團隊開發一個項目從調研、設計、開發到收尾的整個流程。經歷過團隊開發的訓練,掌握了軟件開發流程,也能夠使用Git等工具進行維護。
  • 朝陽行業,就業良好:我選擇了考研而非就業,因此對於當下就業形式也僅僅是有一個粗淺的理解。現在計算機互聯網行業內卷嚴重,我希望通過考研提升自己的競爭力,在就業市場能獲得更好的工作。

你在第一次作業的個人簡歷中制定的“這門課程結束后,你預期你將增長的能力、技術、技能”和你針對你的目標繪制的學習路線圖。對比當前你的所學所得,你達到了當時的預期值嗎?

工程能力:具備一定的開發能力,能夠解決一些實際問題;提高編程代碼組織和維護能力。
技術、技能:掌握Spring Framework的使用,能夠開發出比較完整的Web項目。

  毫無疑問,經過本課程的訓練,我的開發能力有了較大的提高。疫情統計着眼於當下實際問題,完成任務獲得了較大的滿足感和成就感。而關於代碼組織和維護能力,從寒假第二次作業開始就在不斷的訓練和提升,現在我能夠合理的組織代碼,按照代碼規范進行開發和維護。
  團隊項目后端使用的技術為SpringBoot+Mybatis+MySQL+SpringCloud,屬於一個比較完整的Web項目,在團隊開發的過程中,自己的所學用於到了實踐,加深了對框架技術的理解和應用,可以說現在的我可以使用Spring開發出一個比較完善的Web項目。
  學習技術路線圖,對於Spring精通程度模塊的要求,比如消息和JMX管理我還僅僅停留在了解階段,沒有進行過實際的開發。其它Spring的知識模塊僅限於會使用但是還不夠熟練,而且Spring的內部原理理解的也不是很深,想要吃透還是需要花費更多的功夫。

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

一共完成了多少行的代碼

  約8000行

軟工實踐的各次作業分別花了多少時間?

作業標題 所用時間
准備篇 3h
熱身篇——疫情統計 36h
結對第一次—某次疫情統計可視化(原型設計) 14h
團隊作業第一次——種子隊伍選拔和團隊展示 4h
結對第二次作業——某次疫情統計可視化的實現 40h
團隊作業第二次—團隊Github實戰訓練 9h
團隊作業第三次—項目需求分析 14h
團隊作業第四次—項目系統設計與數據庫設計 23h
個人作業——軟件評測 10h
團隊作業第五次——站立式會議+alpha沖刺 68h
團隊作業第六次——beta沖刺+事后諸葛亮 28h
個人作業——軟件工程實踐總結&個人技術博客 4h

哪一次作業讓你印象最深刻?為什么?

  當屬團隊Github實戰訓練。早上剛起來被通知:一天之內做一個程序出來!時間的倉促和團隊開發經驗的缺失以及由於疫情原因溝通成本的提高,對於我們來說都是不小的挑戰。好在團隊成員很快調整,明確任務分工后實現思路清晰了很多,我到中午兩點就已基本完成開發,之后都是為了整合進行了小修改。

累計花了多少個小時在軟工實踐上?平均每周花多少個小時?

  累計花了253小時在軟工實踐上,平均每周花16個小時。

學習和使用的新軟件

  GitHub Desktop、Typora、BootStrap Studio、XMind、Postman、墨刀、Axure RP 9、ScreenToGif(錄制gif的綠色強大軟件)

學習和使用的新工具

  阿里巴巴規范檢查插件、WakaTime代碼時長統計插件、ProcessOn網頁繪圖工具、Leangoo看板

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

  GitHub、Redis

學習和掌握的新方法

  軟件開發的體系結構和設計模式

工程能力的提升

  代碼復審能力、分析問題的能力

團隊合作上的提升

  溝通協作能力、前后端對接

其他方面的提升

  任務規划和管理能力(PSP表格)

三、團隊總結

你在團隊中擔任了什么角色?你是否完成了該角色的任務?現在你覺得你適合該角色嗎?

  我擔任了后端開發的角色。我完成了該角色的任務。現在我覺得我非常適合該角色,日后也准備深耕於后端開發領域。

如果你是組員,你覺得你的組長分工安排是否合理?你對組長的選舉有什么建議?

  比較合理。組長會根據每個人的技術水平和方向分配不同的任務,並在產生沖突時能夠協調好。我認為組長應該由小組成員投票選舉,票數最多者認可度比較高,一般來說相比其他小組成員有過人之處。

你這學期經歷過換組嗎?你對換組有哪些看法?談談你在這個過程中的感受。

  未經歷換組。我認為換組是開發過程中可能發生的跳槽情況,有必要進行換組來訓練和積累經驗。

軟件工程實踐是大學里少有的認真的團隊協作經驗。《構建之法》上說團隊的發展有幾個階段,你的團隊都經歷過么,最后到達了“創造”階段了么?(參考《構建執法》第17章 人、績效和職業道德)

  我們團隊仍處於磨合階段。從完成度上來說都基本實現了對應的功能,但遠未達到完善的程度,難以給客戶意料之外的驚喜。離“創造”階段還有不小的距離。

四、人月神話

怎樣證明你學會了軟件工程?以下要求你們的團隊達到了哪幾個?

1)通過一系列工具,流程,團隊合作,能夠在預計的時間內發布 “足夠好” 的軟件

  使用看板進行項目管理

  項目GitHub倉庫

2)通過數據展現軟件是可以維護和繼續發展

  項目接口設計詳細

  代碼注釋規范

  數據流圖一覽無余

屬於我自己的星月神話

  講一講第二次結對疫情統計的實現吧。
  在原型設計結束后,助教給我們的作業留了一條評論:“原型設計的不錯,期待你們的實現”。看到實現兩個字,我人傻了,我的搭檔也懵了。我當時的表情是這樣的:

  我們認為疫情統計的Web應用涉及到了前后端協作、地圖與圖表、數據庫、數據源獲取(爬取或自行處理)等諸多技術,對於沒有Web開發經驗的我倆來說是一個不小的挑戰。作業要求下來后,又看到部署在服務器又是個加分項,一開始看到作業要求的我們毫無頭緒,十分迷茫不知道從哪兒開始。
  第一天晚上,我倆連麥先互相吐槽了一下,並做好了最壞的打算:將就本地跑一個自己編的數據的極簡Web應用,能跑起來就行~。因為假期學習路線是Web后端,因此我選擇了后端分工,搭檔自然就負責前端的開發。
  不得不說,有了最壞的打算的心理准備后,心里靜下來許多,開發也就逐漸走上了正軌,我倆開始一個一個擊破難題。首先,先得設計數據庫,沒數據談何數據處理和數據展示?那么問題又來了,去哪兒拿數據?爬取咱又不會,但是俺會日志文件處理,寒假第二次作業剛練了。一開始自己爆肝編寫了五天的日志數據,也只是能用的程度。好巧不巧,后面我又學習雲服務部署知識,看到了阿里雲的日志雲服務,點進去一看:全球新冠肺炎統計雲日志。數據非常詳細和完整,而且提供日志文件下載。隨后我就把所有天數的日志文件全部下載。編寫了一個日志處理程序,並將數據寫入到了數據庫。
  就這樣不斷嘗試和探索,問題一個一個的得到了解決,最終將成品部署到了數據庫,大功告成!從未有過此等問題解決經歷的我當時就積極的進行了總結,首先對待問題的心態是一方面,不能因為問題較多而打亂思緒,需要穩扎穩打一步步來。此外查閱資料要集百家之所想,融百家之所思。別人分享的可能有特定的適用性,未必適合自己的開發,要多從資料和教程中總結方法,再將其用到自己的開發過程中。

五、建議

對下一屆同學的建議

  本課程所訓練的能力都是成為合格的軟件工程師必不可少的素質。少一點抱怨,多一份努力,能夠完成本課程的所有任務你將收獲頗豐,這可能會是你踏上軟件開發的第一站。

對於軟工實踐課程,你有哪些建議?

  希望能多一些指導和教程,分析當前企業軟件開發的形式,並根據職位要求提出發展方向建議。

對於助教工作,你有哪些建議?

  我對於助教的工作非常滿意,希望下一屆的助教也能像今年一樣優秀!

對於自己今后,你有哪些建言?

  既然決定深耕於后端開發領域,就要不斷強化自己的后端技術積累、不斷提高自己的開發能力。今后要多多參與項目的開發,將所學技術應用到實際,希望自己能成為一名出色的軟件開發工程師

六、個人技術總結

在第一次作業“准備篇”中你為自己制定了學習路線,現在學習了怎么樣了?你在團隊開發中是否擔任了開發角色,你在開發中解決了哪些技術問題?獲得了哪些技術進展?

  Spring的精通程度模塊的知識掌握的還不是很好,而且也沒有運用相關知識進行開發,只是跟着教程做了小demo。其它Spring的知識模塊僅限於會使用但是還不夠熟練,而且Spring的內部原理理解的也不是很深,想要吃透還是需要花費更多的功夫。

技術總結博客

SpringBoot的文件上傳與下載
概述:文件上傳是Web應用常用的功能,SpringBoot作為Web開發主流框架,也有對應的功能,主要分為:單文件上傳、多文件上傳以及文件下載三大方面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM