软件设计之美

344 阅读1分钟

软件设计之美

“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第n篇文章,点击查看活动详情

设计与巩固篇

3c97f3a7-4020-48ac-a2d8-be9e412d31f2.jpg

程序设计语言

c731eb1d-c071-40e9-aaff-056532a7af51.jpg

编程范式

63ac1743-0683-433b-becb-bbddaca60775.jpg

设计可以组合的函数接口。

尽量编写不变类和纯函数。

惰性求值(Lazy Evaluation)是一种求值策略,它将求值的过程延迟到真正需要这个值的时候。

无限长集合真正预置进去的是,元素的产生规则

自然数集合

Stream.iterate(1,number->number+1);
Stream.iterate(0, number -> number + 1)
.skip(2)
.limit(3)
.forEach(System.out::println);

设计原则与模式

b277bb68-af59-4113-832e-f3b6e5b2380a.jpg

设计方法

28b54010-eb0c-42c3-8f6b-003103a8273a.jpg

普通程序员和高手之间的差别就在于此,普通程序员凭直觉做事,高手却是把专业的做法训练成直觉

识别对象的不同角色,设计小接口。

用父类的角度去思考,设计行为一致的子类。

设计扩展点,迈向开放封闭原则。

建立一套业务人员和开发人员共享的通用语言。

战略设计,就是将不同的模型进行分组。

战术设计,就是按照模板寻找相应的模型。

一个更好的设计从拒绝低水平重复开始,把工作做成有技术含量的事情。