夏竹青 王竹婷 吳曉琴
摘要:《JavaEE技術》實驗教學環(huán)節(jié)在軟件工程專業(yè)培養(yǎng)應用型人才的目標中發(fā)揮著重要作用,但目前教學目標和教學效果的差距較大。對《JavaEE技術》實驗課程中存在的問題進行分析,并提出引入真實項目重新設計實驗內容,搭建代碼質量管理平臺進行代碼規(guī)范的實時教育,以及引入代碼版本管理工具SVN推進小組開發(fā)的順利進行等措施,提高教學質量。
關鍵詞:JavaEE技術;代碼規(guī)范;小組開發(fā);實驗教學;SVN
中圖分類號:G642? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)10-0169-02
1 引言
合肥學院以“地方性、應用型、國際化”為辦學定位,圍繞“應用型人才”培養(yǎng)方向,深化教育教學改革,教學環(huán)節(jié)更加突出強化實踐教學。我校的“JavaEE 技術”課程作為計算機及相關專業(yè)高年級必修課程,是一門技術性、專業(yè)性和實踐性都很強的課程[1],其教學目標是讓學生通過課程學習,具備進行企業(yè)級軟件開發(fā)的高級專業(yè)技能,畢業(yè)后能夠較快勝任企業(yè)的軟件開發(fā)工作。從課程的性質、教學目標到學校的辦學定位,都說明了課程實驗環(huán)節(jié)的重要性。本文對目前課程實驗中存在的若干問題進行了分析,提出了相應的解決方案。
2 JavaEE技術實驗教學存在的問題
2.1 實驗項目針對單個知識點進行設計
對Spring、SpringMVC和Mybatis等框架的熟練應用是Web人才的必備技能[2],JavaEE技術課程圍繞MVC模式的Web系統(tǒng)開發(fā)技術和框架展開。本課程的實驗通常是一次實驗圍繞一個知識點進行訓練,學生對單一知識點掌握較好,但多知識點綜合應用開發(fā)能力不足,另外實驗中接觸的都是很簡單的項目,對適用于體量較大項目的框架技術帶來的開發(fā)效率提升缺乏切身感受,學生常感覺殺雞焉用牛刀。
2.2 學生缺乏良好編碼規(guī)范
軟件系統(tǒng)的質量與效率離不開好的編程習慣,當開發(fā)小型項目時,為追求短期效益,常常率性而為。但隨著項目規(guī)模逐漸擴大,編碼規(guī)范就會逐步顯出它的重要性。軟件質量不僅依賴架構和項目管理,還跟代碼質量息息相關,代碼質量又與代碼整潔度成正比[3] 。規(guī)范整潔的代碼,既在質量上較為可靠,也為后期的維護、升級打下了良好的根基。
規(guī)范整潔的代碼則要求學生遵循一定的編碼規(guī)范。但在編程過程中,教師難以約束,學生常常率性而為,沒有良好的編碼習慣。究其原因,主要是編碼規(guī)范教育一直處于說教模式,教師精力有限,遇到不規(guī)范代碼難以一一及時指正。
2.3 小組合作開發(fā)項目效果不佳
目前編程類實驗課大都會設計小組合作開發(fā)項目,這類項目規(guī)模稍大,需要多個同學合作完成。但是由于沒有統(tǒng)一編碼規(guī)范,組員編碼風格不同,導致理解其他同學代碼花費的時間精力較多。另外共享和同步組員的代碼完全依賴手工傳輸,更新同步不及時,常出現(xiàn)代碼沖突,團隊合作效果不佳,效率低下。代碼整合階段問題頻發(fā),影響整體進度和實驗效果。
3 重新設計實驗項目
針對實驗項目只涉及單一知識點問題,深入企業(yè)調研,挖掘真實項目案例,對真實項目進行了裁剪,保證規(guī)模和難度在學生可以接受的范圍內,對實驗項目進行了重新設計。除了實驗一搭建實驗環(huán)境,之后的實驗均采用小組合作開發(fā)的方式對同一個項目采用不同的技術迭代開發(fā),項目分為三個模塊,每個模塊有若干功能。每組3~5人,根據(jù)學生能力差異,每1~2個同學完成一個模塊的設計開發(fā)。實驗圍繞中醫(yī)經(jīng)典處方管理系統(tǒng)展開。依次使用傳統(tǒng)MVC技術、Spring的依賴注入和面向切面編程、Mybatis技術和SpringMVC技術對中醫(yī)經(jīng)典處方管理系統(tǒng)進行開發(fā)和技術升級。采用了“穿新鞋走老路”的方法[4],讓學生體驗技術迭代的過程,并對照前面的開發(fā)經(jīng)歷,體驗新技術的優(yōu)勢和效率的提升。實驗項目設計如表1所示。
表1 實驗項目表
[實驗編號 實驗名稱 對應知識點 1 基于JSP+JavaBean+Servlet技術的中醫(yī)經(jīng)典處方管理系統(tǒng) 掌握jsp+javaBean+servlet技術開發(fā)MVC模式的Web程序的方法 2 基于Spring IOC的中醫(yī)經(jīng)典處方管理系統(tǒng) 掌握Spring依賴注入技術;能開發(fā)低耦合的軟件系統(tǒng) 3 中醫(yī)經(jīng)典處方管理系統(tǒng)的日志模塊開發(fā) 掌握基于XML和注解的AspectJ開發(fā)AOP程序的方法,具備面向切面編程能力 4 基于Mybatis框架的中醫(yī)經(jīng)典處方管理系統(tǒng) 掌握MyBatis程序的開發(fā)步驟;熟練開發(fā)動態(tài)sql和關聯(lián)查詢 5 基于SpringMVC框架的中醫(yī)經(jīng)典處方管理系統(tǒng) 掌握基于注解的Spring MVC應用程序的開發(fā)方法 ]
4 進行編碼規(guī)范的實時教育
4.1 搭建編碼規(guī)范實時教育平臺
傳統(tǒng)的說教式編碼規(guī)范教學效果一直不理想,原因有二,其一,編碼規(guī)范的條目較多,需要學生先記熟,但由于編碼經(jīng)驗不多,記熟的規(guī)則很難跟實際的編碼場景產(chǎn)生聯(lián)系。其二,對于初學者,靠自律去保證按照事先約定好的規(guī)范編碼,實現(xiàn)難度較大。那么就需要老師在學生提交代碼后去檢查,但是課程針對的是企業(yè)級軟件項目開發(fā),代碼體量較大,依靠老師個人去檢查大量代碼的規(guī)范性,一樣難以完成。針對上述問題,走訪了本地的軟件企業(yè),學習企業(yè)先進的代碼質量管理辦法,引入了開源的sonarQube代碼質量管理平臺,并搭載目前業(yè)界推崇的阿里Java編碼規(guī)約,通過該平臺對學生的編碼規(guī)范進行實時教育。
sonarQube是一款開源代碼質量管理工具[5],也是技術債務管控的主流工具,可以檢測代碼質量問題,開發(fā)Sonar插件可以擴展檢測功能[6]。采用sonarQube7.0作為服務器端,然后在開源的sonar pmd插件項目中對阿里編程規(guī)約的開源p3c-pmd項目做了融合,使服務器支持阿里編程規(guī)約。學生在編碼過程中使用sonarlint插件和服務器建立連接,sonarlint自動按照老師在服務器上配置的編碼規(guī)則對開發(fā)工具(如eclipse或idea) 中編寫的代碼進行實時檢測,保證了學生及時發(fā)現(xiàn)問題,即時修正。sonar-scanner客戶端則用于學生階段性提交代碼檢測結果到服務器,方便老師統(tǒng)計跟進,督促學生們養(yǎng)成良好的編碼習慣。
4.2 代碼質量實時教育的評測
代碼質量管理平臺搭建起來后,教師在代碼質量管理中的主要工作轉移到督促學生使用平臺的工具,另外通過工具提供的統(tǒng)計分析功能,記錄學生的代碼規(guī)范程度,并將代碼規(guī)范程度列入課程的評分系統(tǒng)中。在每次實驗課結束的時候,要求學生提交代碼質量分析結果,對于綜合性實驗所占課時較多,由多次提交的結果取均值進行考核。
5 推動團隊合作開發(fā)順利開展
5.1 工欲善其事 必先利其器
小組開發(fā)是培養(yǎng)學生團隊合作,溝通等能力的重要手段,但在合作開發(fā)中,學生的編碼規(guī)范不統(tǒng)一,代碼共享不方便,同學之間經(jīng)常出現(xiàn)代碼版本不一致,導致項目進展不順。編碼規(guī)范問題可以通過上面的sonarQube平臺解決。代碼版本控制問題,引入了企業(yè)協(xié)作開發(fā)常用的版本控制工具SVN進行代碼版本管理,在校園網(wǎng)內搭建SVN服務器,對學生的代碼進行統(tǒng)一管理。版本控制是企業(yè)進行項目開發(fā)與管理的標準做法,能追蹤項目從開始到結束的整個過程[7]。
5.2 基于版本控制工具SVN的小組開發(fā)
1) 版本管理平臺信息配置
在校園網(wǎng)內搭建SVN服務器,然后建立版本管理知識庫,在知識庫中每個小組建立一個目錄。然后為每個同學建立賬號,并分配訪問(讀寫) 自己所在組目錄的權限。
2) 學生機軟件環(huán)境準備
每個同學在開發(fā)設備上安裝版本管理工具SVN客戶端,也可以在開發(fā)工具eclipse或idea中安裝SVN插件,通過該工具連接SVN服務器,完成同步、提交代碼等操作。
3) 實驗過程
組長在每次實驗前,事先建立工程,上傳到SVN服務器自己所在組目錄下,組員同步組長的工程。然后每個組員在同步的工程中根據(jù)分工進行設計開發(fā)。
每進行到一個項目階段,組員及時上傳代碼,對于公共部分代碼一旦修改完成,立即上傳。同時養(yǎng)成習慣,修改某個公共類之前一定要先從SVN服務器同步代碼,另外SVN也提供了沖突代碼的解決辦法。在這個過程中,組員的代碼可以保持一致,另外發(fā)現(xiàn)公共部分代碼被修改,可以及時交流,保障了小組開發(fā)的順利進行。
6 結束語
本文分析了《JavaEE技術》課程實驗教學中實驗項目設計、學生編碼規(guī)范和小組開發(fā)三個方面存在的問題,并針對存在的問題提出了相應的解決方案,改善了教學效果,提高了教學質量。
參考文獻:
[1] 羅如為.基于項目驅動的JavaEE框架技術實踐教學改革探索——以湖南人文科技學院為例[J].湖南人文科技學院學報,2018,35(5):69-72.
[2] 鄧丹君,紀鵬,倪波,等.工程教育認證背景下JavaEE課程教學改革[J].軟件導刊(教育技術),2019,18(8):56-57.
[3] 曹娜.代碼整潔與代碼質量研究[J].軟件導刊,2013,12(10):38-40.
[4] 馮永安,王永貴,邱云飛,等.“鏈”式教學模式下Java Web 課程教學改革與實踐[J].計算機教育,2020(3):145-147.
[5] 蔡建軍,任女爾,魏金津.基于Sonar的代碼質量檢測技術研究[J].電腦知識與技術,2019,15(14):195-199.
[6] 曾新勵.基于SonarQube平臺提升企業(yè)軟件項目質量的應用研究[J].電腦知識與技術,2019,15(11):78-80.
[7] 王海豐,李金霞,張鯤.基于SVN版本控制的程序設計類課程教學研究[J].軟件,2018,39(4):218-221.
【通聯(lián)編輯:王力】
收稿日期:2021-06-10
基金項目:2020安徽省教育廳教育教學研究一般項目(2020jyxm1598) ;2020年安徽省線上教學示范高校項目(2020xssfgx14) ;2019 年度省級軟件技術系列課程教學團隊(2019jxtd096) ;2019 年度安徽省教育廳教育教學研究一般項目(2019jyxm0385) ;2019 年度合肥學院模塊化教材建設項目(2019hfmkjc18)
作者簡介:夏竹青(1984—) ,女,安徽懷寧人,碩士,合肥學院人工智能與大數(shù)據(jù)學院實驗師,研究方向為計算機應用技術和人工智能。