項目技術雜談

      自6月份離開老東家東軟以來,加入了一個創業團隊,從新開啓了新的工做範疇。6個月來,技術接觸了不少,基本上將以前熟悉的框架都拋棄了,主要基於SpringMVC來作web後端和系統服務端。離開以前的溫馨區,到一個暫新的環境,確定會有一段不太適應的階段,生活就是這樣,不把本身逼得狠一點兒,你永遠不會知道本身到底幾斤幾兩。引用最近看到的一句話,作爲開頭,與君共勉。( 爲了抵達明天,必須遠望後天,不然明天只是又一個今天。從今天到明天很難,從後天到明天較易。#後天觀#)。前端

    關於SpringMVC:jquery

    做爲喜歡極致簡單開發的我,真的是沒法喜歡上springMVC,雖然它已經極簡的減小了xml的配置,甚至已經能夠作到0配置,不知爲何,就是以爲很麻煩。另外,開發過程當中讓人頭疼的400錯誤,調試起來也很困難,也許看過源碼實現的人會對其強大的功能吸引,可是究竟有幾我的看過呢?nginx

    關於Mybatis:angularjs

    以前接觸的仍是老版本的ibatis,它給我最大的驚豔點,就是對單表操做可以使用Generator生成類來進行操做,方式很便捷。相比與老版本,無需配置文件,但註解是少不了的,也不是不少,可在接受程度內。 web

    關於分佈式設計:redis

   說到系統支持分佈式,都會給人一種高大上的感受,實際上無非作好以下幾點就好:數據進程級共享、各工做單元存活檢測。spring

   數據共享可使用NoSQL類中間件,是否須要持久化就看數據需求了。當前項目使用redis來進行數據共享,可簡單理解成key=value類存儲單元,value能夠是queue,json,或單純的字符串等。另外redis還支持sort排序,也就是對特定分類數據來進行按時間戳排序,讓我想到以前項目設計時若是將設備的位置信息存儲在redis中,會不會少了不少軌跡回放性能上的瓶頸點。json

   使用rabbitMQ的push、pull方式,解決系統推送需求,及模塊間關注數據的訂閱要求。bootstrap

    各工做單元存活檢測主要使用zookeeper,將一些業務數據放到持久化節點上,而臨時節點用作各節點活躍狀態監控源,各節點watch臨時節點來隨時準備有兄弟掛掉,後繼衝上頂替。後端

   說到分佈式設計,另外一個不得不涉及的地方就是負載均衡,F5類設備價格過高昂,不會有那些客戶願意掏錢來買,作產品的話,前期也不會考量使用。這時候使用軟負載也能夠知足,nginx支持反向代理,能夠作到對外屏蔽系統內部各功能模塊,也間接的作到了負載均衡的做用,根據客戶端請求中頭信息包含的關鍵屬性來進行一致性hash來作任務分發。lua插件開源社區也很活躍,不少功能均可直接獲取。

    關於前端:

    前端嘗試使用了angularjs,其獨特的MVVM雙向數據綁定功能,真的是很方便,開發思考方式和jquery比起來會有些不一樣。惟一遺憾的是,插件仍是不如jquey社區豐富,有不少功能還須要藉助jquery插件進行二次封裝成directive來進行使用。web效果主要仍是基於UI/UE設計和bootstrap來儘量的實現響應式佈局。

    忙完當前階段,將會繼續進行大數據相關的工做內容,如今大數據相關的人真的是很難招,數據科學家離咱們太遠,何況沒個3-5年專職工做經驗的人根本解決不了實際問題,真有這樣的人,也請不起。培養內部人員,纔是公司長久發展的關鍵。

相關文章
相關標籤/搜索