又是一年的年终,时间依然如同往年同样匆匆的流逝,为了让本身以为今年并无虚度,本文将回顾如下本身做为一个程序员在今年的成长。作一个学习总结,给 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。在新的一年持续拥抱挑战,继续不断的挑战温馨区,继续享受成长的快乐。