我的2016年开发总结

年初的时候做了计划 2016新年计划,现在回头来看除了英语还是老样子之外,其他倒是完成的不错,颇有收获的一年。

这一年更多的精力转向技术管理,开发工作也更多的放在系统架构和业务架构上。

1 好的

及时做重构,不等到以后

今年实施了两次大的重构,很多次小的重构,其中最大的重构就是预订系统的重构了,这个在业务系统重构总结中有详细的阐述。刚开始做重构总是心惊胆颤,怕做不好,怕做了上线会出现很多问题;但想清楚重构能解决的问题,也就不再畏惧了。没经历一次重构,系统就简单一次,到目前核心系统已经精简......

2016 - 12 - 31

分布式锁

0 背景

最近在业务中出现用户重复提交退款,因为重复提交时间差极端,在加上中间网络延迟,导致请求到达服务端时,出现两个请求的时间差在毫秒级,从而导致重复数据;后来在商户端也出现类似的情况,因此开始在关键业务中使用分布式锁来解决这类问题。

分布式锁是控制分布式系统之前访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。

实现分布式锁,主要有以下三个方面为重点......

2016 - 12 - 28

线上故障处理

前些天看到caoz一篇文章出了bug怎么办提到bug修复问题,之后airbnb的朱赟发了当工程师收到了 Bug Report,都谈到了bug修复的问题。互联网行业面对的用户量较大,程序中可能有的bug最后都会在线上出现;如果bug的影响范围变大,则会演变成线上故障,造成较大范围的业务影响。

前段时间在团队内整理了一份线上事故处理的流程,修改后在这里分享。

1. 故障信息获取源

1.1 系统&业务报警

这个是获取故障最常用的手段。

一般的系统正常运营过程中都会有一定的指标监控。如:......

2016 - 12 - 09

互联网公司校招的一些感受

第一次参加校招,虽然没有面特别多的学生,但积累了一些经验,与大家分享。

0. 背景

互联网公司

主要负责初面

共两轮初面,一轮二面,一轮hr面试

面试后端开发

1. 最关注的候选人素质

1.1 学习能力

这也是校招和社招最大的不同点了。绝大部分应届生(除了一些特别优秀的)在面试官眼里都是没有经验,但是期望之后能够快速成长。

其实这些项目经历更多是提供一个面试的话题,会就着项目来问技术问题,看看学习的如何;如果没有实习经历,也建议面试同学能够有拿出手的课程作业,比如上操作系统课时写......

2016 - 10 - 20

如何做技术设计

做业务的开发们,几乎都有一个做架构的心,好的业务开发者不仅要能做好业务,更要能做好业务架构。在现实中我们总会遇到大大小小的需求,那我们应该怎么在满足业务的同时又能作出很好的技术设计呢。

1. 什么是好的技术设计

好的技术设计应该很清楚的表达了......

2016 - 09 - 14

当服务QPS增高时我们做什么

这篇文章是在给团队中级初级开发人员做的分享,相对比较浅。

很多同学在实际的开发中害怕系统的QPS增高,因为觉得QPS太高会导致系统挂掉;基于这种心理会想着尽量的降低系统的请求量,甚至有人会将很多处理放置到服务中来处理,这样外部发一起请求,服务就把所有的业务处理完了(比如将for循环的计算放置到服务端)。

这种方式降低了系统的请求量,但是降低了系统的QPS吗?这种做法系统更安全了还是更危险了?

首先来介绍一下基本概念。

1 性能的关键指标

系统吞吐量(Throughput)

吞吐量指单位......

2016 - 08 - 10

技术管理的路

看到30岁后的程序员,该如何做出职业抉择? 文章,有感而发。

0 前言

其实我还不是一个正式的技术管理者,还是在学习管理的路上。

以前我对做管理也有很多误解,比如任务做了管理之后对技术就会慢慢生疏了技术,越来越不懂技术,在技术的路上只能看着别人一路前进了。另外,管理上更多是琐碎的事情,不停在协调资源,给人打kpi,毫无技术含量。

记得在去年自己刚开始......

2016 - 07 - 07

使用Spock在Java项目中UT

1.Spock是什么

Spock is a testing and specification framework for Java and Groovy applications. What makes it stand out from the crowd is its beautiful and highly expressive spec......

2016 - 06 - 29

程序员的业务观

这篇文章是受漫谈工程师的三观 的启发所写。

常常听到做业务的程序员抱怨自己现在做的业务没有意思,学不到东西,用不到新技术,用的也都是翻来覆去的技术,得不到成长。很多程序员在经历这个过程时,很多调整不了也就离职了,也许走向了一个新的技术兴奋点,有些可能是换了个新的业务继续循环。那我们程序员在遇到这种事情的时候应该怎......

2016 - 06 - 27

Scrum中大项目管理

团队使用Scrum 已经有半年多了, 基本形成了一周一个迭代周期的正常开发节奏,团队的开发状态也进入了正规;但是在Scrum的迭代中,时常会出现一些比较大项目需求,这种大项目工期长,时常会跨团队/部门配合,因此在迭代中会出现很多问题,难以管理。

这篇文章是我们团队在周会上专门讨论大项目管理时的总结。

1. Scrum迭代管理

2016 - 06 - 02