极客时间_软件设计之美 笔记
极客时间_软件设计之美 笔记
1.软件设计是什么
写代码前应该有模型设计
- 比如mvc结构就是一种模型
代码应该有规范,
- 产品内部原则 避免每个开发按自己的想法实现,有人写rest 有人写mvc
- 代码模块原则 某段代码应该放在哪里,比如工具类放到ibase里的哪个模块的哪个包
- 软件设计原则 比如 需要 防腐层 外部接收的json需要转换成内部对象,json解析器直接解析出来的对象有可能有大量附加信息占用内存。
低耦合高内聚
2.分离关注点
- 解决问题的思路 分而治之。
- 分的要足够细,不要把问题混淆
- 分解问题时候不是一个维度,业务维度、性能、异常情况等等。每一个维度是一个关注点
- 动静分离
- 读写分离
- 高频低频分离
- 业务处理和技术实现是两个关注点,不是所有问题都是技术问题,分层封装。
分离的关注点越多越好粒度越小越好。
CQRS
3. 可测试性
- 演化质量
- 可测试性
- 可维护性
- 可扩展性
- ···
- 设计时考虑可测试性
- 不保证钢筋水泥的质量如何保证盖出来的大厦的质量。
- 保证软件质量就要保证模块的质量就要保证每个类每个方法的质量
- 有的类不好测试,说明设计时没有考虑可测试性
- 有些设计模式就没有考虑可测试性,如单例模式。
4. 了解设计
- 从上到下设计
- 先设计模型,这时候不应该含技术细节
- 再根据模型设计接口,这时候不应该包含内部实现,特别对于使用三方工具最好进行包装,便于后续升级改造。
- 最后设计实现
- 对于实现也需要设计
- 一个类的数据结构 就是模型
- 一个类的方法有哪些能力 就是接口
- 方法怎么写用什么技术用什么算法 就是实现
极客时间_软件设计之美 笔记相关推荐
- 测试 极客时间_针对数据极客和记者测试DocHive
测试 极客时间 呼吁所有数据极客和发烧友! 测试现已在DocHive 上开放- 从GitHub开始 . DocHive是一个开源的Ruby on Rails项目,用于从基于图像的PDF捕获数据. Do ...
- 极客时间--数据结构与算法之美
一起学习
- 用户体验地图的一个不错的例子(极客时间用户体验设计课笔记)
1 要根据用户不同的角色去划分用户体验地图 用户体验地图要和用户角色相对应 ,不仅要明确体验地图对应的目标用户,更要 明确目标用户下不同的用户角色,一个角色对应一份体验地图. 2 一个完整的例子:
- 《极客时间-技术管理实战》读书笔记
外驱让我们可以做好本职工作,内驱才能让我们成就卓越. 做管理的基本认知: 更大的责任:更好的实现团队目标,基本体会不到行使权力的快感. 更立体的视角.考虑上级.下级.平级的期待和诉求,不能只是关心眼前 ...
- 极客时间MySQL实战45讲学习笔记
零:基础 第一讲:基础架构:一条SQL查询语句是如何执行的? MySQL的基本架构示意图 1.MySQL基础架构 大体来说,MySQL可以分为Server层和存储引擎层两部分. Server层包括连接 ...
- 极客时间 - (应用层) HTTP2.0/QUIC 学习笔记
HTTP2.0 HTTP 1.1 在应用层以纯文本的形式进行通信.每次通信都要带完整的 HTTP 的头,而且不考虑pipeline 模式的话,每次的过程总是像上面描述的那样一去一回.这样在实时性.并发 ...
- 极客时间和极客学院_极客奔跑
极客时间和极客学院 I'm not a natural runner. I'm reasonably fit given that I spend most of the day sat in my ...
- 极客时间《软件工程之美》学完感
最近花了将进两个多月的时间,把极客时间上的专栏<软件工程之美>专栏学完了,同时也把相应的配套书本 ,邹欣的<构建之法>,读完了.学完这个专栏,让我获益良多. 专栏<软件工 ...
- 设计模式之美-王争-极客时间-返现24元 限时优惠
极客时间出品的<设计模式之美>由王争所作,王争是前Google工程师手把手教你写高质量代码 前Google工程师,<数据结构与算法之美>专栏作者.本专栏前Google工程师手把 ...
最新文章
- HTML5存储学习笔记(一)
- CCF NOI1040 除法游戏
- jqplot php,JSON的jqPlot
- python编程培训-马哥教育官网-专业Linux培训班,Python培训机构
- 2021年信息系统项目管理师考试大纲
- guava Lists.transform 踩过的坑
- MVC发布后项目存在于根目录中的子目录中时的css与js、图片路径问题
- C# Cache何时使用及使用方法
- 一种修复WSL下linux系统问题的方法
- MAC OS X 技术内幕 学习笔记之一 MAC OS的变迁
- 一个基于verilog的FPGA 的LCD 1602 显示程序
- docker镜像制作、数据管理
- 软件测试项目案例.pdf,最经典软件测试案例.pdf
- 十大排序算法Java
- PCM开发板模块实验指导--SPI读写PSRAM64实验
- 网站的服务器什么意思,网站服务器站点是什么意思
- 联想计算机如何会会出厂设置方法,联想笔记本开机方法 联想笔记本电脑恢复出厂设置方法...
- Github建个人静态网页
- 重启oracle服务后无法连接,解决oracle服务器重启之后连接报错的问题
- WebRequest、WebResponse的使用示例