3. 技术专题 - 编程思想/思维

  • 程序员的工作就是把人类语言的需求转化成计算机语言,就要按照计算机的思维来做。因此程序员要思路清晰,有扎实的编程基础,有优秀的抽象能力,这样才能写出优秀的代码。
  • 局部性原理
    • 时间局部性
    • 空间局部性
    • 缓存
  • 抽象
    • CPU与指令集
    • 磁盘与文件
    • 数据共享与数据库
    • 应用层的MVC
    • 日志工具的Logger、Formatter、Appender
  • 分层
    • 计算机网络七层协议
    • Web三层结构
  • 分而治之
  • 异步调用及回调
    • AJAX
    • Node.js与Nginx
  • 事件/消息/通知/订阅
    • 用于解耦,避免多模块之间产生复杂的调用关系,也就同时帮助让代码更清晰,避免陷入调用链。
      • 这方面有点类似message queue的作用,各个模块只订阅自己关心的消息,让代码和逻辑更加直白,免得一个消息传来传去,还可能需要通过人进行间接通知,逻辑过于复杂。这样就相当于把一个调用链的每一步都拆成了多个单独的事件,可以用不同的事件定义和命名,更清晰,更职责分离。
    • 不管WPF桌面程序还是Angular前端程序,都经常用到。
    • 有的是模块间直接的消息传递(如Angular中父组件通过事件绑定通知子组件,子组件通过Subject属性通知父组件),有的是通过一个公共服务来管理(如Angular中在一个公共service中管理EventEmitter,然后需要知道该事件的所有模块都去订阅它)。
  • 链式调用
    • 封装的类的方法的返回值类型都是本类,那么就可以按顺序一直调用类中定义的各个函数了
  • Web自动化测试
    • 页面类
      • 把各个页面抽象成类,类中包含一些各个页面特有的操作(如等待某个元素多久,点击某个按钮)
      • 也可以继承自一个基类,包含一些基本/通用的方法/逻辑实现(如查找元素的方法,执行脚本,滚动页面,等待loading结束等)。
      • 这部分可以放在逻辑代码中,可以不属于测试代码(比如spring,可以放在main下面,而不是test下面)。
    • 测试类
      • 可以调用前面抽象出的页面类。
      • 测试类肯定就要放在测试代码目录下面了(比如Spring中的test目录)
      • 使用一些断言

posted on 2019-11-19 15:37  碎羽love星谊  阅读(103)  评论(0编辑  收藏  举报

导航