從.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,有興趣的能夠看看。
 
參考項目:
相關文章
相關標籤/搜索