天天看點

火車駛向雲外,夢安魂于九霄 —— 軟體工程實踐總結&個人技術部落格

這個作業屬于哪個課程 2021春軟體工程實踐S班 (福州大學)
這個作業要求在哪裡 軟體工程實踐總結&個人技術部落格
這個作業的目标 完成個人實踐總結以及個人技術部落格
其他參考文獻

火車駛向雲外,夢安魂于九霄 —— 軟體工程實踐總結&個人技術部落格

目錄

    • 課程回顧與總結
      • 以前提問題的部落格連結
      • 對自己曾經提出的問題進行解答
      • 是否原來的問題還不明白?如果有,請分析。
      • 是否産生了新的問題?如果有,請提出。
      • 軟體工程這門學問有很多 “知識點”, 這門課強調 “做中學”——在實踐中學習知識點。
      • 心得
    • 個人技術總結

  • 部落格連接配接

問題一:在非常小規模的代碼時是否還需要在單元測試上花費大量的時間提高覆寫率呢?
  • 對問題一的解釋和闡明:對我困惑的解釋是,我認為即使是小規模的代碼,任然需要花費時間去提高覆寫率,實踐中小規模的代碼提高覆寫率其實花不了太多時間,而且這樣的時間花費所獲得的的收益是很大的,大規模的代碼更加需要花大量時間測試了,不然bug難以發現,越遲發現問題對項目帶來的代價越大。而在軟體開發中,測試所占的時間本來就應該比開發時間長。這學期不僅通過實踐和軟工理論課程的學習,還開設了專門一科“軟體品質和測試”這門課程,從中我了解更多關于測試的知識,對這個問題不再有疑惑,從實踐中因為一個小bug搞得自己焦頭爛額的情況也有發生過,是以在今後的學習工作生活中,我會對軟體測試更加重視。
問題二:就像之前提出的團隊模式的選擇一樣,既然PM的作用十分重要,我們在小組實踐時需不需要注重PM能力的培養呢?
  • 對問題二的解釋和闡明:我認為對PM能力的培養真的非常重要。因為我在這次實踐中也是第一次擔任了組長隻有的身份,本身對于管理能力和交流能力是有欠缺的,但是團隊就是需要這麼一個角色,能夠明白所有人的需求,能夠幫所有人之間進行溝通協調,能夠對整個項目的進步有一個把控。在這次實踐中有的小組和對以前學長學姐的實踐博文浏覽學習過程中發現,确實有發生由于各種各樣的原因導緻alpha沖刺原定計劃沒有實作,沒有一個可以運作起來的成品傳遞這樣的情況。有好的PM能力,在團隊中把控着進度還是非常重要的。
問題三:在以後的從業生涯中,如果想創新是把握機會還是刻苦攻堅技術突破呢?
  • 對問題三的解釋和闡明:我認為,要在把握機會的同時,刻苦掌握技術。對于這個問題,我還是沒有實際的從業經驗,隻能從對現在的社會現狀的了解上來解釋,機會的把握與技術攻堅并不沖突,了解了新技術也可以有更多機會,而機會也需要很多技術的支援。不要盲目地追求技術,而要更好地将技術利用在合适的地方才是王道。
問題四:該當一馬當先尋求技術創新突破的人,還是腳踏實地從已經有的東西中尋求創新呢?
  • 對問題四的解釋和闡明:該問題的回答我覺得和對問題三的了解類似,從實踐中能感覺到自己大部分是站在巨人的肩膀上在做事,技術的用法有很多前人已經做了詳細的闡述,我要做的是先學好怎麼用,再把它用到我的項目中,通過學習形成我自己的東西,腳踏實地的從已經的東西中尋求創新是基礎,如果有能力能夠進行一馬當先的技術創新突破,抓住機會,那就再好不過了。
問題五:在二人合作時是要互相了解并介入對方的工作時刻監督對方還是完全信任,注重回報互相鼓勵呢?
  • 對問題五的解釋和闡明:我認為,雙人合作中信任是至關重要的,你要相信你的隊友和你一樣在努力解決問題。同樣,是在課程實踐的結對作業實踐中,我對這個問題有了這樣的了解,在你工作時,如果有個人在以居高臨下的姿态在監督着你,會覺得非常不自在,如果卡在了什麼難點上,有個人盯着自己會有更大的壓力。是以信任能讓兩人之間的合作更加順暢,必要的回報和鼓勵也不能少,要有回報讓對方明白自己的進度,明白自己需不需要對方的幫助,這樣可以加深兩人之間的信任,進而得到有利的循環。

  • 對原來提出的問題解釋和了解如上,沒有什麼不明白的了。

  • 在整個實踐流程結束後,我有些疑惑的地方,我們是要用軟工實踐來鞏固理論課中所學習到的知識嗎?還是更加注重利用實踐來對各種能力進行培養?在準備着手對理論課複習時發現實踐了這麼久反而對理論的印象很淺,回想起來在實踐過程中總是在不斷地接觸新知識,學習新技術。是不是我的着重點出現了偏差,最後對技術的掌握反而比軟工理論的印象更加深刻。

每個階段收獲最大的知識或能力如下:
  • 需求階段:首先是首次對需求分析有了概念,明白了課本教材中需求模型的三大目标:描述客戶需要什麼、為軟體設計奠定基礎、定義軟體完成後可以被确認的一組需求。光靠自己想是沒有用的,我們在答辯後也進一步完善了需求,比如老師提出的導出功能,和助教提出的賬單連結日記的功能。需求分析對客戶的了解和市場的調查十分重要,畢竟開發者并不一定是使用者。收獲的能力比如溝通交流能力得到了很好的鍛煉。
  • 設計階段:對接口的設計有了更深的了解,多人共同協作時,前後端接口的設計和按照設計來嚴格執行是非常重要的。還學會了黃金規則,并嘗試運用在原型設計上,統一原型顔色和icon風格,運用大衆習慣的預設操作按鍵。
  • 實作階段:在alpha和beta階段中運用到了對靈活開發的一些知識,每天的站立式會議對開發進度的推進有着很好的督促作用,也學會了對于微信小程式開發的各項前端知識以及比較新穎的微信雲開發技術。
  • 測試階段:學會了利用JUnit進行單元測試,懂得如何運用node.js的本地雲調試對雲開發的各個函數進行測試。在實踐中對測試的重要性有了更深刻的了解,以及學習到了白盒測試和黑盒測試的理論知識。
  • 釋出階段:學會了雲開發中函數部署到伺服器,也嘗試将整個程式上傳,并了解了整個微信官方稽核小程式的流程。

  • 這學期也寫過好多次心得了,從小黃衫到CSDN紀念T恤,再到這次總結心得,總像是有說不盡道不完的感受一樣,也許是因為切身實際地去做了一些事學了一些東西才會有這麼感受。從個人項目由于自己對JDK版本的疏忽導緻了最後程式結果不盡人意,也從中吸取了很多教訓,之後的學習實踐中不敢再馬虎,對測試工作做了又做,擔心遺漏了哪些點。結對程式設計時,時間很短,當時對那些技術也不是很熟悉,無從下手。回想起來自己和隊友能夠按時完成确實也付出了挺多努力的,從0開始學習一個php架構,再到将當初設計的原型實作出來,個人的編碼能力也得到了提升。團隊項目可以說是準備的最充足的一次了,從需求分析到設計再到編碼,對編碼沖刺的時間安排,每天做了什麼,都一一記錄下來,“做中學”确實十分形象,一邊做一邊學習wx小程式的開發知識,學習元件怎麼用,怎麼把自己自定義的内容變成元件供大家一起複用。隻有做了才會發現自己的技術知識薄弱點。總結一下,像是一個學期做了好幾個學期的事,也學到了好幾個學期的内容,不虧,付出總有收獲。

在準備篇中我為自己定制了學習java後端的學習路線,通過寒假的第二次個人作業,對java的基礎知識點做了複習,在後續的三月份的github實踐中,也對Springboot架構有了初步的了解和學習。但是最後的應用階段沒有實作。是由于團隊開發與java沒有關系,我在團隊中擔任了開發角色,進行小程式的前端開發,并完成自己所需要的的雲開發的雲函數。在開發中,我解決了如何在小程式中引入ECharts并根據我們的原型設計,自定義我們的資料分析可視化。并開發了我們原型中的自定義的額度提醒進度條元件。獲得了對wxml、wxss、js和雲開發技術的進展。
  • 個人技術總結 —— 在小程式中使用ECharts
概述:
  • 介紹:Echarts技術是用來可視化資料的,提供直覺,生動,可互動,可高度個性化定制的資料可視化圖表。
  • 用到的情況:在需要資料分析和展示時可以使用該技術來給人更好的體驗。
  • 學習該技術的原因:團隊項目中使用小程式進行開發,賬單資料需要可視化分析展示給使用者。
  • 難點:ECahrts本身是純JS的技術,微信小程式也不支援DOM操作,Canvas接口也和浏覽器的不同,是以想在小程式中用圖表可視化資料的話要學習如何在小程式中使用,也比Web端引用JS檔案來的困難。