好久沒有發文章了,我並非閒著,而是把原來發博文的形式轉成了寫稿。
今年是非常特殊的一年,長這麼大,從來沒有休過如此漫長的寒假,也從未在家進行過一個月以上的遠端辦公,新冠肺炎對各行各業都產生了巨大影響,總之,今年實在是太難了。不管怎麼樣,工作還是要繼續的,今年主要做了三個專案,技術棧都是一樣的,那就是:
前端:vue2.x、webpack4.x、axios、element ui、echarts、vue-router、vuex、scss、websocket、svg
後端:spring cloud、kafka、mongodb、mysql、redis、plc
開發人員配置:
前期:後端5人、前端3人、產品1人、UI1人
後期:後端4人、前端1人、產品1人、UI0人
很顯然,我就是一直堅守的前端^_^
說明:專案截圖調整了視窗尺寸的,響應式做得不是很好,所以顯示上也不是那麼友好。
1.智慧裝置管控平臺
2.智慧監管
3.空調控制系統
這專案一開始只是空調控制的小專案,做著做著就不斷加功能,搞到最後很龐大了,由於沒有使用typescript,有時候,需求一大變更,然後寫錯一個小字母,或者搞錯個型別,錯誤找了許久。
關於這個系統組態圖是怎麼做的?不斷的有同仁問到,這塊我確實花的時間比多,足足一個月吧,我裡簡單說下,自己用html5+css3+svg封裝各種vue元件,水流動效果用svg做動畫,其它部分都是HTML,然後根據不同的模板生成的,有一個專門的系統圖配置介面,如下圖所示:
選擇不同的配置項,會有不同的裝置,然後可以生成不同的系統圖。難點在於,每一根水流線的判斷邏輯,因為它要根據資料實時改變狀態,它根據泵和閥門的狀態來控制水流是否流動,以及水流的方向。而且根據裝置數目的不同,線的展示也會動態變化。系統圖,除了監,還要控,每一個系統圖上的裝置都可以可以點選,控制它的啟停,以及頻率等引數,控制之後,系統圖會相應的改變水流狀態和裝置狀態。
這三個PC專案也配套有App應用和微信小程式應用。
App技術棧:vue2.x、vant、mui(僅用於處理home鍵回退)、HTML5+(呼叫手機原生api介面,例如:拍照、相簿、語音等)、websocket(介面實時重新整理)
打包工具:HbuilderX(Android雲打包)、xcode(主要用於ios無證照打包)
不知道從什麼時候開始,一個前端人員要承擔起app應用前端、微信小程式、PC前端的開發,還要懂得編寫sql指令碼、nosql相關的shell命令、linux部署、Nginx配置....美工好像已經逐漸被UI取代了,現在都很少聽說美工了,美工的工作也被UI兼任了。
現在公司的後端還要兼任專案運維的工作,還好這一塊不用前端來管,只需要配合就行了,畢竟業務這塊都掌握在後端手中。不過我還是要吐槽後端,本來可以用Spring Boot很好的玩耍,偏偏要玩Spring Cloud,現在好了,許許多多專案都是要獨立部署的,微服務自己把自己玩死吧,N個服務,啟動順序有依賴關係,結果伺服器重啟之後經常出問題。還有mongodb,一些獨立部署的伺服器,配置奇差無比,本來資料量就不大,mysql即可完美支援,把這傢伙一上,經常跑著跑著跑不動了,記憶體被吃了。
工作之餘,今年又完成了兩本書的編寫,可能是因為疫情的緣故,週末一直宅在家裡寫稿,今年破天荒的完成了兩本書,而且是兩本書同時寫稿的,一本是《Javascript實用教程》,主要講解js在前端工作當中使用的技術以及ES6~ES10新語法特性的介紹,另一本是《react+node+mongodb實戰開發》,主要介紹:node.js、express、mongodb、Ant Design、react技術棧的聯合應用,也即部分前端人員口中的全棧應用,其實這完全無法達到全棧的要求,我認為全棧至少還應該熟悉java、.net、php技術棧和各種sql和nosql,這最多算全棧入門築基,所以全棧的門檻還是很高的,普通人恐怕得十年編碼經驗以上才能同時掌握那麼多技術。雖然書稿已完成,可是要明年才能出版去了,從交稿到出版動不動就是半年,我都已經習慣了。我寫書的特點是:只寫工作當中應用頻率高的,也就是說,相對回報率高的東西,只有這些東西,才值得花時間去投入,因為學習是需要成本的,我們所有的投入都希望能夠獲得更好的回報。
react這本書,我是特意要求出版社編輯按照我的想法來設計圖書封面,封面上我想要一個金黃色的屋子,屋子裡有一個看書的美女,寓意:書中自有黃金屋、顏如玉。不答應我的要求就換出版社O(∩_∩)O哈哈~
居安思危,儘管工作中一直使用的vue技術棧,但是我還是抽時間去學習react技術棧,因為值得投入,作為一名前端工程師,vue和react都是必須要掌握的。因為要用xcode,猶記得第一次用mac電腦的時候,我去,在Windows上的使用經驗幾乎沒用了,一步一步查資料,太特麼痛苦了,可是所有的痛苦都是因為我們還沒有適應罷了。
至於微信小程式,我認為可能是接觸過的所有技術當中,用起來最簡單的了,難怪叫小程式,文件又算是寫得最好的之一,沒有神馬可說的,哪裡不會就查文件,然後去github上下載一個專案研究一下原始碼就可以了。
從.net到前端這3~4年時間,雖然接觸了許多新技術,可是在應用的過程當中,我發覺前端一直在跟隨後端的腳步,逐漸向元件化、模組化、物件導向和各種設計模式的應用方面發展,所以如果有後端開發基礎,學前端會感覺非常輕鬆,可能感到困難的,反而是與程式語言無關的css,這需要記很多東西,尤其是一些極端情況下,要相容一些奇葩的瀏覽器版本,各種css的hack,只有程式碼敲得多,介面做得多才能熟練掌握,並非關鍵時刻查一下文件就能行,你可能得不斷查、反覆查,介面的編寫也和系統框架的搭建一樣,需要全域性考慮的,如何保證可擴充套件、高效能、精簡、一致性、相容性的介面需要深思熟慮。
做前端有一點不好的地方在於:你將會把大量的時間花費在介面編寫、介面對接、介面互動及特效實現上,而業務邏輯和底層架構將會很難有時間和機會去深耕,這是由前後端分工所致。前端工作重心在於視覺化部分,而後端在於非視覺化部分。
關於前端的學習路線,我的建議是:先html、css、JavaScript,然後是vue、再是react,至於angular,可在工作當中要用時才學。後面就是webpack、node.js、mongodb(nosql選學一種)、mysql(sql選學一種),因為是相通的,你不可能在有限的時間內把所有的技術都掌握,學習是一種投入,我要考慮回報率,很多時候,我們的投入是沒有回報的。因為你所掌握的東西,如果無法應用到實際工作和專案當中,就不會產生價值。學編碼的訣竅就是沒有訣竅,碼敲百遍,其義自見~O(∩_∩)O哈哈~
有時候也會細思極恐,一個人要負責2個.net專案的維護,6個app、3個微信小程式、6個PC專案的前端維護和開發,可是平常不去想,也就沒啥了。一個人在一家公司幹得越久,在對專案程式碼更熟悉的同時,坑也挖得越來越多。我倒是擔心下一個來接替我工作的人,畢竟,沒有人比我更清楚還有多少坑擺在那裡O(∩_∩)O哈哈~
最近戀上了雞尾酒,不吸菸的我,經常晚上熬夜寫稿,而來點酒會更有精神和感覺。今年一直宅著,整個人胖了一圈,開始出現小肚肚了,從此多了一個目標:減肥。正是:‘’頭可斷,髮型不能亂“,髮型一亂,盡顯頹廢...待書出版時,自駕遊一週去....
家裡的橙子又快熟了,需要橙子的朋友可以入掃碼微信群。