《重构HTML:改善Web应用的设计(修订版)》——第2章 工具 2.1 备份、测试用机和源码控制

简介:

本节书摘来自异步社区《重构HTML:改善Web应用的设计(修订版)》一书中的第2章,第2.1节,作者: 【美】Elliotte Rusty Harold 更多章节内容可以访问云栖社区“异步社区”公众号查看。

第2章 工具

自动化工具是重构的重要组成部分。尽管可以使用文本编辑器手动执行重构,甚至有时出于演示的目的我也使用这种方式,但实际上绝大多数的时候我们都使用软件来辅助工作。据我所知,到本书写作时为止,还没有可用于HTML的主流的重构浏览器(refactoring browser)。但已经有很多工具可用在重构的过程中。本章会讲解一些工具。

2.1 备份、测试用机和源码控制

自始至终,我都会在本书中向你展示一些非常强大的工具和技术。伟大的教育家Stan Lee告诉我们:“能力越大,责任越大。”①使用这些技术必须对结果负责,不要让破坏变得不可弥补。我给你展示的工具中有些可能会“行为不端”,有些被弄糊涂时还有会出现边际效应。品质不良的HTML实在太多了,因此这里讨论的工具做不到面面俱到。因此,重构HTML至少需要5个步骤。

(1) 确定问题。

(2) 修复问题。

(3) 检验已修复的问题。

(4) 确保没有引入新问题。

(5) 部署解决方案。

错误在所难免,因此不要在任何一个在线的网站上使用这些技术。在做任何改动之前,先准备好一份网站的本地副本。完成本地副本的修改之后,仔细检查所有页面才进行部署。

现在许多大型网站都已经使用测试用机(staging server)或开发用机,在公开发布之前可以部署和检查内容。如果只是个人静态的小网站,直接复制一份到本地硬盘上进行修改就可以了。但无论如何都只在副本中工作,并在部署之前检查所有的变化。如何检查变化则是下一节要讲述的内容。

当然,就算是经过了最仔细的检查,还是难以避免一些错误,而这些错误由最终用户首先发现。有时网站在测试用机上运作得很好,但到了生产机中就有可能因为未知的配置区别,而碰到各种不可思议的问题。因此,对生产环境的网站进行整体备份,以便新部署的网站不能按预期运作时进行恢复,这是一个非常不错的做法。定期、可靠、经过测试的备份是不可或缺的。

最后,你应该非常谨慎地把包括HTML、CSS和图片的代码存储在源码控制系统中。程序员使用源码控制系统有数十年了,但Web开发者和设计者对它还相对陌生,现在是改变的时候了。网站越复杂,那些微乎其微的问题就越有可能被忽略。在重构时,能够恢复到前一个甚至是数月乃至数年之前的版本是非常关键的,这样才能找到是哪次改变引入了错误。源码控制同时提供以时间为标识的备份,因此可以还原到指定时间点的状态。

在Web开发中,我强烈推荐使用Subversion,很大程度上是因为它非常好地支持目录间文件的移动,并且对Unicode的出众支持和对二进制文件的得体支持也非常有帮助。大部分的源码控制系统在默认情况下都为程序员配置妥当,不用去关心文件在目录间的移动。但是Web开发者频繁地改变网站结构(实际上过于频繁了),因此系统必须能够追踪文件移动的历史。如果上级已经帮你配置了如CVS、Visual SourceSafe、ClearCase或者Perforce等其他源码控制系统,你大可随遇而安。但从长远看来,Subversion可能会做得更好,并且可以减少问题的引发。

如何管理Subversion这个主题可以写一本书,而实际上也已经有很多这样的书了(我喜欢的是Mike Mason著的Pragmatic Version Control Using Subversion[The Pragmatic Bookshelf,2006])。很多大型网站专门雇佣负责管理源码控制仓库的人。但先别担心,毕竟配置Subversion或其他源码控制仓库的难度,并不会超过配置Apache或其他Web服务器。只需阅读少量文档,修改某些配置文件,或者求助于新闻组,或者通过Google搜索就可以解决难题。这都是切实可行的,而且这些时间值得付出。

如果有必要,你可以使用命令行在Subversion中提交或获取文件。但如果能使用如BBEdit这种内置支持Subversion的编辑器,事情会变得更简单。如Dreamweaver这种本身不支持Subversion的编辑器也有插件支持Subversion。此外,像TortoiseSVN和SCPlugin这种有界面的产品,可以在Windows系统上的资源管理器或是Mac系统上的Finder上直接集成Subversion。

一些CMS(内容管理系统)也有内置的版本控制。如果你使用的CMS正好有版本控制,或许就没有使用外部仓库的必要了。比如,MediaWiki把所有页面的所有修改都存储起来,这样就可以查看指定页面在任何时间任何位置的状况,而且还能够还原。这是维基百科所安装的MediaWiki模块中很重要的一个,因为修改是一个很现实的问题。不过即便是不对外开放编辑权限的私有网站,也能在保存的完整的历史记录中得到好处。Wiki是Web中使用版本控制最普遍的一种,其他一些(如Siteline等)CMS也提供这样的功能。

相关文章
|
12天前
|
运维 测试技术 Linux
关于Stress 压力测试工具的介绍与使用
在日益复杂的计算环境中,保证系统的稳定性和性能成为了每个Linux管理员的核心任务。面对不断增长的数据量和业务需求,如何有效评估系统极限和潜在瓶颈? 压力测试工具:stress,成为了不可或缺的助手。这篇记录描述stress工具的使用方法及其在模拟真实负载中的实用性。
关于Stress 压力测试工具的介绍与使用
|
12天前
2024较火的软件宣传单页HTML源码
2024较火的软件宣传单页HTML源码,源码由HTML+CSS+JS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果
23 4
2024较火的软件宣传单页HTML源码
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
探索软件测试中的人工智能应用
在数字化时代的浪潮下,软件测试领域正经历着一场由人工智能(AI)引领的变革。本文将深入探讨AI如何在软件测试中扮演关键角色,从自动化测试脚本的智能生成到缺陷预测模型的构建,再到测试用例的优化与管理,AI技术正在逐步提高测试效率,减少人力成本,并增强测试的全面性和准确性。文章将通过实例分析,阐述AI在软件测试中的应用现状和未来趋势,为测试工程师提供新的视角和工具,以适应不断变化的技术环境。
|
13天前
|
监控 Python
`pytest-qt` 是一个用于在 Qt 应用程序中进行 GUI 测试的 pytest 插件。
`pytest-qt` 是一个用于在 Qt 应用程序中进行 GUI 测试的 pytest 插件。
|
19天前
|
JavaScript 前端开发 测试技术
自动化测试在API测试中的深度应用与实践
【7月更文挑战第8天】自动化测试在API测试中的应用极大地提高了测试效率和质量,为软件的快速迭代和持续交付提供了有力保障。通过合理选择测试工具、制定清晰的测试计划并遵循最佳实践,我们可以充分发挥自动化测试的优势,为软件产品的稳定性和可靠性保驾护航。
|
17天前
|
机器学习/深度学习 敏捷开发 人工智能
现代软件测试技术的演进与应用
随着软件行业的快速发展,软件测试技术也在不断演进和创新。本文探讨了现代软件测试技术的最新趋势和应用,包括自动化测试、持续集成与持续交付、AI在测试中的应用等方面。通过分析这些技术的发展,我们可以更好地理解如何提高软件质量、加速交付,并提升开发团队的效率和创新能力。 【7月更文挑战第10天】
20 3
|
17天前
|
jenkins 测试技术 持续交付
探索自动化测试框架在软件开发中的应用
【7月更文挑战第10天】随着软件行业的快速发展,高效、可靠的软件产品成为企业竞争的核心。自动化测试框架作为提升软件质量与开发效率的关键技术,其在软件开发过程中扮演着越来越重要的角色。本文将深入探讨自动化测试框架的应用,从其定义、优势到具体实施策略,旨在为软件开发团队提供一套完整的自动化测试解决方案。通过实际案例分析,我们将展示如何有效整合自动化测试框架到软件开发生命周期中,以及如何克服实施过程中可能遇到的挑战。
|
19天前
|
存储 监控 数据可视化
性能测试:主流性能剖析工具介绍
**性能剖析**是识别应用性能瓶颈的关键,涉及指标收集、热点分析、优化建议及可视化报告。常用工具有:**JConsole**监控JVM,**VisualVM**多合一分析,**JStack**分析线程,**FlameGraph**展示CPU耗时,**SkyWalking**分布式跟踪,**Zipkin**追踪服务延迟。这些工具助力开发人员提升系统响应速度和资源效率。
26 1
|
18天前
动态粒子发射404网站HTML源码
动态粒子发射404网站HTML源码,粒子内容可以进行修改,默认是4,0数字还有一个页面不存在英文,可以自行修改,喜欢的朋友可以拿去使用,源码是html,记事本打开修改即可,鼠标双击可以运行
28 0
动态粒子发射404网站HTML源码
|
10天前
|
前端开发 JavaScript API
不可错过的 Web 开发工具
免费工具对于任何网络开发人员的工具包都是必不可少的,特别是对于那些预算有限或想要在不花钱的情况下提升技能的人来说。