又老了一歲啊
又是新的一年,總想寫點什么卻一直比較懶惰,可能是體重飆升的緣故,昨天看了一幅圖片,講的是一個裝卸工在等活的時候趴在地上練習毛筆字,有人評論道:如果你一直想著有空去做某事,那你永遠也找不到那個“有空”,不如現在就開始吧。所以既然想寫東西,想整理總結自己的知識與經驗,那還是現在就找機會隨時提筆吧。
去年我離開了工作了五年多的公司,加入了在西安的另一家公司,最少自己過的比較開心。從 database driver 開發到現在的 web service,技術棧的改變很大,也認識很多有創造力的同事,結識好友,應該算是不錯的一年了。
自然,又到了新的一年,之前也列了一下今年要做點什么,于是寫下來吧。
Microservice
這半年,最大的收獲就是參與實踐了微服務,在一次培訓中很多朋友對我們的實踐十分有興趣,于是一定要總結出來。微服務是一種從分工方式開始改變的理念,而不是單指一個責任分離、有業務邊界的小型服務。那么實踐的時候,具體是什么樣的感覺呢?會有哪些坑?怎么解決高并發,易擴展的問題?怎么解決集成的問題?怎么解決一致性?微服務有哪些好處值得我們去轉型?該如何開始等等……這些問題我在關于微服務的文章中會一一描述出來,目前依舊處于準備資料的狀態中,希望能早點完成。
Architecture Pattern
在開發 Web Application 的時候,如果只是會用各種框架,熟悉 MVC,IoC,ORM,AOP 等等這些技術的話,只能是一個很不錯的 Dev 或者 Coding ??,所以需要了解并學習關于架構方面的知識。在項目中實踐了 CORS 與 Event Sourcing,也踩了不少坑。有幸在 MSDN 上找到了一本專講 Cloud Design Pattern 的書,在讀完 DDD 后,可以再整理下這些 Cloud Pattern。
MapReduce
我們在項目中使用了 sidekiq 作為 data processing,但是也發現了 sidekiq 的限制于不足。小組中苦于沒有一個精通 MapReduce Pattern 的專家,沒有 Hadoop、Spark、Storm 等開發經驗導致我們在這一方面的競爭力比較弱勢,理應在今年解決掉這個點。
AWS
說來慚愧,在國內也算是第一批接觸并使用 AWS 的人了,但是這都幾年了毫無建樹,真是一把辛酸淚。去年從使用者的角度又和這個最好的 PaaS 工作了一年,感觸蠻多。也許今年有空了,去考一個 AWS Certified Developer - Associate? 先從入門級開始應該會簡單很多吧!
CI & CD & Infrastructure
在進行 Web Service 開發中,集成永遠是最高優先級的事情,我們是 integration first 的堅定實踐者。可以聊聊或者總結下我們使用到的工具與基礎設施,我想應該包括 buildkite、bamboo 這種工具,docker 這種新的 ship tool,還有其他可能用到的基礎設施,看看 DevOps 們的想法。
Learning & Playing
最近大火的 GraphQL 真是一個代替 REST 的好選擇?或者我們是否可以擴展 REST 例如使用 HEATOAS?也許我也應該熟悉下目前前端的開發工作,比如說 react,build.scala 等等…… 或者用下 electron 寫點玩具也是極好的。
恩,繼續學習 Scala,另外,對 Ruby 與 ES7 是不是也得花點時間呢?最好在今年能做一些使用這些語言的項目,也可以自己寫點玩具,比如一些 productivity tool 等等。
Books
列了一個書單,希望今年能讀完:
Microservices Designing Deploying微服務設計Java8 In ActionRefactoring - Improving the Design of Existing Code- Cloud Design Pattern
- Domain Driven Design
- Clean Code
- MapReduce Pattern & Hadoop
- Programming Scala
- Ruby Programming
- Spring Boot In Action
- Java 性能權威指南
- PostgreSQL 修煉之道
- 數據庫系統實現
Others
多做 Session,多寫文章,多吃蔬菜??