本节课程我们主要解决三个问题:为什么要有用户故事?用户故事是什么,它们具有哪些属性、内涵和特征?在产品开发的全流程中怎么使用用户故事?
敏捷教练第01课-敏捷教练和 ScrumMaster 基本功四部曲
课程概述
敏捷教练是一个职业。Scrum Master 和敏捷教练是同一职业的不同阶段。当一个人能带好一个 Scrum 团队时,他是一个 Scrum Master。当他能带各种不同类型的团队,并持续追求更好,他就是一个敏捷教练。
Scrum Master 职责的范围和边界相对确定,敏捷教练职责的范围和边界相对不确定。但从学习的角度,他们所需要的基本功是一致的。本课程中对这两个角色,在大多数时候不太区分。鉴于这两个角色既有相似处又有区别,大家在使用时对这两个名称的理解上又有变异,所以课程的名称中就把这两个名称并称,以求相对准确地表达这个课程所要服务的角色。就算是您所采用的敏捷方法不是 Scrum,依然可以从本课程中受益。
设计模式-微服务-网关模式
定义
API网关是一个服务器,它是系统中的单个入口点,用户对API网关进行单一呼叫,然后API网关调用每个相关的微服务器。它类似于面向对象设计的Facade模式。API网关封装内部系统架构,并提供针对每个客户端定制的API。它可能还有其他的责任,如身份验证,监控,负载平衡,缓存,请求整形和管理,以及静态响应处理。
Java8 日期/时间(Date Time)API指南
为什么我们需要新的Java日期/时间API?
在开始研究Java 8日期/时间API之前,让我们先来看一下为什么我们需要这样一个新的API。在Java中,现有的与日期和时间相关的类存在诸多问题,其中有:
1、Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义。
2、java.util.Date同时包含日期和时间,而java.sql.Date仅包含日期,将其纳入java.sql包并不合理。另外这两个类都有相同的名字,这本身就是一个非常糟糕的设计。
3、对于时间、时间戳、格式化以及解析,并没有一些明确定义的类。对于格式化和解析的需求,我们有java.text.DateFormat抽象类,但通常情况下,SimpleDateFormat类被用于此类需求。
4、所有的日期类都是可变的,因此他们都不是线程安全的,这是Java日期类最大的问题之一。
5、日期类并不提供国际化,没有时区支持,因此Java引入了java.util.Calendar和java.util.TimeZone类,但他们同样存在上述所有的问题。
在现有的日期和日历类中定义的方法还存在一些其他的问题,但以上问题已经很清晰地表明:Java需要一个健壮的日期/时间类。这也是为什么Joda Time在Java日期/时间需求中扮演了高质量替换的重要角色。
Java 8 中的 Streams API 详解
为什么需要 Stream
Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用 fork/join 并行方式来拆分任务和加速处理过程。通常编写并行代码很难而且容易出错, 但使用 Stream API 无需编写一行多线程的代码,就可以很方便地写出高性能的并发程序。所以说,Java 8 中首次出现的 java.util.stream 是一个函数式语言+多核时代综合影响的产物。
轻松学习新代码库的六个步骤
学习新的代码库是一项艰巨的任务。如果你不能和创建该库的研发人员进行交流,自己研究该库是一个很复杂的过程。本文给出六个步骤指引开发者学习。
分布式定时任务调度系统技术选型
我们先思考下面几个业务场景的解决方案:
- 支付系统每天凌晨1点跑批,进行一天清算,每月1号进行上个月清算
- 电商整点抢购,商品价格8点整开始优惠
- 12306购票系统,超过30分钟没有成功支付订单的,进行回收处理
- 商品成功发货后,需要向客户发送短信提醒
类似的业务场景非常多,我们怎么解决?
Java设计6大原则
所谓无招胜有招,练一门功夫分为内功和外功。外功好比招式,就是所谓的23种设计模式。而内功呢,就是心法,那就是这6种法则。光会外功那是花拳绣腿,内功修为才是境界。如此众多的设计模式,学完2遍,3遍可能也会忘的只记得单例和工厂模式。但是只要原则记住,在以后的设计中,有意无意就会用的设计模式的精髓。
领域驱动设计原理
使用领域驱动设计的业务价值
1、你获得了一个非常有用的领域模型
2、你的业务得到了更准确的定义和理解
3、领域专家可以为软件设计做出贡献
4、更好的用户体验
5、清晰的模型边界
6、更好的企业架构
7、敏捷、迭代式和持续建模
8、使用战略和战术新工具