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