2018 年終總結
引言
莊子雲:人生在世,如白駒過隙,忽然而已。
我們沒有道家的飄渺,更沒有莊子的哲思,陪伴我們的是谷歌、百度,以及一個又一個流行的開源框架。
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,新年快樂!