一個程序員的 2015年 的學習總結

jopen 10年前發布 | 29K 次閱讀

一個程序員的 2015年 的學習總結 ? 社區 ? Coding Style

又是一年的年終,時間依然如同往年一樣匆匆的流逝,為了讓自己覺得今年并沒有虛度,本文將回顧以下自己作為一個程序員在今年的成長。做一個學習總結,給 2015 畫上一個句號。

讀書

博客

今年博客從 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 年還會繼續總結:

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

終于在正式項目中使用 Ruby。Ruby 水平直線提升, Ruby 已經成為我的首要編程語言之一。曾經渴望使用的 Rails, 今年也有幸參與 Rails 的項目。

基于 RSpec 的 TDD/BDD 在今年有質的提升。以前習慣于從底層向上層慢慢構建代碼,TDD 屬于 classic 方式,less mock,下半年開始嘗試 mockist 方式寫測試,嘗試從上層向下層寫代碼。在按照從上向下 TDD 的時候,之前困惑的如何使用 test 定義 scope 的問題迎刃而解。

寫過的與 Ruby 相關的博客:

Eclipse Plugin

Eclipse 是我工作前 5 年中,以及學生時期主要的開發工具,今年有幸做了 eclipse plugin 開發的項目,回想起來非常激動,也終于實現了當年為 eclipse 寫 plugin 的愿望。

eclipse 背后的 OSGi 擴展性非常強大,eclipse 猶如 GUI 時代的 Emacs, 此部分掌握的內容涉及:

  • eclipse plugin CI/CD
  • OSGi
  • eclipse SWT/JFace SDK

寫了兩篇關于 eclipse 的博客

iOS Development

雖然今年沒有參與 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

Javascript

  • 一直不想使用 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篇博客:

UX and Mobile design

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模仿練習:

一個程序員的 2015年 的學習總結 ? 社區 ? Coding Style

Survive in China App:

一個程序員的 2015年 的學習總結 ? 社區 ? Coding Style

DevOps

以前在 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 architecture

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。在新的一年持續擁抱挑戰,繼續不斷的挑戰舒適區,繼續享受成長的快樂。

關于作者:lvjian700 (Lv Jian)

full-stack web & iOS developer. working at thoughtworks



來自: http://www.codingstyle.cn/topics/53

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!