【结构】
l 预期
l 方法
l 原因
l 抽象
l 指标
【预期】
项目或产品的高速度兼高质量的发布
【方法】
灵魂五问(what/from/to/why/how)
【原因】
为什么要优化?
1 减少成本[时间|空间]
a) (复用性)
描述:重复造轮子是不必要的,会让代码和空间冗余
b) (易交接)
描述:让后来者或协作者感到舒服,节省对接与交接时间
c) (结构设计)
描述:结构设计简单可以减少冗余工作和空间,语言具有通性,保证表达精要准确将带来意外的好处
d) (算法设计)
描述:前车之鉴,后车之师,算法结构化、简单化可以长期获益
2 减少风险
a) (耦合性)
描述:代码耦合度高,将导致一人受影响十人遭殃的局面
b) (兼容性)
描述:高版本应兼容低版本功能,在废弃模块前确保模块已没有被引用
c) (伸缩性)
描述:保证应用的服务可以升降级,提高控制力度和硬件资源利用率,(spring cloud有相应解决方案)
d) (扩展性)
描述:在编码和结构设计时应具有前瞻性,如无,将可能发生频繁复工
e) (安全性)
描述:如有安全漏洞,那潜在风险据具体情况而定,且难以不可挽回,保证各类测试到位,不略过必要流程
f) (健壮性)
描述:代码缺少健壮性将导致程序执行有不可控的风险
g) (体验性)
描述:应用响应时间长将带来用户不良体验,改变它是加分项
【维度】
1. 高效的沟通
描述:表达简单、具体、精准,避免重复询问,减少沟通成本。
2. 用好快捷键
描述:每款软件都有相应的快捷键,利用好他们是高效的杀手锏
3. 用适合自己的插件
描述:插件的优势不必多叙了,具有一定的通用性,否则人家也不会闲的没事开发插件
4. 利用好IDE工具功能
描述:例IDEA,集成了诸多功能,等待你的挖掘
5. 对象批处理化
描述:如果一个问题可以批量处理,很节省时间,就看你是否可以抽离一个批处理的操作方法
6. 对象流程化
描述:流程化的思维也非常普遍,将主要步骤抽离出来作为执行流程,具体的实现与主干分离,这样简洁明了
7. 对象规范统一化
描述:硬代码或配置信息抽离到公共常量或属性文件,变量取名、相同逻辑实现方法统一
8. 抽离公共代码
描述:简言之方法复用,原则:如果有两个或两个以上的地方用到了相同的逻辑处理,可以将其抽象成一个公共 方法,便于统一修改与方法复用。
9. 治根不治标(深挖问题)
描述:从原理解决问题是不让问题复现的解决方法
10. 不带情绪
描述:工作需求而已,如果有不良感受,请多自省
【指标】
1. 正确性
描述:正确性是基础要求,保证程序符合预期逻辑正常执行
2. 安全性
描述:有效认证、有效鉴权、保障闭环,出现问题可追溯
3. 扩展性
描述:功能设计及实现时需要考虑插拔性,便于功能间解耦
4. 复用性
减少重复代码、降低整体开发工作量,提高编译与执行的效率
5. 简洁性
描述:提高可读性、降低运维成本、问题简单化
6. 效率性
描述:时间复杂度、空间复杂度考察,算法优化,减少应用响应时间
7. 耦合性
描述:考虑减少模块与模块之间的耦合度可以让代码具有柔性
8. 反馈调节
描述:让问题得到更优解
~~~