如何修复错误并向源文件添加功能,同时保证不会破坏某些应用程序
How do you fix bugs and add features to a source file and also guarantee that you don’t break some applications?
文件将带有错误,公司总是希望提供新功能。一定是一种分发新文件的方式,希望应用程序能够正常工作。如果应用程序不能正常工作,必须有一种简单的方法将应用程序恢复到上次已知的良好状态。
我知道这是一个普遍的问题,但我认为这也是一个普遍的问题。
不同平台上解决方案的比较将会越来越多。
亲爱的朋友,
其实我说的不是如何开发软件,
它是关于如何在最终用户机器上以最小的副作用部署软件
- (应该是第0步,或-1)使用一个功能强大的源代码管理工具,并充分利用它的潜力:特别是分支)
- 测试驱动开发——总是对你可以测试的东西进行测试,并设计可测试的代码(当然,在可行的情况下)
-
永远不要同时做这两件事:
- 重构
- 介绍新功能
- 修复bug
- 尽可能使用持续集成
在紧急情况下恢复到"最后一个稳定"版本
这必须得到一些基础设施决策的支持,比如保持最后一个稳定版本的编译,并准备好在出现问题时重新部署,尽管付出了努力(已经存在,已经完成了)
您应该进行单元测试。这是一个很好的解决方案,以避免和跟踪回归。
但是你不可能在一个大的应用程序中快速做出改变,然后构建一个测试单元来确保一切正常。你必须做一堆测试单元。
这是昂贵的,但没有便宜的方法来确保应用程序是无bug的。唯一的解决方案是投入大量的工作进行测试,无论是使用单元测试还是人工测试人员,或者两者兼而有之。《Joel Test》强调了这一点,因为一个严肃的团队必须在测试上投入足够的资金。
将应用程序恢复到旧状态只是有一个好的版本控制系统,而不是配置和数据部分的混乱。一些VCS有工具可以帮助您发现何时发生了错误,例如git-bisect.
相关文章:
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- Visual Studio中的wxwidgets应用程序给出错误"LNK2019 unresolved external symbol"
- 调用 java 的回调() 时应用程序崩溃.由于 detatchThread 而获得运行时错误
- 设置我的应用程序 API 感知并防止系统使其模糊和错误定位
- 错误: 无效使用非静态数据成员"应用程序::应用程序构造函数"
- QT C++防止关闭应用程序时出现运行时错误
- JNI 在应用程序中检测到错误:在为 innerclass 调用 NewObject 时使用了无效的 jobject
- 如何使用CLion和MSVC编译器工具链编译wxWidgets Hello World应用程序而没有错误?
- 运行 libpng 应用程序时出现运行时错误
- .exe应用程序在windows10中创建新模块时抛出错误,但在windows7中工作正常
- 由于选项卡顺序的原因,鼠标光标总是得到错误的hwnd-MFC应用程序
- SDL 应用程序错误:“if”之前应为非限定 id
- Cygwin1.dll c++ 应用程序错误
- ilmerge后C /CLI应用程序错误
- OPENCV:image_proc中的 PCA 应用程序错误
- 可视C++窗体应用程序错误: C3374
- Windows 窗体应用程序错误
- 多线程应用程序错误C++
- 需要一个健壮的win32 GUI应用程序错误系统