又是一年的年終舌剂,時(shí)間依然如同往年一樣匆匆的流逝裕便,為了讓自己覺得今年并沒有虛度,本文將回顧以下自己作為一個(gè)程序員在今年的成長(zhǎng)催训。做一個(gè)學(xué)習(xí)總結(jié)洽议,給 2015 畫上一個(gè)句號(hào)。
讀書
- 不敢止步-熊節(jié)
- Charlie and the Chocolate Factory
- Charlie and the Great Glass Elevator
- 喬布斯魔力演講
- The natural of software development
- DesignCode(Design Part)
- 我們要自學(xué)
- 程序員思維修煉(重讀)
- iOS開發(fā)進(jìn)階 - 唐巧
博客
今年博客從 JavaEye 遷移到簡(jiǎn)書漫拭。從此終于可以舒服的用 markdown 編寫博客亚兄。
由于去年總是希望一次寫一篇完整的 blog,導(dǎo)致去年可憐的只寫了一篇博客采驻。今年采用KISS的方式寫博客审胚,小的idea寫短博客匈勋,大的idea寫長(zhǎng)一些的。隨著時(shí)間推移不斷重構(gòu)博客內(nèi)容膳叨,這樣負(fù)擔(dān)不會(huì)太重洽洁。
按照KISS原則,今年一共寫了 19 篇博客:
http://www.reibang.com/users/MjqJJb/latest_articles
敏捷實(shí)踐
自從在國(guó)內(nèi)項(xiàng)目中打拼以來菲嘴,一直有一個(gè)愿景:
『不僅高效的交付高質(zhì)量的軟件饿自,而且還要交付一種高效的工作方式』
今年終于在為 Lenovo 做項(xiàng)目的時(shí)候,達(dá)成了個(gè)這個(gè)成就龄坪。不但成功交付超高質(zhì)量的軟件昭雌,而且?guī)椭蛻暨M(jìn)行了敏捷團(tuán)隊(duì)改造。
在于傳統(tǒng)企業(yè)管理模式和瀑布流開發(fā)方式的碰撞的過程中健田,保持敏捷團(tuán)隊(duì)的優(yōu)勢(shì)城豁,并且讓敏捷跟傳統(tǒng)企業(yè)的 Water-Fall, KPI 進(jìn)行了融合。在 Lenovo 和卓越的小伙伴們共同打造了務(wù)實(shí)的敏捷團(tuán)隊(duì)實(shí)踐: Water-Scrum-Fall
對(duì)這部分內(nèi)容現(xiàn)在只寫了一篇博客抄课,2016 年還會(huì)繼續(xù)總結(jié):
Sessions
- 卓有成效的程序員
- Agile in Practice
- How to encapsulate UI in OOP way
- Not only OOP in ruby
- iOS consulting Q&A session
Workshop
- How to create a iOS app
Ruby
終于在正式項(xiàng)目中使用 Ruby唱星。Ruby 水平直線提升, Ruby 已經(jīng)成為我的首要編程語言之一跟磨。曾經(jīng)渴望使用的 Rails, 今年也有幸參與 Rails 的項(xiàng)目间聊。
基于 RSpec 的 TDD/BDD 在今年有質(zhì)的提升。以前習(xí)慣于從底層向上層慢慢構(gòu)建代碼抵拘,TDD 屬于 classic 方式哎榴,less mock,下半年開始嘗試 mockist 方式寫測(cè)試僵蛛,嘗試從上層向下層寫代碼尚蝌。在按照從上向下 TDD 的時(shí)候,之前困惑的如何使用 test 定義 scope 的問題迎刃而解充尉。
寫過的與 Ruby 相關(guān)的博客:
Eclipse Plugin
Eclipse 是我工作前 5 年中飘言,以及學(xué)生時(shí)期主要的開發(fā)工具,今年有幸做了 eclipse plugin 開發(fā)的項(xiàng)目驼侠,回想起來非常激動(dòng)姿鸿,也終于實(shí)現(xiàn)了當(dāng)年為 eclipse 寫 plugin 的愿望。
eclipse 背后的 OSGi 擴(kuò)展性非常強(qiáng)大倒源,eclipse 猶如 GUI 時(shí)代的 Emacs, 此部分掌握的內(nèi)容涉及:
- eclipse plugin CI/CD
- OSGi
- eclipse SWT/JFace SDK
寫了兩篇關(guān)于 eclipse 的博客
iOS Development
雖然今年沒有參與 iOS 項(xiàng)目苛预,但是整理出了《iOS中RSA加密解密算法的使用》
整理出了 iOS TDD Sample,內(nèi)容包括:
- ObjC TDD: Objective C, OCHamcrest, OCMockito
- Swift TDD: Quick
- UI Test: Appium 和 RSpec 兩個(gè)方案
iOS TDD repository 地址: https://github.com/lvjian700/ios-tdd-samples
Javascript
- 一直不想使用 Angular.js笋熬, 但是今年有機(jī)會(huì)在項(xiàng)目中嘗試 Angular.js热某。 以TDD的方式寫js, Angular.js 的組織方式的確很贊
- 使用 gulp.js 搭建 front-end 基本 CI pipeline
- coffeescript, 剛開始使用感覺很贊昔馋,尤其配合 node.js 使用芜繁。雖然語法非常簡(jiǎn)潔,但是個(gè)人還是比較喜歡直接用javascript
- 嘗試使用 Zombie.js 進(jìn)行 Font-End UI test绒极, 這個(gè)框架很輕量級(jí)骏令,但是不適合大量的Ajax應(yīng)用
- 在項(xiàng)目中嘗試使用 ES6, template string 和 class 都非常好用垄提,但是項(xiàng)目原因沒有繼續(xù)使用ES6
編寫了2篇博客:
UX and Mobile design
Mobile design 是今年獲得的重要技能之一榔袋。花了一個(gè)月的學(xué)習(xí)了 https://designcode.io/ Design part铡俐。 現(xiàn)在已經(jīng)基本掌握 iOS UI Design 方面的技巧凰兑。
由于 get 了這個(gè)技能,讓我在思考如何將 idea 轉(zhuǎn)換為 product 有了新的思路审丘。當(dāng)腦袋迸發(fā)出一個(gè)新 idea 時(shí)吏够,不再是從 tech 角度思考問題,而是從 design 的角度考慮滩报,這樣的思路更能貼近真實(shí)的用戶場(chǎng)景锅知。
新的思路
- 一句話描述 idea
- 構(gòu)建用戶故事,發(fā)現(xiàn)故事中主人公的痛點(diǎn)
- 使用 design 的手段驗(yàn)證想法
- 最后是實(shí)現(xiàn)(以前始終從實(shí)現(xiàn)角度出發(fā), 先想我要用 xxx 技術(shù))
編寫一篇關(guān)于 design 的博客
在公司組織的hack中脓钾,嘗試使用新技能分析 idea 和 design app
- Survive in China
- Micro services Wall
icons模仿練習(xí):
Survive in China App:
DevOps
以前在 DevOps 方面知識(shí)幾乎為零售睹。今年開始涉及 AWS 和 Docker 容器化技術(shù)。 AWS 和 Docker是今年 get 的重要技能之一可训。
- AWS: EC2 instance, S3, CloudFormation, Route53, LoadBalance, AutoScalingGroup, AWS RDS
- Docker: docker, docker-compose
- 使用 Splunk 查詢?nèi)罩?/li>
- 使用 Bamboo 搭建 CI, 終于拋棄了刀耕火種的 Jenkins
寫了 3 篇關(guān)于 Docker 入門的文章
- Run docker on your mac
- Understand images & containers of Docker
- Find and run the whales image from Docker Hub
Microservices architecture
Microservices 也是今年獲得的重要技能之一昌妹。從下半年開始參與基于Microservices 架構(gòu)的項(xiàng)目,這個(gè)項(xiàng)目幫助客戶進(jìn)行老系統(tǒng)改造握截。按照Microservices對(duì)老系統(tǒng)進(jìn)行拆分飞崖,centralize 各種服務(wù),數(shù)據(jù)谨胞。
從下半年開始固歪,基本跟 UI 說拜拜了,每天都在跟 JSON API畜眨,部署打交道昼牛。
由于項(xiàng)目屬于客戶核心 API, 項(xiàng)目對(duì)代碼和設(shè)計(jì)質(zhì)量要求非常高。這種高要求帶來很大的挑戰(zhàn)康聂,也引出了很多知識(shí):
- 更多的考慮 REST-ful API 設(shè)計(jì),開始使用 HAL + JSON 這種 self discoverable 的 JSON 數(shù)據(jù)格式胞四。
- 接觸 CQRS 讀寫分離的架構(gòu)方式恬汁,采用 CQRS 可以將 API 中的寫入和讀取分別優(yōu)化,但是副作用很大辜伟,只適合很少的場(chǎng)景氓侧。
- 由于 Microservices 架構(gòu)推薦拆小的 API services, 這個(gè)對(duì) DevOps 是非常大的挑戰(zhàn)脊另,今年 AWS 和 DevOps 經(jīng)驗(yàn)大幅提升.
- Microservices 間的集成測(cè)試也是一個(gè)挑戰(zhàn),目前采用Consumer Driven Contracts的方式约巷,使用 Unit Test代替 Integration Test
這部分總結(jié)大多保存在個(gè)人的 evernote 中偎痛,由于涉及客戶的內(nèi)容,暫時(shí)發(fā)布2篇博客:
總結(jié)
縱觀今年的成長(zhǎng)独郎,和去年一樣依然涉獵了很多方面的內(nèi)容踩麦。今年成功的步入了Ruby Programmer,也算是達(dá)成了這些年的希望達(dá)到的成就氓癌。
在 Ruby 團(tuán)隊(duì)中有幸跟當(dāng)前 2012 RubyConfChina 講師 FredWu 共事(Slim 作者之一)谓谦,這也是今年非常大的驚喜。
技術(shù)方面通過 Microservices architecture 讓我更多的思考架構(gòu)和 DevOps 方面的東西贪婉。這讓我意識(shí)到軟件開發(fā)并不只是 Development, Ops 也是非常重要的環(huán)節(jié)反粥,自動(dòng)化 Ops 可以節(jié)省開發(fā)人員的生命,沒有全方位的自動(dòng)化工具的支持疲迂,Microservices 會(huì)進(jìn)行的非常痛苦才顿。DevOps 和 Microservices architecture 會(huì)是2016需要持續(xù)積累的方面。
自從加入ThoughtWorks 兩年以來尤蒿,終于達(dá)成了打造敏捷團(tuán)隊(duì)的成就娜膘。
團(tuán)隊(duì)管理,開發(fā)流程优质,如何同軟件開發(fā)一樣都沒有銀彈竣贪。『擁抱變化』應(yīng)該永恒的目標(biāo)巩螃,在項(xiàng)目的演進(jìn)中需要及時(shí)改進(jìn)團(tuán)隊(duì)演怎,需要持續(xù)關(guān)注團(tuán)隊(duì)成員提升。
人始終是團(tuán)隊(duì)中最有價(jià)值的部分避乏,關(guān)注人爷耀,關(guān)注溝通,擁抱變化拍皮,輕流程和制度歹叮,這樣可以讓每個(gè)人都發(fā)揮最大的優(yōu)勢(shì)。
雖然今年計(jì)劃專注于 mobile 方面铆帽,但是計(jì)劃不如變化咆耿。不過在 mobile 方面也收獲了 TDD 和 Mobile Design的能力。
我們常講軟件開發(fā)需要擁抱變化爹橱,個(gè)人成長(zhǎng)也需要擁抱變化萨螺。 今年跳出了舒適區(qū),步入了純英文環(huán)境的團(tuán)隊(duì),這對(duì)我來說是一個(gè)非常大的挑戰(zhàn)∥考迹現(xiàn)在正在享受這種挑戰(zhàn)椭盏,當(dāng)然挑戰(zhàn)背后帶來的是飛速成長(zhǎng)。
再見2015吻商。在新的一年持續(xù)擁抱挑戰(zhàn)掏颊,繼續(xù)不斷的挑戰(zhàn)舒適區(qū),繼續(xù)享受成長(zhǎng)的快樂艾帐。