引言
莊子雲:人生在世,如白駒過隙,忽然而已。
我們沒有道家的飄渺,更沒有莊子的哲思,陪伴我們的是谷歌、百度,以及一個又一個流行的開源框架。
2018
沒趕上辭舊迎新,就在這春節前夕,感慨一下逝去的2018吧!
“汶川地震都十年了。”
“是啊!整整十年了。”
那時,我還在上小學,我還寫了信,捐了款以支援災區,為他們加油打氣,告訴他們:同胞一直在你們身邊,請不要放棄希望!
bilibili、愛奇藝、拼多多也都相繼上市。努力,一切皆有可能。
抖音越來越火,已趕超Facebook成為全球最火社交APP。從最初騰訊提出泛娛樂概念開始,我就在思考,未來可能是泛娛樂時代。但是抖音的成功,我覺得我錯了。
在抖音上,我也見識到了令我歎為觀止的建築——騰訊大廈。假想着,我們何時也會如何輝煌?擁有一座自己的大廈呢?
寒冬季,互聯網停止社招,並且大規模裁員。為我們敲響了警鐘,如何在互聯網時代生存下去?如何提高個人競爭力?
去年目標
還記得年初自己定下的目標:
- 寫明白
Spring - 學習多線程
- 學習
$q - 睡前不玩手機
目標完成情況
年初時,初學AngularJS與SpringBoot,對什麼IOC、上下文什麼的一點都不懂,但是自從暑假時編寫了一個Hibernate攔截器時,@Autowired失效了,自己手動從上下文中獲取需要的Bean,我覺得我實現了第一條。
第二條就很簡單了,這學期學了Java,學習了多線程Thread類與Runnable接口,Spring中就更簡單了,@Async註解標註該方法為異步方法,SpringBoot就新建一個線程去運行,無需手動管理。
關於$q,自己之前研究了好幾次也沒研究明白,最後看潘老師的視頻教程才明白,$q是一個簡化我們創建Promise的一個服務。
第四點沒做到,感覺以後也做不到,躺在牀上就想看看微博,刷刷知乎。
上面的小logo是用 Shields.io 生成的,Github上特別流行用這個小logo放在README裏。
回首
一年中,經歷了兩個學期,兩次大實驗。
理解了面向對象,學會了切面對面向對象的補充,學會了Spring的核心,IOC與AOP。
學會了AngularJS,入門了Angular,學會了與之類似的微信小程序。
最大的收穫就是講解的能力有所提升,同時也更穩了。
第一次大實驗,採用ThinkPHP開發,比較着急的,心裏沒底,一組六人,我一個人寫,他們五個寫文檔,畫圖,最終統一審核一下,得到了滿意的成績。但這是一次失敗的實驗,他們什麼都沒學到。
第二次大實驗,採用SpringBoot與AngularJS進行開發,此係統比上一個複雜得多,但心裏有數,特別的穩,四個人,八個上午肯定能完成。
一步步從頭給他們講解怎麼設計ER圖?Git怎麼用?如何使用Spring Data JPA替代課上學的select語句?grunt怎麼用,模板怎麼抄?nginx是啥,為啥要用nginx?怎麼啓動後台,為什麼他們都用Servlet + Tomcat,而我們只需要一行命令就起來了?收穫巨大,這是非常成功的一次實驗。
展望
新年了,一起來展望一下2019吧!
下學期有移動開發的實驗,感覺以後實際開發也會用到這門技術,下學期好好學學,但是架構要重新設計。
同學寫過參賽的Android應用,我下下來用,卡得不行。鑑於我對我手機還有些自信,至少玩個QQ、微信、支付寶啥的都不卡,我覺得是編碼的問題。
看了幾篇關於移動APP性能的文章,移動端的技術選型與架構設計十分主要。
移動端技術主要有三類:
Web跨平台(React Native、Vue Native、Apache Cordova),一套代碼,所有平台(包括手機web端)都出來了,但性能略次於原生。
Flutter跨平台,採用Dart語言構建佈局,沒有React Native等強大,相當於用Dart進行佈局,邏輯還是Java代碼,性能很好(Dart的引擎是用C++實現的)。Made By Google
- 原生開發,性能最佳,但效率最低。
2019年的計劃之一,就是採用Data-Binding + Fragmentation框架,在移動應用開發的實驗中實現單Activity+多Fragment架構。至少寫出來的東西能在我手機上流暢運行。
Spring官網的圖,當今時代,Spring一統天下。
Spring Boot:構建一切Spring Cloud:協調一切Spring Cloud Data Flow:連接一切
2019年計劃之二,就是入門Spring Cloud。
之前還沒覺得數據結構中那些個時間複雜度、空間複雜度啥的有用,但自從上次給潘佳琦講解數據去重的時候,考慮了一下時間複雜度,突然覺得算法真的很重要。
最簡單的實現,兩層for循環,但是想到了有Map,這可就是線性的時間複雜度。
注意,使用自帶的數據結構為什麼比我們手寫要好,我們去打印一下JavaScript中的Map。
Native Code:是瀏覽器開發者使用C或C++編寫的原生代碼。想想,同樣一個for循環,用JavaScript寫和用C++寫性能差多少,能用原生的實現,就不自己寫。
2019年的計劃之三,就是學習一下比較流行的算法,以備開發時提高效率。
2019年的計劃之四,鍛鍊身體!
2019,新年快樂!