在当今的开发环境之下,快即是好。
当今诸如 “快速应用开发 ”,“敏捷软件开发 ” 以及 “非同步 JavaScript 和 XML “(如今我们甚至无法耐心地等待网页的重新载入) 等流行词汇和术语让您见识到究竟身处于怎样一个快节奏的世界当中。
但是做事赶时间并不意味着您工作要加班加点——您工作时需要动些脑筋。此文,将为您提供缩短网页应用开发的十大省时技巧。
一、使用框架
框架提取出了常规代码,给您编写网页应用提供了一个基本的构造和基础。
框架中一个非常典型的例子就是 Rails,Rails 就是 Ruby 程序语言的一个网页应用开发框架。通过为您提供预先编写好的代码程序包 (举个例子,像多用户输入验证方式)——您不仅仅节省了用 Ruby 编写您自己代码的时间——您也很清楚这些程序包已经受住了其他开发人员的测试以及检验,这可以在广度测试时为您减少不少麻烦,另外还可以避免一些因缺少测试而导致潜在的漏洞。
同样的好处对于使用诸如 MooTools 的 JavaScript 框架也是适用的。这些框架提供给您的一些类方法都是由核心开发者和社群提供,并在诸多浏览器下经受广泛测试的考验。客户端指令码语言框架还有 jQuery,Prototype JS,以及 YUI 。如果您想用一些非主流的 JS 框架,您可以看看这个极具潜力的 JavaScript 框架 清单。
对于服务器端的框架,您可以考虑 CakePHP ,CodeIgniter ,Zend ,或者 symphony 。如果您喜欢 VB 以及 C#之类微软支持的语言,您可以考虑.Net 框架 。
您甚至是可以使用像 960Grid 或者 BluePrint 这样的 CSS 框架来快速编写和规范您自己风格的页面结构。
二、使用整合开发环境
当然,您可以只用一个 Notepad 这样的文字编辑器和 FTP 就可建立网页应用及其页面。但是我想大多数人都认为,这并不是一个可用在开发复杂和健壮网站专案之上的明智方法。
整合开发环境 (IDE),为您准备了建立和管理大型网站专案所需要的工具集合。整合开发环境的功能一直在变,但它们都有如下一些常见的功能
专案管理以及团队协作功能。
除错以及诊断功能。
语法提示以及自动完成功能 (IDE 会猜测您想写的语法)
语法高亮
内建 FTP,能同步本地和远端主机上的档案
“IDE” 这个词可能有些花哨,有些人还对此不太熟悉,但是大资料人应该听说过 Adobe 的 Dreamweaver 。 Dreameweaver 就可以看成是一个整合开发环境。因为它含有上面提到的一些功能,帮您更快的编写代码。 (他通常适用于前端的制作。但是它也支持服务器端的语言,像 PHP 和 ASP.NET)
如今网上有大量的 IDE,您所要做的就是为您自己 (或者您的团队) 挑选一个。像一些流行的,功能齐全的 IDE,如 Eclipse, Komodo IDE, NetBeans, Visual Studio, 以及 Aptana Studio.
如果,您看到这里后,依然决心要使用一个文字编辑器,您至少应该看看为代码工作者准备的文字编辑器集锦 这篇文章。
三、适当的模组化
模组化是建立易于维护和扩充套件复杂应用的关键之所在。本质上这意味着代码要以小的部件来编写,而不是将所有代码写成一个大档案。
模组化开头有其自身的时间成本 (因为您必须在设计档案结构方面花费不少心思。) 但是,当您需要变更某一部件或者想要扩充套件您的应用时,这会为您节省掉不少时间。
模组化也使得 bug 限制在模组之内,如果有地方发生问题,您会很快的找到问题所在。
但是模组化的滥用会导致代码的臃肿和太多不必要的 include 语句,这会极大的拖慢整个应用的执行速度。因此在模组化程度过高和过低之间,我们需要到一个好的平衡点。
一些模组化设计模式就包含 MVC 和 PAC 模式。
四、使用浏览器工具高效排除前端疑难问题
没有处理比跨浏览器的相容和解析问题更糟糕的事情了。这杆子事会使您疯掉,它给您带来的挫败感差不多让您觉得不砸掉点东西难解心头之恨。但是整合进浏览器的除错工具会使得寻找和诊断前端问题变得分为迅速和高效。
Firebug 和 Web Developer 是绝对必要的省时利器,它们已经成了前端网页开发者的必备工具。 Firbug 可以轻松的检视 DOM,以了解其原理,以及可以在执行中调整 CSS/HTML/JS, 除此之外,也可以帮您除错和注释 (profile) 您的 JavaScrpt 代码,帮您弄起初究竟是什么状况导致了您的指令码执行中断。 Web Developer 给您提供了一系列有用的工具,像有的工具可以让您点选一个页面元素就可以看到有哪些样式宣告影响了该元素,也可以使您很方便的禁用 JavaScript 和 CSS,让您了解在没有 JavaScript 或者 CSS 的情况下, 您的页面是如何工作的。
如果您需要在 IE 浏览器下除错,您可以尝试尝试 IE 开发者工具条 。它在功能上跟 Firebug 和 Web Developer 很相似。如果您想找更多的整合在浏览器内的 IE 除错工具来帮您 i 节省除错时间,您可以点选这个连结。
五、代码重用
如果您发现您自己老是在做重复的事情,这时候您应该反思反思您的代码结构了。考虑学习一下常见的设计模式它会帮助您建立可重用的灵活的方法,函式,以及物件。
打个比方,如果,您需要频繁的连结到资料库,您可能需要建立一个资料库的访问类,来处理资料库的连结,查询以及资料的提交。
六、 线上协作以及追踪专案状态
实际上——您工作并不孤单。无论您是为一个开发团队工作或是为某人工作 (这个人可能是您上司或者您的客户),您都应该充分享受线上协作和追踪专案状态说给您带来的好处。
您在行政性任务上花费的时间越少,或者在在无穷无尽的会议上花费的时间越少 (或者,更糟的,是那种需要出差的面对面会议)——您在代码上花费的时间就越多。
像 Basecamp, Lighthouse, 和 activeCollab 这类工具就给您提供了一站式团队协作服务,让您随时追踪专案的状态,您也可以设定专案的目标和里程碑 (milestones)——这样所有人就可以自动同步,为您省下频繁回复电子邮件的时间,您也无需在进度确认会议上花费大量无用时间。
这些工具 l 另外会帮助您区分事情轻重,确保了所有的事情都在一个集中的地方组织和记录下来。
七、代码的自动格式化和标准化
您需要将您的所有代码格式标准化,这样做不仅仅这是一个很好的习惯,而且日后您一旦需要回来看这些代码,这会帮您很快的理解这些代码。
代码的自动格式化可以让您一键格式化您所有的代码,而不是一行一行来做这事,这也确保了代码编写的一致性。自动的格式化也减少了手动修改产生错误的风险、
我们有许多工具来帮助我们做这事,很多是网络版的工具 。对于 CSS 而言,一个流行的开源解决方案就是 CSSTidy (Clean CSS is an CSSTidy 的线上版本) 。对于 HTML 我们有 HTML Tidy 。
对于指令码,我们有 PHP Source Code Formatter, Ruby Script Beautifier, 和 Code Beautifier Plus (这个工具是用来格式化 C#, ActionScript, and Java).
八、在需求收集和规划阶段多花时间
预防远胜过补救。或许某些思想学派的人物强调不要在计划上浪费时间——确保您已经收集到了您需要知道的所有资讯,在做功课方面花费必要时间依然是必要的。如果在需求收集方面没做足功课会导致功能泛滥 (feature Creep) , 原因就是各种未曾预料到的功能需求
九、使用已经编写好的代码
PHP Classes Repository Screen shot.
古人以及帮我们发明了车轱辘,所以我们也没必要亲自再捣鼓出车轱辘来。如果在某个地方看到某个感兴趣的功能,其他人极有可能已经为您写好了代码 (嗯,不仅仅是为您,而是为我们大家。) 对于 PHP 而言, PHP Classes Repository 为您提供了大批的类和指令码供您下载和使用。 Hot Scripts 则提供了其他语言的各种指令码。如果您只是想要一些小的代码段,您可以去 devSnippets 上面淘淘宝。
注意:只有当您具备充足的经验,能分辨出好代码和差代码,上面的这个办法才会真正帮您大忙。否则您会发现您终成品中代码 bug 丛生,书写混乱。
十、精简功能
您必须对网页应用的某些功能做一个评估,以判断在这个功能上面的时间投入是否值得。
您的多用户真的需要一个并不经常更新的内容管理系统为每一个类别的文章提供一个自定义的 RSS 输出吗? 您真的需要一个网站样式转换器来帮您检测到多用户地理位置哪里,然后将网站呈现不同的风格。
编写网站功能就是一场艰苦的战斗 ,不要在对终端多用户无用的功能上耗费开发时间,况且这些功能而且会使多用户介面复杂化。