添加时间:2015-2-9 11:51:32 文章来源:
烟台软件开发
烟台软件开发认为,只要你遵循的规则越多,软件的寿命就越长。
1、模块化
处理有Bug模块的工作要比处理整个代码轻松的多。虽然相比较有史以来最复杂的CPU来说,人类要更加的复杂,但是你不得不承认人类有时也会有无法解决的复杂问题。我们擅长将复杂的问题逐步的分解为较小的我们能够解决的问题。当问题越复杂的时候,分解的优势就越显而易见。
将同样的逻辑运用到软件当中,通过多个文件、文件夹甚至是项目来划分你的软件,将所有相关性的事物遵循MVC或其他变化规律置于一个位置。这不仅会提高代码的可阅读性,也会让你的调试变得更加容易。在大多数情况下,堆栈跟踪会领你前往非常小的代码集,而不是成千上万行的代码文件。当更新个别模块时,你就不需要考虑整个系统。
2、测试
所有的产品代码都需要测试。我们习惯性的去把测试当作是一种不同于做软件的活动,即便是在学校,你被传授的是C++模块如何工作的,却没人教你它们是如何被测试的。在线教程会教你如何使用Brain****制作一个Web服务,然而它们不会告诉你如何去测试它,这就是问题所在。有些人会告诉你,在开始写实际的应用逻辑之前,首先要做的是编写测试。
何时编写测试各有喜好,只要写了就OK。当你第一次开始的时候,不要试图成为一个测试高手,从简单粗暴开始,如print(add(1, 1) == 2),然后再逐步到测试整个框架。
当你开始测试你的代码时,你将会明白你软件的复杂性。你将开始学习如何将你的软件模块化,以便可能独立测试。所以当你遵循了这一规则的时候,你同时也在遵循第一个规则——模块化。
3、持续集成
持续集成是伟大的,它们会在你添加碎片代码的时候通知你。当你编写测试之后,你需要确保它们是合格的,同时也要确保它们在多种环境下是合格的。在代码作出任何改变时,你也需要测试。当你能够手动的做这些时,你可以选择更方便、更快以及更便宜的持续集成平台。Thoughtworks在CI上有显著的贡献,关于CI,你需要知道:CI,持续集成是一个开发实践,需要开发者每天数次的频率将代码集成到一个共享的库中,每一次入驻都会被自动构建归档,以便团队提早发现问题。
4、自动化
有多个脚本需要运行测试和部署?将它们添加在单一的bash脚本中,减少步骤,节约时间。大的项目通常会有一些像引导代码或以不同的方式测试代码等任务,又或者部署到不同的服务器,备份部分的代码等等。有些人会使用txt文本来存储这些命令,并在需要的时候复制粘贴。如果你是这样的,或许你应该抽个时间来学习一下bash脚本。这里有些常见的任务,你应该用到简单的bash脚本来自动化处理它们:将README.md转换为其他格式。
自动化测试,开发服务器的阶段代码,部署到产品,自动从属更新。
5、信息冗余
冗余版本控制,不要仅依赖于Github,使用多个同步的站外远程,增加信息冗余。
如果你把代码仅仅托管于Github的话,或许你应该需要反思了。烟台软件开发提示,试想一下,但凡Github有一点故障,你的工作流程将会停止。你无法预料到意外何时会出现,所以保持代码的离线备份永远都不会是一个坏注意。这种情况下信息冗余对你而言是一件好的事情。
这里提供一些代码存储的参考:
将代码存储与Dropbox的Codebase文件夹中,自动同步变化;同时将代码存储于Github;将最重要的代码存于另外两个地方。
6、提交
对于经常做出改变、提交和推动的人来说使用合理的提交信息是很有必要的。
很多程序员多会把版本控制系统当作是一种备份,而不是维护历史的一种手段,充满这种信息的历史版本是没有用处的,除非你想去做检索文件。
如果你觉得很难去写好一个提交信息,或许可以参考以下几点:
每个提交都应该有一个目的:修复一个缺陷、添加一个新特性或删除一个现有的特性等等;每次仅提交一个改变;在提交的信息中应包含问题编号;提交说明中应对改变作出描述;
7、计划
制定一个计划为最坏的情况做准备,一旦真的出现问题,你该怎么做?所以在文档中详细的写下步骤。
即便遵循以上六个规则,也并不是意味着你的软件是不可战胜的。说不定由于什么或者是谁的过失,灾难就会降临。所以有一个计划是明智的,一个计划会让你看上去“很聪明”,事实也是如此。
想要了解更多详情欢迎来电咨询18678812288,或登陆网址www.jnwzjs.cn。联系人:王经理。