前言html
上一篇《個人技能樹》文章分享了個人技能成長過程,還未完成,今天繼續跟你們分享。前端
01node
個人技能樹jquery
個人當前的技能樹:
ajax
其中,標註爲黃色旗幟的是基本掌握,標註爲紅色旗幟的爲使用熟練。未標註的只是瞭解。數據庫
上篇分享完了C#部分,下面就根據個人學習歷程的前後繼續講。express
02後端
前端開發設計模式
在上家公司上班期間,由於公司產品選型基於Winform+Devexpress(後面簡稱Dev),因此我對Winform和Dev都很是熟悉。我把Winform全部控件所有扒了個遍,而爲了熟悉Dev,我又把Dev的官網文檔所有看了遍,甚至最後我開發出了基於Dev的代碼生成工具,即根據一個已定義好的Model視圖(POCO類ViewModel),經過工具自動生成模塊的列表頁面,編輯頁面。編輯頁面上的主要特性也支持自動生成,好比下拉列表,下拉數窗等。固然後來我又迅速轉向了Web開發,因此這塊如今也放棄掉了。前端框架
HTML+JavaScript+JQuery+Bootstrap:
由於在項目實施過程當中,深感Winform部署不便,並且客戶每每鍾情於Web應用,這讓我下定決心轉向Web,那是17年初。但我不想用Webform,不想用.net Mvc,這些都落後了,甚至Bootstrap也相對落後了。而要遇上技術新潮流,雖然步子應該大一點,但對於一個還不熟悉Web的人來講,也要保持對技術發展的認知連續性(這始終是我對技術學習的一個原則性觀點),因此我選擇了基於ajax的前端框架來實現PC端管理系統,這就須要學習:HTML+JavaScript+JQuery+Bootstrap。我將以前的產品基於這個框架進行了重寫。
weui+jquery+knockout:
後來,由於要開發一個基於微信公衆號的網頁App,這種App比我當前的PC端前端框架須要更靈活,更輕量的實現和更快速的性能,這又須要引入新的技術。如今業界前端三大框架,Vue,Angular,React,我看了下,要學不容易,由於他們的典型開發環境,還要基於nodejs,開發模式,開發工具都要大換,這個步子邁太大了(但後來發現,實際上並不必定須要基於nodejs,以及換開發工具)。最後我選擇了先邁一小步,選擇knockout,採用了weui+jquery+knockout的組合。
話說knockout也是微軟mvc框架推薦的前端開發工具,在VS2012生成mvc的腳手架裏,就默認包含了knockout和jquery。學習knockout使得我對mvvm的概念有了更直觀的認識,使得後來再學Angular的時候,很是順利,有一種「哦!Angular的這個和那個功能,能解決knockout的這個和那個問題的感悟」。而jquery是經典,必須得學,學習也不難。
對於JavaScript的學習,和我學C#同樣,看經典書籍《JavaScript權威指南》,這個書我在06年就看過,後來中斷了。有時間就繼續看,補課。如今還沒看完。
對於Bootstrap,雖然在用,但瞭解不深,屬於依樣畫葫蘆,碰到問題找百度的階段。如今新的前端框架都有本身的樣式庫,不必定選擇Bootstrap,它可能有點落後了,但我仍是決定,在PC端的管理系統,會繼續使用Bootstrap,由於它也是了不得的經典,在PC端的管理系統來講也足夠用了,值得繼續深刻學習和應用。
Angular+Inoic+Cordova+NodeJs:
在完成了微信公號的開發後,有了必定的時間,我開始準備強化前端的能力,開發真正基於手機的APP,我想實現相同的代碼可以跨平臺,所以在Angular和React之間選型。最後我選擇了Angular。這也是基於我當前的技術棧的選擇,可能有兩點促成了個人選擇,一是,有人說「Angular適合作後端開發的人來學習,而React適合作前端的人來學習」。我後來學習了Angular,以爲有必定道理,由於使用Angular這種mvvm框架,實際上差很少就是以開發Winform的方式開發Web頁面,那是比較容易理解了。二是,有人說React開發時,仍是要寫比較多的本地代碼(基於Andriod和IOS),這又對技術儲備提出了新的要求,雖然當時我已經能作Android開發,但講到深度理解,那還不夠。
學習Angular也走了彎路。由於Angular1.x和Angular差異極大。我研究的心態一上來,把二者都學習了一遍,雖然花費時間,但確實是挺過癮的。能夠說,Angular1.x是個設計精妙的框架,而Angular則是返璞歸真,有大成之氣。固然,要開發Angular,同時也要學習nodejs的使用和js組件化開發的新思路。
要開發App,只有Angular還不夠,怎麼調用本地功能?這就引入了Ionic,Ionic基於Angular,封裝出本身的一套控件,並集成了cordova來調用本地功能。這樣,要開發前端的應用,我選擇的技術組合是:NodeJs +Angular+Inoic+Cordova。
對於前端開發,到如今爲止,我仍是隻學到了剛入門,實際上,在用Ionic作項目開發時,我趟了幾好個坑,掉進去爬不上來了,所以暫時放棄,用Android原生的App先實現功能。有空了會繼續嘗試。
另外,我對桌面應用的跨平臺也有興趣,通過了解,發現electron框架是個不錯的選擇,並且electron能夠結合angular和ionic,使得本身的多種技能可以綜合使用,很是不錯。
03
Java開發
Java+Velocity+Mybatis:
實際上,我原本沒想去搞Java。由於.Net,前端,Java一塊兒搞太累了。對於一個應用來講,後端.Net,PC前端Bootstrap+JQuery,移動端Ionic,已經足夠了。但由於一個機緣,參與了朋友的一個Java項目,又把Java給撿起來了(06年前曾經作過一兩年Java開發,那時候最流行的仍是JSF,不會😊)。經過這個項目,對Java更加熟悉了一些,也接觸到一些新的框架好比velocity,mybatis。
Java Android:
以後,對Java技術新的需求又來了,須要給客戶開發App,從而又開始從Java Web轉向Java Android。因爲項目緊張,我生生的經過「先外包,再學習」的方式,完成了對Android App開發的瞭解。有了一個樣板,後續我又本身開發了多個基於Android的App。
看來還講不完,後面還有數據庫方面的技術,以及對設計模式的學習和理解,放第三部分講。
以爲文章有意義的話,請動動手指,分享給朋友一塊兒來共同窗習進步。
歡迎關注本人微信公衆號,更及時的關注最新文章(每週三篇原創文章,以及多篇專題文章):