• 计算机速成课 第十六集 软件工程


    1. 引子

    • 微软 office 有大约 4000 万行代码

    2. 软件工程

    • 这个词由工程师 Margaret Hamilton 创造
      • 她帮助 NASA 在阿波罗计划中避免了严重问题
      • 她说过:有点像牙根管治疗:你总是拖到最后才做,但有些事可以预先做好

    3. 对象 Objects

    • 出现原因:解决大型项目中,函数太多的问题
    • 解决方法:把函数打包成层级,把相关代码都放在一起,打包成对象
    • 举例:汽车软件中的定速巡航函数

    4. 面向对象编程

    • 定义:把函数打包成对象的思想
    • 特点:通过封装组件,隐藏复杂度
    • 核心:隐藏复杂度,选择性的公布功能
    • 因为做大型项目很有效,所以广受欢迎
    • 举例
      • 之前把「晶体管」,打包成了「逻辑门」
      • 计算机上几乎所有软件,游戏机里几乎所有游戏,都是「面向对象」编程语言写的
        • 比如:C++,C#, Objective-C
        • 其他:Python,Java

    5. 文档

    • 位置:一般放在一个叫 README 的文件里,告诉其他程序员,看代码前先看这个文件
    • 作用
      • 帮助理解代码都做什么
      • 好文档能帮助开发者几个月后理解自己的代码,对其他人也很重要
      • 还可以提高复用性,读文档看怎么用就行,不用读代码
    • 也可以直接写成「注释」,放在源代码里
      • 「注释」是标记过的一段文字,编译代码时,注释会被忽略

    6. API

    • 作用
      • 帮助不同程序员合作,不用知道具体细节,只要知道怎么使用就行了
      • 控制哪些函数和数据让外部访问,哪些仅供内部
        • 「面向对象」的编程语言,可以指定函数是 public 或 private,来设置权限
        • 如果函数标记为 private,意味着只有同一个对象内的其他函数能调用它
        • 如果函数标记为 public,意味着其他对象也可以调用它

    7. IDE

    • 代码在编译前就只是文字而已,也可以使用记事本或任何文字处理器
    • 现代软件开发者,会用专门的工具来写代码。工具里集成了很多有用功能,帮助写代码,整理,编译和测试代码。因为集成了所有东西,因此叫「集成开发环境」,简称 IDE
    • 所有 IDE 都有写代码的界面,还带一些有用功能,例如
      • 代码高亮,来提高可读性
      • 提供实时检查,比如拼写
      • 帮助开发者整理和看代码
    • 很多 IDE 还可以直接编译和运行代码
    • 可以定位到出错代码,提供信息,帮你解决问题,这个叫做「调试」
      • 调试很重要
      • 大多数程序员会花 70% ~ 80% 时间调试,而不是在写代码
    • 好工具能极大帮助程序员防止和解决错误
    • VIM 才是最棒的编辑器

    8. 源代码管理

    • 也叫「版本控制」
    • check out:从代码仓库中迁出 checkout 代码到自己本地机器上编辑代码,加新功能,测试代码
    • commit:如果代码没有问题了,所有测试通过了,就可以把代码放回去,这叫提交
    • 好处:防止代码冲突和重复劳动
    • 代码的主版本 (master),应该总是编译正常,尽可能少 bug

    9. 测试

    • 可以统称「质量保证测试」,简称 QA
    • 一般由个人或小团队完成
    • 模拟各种情况,看软件会不会出错,基本上就是找 bug

    10. 版本名词

    • beta 版

      • 定义:软件接近完成,但不是 100% 完全测试过
      • 一般是公司对公众发布 beta 版,以帮助发现问题
      • 用户就像免费的 QA 团队
    • alpha 版

      • beta 之前的版本
      • 该版本一版很粗糙,错误很多,经常只在公司内部测试
  • 相关阅读:
    【转】浮点数与IEEE 754
    最小二乘
    黑科技!两行代码完美解决:同时设置overflow-x:hidden,overflow-y:visible无效的问题
    js过滤html标签
    react native 项目版本升级
    react-native中显示手机本地图片/视频
    SourceTree推送分支时遇到ArgumentException encountered错误的解决办法
    开发自己的react-native组件并发布到npm[转]
    react native 中实现个别页面禁止截屏
    JS数字转中文
  • 原文地址:https://www.cnblogs.com/zxxsteven/p/15733377.html
Copyright © 2020-2023  润新知