2020-2021年度总结 Posted on 2021-12-21 | In Thinking 寒冬 2020-2021 由于疫情,2020 的年度总结失约了,这次一并补齐 2020 年 之前 2019 重点比较偏向业务侧的参与和发展, 2020 多业务爆发 团队加入 code review, 形式上简化, 在 gitlab 上提 comments 团队进度全面上 Teambition, ... Read more »
Design-Patterns-Composite Posted on 2021-10-25 | In Structural Composite (Object Tree) 应用场景解释 当需要构造一个类似树的结构 希望调用方对简单或者复杂的元素都能统一的调用 应用步骤重点 确认目标模型是一个可以拆分为递归组合的树结构. 必须包含 简单元素(没有子元素) 和 复杂组件(可以包含简单元素和其他复杂组件) 抽象出简单元素和 ... Read more »
Design-Patterns-Bridge Posted on 2021-10-21 | In Structural Bridge 应用场景解释 当有巨型的单个类有很多变种. 或者需要被重构拆分 当这个类有多个维度,方面,或者组件 会经常行的发生变化或者替换 如果你想在运行时切换不同的实现 应用步骤重点 先识别出类中的可以拆分的多个维度,方面或者组件 抽象出这些组件的 interface 根据不同的变种实现组件的 ... Read more »
Design-Patterns-Adapter Posted on 2021-10-20 | In Structural Adapter (wrapper) 应用场景解释 适合支持多继承的语言实现 当前逻辑需要调用一个遗留系统,或者不可变的第三方服务. 且第三方服务签名不能直接被当前逻辑使用. 类型不匹配 可以用 adapter 将不可变服务包裹起来, 并符合目标的 interface 应用步骤重点 找到至少 2 个 ... Read more »
Design-Patterns-Singleton Posted on 2021-10-15 | In Creational Singleton 应用场景解释 需要全局同享对象,并加以控制 保证特定类只有一个实例 应用步骤重点 有一个私有字段来保存 单例实例 声明一个对外的方法获取实例 获取方法,需要 lazy, 并注意多线程的时候的加锁处理 隐藏构造函数或者其他创建行方法 Read more »
Design-Patterns-Builder Posted on 2021-10-14 | In Creational Builder/Director 应用场景解释 当你需要构建一个比较复杂的对象 这个对象的各种参数,在不同情况下都不相同, 并且都是可选参数 当有一套步骤是相同,但是具体实现不同的时候, 可以引入 director 应用步骤重点 定义 builder interface, 具体包含能配置的东西 创 ... Read more »
Design-Patterns-Abstract-Factory Posted on 2021-09-27 | In Creational Abstract Factory 应用场景解释 当你需要包含多种模型的变种组, 而且这些模型见是有关联性的, 所以产生的组 你不希望知道具体的模型是哪种类型, 只要用就是对应的那一组 当你有多个工厂方法在某个实体里的时候,考虑抽象工厂 应用步骤重点 将多个模型的 interface 抽象出来, ... Read more »
Design-Patterns-Factory-Method Posted on 2021-09-14 | In Creational Factory Mehtod 应用场景解释 根据不同情况, 需要让后续逻辑使用到某个 Interface 下的不同变种(子类) 当前应用类, 对具体是哪个变种没有兴趣, 只要满足 Interface 即可 有少量的这种变种类,多的话可以演化为抽象工程模式 应用步骤重点 将应用类中获取变种实例的地方 ... Read more »
sentry-trace Posted on 2021-06-18 | In Architecture 链路跟踪之前研究用jaeger 对程序进行侵入式的链路跟踪. 包括 http. grpc 协议的情况 sentry最近我们新搭建了新版本的sentry, 发现了之前没有的 feature -> Performance从前端 Vue 到 PHP 的 Lavaral 到 内部的 GO 服务, 尝试 ... Read more »
最近两年的架构演进 Posted on 2021-05-30 | In Architecture 最近两年由于前后端都负责, 就给与了很大的架构锻炼的机会和空间Stage1 原始阶段 实体机直接部署 手动发布打包 Stage2 前端jenkins 前端全量部署 CDN/OSS 全栈 https Stage3 后端容器化部署 后端 CD 自动化 增加伸缩性和自我恢复能力 Stage4 前端部 ... Read more »