從.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層,調用遠程服務,不依賴具體實現。
 
寫在最后
我將業務代碼刪除之后將項目放在了Github,地址: https://github.com/liuxx001/bird-java,有興趣的可以看看。
 
參考項目:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM