魏 鋼
(錦州師范高等專科學校 計算機系,遼寧錦州121000)
隨著移動互聯網技術的不斷發展,涌現出APP、H5、微信小程序等眾多應用程序,這些應用程序的特點是前端應用開發差異較大,后端應用開發差異較小.為了降低開發成本,縮短開發周期,實現后端代碼復用,企業應用逐步轉變為Web前后端分離開發模式[1].Java作為一門強大的后端編程語言,由于市場應用份額比例較大,需要相關軟件人才較多,因此被列為計算機軟件技術專業主要教學語言.從2005年開始推廣至今,Java開發工具包從Java 5更新到Java 14,開發技術的不斷更新促進企業用人標準不斷提升,這對計算機軟件技術專業人才培養提出更高要求.為了適應企業用人需求,提高人才培養質量,必須及時解決Java Web課程教學中存在的問題,保持與企業用人標準同步,本文主要從Web后端開發技術視角探討高職計算機軟件專業Java Web教學改革,以期培養出優秀的軟件專業技術人才.
當前,比較流行的IDE開發工具有Eclipse、MyEclipse和IntelliJ IDEA.Eclipse開源免費,通過插件安裝可以實現Java各個領域應用開發.MyEclipse屬于收費軟件,默認集成了眾多插件,不用額外安裝插件就可以實現Java各個領域應用開發.IDEA是近幾年流行起來的Java IDE集成開發環境,目前被業界稱為最優秀的Java開發工具,官網提供社區版和企業版兩種版本下載,社區版可以免費使用,企業版需要付費使用.目前,多數高校的計算機軟件專業選擇Eclipse進行Java基礎教學,Java Web開發階段更換為Eclipse JEE或者 MyEclipse,這種選擇比較普遍.但隨著IDEA開發工具的出現,市場使用份額已經遠超Eclipse,學生僅會使用Eclipse,畢業后到新的崗位上還要熟悉新的開發工具,額外增加了學習負擔.
Java開發語言從1995年問世至今已有二十多年的發展史,開發版本從Java 1.0更新到Java 14,并且保持以六個月為周期的發展速度進行更新,預計到2022年3月版本將升級到Java 17.在這么多版本中,只有Java 8、Java 11和未來的Java 17是長期支持版本(LTS),Oracle會支持3年,其他的只會支持6個月,新版本一出,就會放棄對老版本的技術支持.根據學生問卷調查顯示,大部分學生都選擇使用Java 8或更高版本,但所會技術大多仍然停留在Java 7或更低版本,這種現象說明大多數高校Java教學版本較低.陳舊的代碼編寫技術和狹隘的知識體系嚴重影響到軟件人才的培養質量.
Servlet/JSP是較早出現的Java Web開發技術,大多數高校都把它作為主要教學內容.通過應用MVC開發模式,使用JSP制作網頁實現人機交互,Servlet接收業務請求并分配給業務邏輯組件進行處理,業務邏輯組件調用DAO組件實現對關系數據庫的操作.這種分層、組件化的開發模式降低了組件之間的依賴,體現了高內聚、低耦合的軟件工程開發思想.但是隨著移動互聯技術的不斷發展,用戶網絡訪問多由PC轉為手機,人機交互方式由JSP頁面轉變為APP或微信小程序,開發者需要在Android或IOS系統上重新設計一套UI,應用系統需要進行重構,因此,陳舊的Java Web教學內容已不能滿足企業需求.
應用程序開發結束后,教師需要指導學生對應用程序進行部署和測試.部署方法大多是在一個局域網環境下配置一臺服務器,將應用程序部署到服務器上,然后通過其他客戶機進行訪問,測試應用程序功能是否能夠實現.這種部署和測試方法受到地理、服務器和網絡等多種因素的限制,方法單一,未能充分利用現有移動互聯和云服務器技術.
“工欲善其事,必先利其器”,選擇良好的IDE開發工具是程序開發者保障開發效率的先決條件.為了實現與企業需求對接,必須培養學生熟練使用IDEA開發工具進行應用程序開發[2].但由于Eclipse仍然占有一定比例的市場份額,為了讓學生熟練使用兩種工具,對于Java編程基礎課仍然可以選用Eclipse,Java Web開發課則更換為IDEA.之所以提倡使用IDEA,打破對Eclipse的依賴是因為IDEA開發工具更高效,它在智能代碼助手、代碼自動提示、重構、J2EE支持、Ant、JUnit、CVS整合、代碼審查、創新的GUI設計等方面的功能都是超常的.對先進開發工具的熟練使用會讓學生順利適應企業用人需求,讓程序開發變得更加便利.
Java 8于2014年發行,在2019年底對Java版本應用調查顯示,使用Java 8的公司市場占有量高達80%,這一現象說明版本并不是越高越好[3],而是越穩定越好.Java教學應該以Java 8或更高版本作為教學基礎,在原有Java編程基礎上引入接口默認方法、函數接口、Lambda表達式、方法引用、新的日期和時間API和Stream方式處理系列元素等Java 8新特性.此外,為了提高學生編程水平,引入反射和動態代理、泛型、注解、解析Xml文件、Java與Json數據間的序列化和反序列化等重要Java技術,為后續的Java Web開發課程的學習奠定堅實的基礎.
由于前端開發不再依賴JSP,原有教學內容中可以去除JSP.為了提高學生Java Web后端開發技術水平,教學內容中添加Java Web開發框架.持久層引入MyBatis框架實現JDBC的封裝和ORM映射,簡化DAO層和數據庫訪問層的開發.業務邏輯層引入Spring框架,使用IOC和AOP解決組件之間依賴注入的問題和實現事務的聲明式管理.控制層使用Spring MVC框架,遵守Restful設計風格,為前端訪問提供訪問資源,前后端采用JSON格式數據進行收發.由于Java Web開發中引入SSM框架技術,整個項目的構建將變得比較繁瑣,不僅要手動導入大量Jar包,還要對各個框架進行整合、發布和測試,Spring框架對各個組件依賴配置也加大了程序員的工作量[4].為了解決以上問題,Java Web教學內容還要額外添加Maven和Spring Boot.通過使用Maven來構建Java Web項目,可以實現項目構建的自動化,從資源庫中自動取出需要的Jar包,免去了每次都要手動下載,然后復制,再添加引用等重復操作,極大加快了程序的開發效率.Spring Boot用來簡化Spring應用的初始搭建和開發過程,它內嵌了Tomcat、Jetty等容器,不用發布和部署就能運行,提供的POM簡化了Maven的配置,采用約定優先配置的思想,應用注解技術,減少了Xml配置,取消了樣板化的配置,減少了重復工作,讓程序員能夠更加關注于業務邏輯的實現[5].
移動互聯和云服務器的使用可以解決傳統方法的弊端.通過購買云服務器,解決只能使用局域網服務器的限制.阿里云ECS6服務器性價比較高,可以完美解決師生教學和學習過程中應用程序部署問題.手機連接網絡不受地理限制,可以無線接入網絡訪問云服務器,完美解決地理和網絡限制問題,實現隨時隨地進行應用程序測試.通過移動互聯和云服務器的應用,學生不僅可以自己看到實踐后成果,還可以和朋友、同學、家人共同分享,增加了項目開發的成就感,激發學生對Java Web的開發學習興趣.
本文針對軟件技術專業現有狀況,結合Java Web教學過程中的問題,充分利用現有技術從改進IDE開發工具、選擇合適的Java版本教學、優化Java Web教學內容、豐富應用程序部署和測試方法四個方面進行了教學改革.經過幾年來在錦州師范高等專科學校Java Web課程中的具體實施,取得了良好的教學效果,軟件技術專業學生多次在“藍橋杯”程序設計大賽中獲得省賽一等獎.通過教學改革,激發了學生的學習興趣,擴大了軟件專業學生就業對口率,使培養出來的學生適應了逐步提升的企業用人標準.此外,Spring Cloud微服務架構技術如何融入高職Java Web教學,Linux課程整合云服務器使用等也非常具有研究價值,這些都是下一步教學改革的重點.總之,只有不斷進行Java Web后端教學內容改革,加強學生核心能力培養,才能為社會培養出更多、更優秀的專業人才.