04 2020 档案
摘要:3.11 针对非业务的通过框架开发,如何做需求分析和设计? 3.11.1 需求分析 对于非业务通用框架的开发,做需求分析的时候,除了功能性需求分析之外,还需要考虑框架的非功能性需求。 易用性 性能 扩展性 容错性 通用性 3.11.1.1 项目实例 设计开发一个小的框架,能够获取接口调用的各种统计信
阅读全文
摘要:订单号要求 全局唯一 长度固定 趋势递增 高并发 高效率(整型、不能太长) 策略一:UUID 缺点:无序、效率低、字符串、过长(占用空间)、可读性差 策略二:数据库自增 自增参数设置 可通过设置不同数据库自增参数来并发获取订单号 缺点 不利于数据库服务器伸缩(步长限制) 不利于数据迁移 策略三:雪花
阅读全文
摘要:摘自知识星球粥左罗 三个核心 输入 想象力是阅历的延伸 生活体验、资料阅读、走访调研 提升输入强度:没有数量就没有质量,一年读500万字 提高输入标准:筛选优质资源,干货;放弃低质量公众号 提升输入效果:带目的阅读,作笔记;主题式阅读;反复阅读;批判性思维;代入工作和生活场景 思考 训练思考能力 习
阅读全文
摘要:3.10 实战一:如何开发实现一个遵从设计原则的积分兑换系统? 3.10.1业务开发包含的工作 无外乎三方面的工作要做: 接口设计、数据库设计和业务模型设计 。 数据库和接口的设计非常重要,一旦设计好并投入使用之后,这两部分都不能轻易改动。 改动数据库表结构,需要涉及数据的迁移和适配; 改动接口,需
阅读全文
摘要:3.9 实战一:业务系统开发,如何做需求分析和设计 3.9.1 需求分析(积分系统) 借鉴类似产品 技术人也要有产品思维 要懂得借鉴:爱因斯坦:“创造的一大秘诀是要懂得如何隐藏你的来源” 两大功能:赚取积分;消费积分 赚取积分 积分赚取渠道,比如下订单、每日签到、评论等; 积分兑换规则,比如订单金额
阅读全文
摘要:3.8 迪米特法则 3.8.1 何为高内聚、低耦合 高内聚: 相近的功能应该放到同一个类中,不相近的功能不要放到同一个类中。相近的功能往往会被同时修改,放到同一个类中,修改会比较集中,代码容易维护。 低耦合: 类与类之间的依赖关系简单清晰。即使两个类有依赖关系,一个类的代码改动不会或者很少导致依赖类
阅读全文
摘要:3.7 DRY原则 3.7.1 DRY 原则(Don’t Repeat Yourself) 三种代码重复的情况:实现逻辑重复、功能语义重复、代码执行重复。 实现逻辑重复,但功能语义不重复的代码,并不违反 DRY 原则。 实现逻辑不重复,但功能语义重复的代码,也算是违反 DRY 原则。 除此之外,代码
阅读全文
摘要:常用设计模式 观察者模式 利用spring的自定义事件和自定义监听器实现 创建订单 定义事件 发微信监听器 发短信监听器 策略模式 不同级别用户的费用计算 spring的特性:构造函数将接口的列表作为参数,spring会自动添加其所有实现
阅读全文
摘要:需求 内网访问外网接口,https协议,需要SSL证书认证。 分析 内网访问外网接口,需要走代理,现成已有nginx服务器,需要在服务器上配置https正向代理 原生nginx不支持https正向代理,需要安装ngx_http_proxy_connect_module 实现 java程序实现增加代理
阅读全文
摘要:3.6 KISS原则 3.6.1 如何理解KISS原则? KISS 原则的英文描述有好几个版本: Keep It Simple and Stupid. Keep It Short and Simple. Keep It Simple and Straightforward. 意思其实差不多,翻译成中
阅读全文
摘要:3.5 依赖反转原则 3.5.1 控制反转(IOC) Inversion Of Control,缩写为 IOC 把这个简化版本的测试框架引入到工程中之后,只需要在框架预留的扩展点,也就是 TestCase 类中的 doTest() 抽象函数中,填充具体的测试代码就可以实现之前的功能了,完全不需要写负
阅读全文
摘要:3.4 接口隔离原则 3.4.1 如何理解“接口隔离原则”? 英文翻译是“ Interface Segregation Principle”,缩写为 ISP。 Robert Martin 在 SOLID 原则中是这样定义它的:“Clients should not be forced to depe
阅读全文
摘要:3.3 里氏替换原则 3.3.1 如何理解“里式替换原则”? 英文翻译:Liskov Substitution Principle,简写为LSP 子类对象(object of subtype/derived class)能够替换程序(program)中父类对象(object of base/pare
阅读全文
摘要:3.2 开闭原则 3.2.1 对扩展开放、对修改关闭 详细表述 在已有代码基础上扩展代码(新增模块、类、方法等),而非修改已有代码(修改模块、类、方法等)。 实例 API 接口监控告警的代码。 其中,AlertRule 存储告警规则,可以自由设置。 Notification 是告警通知类,支持邮件、
阅读全文
摘要:3.1单一职责 3.1.1 如何理解单一职责原则(SRP)? 一个类只负责完成一个职责或者功能。不要设计大而全的类,要设计粒度小、功能单一的类。单一职责原则是为了实现代码高内聚、低耦合,提高代码的复用性、可读性、可维护性。 3.1.2 如何判断类的职责是否足够单一? 不同的应用场景、不同阶段的需求背
阅读全文
浙公网安备 33010602011771号