• Coding优化策略


     

    【结构】

    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.     反馈调节

    描述:让问题得到更优解

    ~~~

     

  • 相关阅读:
    由保存当前用户引发的springboot的测试方式postman/restlet还是swagger2
    VS集成opencv编译C++项目遇到的问题
    利用StringUtils可以避免空指针问题
    springboot集成Guava缓存
    Oracle 课程四之索引
    Oracle 课程三之表设计
    Oracle 课程二之Oracle数据库逻辑结构
    Oracle 课程一之Oracle体系结构
    Oracle权限一览表
    Informatica元数据库解析
  • 原文地址:https://www.cnblogs.com/erfsfj-dbc/p/12779750.html
Copyright © 2020-2023  润新知