软件设计之美
“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第n篇文章,点击查看活动详情”
设计与巩固篇
程序设计语言
编程范式
设计可以组合的函数接口。
尽量编写不变类和纯函数。
惰性求值(Lazy Evaluation)是一种求值策略,它将求值的过程延迟到真正需要这个值的时候。
无限长集合真正预置进去的是,元素的产生规则
自然数集合
Stream.iterate(1,number->number+1);
Stream.iterate(0, number -> number + 1)
.skip(2)
.limit(3)
.forEach(System.out::println);
设计原则与模式
设计方法
普通程序员和高手之间的差别就在于此,普通程序员凭直觉做事,高手却是把专业的做法训练成直觉
识别对象的不同角色,设计小接口。
用父类的角度去思考,设计行为一致的子类。
设计扩展点,迈向开放封闭原则。
建立一套业务人员和开发人员共享的通用语言。
战略设计,就是将不同的模型进行分组。
战术设计,就是按照模板寻找相应的模型。
一个更好的设计从拒绝低水平重复开始,把工作做成有技术含量的事情。