1. 程式人生 > >從.net到java,記錄下這三個月的工作

從.net到java,記錄下這三個月的工作

從事.NET開發已經4個年頭,經過十餘個專案的學習與沉澱,終於有了一套自己熟悉並且相對完善的技術體系,面對未知,不再懼怕。期間完成並廣泛用於公司專案的作品包括:
  1. abp的二次開發框架BodeAbp
  2. 基於owin的sso系統
  3. 全自動資料表格react與jquery版
  4. 通用的屬性系統
慢慢的發現開發變得簡單,感覺所有的業務需求都好像一種機械的重複,我似乎正在走進舒適區。然而技術海洋其深遠遼闊遠不是我腹中那三兩滴墨水可以丈量,我要走的路還很長,恰逢公司五月啟動了一個java平臺網站的開發,而現有的技術團隊都是.net,我們面臨著極大的挑戰。其中技術選型、開發框架的搭建都是我需要解決的問題,踏坑無數,又在坑裡浴火重生。從.net到java,不是為了轉型,而是豐富自己。 萬事開頭難,在.net技術體系中摸爬滾打了幾年之後初次接觸到java,甚至連編輯器怎麼使用我都是懵逼的,好在有萬能的搜尋引擎,經過兩天瘋狂的資料查詢以及各種莫名其妙的內心掙扎。最終的技術選型為:
  • 開發工具:idea
  • web框架:spring mvc
  • orm:mybatis及其增強工具mybatis-plus
  • 日誌:slf4j + log4j
  • 快取:redis
準備工作 準備工作主要是JAVA開發環境的搭建,懷念.net一鍵安裝visual studio的日子,主要工作有:
  • JDK安裝
  • JRE安裝
  • Tomcat安裝
  • idea的安裝以及破解
  • maven安裝以及國內映象的配置
  • redis的安裝
maven是java的包管理器,類似.net的nuget,前端的npm與yarn。 後來集成了dubbo服務框架,就還需要dubbo-admin的部署以及zookeeper的安裝。 開發過程 首次使用java開發專案,過程中遇到的問題真的是多不勝數,一個xml配置異常就讓我糾結兩天都不能解決,最終不得不刪除專案重頭再來,整個過程中像這樣整個專案建了刪,刪了再建經歷5次左右終於有了一個可以使用的簡易開發框架,可以給他們寫業務程式碼了。 得益於.net工作對於web開發的認知,在經過了接近兩週的陣痛期之後很快速的就上手了,遇到問題通過搜尋引擎很快就能解決,很多思路是相通的,只是實現方式的差別而已,我們的開發速度也在逐漸的加快,期間也修復了不少開發框架中的BUG。 兩個月過去,不斷的踩坑填坑,不斷的重構專案,開發框架慢慢的趨於穩定,然而我們由.net切換到java,肯定不是單純的換個新語言體驗下生活,更多的是為了java體系中那些成熟的分散式解決方案(比如dubbo、spring cloud等),然後又開始了新一輪的陣痛期,期間專案結構發生過巨大的變化,就順便又進行了一次大的重構,但此時對於java我解決問題的能力已經要比之前好多了,整合dubbo的過程中,遇到的問題幾乎都在兩個小時內都解決了。 上週末,dubbo整合完畢,測試通過,開發幾乎和以前一樣。雖然是站在巨人的肩膀上搭建了我的第一個分散式應用,但是其完成時的喜悅依然是美好的。我也由此看到了以前搭建的.net框架的一些不足之處,算是另一種形式的反哺吧。 最終成果
整個專案結構在開發過程中不斷的重構,重構過程中集成了dubbo服務框架,最終如下圖所示: cczcrv-core:包括各種抽象基類與工具類、快取的實現等。 cczcrv-service-common:依賴cczcrv-core,包括所有服務介面、DTO、Model的定義。 cczcrv-service-xxx:依賴cczcrv-core、cczcrv-service-common,服務的實現。每個模組均可叢集部署,可擁有自己的資料庫,可單獨做讀寫分離等。 cczcrv-web-website:依賴cczcrv-core、cczcrv-service-common,web層,呼叫遠端服務,不依賴具體實現。 寫在最後
參考專案: