编程语言:
机器语言是处理器可原生理解的唯一语言
内聚性:保持专注,一个模块解决一个事情,编写模块执行的任务越少,内聚程度就越高,更新或修改模块就越容易,更容易复用和维护
耦合:是指代码模块需要多少交互和通讯才能执行任务,
高内聚、低耦合,降低代码攻击面
组织中的工具集
集成开发环境:组合和集成工具的目标是提高生产力,并通过减少管理多个工具的开销来确保一致性
运行时环境:RUN TIME
沙盒 考点
持续集成:CI 小规模、小批量
持续交付:CD 代码自动交付到生产环境
持续部署是持续交付的衍生,自动化,无需人工干预
软件配置管理,本质上是版本管理
代码存储库:机密性、完整性(允许回滚到上一个版本)
代码审查:同行评审
静态测试,不运行代码,用自动化工具,
不能发现逻辑错误
动态测试,不知道具体代码,帮助发现逻辑错误
交互式应用程序安全测试
模糊测试
软件组成分析 SCA