又是一年的年終,時間依然如同往年同樣匆匆的流逝,爲了讓本身以爲今年並無虛度,本文將回顧如下本身做爲一個程序員在今年的成長。作一個學習總結,給 2015 畫上一個句號。html
不敢止步-熊節java
喬布斯魔力演講git
DesignCode(Design Part)github
咱們要自學算法
程序員思惟修煉(重讀)docker
今年博客從 JavaEye 遷移到簡書。今後終於能夠舒服的用 markdown 編寫博客。
因爲去年老是但願一次寫一篇完整的 blog,致使去年可憐的只寫了一篇博客。今年採用KISS的方式寫博客,小的idea寫短博客,大的idea寫長一些的。隨着時間推移不斷重構博客內容,這樣負擔不會過重。
按照KISS原則,今年一共寫了 19 篇博客:
http://www.jianshu.com/users/MjqJJb/latest_articles
自從在國內項目中打拼以來,一直有一個願景:
『不只高效的交付高質量的軟件,並且還要交付一種高效的工做方式』
今年終於在爲 Lenovo 作項目的時候,達成了個這個成就。不但成功交付超高質量的軟件,並且幫助客戶進行了敏捷團隊改造。
在於傳統企業管理模式和瀑布流開發方式的碰撞的過程當中,保持敏捷團隊的優點,而且讓敏捷跟傳統企業的 Water-Fall, KPI 進行了融合。在 Lenovo 和卓越的小夥伴們共同打造了務實的敏捷團隊實踐: Water-Scrum-Fall
對這部份內容如今只寫了一篇博客,2016 年還會繼續總結:
卓有成效的程序員
Agile in Practice
How to encapsulate UI in OOP way
Not only OOP in ruby
iOS consulting Q&A session
How to create a iOS app
終於在正式項目中使用 Ruby。Ruby 水平直線提高, Ruby 已經成爲個人首要編程語言之一。曾經渴望使用的 Rails, 今年也有幸參與 Rails 的項目。
基於 RSpec 的 TDD/BDD 在今年有質的提高。之前習慣於從底層向上層慢慢構建代碼,TDD 屬於 classic 方式,less mock,下半年開始嘗試 mockist 方式寫測試,嘗試從上層向下層寫代碼。在按照從上向下 TDD 的時候,以前困惑的如何使用 test 定義 scope 的問題迎刃而解。
寫過的與 Ruby 相關的博客:
Eclipse 是我工做前 5 年中,以及學生時期主要的開發工具,今年有幸作了 eclipse plugin 開發的項目,回想起來很是激動,也終於實現了當年爲 eclipse 寫 plugin 的願望。
eclipse 背後的 OSGi 擴展性很是強大,eclipse 猶如 GUI 時代的 Emacs, 此部分掌握的內容涉及:
eclipse plugin CI/CD
OSGi
eclipse SWT/JFace SDK
寫了兩篇關於 eclipse 的博客
雖然今年沒有參與 iOS 項目,可是整理出了《iOS中RSA加密解密算法的使用》
整理出了 iOS TDD Sample,內容包括:
ObjC TDD: Objective C, OCHamcrest, OCMockito
Swift TDD: Quick
UI Test: Appium 和 RSpec 兩個方案
iOS TDD repository 地址: https://github.com/lvjian700/ios-tdd-samples
一直不想使用 Angular.js, 可是今年有機會在項目中嘗試 Angular.js。 以TDD的方式寫js, Angular.js 的組織方式的確很贊
使用 gulp.js 搭建 front-end 基本 CI pipeline
coffeescript, 剛開始使用感受很贊,尤爲配合 node.js 使用。雖然語法很是簡潔,可是我的仍是比較喜歡直接用javascript
嘗試使用 Zombie.js 進行 Font-End UI test, 這個框架很輕量級,可是不適合大量的Ajax應用
在項目中嘗試使用 ES6, template string 和 class 都很是好用,可是項目緣由沒有繼續使用ES6
編寫了2篇博客:
Mobile design 是今年得到的重要技能之一。花了一個月的學習了 https://designcode.io/ Design part。 如今已經基本掌握 iOS UI Design 方面的技巧。
因爲 get 了這個技能,讓我在思考如何將 idea 轉換爲 product 有了新的思路。當腦殼迸發出一個新 idea 時,再也不是從 tech 角度思考問題,而是從 design 的角度考慮,這樣的思路更能貼近真實的用戶場景。
新的思路
一句話描述 idea
構建用戶故事,發現故事中主人公的痛點
使用 design 的手段驗證想法
最後是實現(之前始終從實現角度出發, 先想我要用 xxx 技術)
編寫一篇關於 design 的博客
在公司組織的hack中,嘗試使用新技能分析 idea 和 design app
Survive in China
Micro services Wall
__icons模仿練習__:
__Survive in China App__:
之前在 DevOps 方面知識幾乎爲零。今年開始涉及 AWS 和 Docker 容器化技術。 AWS 和 Docker是今年 get 的重要技能之一。
AWS: EC2 instance, S3, CloudFormation, Route53, LoadBalance, AutoScalingGroup, AWS RDS
Docker: docker, docker-compose
使用 Splunk 查詢日誌
使用 Bamboo 搭建 CI, 終於拋棄了刀耕火種的 Jenkins
寫了 3 篇關於 Docker 入門的文章
Microservices 也是今年得到的重要技能之一。從下半年開始參與基於Microservices 架構的項目,這個項目幫助客戶進行老系統改造。按照Microservices對老系統進行拆分,centralize 各類服務,數據。
從下半年開始,基本跟 UI 說拜拜了,天天都在跟 JSON API,部署打交道。
因爲項目屬於客戶核心 API, 項目對代碼和設計質量要求很是高。這種高要求帶來很大的挑戰,也引出了不少知識:
更多的考慮 REST-ful API 設計,開始使用 HAL + JSON 這種 self discoverable 的 JSON 數據格式。
接觸 CQRS 讀寫分離的架構方式,採用 CQRS 能夠將 API 中的寫入和讀取分別優化,可是反作用很大,只適合不多的場景。
因爲 Microservices 架構推薦拆小的 API services, 這個對 DevOps 是很是大的挑戰,今年 AWS 和 DevOps 經驗大幅提高.
Microservices 間的集成測試也是一個挑戰,目前採用Consumer Driven Contracts的方式,使用 Unit Test代替 Integration Test
這部分總結大多保存在我的的 evernote 中,因爲涉及客戶的內容,暫時發佈2篇博客:
縱觀今年的成長,和去年同樣依然涉獵了不少方面的內容。今年成功的步入了Ruby Programmer,也算是達成了這些年的但願達到的成就。
在 Ruby 團隊中有幸跟當前 2012 RubyConfChina 講師 FredWu 共事(Slim 做者之一),這也是今年很是大的驚喜。
技術方面經過 Microservices architecture 讓我更多的思考架構和 DevOps 方面的東西。這讓我意識到軟件開發並不僅是 Development, Ops 也是很是重要的環節,自動化 Ops 能夠節省開發人員的生命,沒有全方位的自動化工具的支持,Microservices 會進行的很是痛苦。DevOps 和 Microservices architecture 會是2016須要持續積累的方面。
自從加入ThoughtWorks 兩年以來,終於達成了打造敏捷團隊的成就。
團隊管理,開發流程,如何同軟件開發同樣都沒有銀彈。『擁抱變化』應該永恆的目標,在項目的演進中須要及時改進團隊,須要持續關注團隊成員提高。
人始終是團隊中最有價值的部分,關注人,關注溝通,擁抱變化,輕流程和制度,這樣可讓每一個人都發揮最大的優點。
雖然今年計劃專一於 mobile 方面,可是計劃不如變化。不過在 mobile 方面也收穫了 TDD 和 Mobile Design的能力。
咱們常講軟件開發須要擁抱變化,我的成長也須要擁抱變化。 今年跳出了溫馨區,步入了純英文環境的團隊,這對我來講是一個很是大的挑戰。如今正在享受這種挑戰,固然挑戰背後帶來的是飛速成長。
再見2015。在新的一年持續擁抱挑戰,繼續不斷的挑戰溫馨區,繼續享受成長的快樂。