08 2018 档案
摘要:订单搜索分页失效的教训:省去了几分钟的测试和回归时间,结果却消耗了更多用来发布、回滚、重新发布的时间,得不偿失,还险些造成故障。正应了那句话:怠惰必受罚, 勿以微小而不慎。
阅读全文
摘要:本文讲解使用Groovy+Spock来构建订单搜索的接口测试用例集合,并介绍了 groovy 元类的用法。
阅读全文
摘要:排查内存占用率一直增长的问题。使用MAT工具分析;清理内存占用大的大对象;清理被引用的Script对象和Context对象;对可能会一直增长的对象集合做缓存策略。
阅读全文
摘要:业务模式是对业务规则和流程的常见相似性、以及特定业务的数据处理能力的提炼,是业务应用系统中的常见套路。掌握这些套路,有助于更快更好地设计与实现业务。
阅读全文
摘要:存储设计是软件开发的基石,是软件详细设计中的关键环节。存储设计基本决定了应用的数据质量和业务支撑能力。
阅读全文
摘要:架构模式是系统组件及组件交互的模式,决定了处理数据和领域对象的全局控制结构。组件化是使用架构模式的前提。
阅读全文
摘要:本文讨论构建软件可采用的应用模型。应用模型涉及到数据处理的全局流程和交互方式。 我所接触过的,主要有“请求-响应模型”、“流处理模型”、“分布式模型”、“人机交互模型”。
阅读全文
摘要:将整个系统划分为若干正交的紧密关联的子系统,以及高内聚低耦合的小而美的模块与微服务,理清职责、交互与边界。划分的基本原则是“识别、分离和组合关注点”。
阅读全文
摘要:在 “软件设计要素初探” 一文,尝试从软件设计的整体角度,综合讨论了软件设计的各种要素。本文主要探讨一些稍小的设计子主题:错误处理、结构性难题、整体与兼容、设计取舍、设计与重构、设计与质量、设计与细节、维护与扩展、测量技术。
阅读全文
摘要:领域建模是软件设计的初始点。 反复追溯事物的本质“是什么”,从不同视角去理解事物的性质,理解事物之间的关联,梳理事物与活动的流程与环节,抽象出实体与关联,规则与约束。领域建模最核心的部分是:定义自身的定位,定义基础要素,定义完备的能力集合。
阅读全文
摘要:设计模式是实现特定需求的接近代码层面的设计套路,通常用于梳理和表达对象之间较为复杂的依赖和交互关系,将错综复杂的容易膨胀的难以理解和扩展的条件判断逻辑解开成一系列对象的清晰可理解的易扩展的交互结构。每个设计模式都有某个关注点,而这些关注点是相互协作的;具有协作关系的模式也是可以组合的。
阅读全文
摘要:本文展示了一种方法, 将具有内在关联性的JSON字符串转成对应的嵌套对象。 当处理复杂业务关联的数据时,相比过程式的思维,转换为对象的视角会更容易处理和使用,代码也更容易理解和维护。顺便踩了BeanUtils.populate的一个小坑:当使用 BeanUtils.populate 将 map 转为对象时,对象的属性命名要尤其注意: 第二个字母不能是大写!
阅读全文
摘要:本文讲解了通过观察者模式来实现配置动态更新实时推送的基本原理和实现。观察者模式是解耦变化与关联变化的设计结构,即:当一个对象的某个状态变化后,需要通知关注该对象该状态的所有对象。
阅读全文
摘要:入职近两年半了,尽管我并非爱有赞爱到骨子里,可是我仍然要向你推荐这家公司。事实上,我很庆幸自己一生中能够加入这样的公司。比较单纯,用心给每位小伙伴营造更加宽容的氛围。有赞的小伙伴也是颜值很高的哦,除了个别像我这样拖后腿的人。
阅读全文
摘要:无论我的想法多么合理,粗暴地打断启哥对我的建议,是非常伤害别人的行为。 事实上,我可以采取更友好的方式。
阅读全文