软件工程实践总结——程序员的自我修养
| 這個作業(yè)要求在哪里 | 軟件工程實(shí)踐總結(jié)&個人技術(shù)博客 |
| 這個作業(yè)的目標(biāo) | 課程回顧與總結(jié) 個人技術(shù)總結(jié) |
| 其他參考文獻(xiàn) |
文章目錄
- 課程回顧與總結(jié)
- 寒假博客鏈接
- 問題回顧
- 問題一
- 問題二
- 問題三
- 問題四
- 問題五
- 每個階段的收獲
- 需求階段
- 設(shè)計(jì)階段
- 實(shí)現(xiàn)階段
- 測試階段
- 發(fā)布階段
- 心得
- 自我評估
- 個人技術(shù)總結(jié)
課程回顧與總結(jié)
寒假博客鏈接
軟件工程寒假作業(yè)博客
問題回顧
問題一
2.3 學(xué)生與職業(yè)程序員的區(qū)別?
我認(rèn)為學(xué)生在項(xiàng)目開發(fā)中,主要專注于代碼編寫,不必考慮外在因素,而職業(yè)程序員需要知道自己的東西最終將被許多用戶使用,并且需要注意其健壯性,易用性,各種性能指標(biāo),甚至是代碼的后續(xù)可維護(hù)性。軟件開發(fā)的過程需要經(jīng)過設(shè)計(jì)、評審、編碼、測試一系列完整的工作流程,才能確保開發(fā)的項(xiàng)目符合預(yù)期,不喜歡停留在過去的技術(shù),而是更喜歡鉆研前沿的新技術(shù),因此有如機(jī)器學(xué)習(xí),計(jì)算機(jī)視覺等前沿領(lǐng)域,更多的是學(xué)生和學(xué)術(shù)界在研究。職業(yè)程序員需要遵守嚴(yán)格的代碼規(guī)范,并且需要與其同事一起合力完成項(xiàng)目,相互要求自己,以共同提高代碼質(zhì)量和產(chǎn)品質(zhì)量。
問題二
3.1 對于一名工程師而言,究竟應(yīng)該是更”專“一點(diǎn)好,還是更”廣“一點(diǎn)好呢
我認(rèn)為應(yīng)該在保持“廣”的前提下,努力地找到自己“專”的地方。廣泛的技術(shù)面和知識體系可以為工程師在遇到問題時提供更多的解決方案,而在這種前提之下,專業(yè)的技術(shù)則可以迅速的定位問題的所在之處,畢竟不是所有問題都有對應(yīng)的文檔來解決,而專業(yè)的工程師人才可以在這種情況中脫穎而出。
問題三
5.3 在團(tuán)隊(duì)項(xiàng)目中,個人應(yīng)該如何選擇或者接受團(tuán)隊(duì)的工作分配?
首先個人應(yīng)該了解項(xiàng)目的大體結(jié)構(gòu),同時要了解各工作分配的模塊結(jié)構(gòu),大致了解各模塊需要的技術(shù)棧,并與自身已學(xué)技術(shù)相比較,如果大多符合,則可納入自身選擇的候選項(xiàng)中。在自身能力足夠完成多個模塊的內(nèi)容,要依據(jù)各模塊所需技術(shù)棧中自己所缺的部分,盡量選擇需要學(xué)習(xí)新技術(shù)的模塊,以增強(qiáng)自己的硬實(shí)力,但模塊的所缺技能不可過多,以免拖慢團(tuán)隊(duì)項(xiàng)目的工作進(jìn)度。
問題四
11.5.4 關(guān)于多人合作中的代碼如何同步?
多人合作時首先得先注意代碼規(guī)范的問題。其次,在用git等協(xié)同軟件時,先把各個子模塊的工作分配給指定的成員,分模塊進(jìn)行開發(fā),以減少合并時產(chǎn)生沖突的次數(shù),同時在開發(fā)一個全新的功能時創(chuàng)建一個全新的分支,這樣可以保證自己的功能分支在開發(fā)時,不會被其他人影響到,在開發(fā)完成后進(jìn)行合并或變基,每次push到遠(yuǎn)程倉庫之前,都先拉取最新的代碼,然后再進(jìn)行合并和推送。
問題五
3.4 低層次的問題能依賴工具解決么?
我認(rèn)為在剛剛?cè)腴T的時候,可以先使用工具進(jìn)行解決,但一定要清楚低層次的問題發(fā)生的原因,不可完全依賴于工具,因?yàn)楣ぞ叩讓右彩欠庋b了一些解決方案,優(yōu)質(zhì)的程序員一定要清楚問題真正的解決方案,才可能舉一反三,否則當(dāng)工具停止維護(hù)或工具本身出現(xiàn)兼容性問題,問題就不能解決了。
每個階段的收獲
需求階段
? 需求階段需要明確產(chǎn)品的功能和界面,需要討論完備,避免對于功能的理解產(chǎn)生偏差,對于一些復(fù)雜的業(yè)務(wù)邏輯,不能只停留在腦海中進(jìn)行推演,應(yīng)該將完整的業(yè)務(wù)邏輯通過流程圖的形式表現(xiàn)出來,否則在開發(fā)中期就會因?yàn)闃I(yè)務(wù)邏輯順序問題導(dǎo)致前后端出現(xiàn)分歧,不停的確認(rèn)對方的需求,影響后續(xù)開發(fā)的速度,通過本次軟工實(shí)踐,意識到了需求分析的重要性,也學(xué)會了需求分析的基本流程。
設(shè)計(jì)階段
?學(xué)習(xí)到了軟件工程開發(fā)中必需的原型設(shè)計(jì)和接口設(shè)計(jì)流程。接口設(shè)計(jì)階段主要就是進(jìn)行系統(tǒng)設(shè)計(jì)和數(shù)據(jù)庫設(shè)計(jì)了,根據(jù)需求階段提出的產(chǎn)品功能,分析其必需的接口,然后再進(jìn)行對應(yīng)的數(shù)據(jù)庫設(shè)計(jì)和系統(tǒng)設(shè)計(jì),這樣在接口設(shè)計(jì)階段也能夠更加深入地了解產(chǎn)品的功能,在原型設(shè)計(jì)階段就需要根據(jù)業(yè)務(wù)邏輯流程圖和設(shè)計(jì)的接口對各種UI和交互事件做詳細(xì)的描述,這樣不僅減少了前端在開發(fā)時推倒重做,也明確了后端對接口的詳細(xì)設(shè)計(jì)。設(shè)計(jì)階段的完善與否,直接導(dǎo)致了后面開發(fā)的效率高低,經(jīng)歷過一個優(yōu)秀的設(shè)計(jì)階段,確實(shí)能夠加快后續(xù)開發(fā)的速度。
實(shí)現(xiàn)階段
?構(gòu)建了一個小型的后端開發(fā)腳手架,在多人協(xié)同開發(fā)的過程中,很明顯的感到了優(yōu)秀的架構(gòu)顯著地提高了后端的開發(fā)效率,代碼的合并以及任務(wù)的分配都十分和諧,沒有遇到什么異常情況,同時也加深了對一些后端中間件的理解,接觸了一些其中很少用但是很好用的接口。項(xiàng)目的后期也深刻體會到了與前端聯(lián)調(diào)時遇到的困難,認(rèn)識到成員之間的交流真的很重要。
測試階段
?了解到了測試的重要性,不論是模塊開發(fā)時的單元測試,還是聯(lián)調(diào)時的系統(tǒng)測試,都是發(fā)現(xiàn)問題的重要階段,好的測試可以減少不必要的軟件缺陷,同時在此次實(shí)踐中,我還學(xué)會了使用postman、jmeter等測試工具,測試要貫穿軟件開發(fā)的整個生命周期,越早測試越早發(fā)現(xiàn)軟件的缺陷,修復(fù)起來就越輕松。
發(fā)布階段
?學(xué)習(xí)了打包部署的基本步驟,知道了項(xiàng)目部署到服務(wù)器的流程,以及問卷調(diào)查用戶的使用反饋。
心得
個人項(xiàng)目:深入學(xué)習(xí)了 Java 的輸入輸出流和管道相關(guān)的知識,以及多線程的使用,也認(rèn)識到了多線程編程的困難,很容易忘記需要保證變量的可見性。掌握了對JSON數(shù)據(jù)的解析以及一些測試方法,但是編碼能力還有待提高。
結(jié)對編程:學(xué)會了原型設(shè)計(jì)的流程,感受到了溝通的重要性,以及在項(xiàng)目的計(jì)劃階段就要考慮到工作量、個人能力以及時間的安排和管理,收獲主要就是學(xué)習(xí)了原型設(shè)計(jì)工具的使用以及vue2的深入學(xué)習(xí)。
團(tuán)隊(duì)項(xiàng)目:第一次參與多人的團(tuán)隊(duì)開發(fā),也是第一次參與了一款軟件從設(shè)計(jì)、編碼到發(fā)布的全過程。了解了團(tuán)隊(duì)如何分工、軟件的開發(fā)流程、也逐漸理解了軟件工程。自己的知識永遠(yuǎn)是不夠用的,任何時候都需要不斷學(xué)習(xí)和向他人學(xué)習(xí),積累了不少開發(fā)經(jīng)驗(yàn)。
自我評估
| 1 | 理解軟件工程師的職業(yè)道德規(guī)范和實(shí)踐要求,了解國情社情民情,理解軟件產(chǎn)品對社會、健康文化等影響,樹立積極向上的軟件開發(fā)理念 | 80 | 關(guān)于軟件產(chǎn)品對社會、健康文化等方面的影響可能沒法考慮的十分全面。 |
| 2 | 掌握需求分析的全過程,能辨別客戶表述的多樣化要求,熟練使用需求表達(dá)工具,能夠規(guī)范、準(zhǔn)確地表達(dá)客戶的需求,構(gòu)建需求分析模型。 | 90 | 需求分析階段是經(jīng)歷數(shù)次會議共同討論后確定產(chǎn)品的需求,最終我們成功地確定了需求,繪制出了原型界面。 |
| 3 | 掌握軟件開發(fā)的全過程,遵循體系結(jié)構(gòu)設(shè)計(jì)方法和基本設(shè)計(jì)原則,通過正式的技術(shù)評審,完成從體系結(jié)構(gòu)設(shè)計(jì)模型、數(shù)據(jù)設(shè)計(jì)模型和構(gòu)件級設(shè)計(jì)模型,形成面向高效可靠的服務(wù)組件設(shè)計(jì)方案或軟件系統(tǒng)設(shè)計(jì)方案。 | 90 | 設(shè)計(jì)開發(fā)階段,由我進(jìn)行后端項(xiàng)目架構(gòu)的設(shè)計(jì)和編碼,提高了后端小組開發(fā)人員的開發(fā)效率。 |
| 4 | 能夠執(zhí)行從組件到軟件系統(tǒng)的技術(shù)評測,具備設(shè)計(jì)模型的評判能力,具有創(chuàng)新設(shè)計(jì)意識,能夠優(yōu)選設(shè)計(jì)方案。 | 85 | 軟件系統(tǒng)的技術(shù)評測主要是通過軟件評測作業(yè),基本了解了軟件系統(tǒng)相關(guān)的技術(shù)評測方式 |
| 5 | 遵循軟件開發(fā)各階段文檔標(biāo)準(zhǔn),采用規(guī)范的表達(dá),掌握需求規(guī)格說明書、系統(tǒng)設(shè)計(jì)說明書、系統(tǒng)測試報告等文檔撰寫方法,具備與業(yè)界同行交流能力。 | 85 | 團(tuán)隊(duì)項(xiàng)目中,參與了后端單元測試、系統(tǒng)設(shè)計(jì)部分,系統(tǒng)測試部分的文檔編寫,但是因?yàn)闆]有對比參照,不能確定是否與業(yè)界同行進(jìn)行交流。 |
| 6 | 具有良好的團(tuán)隊(duì)意識和合作技能,能夠與其他成員開展有效的溝通和協(xié)作;能夠組織、協(xié)調(diào)或指揮團(tuán)隊(duì)開展工作。 | 90 | 在此次團(tuán)隊(duì)項(xiàng)目中,作為后端開發(fā)組組長,給開發(fā)成員進(jìn)行任務(wù)的分配、代碼的復(fù)審、協(xié)調(diào)各模塊開發(fā)進(jìn)度,積極與其他成員進(jìn)行交流和協(xié)作。 |
| 7 | 能夠辨別具體軟件項(xiàng)目管理中涉及的構(gòu)成要素,掌握軟件規(guī)模和工作量的估算方法,能夠選擇合適的工具規(guī)劃軟件進(jìn)度并對項(xiàng)目管理過程進(jìn)行配置,具備初步的管理復(fù)雜軟件工程項(xiàng)目的能力。 | 90 | 進(jìn)一步學(xué)習(xí)了git中的合并變基等功能進(jìn)行協(xié)同開發(fā),還使用了teambition進(jìn)行任務(wù)的分配和管理。 |
個人技術(shù)總結(jié)
個人技術(shù)總結(jié)——SpringSecurity基于JWT的動態(tài)權(quán)限驗(yàn)證
概述:絕大多數(shù)的軟件應(yīng)用都離不開權(quán)限安全,但是權(quán)限安全相關(guān)的代碼在每個項(xiàng)目中又十分類似,因此我就編寫了一個基于SpringSecurity的支持動態(tài)權(quán)限驗(yàn)證的權(quán)限安全模塊的腳手架,并應(yīng)用在我們的項(xiàng)目之中。
總結(jié)
以上是生活随笔為你收集整理的软件工程实践总结——程序员的自我修养的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汉字拼音相互转化(QT)
- 下一篇: 计算机网络中 mac地址的二进制位数,《