在当今的开发环境之下,快即是好。
当今诸如“快速应用开发 ”,敏捷软件开发 ”以及“异步j**ascript和xml “(如今我们甚至无法耐心地等待网页的重新载入)等流行词汇和术语让你见识到究竟身处于怎样一个快节奏的世界当中。
但是做事赶时间并不意味着你工作要加班加点——你工作时需要动些脑筋。此文,将为你提供缩短网页应用开发的十大省时技巧。
一、使用框架。
框架提取出了常规**,给你编写网页应用提供了一个基本的构造和基础。
框架中一个非常典型的例子就是rails,rails就是ruby编程语言的一个网页应用开发框架。通过为你提供预先编写好的**程序包(举个例子,像用户输入验证方式)——你不仅仅节省了用ruby编写你自己**的时间——你也很清楚这些程序包已经受住了其他开发人员的测试以及检验,这可以在广度测试时为你减少不少麻烦,另外还可以避免一些因缺少测试而导致潜在的漏洞。
同样的好处对于使用诸如mootools的j**ascript框架也是适用的。这些框架提供给你的一些类方法都是由核心开发者和社区提供,并在诸多浏览器下经受广泛测试的考验。客户端脚本语言框架还有jquery,prototype js,以及yui。
如果你想用一些非主流的js框架,你可以看看这个极具潜力的j**ascript框架清单。
对于服务器端的框架,你可以考虑cakephp ,codeigniter ,zend ,或者symphony。如果你喜欢vb以及c#之类微软支持的语言,你可以考虑。net框架 。
你甚至是可以使用像960grid 或者blueprint这样的css框架来快速编写和规范你自己风格的页面结构。
二、使用集成开发环境。
当然,你可以只用一个notepad这样的文本编辑器和ftp就可创建网页应用及其页面。但是我想大多数人都认为,这并不是一个可用在开发复杂和健壮**项目之上的明智方法。
集成开发环境 (ide),为你准备了创建和管理大型**项目所需要的工具集合。集成开发环境的功能一直在变,但它们都有如下一些常见的功能。
1、项目管理以及团队协作功能。
2、调试以及诊断功能。
3、语法提示以及自动完成功能(ide会猜测你想写的语法)
4、语法高亮。
5、内置ftp,能同步本地和远程主机上的文件。
ide”这个词可能有些花哨,有些人还对此不太熟悉,但是大数据人应该听说过adobe的dreamwe**er。dreamewe**er就可以看成是一个集成开发环境。因为它含有上面提到的一些功能,帮你更快的编写**。
(他通常适用于前端的制作。但是它也支持服务器端的语言,像php和。
如今网上有大量的ide,你所要做的就是为你自己(或者你的团队)挑选一个。像一些流行的,功能齐全的ide,如eclipse, komodo ide, netbeans, visual studio, 以及aptana studio.
三、适当的模块化。
模块化是创建易于维护和扩展复杂应用的关键之所在。本质上这意味着**要以小的部件来编写,而不是将所有**写成一个大文件。
模块化开头有其自身的时间成本(因为你必须在设计文件结构方面花费不少心思。)但是,当你需要变更某一部件或者想要扩展你的应用时,这会为你节省掉不少时间。
模块化也使得bug限制在模块之内,如果有地方发生问题,你会很快的找到问题所在。
但是模块化的滥用会导致**的臃肿和太多不必要的include语句,这会极大的拖慢整个应用的运行速度。因此在模块化程度过高和过低之间,我们需要到一个好的平衡点。
一些模块化设计模式就包含mvc 和pac模式。
四、使用浏览器工具高效排除前端疑难问题。
没有处理比跨浏览器的兼容和解析问题更糟糕的事情了。这杆子事会使你疯掉,它给你带来的挫败感差不多让你觉得不砸掉点东西难解心头之恨。但是集成进浏览器的调试工具会使得寻找和诊断前端问题变得分为迅速和高效。
firebug 和web developer 是绝对必要的省时利器,它们已经成了前端网页开发者的必备工具。firbug可以轻松的查看dom,以了解其原理,以及可以在运行中调整css/html/js, 除此之外,也可以帮你调试和注释(profile)你的j**ascrpt**,帮你弄起初究竟是什么状况导致了你的脚本运行中断。web developer给你提供了一系列有用的工具,像有的工具可以让你点击一个页面元素就可以看到有哪些样式声明影响了该元素,也可以使你很方便的禁用 j**ascript和css,让你了解在没有j**ascript或者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 j**a).
八、在需求收集和规划阶段多花时间。
预防远胜过补救。或许某些思想学派的人物强调不要在计划上浪费时间——确保你已经收集到了你需要知道的所有信息,在做功课方面花费必要时间依然是必要的。如果在需求收集方面没做足功课会导致功能泛滥(feature creep) ,原因就是各种未曾预料到的功能需求。
九、使用已经编写好的**。
古人以及帮我们发明了车轱辘,所以我们也没必要亲自再捣鼓出车轱辘来。如果在某个地方看到某个感兴趣的功能,其他人极有可能已经为你写好了**(嗯,不仅仅是为你,而是为我们大家。)对于php而言, php classes repository为你提供了大批的类和脚本供你**和使用。
hot scripts则提供了其他语言的各种脚本。如果你只是想要一些小的**段,你可以去devsnippets 上面淘**。
注意:只有当你具备充足的经验,能分辨出好**和差**,上面的这个办法才会真正帮你大忙。否则你会发现你最终成品中**bug丛生,书写混乱。
十、精简功能。
你必须对网页应用的某些功能做一个评估,以判断在这个功能上面的时间投入是否值得。
你的用户真的需要一个并不经常更新的内容管理系统为每一个类别的文章提供一个自定义的rss输出吗?你真的需要一个**样式转换器来帮你检测到用户地理位置**,然后将**呈现不同的风格。
编写**功能就是一场艰苦的战斗 ,不要在对终端用户无用的功能上耗费开发时间,况且这些功能而且会使用户界面复杂化。
AutoCAD的开发技巧与应用
作者 耿金良。现代商贸工业 2011年第07期。摘要 autocad是目前国内外使用最广泛的计算机辅助绘图和设计软件包,它适用于机械 电子 建筑等多种领域。autocad具有开放的体系结构,允许用户对其进行扩充与修改,开发出满足特殊专业需要的autocad增值软件。关键词 autolisp auto...
技巧交叉的应用应用
十字交叉的应用技巧。金点子 对于二元混合物,如果用c表示己知的两个量c1 c2的平均值,n1 n2表示c1 c2对应的份数,则有 c1 n1 c2 n2 c n1 n2 c n1 c n2 n1 c1 c n2 c c2 根据这个关系可以写成十字交叉图式 斜看差数,横看结果 这种运算方法叫十字交叉法...
翻译技巧的应用
翻译技巧的应用 长句拆译的应用division 一 由于英语和汉语两种语言存在有不少差异。英语中的长句常常要译成汉语的几个短的句子。不仅仅限于句子的译法。甚至连英语中的简单句 短语词组,甚至一个单词都根据语境都可以用汉语的句子来表达。这是由于两种语言的思维方式不同,两种语言的句子结构有时也大不相同,...