目錄php
今天是2018年的最後一天,獨自一人關上房門,靜坐回想一年來的總總,看成總結吧。
做爲傳統的it公司,不是互聯網企業,能逐漸轉型到各類流行的技術,不容易。若是恰好看到此文章的您是互聯網公司的,請不要見笑。css
微服務近兩年很火,特別是spring推出了spring cloud後。2016年用的人很少,因此市面只是零星出了幾本書籍,到了2017年,通過了一年多的使用,用的公司多了,書也多了,2018年出了更多的spring cloud書,雖然不少內容類似,但也能夠看出火爆。前端
版本更新也很是快,從以前的config+eureka+zuul,到今年zuul從1升級2,但spring cloud官方卻推出gateway,而且不支持zuul2。vue
無論怎樣,我終於用spring cloud實現了一個系統。它涉及寫代碼的很少,更多的是配置。而大部分的配置,都是我來弄的,也算是一種小幸運吧。java
有些奇怪的是,很多的人把微服務和spring boot總拉到一塊,雖然你要使用spring cloud就必須得使用spring boot,但不管如何,boot只是spring的簡化與集成,它爲何是微服務呢?好比市面上有一本書名爲使用spring boot構建微服務;還有一次會議上,一個經理說:前臺用vuejs實現,後臺我們就用微服務實現吧,呃,不須要用spring cloud這麼複雜,就用spring boot吧。node
可能你們想說的是RESTful api吧,這個spring mvc裏就有了,並非真正的微服務,可能錯的人多了,這樣稱呼也是對的吧。python
dubbo是很早就有了,2015年的項目我就接觸過,雖然我在項目裏沒有真正的寫dubbo代碼。搞不懂是dubbo推進了微服務仍是微服務帶旺了dubbo。今年感受dubbo也發展的不錯,也推出了spring cloud dubbo的集成。公司也有用,可是RPC寫起代碼我本身以爲仍是比較麻煩,定義interface,打成jar包提供給外。也許天生就沒有rest優雅,畢竟關注的是效率。mysql
雖然據說也提供微服務,但用起來好像更偏向於容器那一塊,今年我沒有機會接觸到,看看明年公司是否有機會給我弄弄這個。react
一個東西火了以後,一切都好說。華爲也推出了微服務,有技術沉澱就是好,說弄就弄出來。晚舟被抓沒事,我們技術跟上就行。android
微軟也出了微服務,不過沒太關注.net發展,不是很清楚細節。
今年公司大力在推。基本做爲首要的前端框架,不管pc端仍是移動端。大把大把的項目在用。用的基本都是Vue2,好在。1和2的差距仍是有些的。若是在寫2的代碼,拿着一本1的書在看,估計比較難受。Vue3也出來了,有什麼新變化呢?
和react、angular這三巨頭,react仍是佔有率最大,可是增加勢頭卻比不上vue。vue有可能未來超越react嗎?雖然尤雨溪當時在google,可是畢竟是國人,如今也回來了,vue也入選osc了,若是它能厲害點,仍是開心一點。開源中國去年它還排第四,今年竟然是冠軍了。
這名字。。。我總當作layer,或者和不少相似的一大把ui框架名字很類似:ligerui、easyui等等。但它居然在2017年ocs排名第一!雖然今年倒退到第四,可是估計國內用的項目仍是很多的。不少後端的人都說好用。但同事卻有的說很差,究竟好很差?看來我要再努力,多參與。
想不到這麼多年了,在ui、css上這框架仍是這麼火。不知道和國內的一樣比較流行的element好比何,都是柵格系統。
這三個框架,今年都沒能深刻弄,2019年我要在前端技術上再積累多一點,不要老搞後端的,否則領導分配個前端的任務給我我還不會,太丟人了。
不該該放這。隨便吧。模板,今年用的很少,明年可能也逐漸被vue替換吧?
終於轉型ssm了!你沒聽錯,我今年以前並不會spring和mybatis(好久前用過,包括hibernate,可是那時候都是配置xml的,這麼多年了,連xml裏是啥都不記得了)。
S所表明的spring已經基本都默認用spring boot替代了。第一個的S也早不是struts1或2,如今沒有新項目不用spring mvc了把?
spring各類註解,學起來很爽。但剛開始仍是挺難,特別mvc那塊,涉及web。mybatis確實沒有hibernate有技術含量,不過,好用就好了,應對複雜業務。
接着,該輪到數據庫上場了。
mycat在2017年仍是很不錯的,可是在今年卻連osc的前20都進不了。可能你們確實以爲bug有點多吧。我用了了父子表,居然有事務的bug,想該源碼,又不知道怎麼改,項目進度壓力在那,沒時間慢慢看。後來放棄了父子表就行了,雖然要xml里加個rule而且不能關聯表查詢。(謝謝張哈希提供了一點幫助)
QQ羣也是一個莫名其妙的存在,入羣要交30元。我很驚訝一個開源的軟件要交錢入羣。雖然我不知道原因。
但做爲國內的開源分佈式mysql解決方案,而且基本是惟一的解決方案,仍是不錯的。我很想知道,你們是怎麼用mysql的?不用mycat,難道都是本身公司造一個輪子,你們都這麼厲害?
我今年終於認真的用mysql進行開發了,以前幾年都是在打醬油。細細研究,和oracle差異巨大。建表時每一個字段的定義都有講究,還有json格式,json,是一個好東西,出如今各處。
連數據庫,國內你們應該都用這個吧?新項目不多用DBCP了吧?支持下阿里仍是不錯的。
五種數據類型我在一個項目裏用了四種,zset之後會有機會的。我從沒用過redis,也沒寫過代碼,可是你們卻用我設計的redis來開發,還沒發現什麼問題,很是神奇,redis是一個好工具。集羣和非集羣還須要繼續學習,分別用Jedis和JedsCluster操做。
同事在用,所謂文檔,不少是json、或者圖片吧?明年看看是否能夠接觸下。
消息隊列居然單獨一章節,很神奇。多年前,只知道jms。
kafka和RabbitMQ仍是選擇了前者。效率優先。rocketmq那些就更沒機會了。kafka的主題和分區怎麼定,個人經驗仍是欠缺,多向同事學習,畢竟搞了幾十個仍是上百個broker。大數據量,大併發纔有意思。須要寫磁盤的,爲何還能這麼高效?
2018年apacke雖然繼續第一,但nginx也不弱,第二。並且增加勢頭第一。apache主要是國外php用因此纔多吧?國內java的世界,估計nginx更火。
剛剛幾天前用了最新的1.14.2,前幾月還用1.12.幾,還有漏洞,nginx的發展也不慢。
細細看,功能還很多:反向代理、rewrite、緩存等等。學習起來真的不比tomcat簡單,反而更難,特別若是用lua開發,基於openresty。
開始弄,走了很多彎路。keepalived+nginx是最成熟的方案了吧,若是不用F5硬件負載的話。keepalived相對簡單不少,只要掌握了虛擬ip,和防火牆的配置注意事項。今年終於用上了這個不算新的技術,不錯。
spring boot默認支持的三劍客。既然必需要用tomcat,那weblogic和Websphere就能夠歇歇了。我真正須要拿起多年的tomcat6的書籍看看。雖然我在用的是tomcat9。
session共享是用tomcat cluster配置,仍是用更高效的redis?都和Weblogic差異很大。
基於nio和少佔用內存,undertow和jetty也是能夠嘗試。謝謝阿里的許進和Lovnx他們給個人一點提示。
終於用上java8了,不容易。緣由大概就是spring cloud不支持java6。既然升,沒理由只升到7而已。惋惜oracle立刻就說java8要收費。總不能停留在java8的某一個小版本吧?
公司也許會找人基於openjdk來一個的,我以爲。會不會找我呢?
或者改用go?net?不太可能。改了也沒啥,我也挺有興趣。
java8的lambda頗有意思,在多線程、集合和打印日誌都嘗試了,調試是一個麻煩事。java9和java10是否是都不太火?
你們搞機器學習和深度學習的都在談論,但咱們也有人用來shell。是的,也是一個不錯的選擇,我也這麼幹了。比寫shell舒服不少。解析性的語言學習成本極低。適合搞數學的人拿來就用。
可是安裝包是一個很是麻煩的事情,jar簡單不少。python2和python3也在各個平臺不同。
代碼裏你們寫的各類let、const、imort、require開始時把我搞暈了,我技術太差,要不斷學習。
原本想把nodejs放在web服務器裏寫,想一想又感受不對。仍是放這。
也許是nodejs推進了es6吧?若是沒有了nodejs的出現會怎樣?npm、webpack這些還會不會出現呢?不知道。我只知道es6裏的promise、暫時性死區等等很難理解,要不斷看書。
這兩年愈來愈重要。幾年前是不多聽見https的,因此傳統的、技術落後的公司,也不會錯過https的技術浪潮。安全很重要。
買證書、在nginx上配置;又或者用jdk、openssl等生成自簽名。很好玩。
加密的領域,國內慢慢起來了,國密不比什麼aes、rsa差,中國人的數學原本就很好。就看規範、標準的制定和推廣策略行不行了。
我用sm4寫了一個jar,晚點打算用android裏很流行的混淆技術用Intellij混淆成abc;又用oracle寫了一個基於aes+填充標準5的別人看不見我源碼的function,感受很神祕嘛。惋惜oracle裏沒有國密。
開始搞敏捷了。很痛苦。每天晨會,卻沒有scrum裏的8小時,也沒有xp裏的兩我的一塊兒寫代碼能夠偷偷懶。唉:)
好像開始用了,可是我等了一年,這位同事尚未幫我配置好,沒看到。
同樣,白等了一年。
早就用了,今年算是平民化了。Gradle算是頹下去吧?業界感受勢頭不行的?
nexus各團隊也搭建很多。
maven我感受本身精通了,其實還有不少不會的。
開始替代svn了。搭建了各類各類的gitlab。[git],這個讀音你們要讀正確哦。
沒看到,估計在某個團隊的某個角落裏運行中。但沒有喇叭嚇我,沒有可視化屏幕。
這些東東放devops不知道對不對,放在沒地方放,放這把。我對這些沒啥興趣,幾年前都弄過了,也沒什麼技術含量。
沒有不在用的吧?但我卻還不會。我對本身說:Danni,你要趕忙學啊。是的。
否則一會兒要發佈100臺機器怎麼辦?趕忙看看前天同事寫好發個人dockerfile。
年初我就不該該傻傻的寫scp的shell,也不該該直接用eureka的rest api來啓停發佈。
mesos、k8s這些對我更陌生,下一步再說。
我只是一個小小的程序員,也許看到的只是公司的冰山一角。可能還有更多更多的技術變遷。
但願這個flag能進到===true的代碼分支吧!
2018.12.31 下午 Danni3 於家中