Time:
2017-08-03 14:07:37
Author:
Lei
前端在日新月异的发展下,给开发人员带来便捷与高效,也给开发人员带来挑战与思考;开发过程中一千个人之中有一千个哈姆雷特也出现了一千份截然不同的代码,使得代码的管理以及维护带来困难,在此基础下,不同的团队在自身的环境下具体问题具体分析后制定出自己的一套规范,由此,展开了规范化在于项目过程中的重要性讨论。
项目开发过程中不是一蹴而就,而是由简入繁的过程,这个过程受到不同因素影响,从未知的影响下转化为已知的过程,往往带来的结果就是对于项目的调整,这是一个不可避免的流程。在这个不可避免的流程下,提出自己的第一个观点,规范化对于项目的重要性之一则是利于对项目的维护。由此,可以提出另外一个开发疑问,什么样的规范化利于项目的维护;在我理解情况下,主要有一下几点。
一、代码的注释:
上面的两段代码在实现的过程中假设是A开发人员,在修改的过程中需要B来修改,在一个庞大的项目中B为了修改代码需要读懂A开发人员写的代码,在没有注释的情况,无疑会给B开发人员带来难度,项目越复杂,需要理解的代码就越多,在修改的过程中就会耗费更多的时间。
二、模块化开发:
为什么要开始模块化开发?当一个项目越来越复杂的时候,会出现比较多的问题,比如说全局变量污染问题,功能之间的可关联性太小,不能很好的调用已完成的功能......
上面呈现代码中,我们可以看到在eat和play两个方法在模块化和普通函数的调用的区别,通过person的类我们把子类封装到自己的私有作用域中,减少了全局的方法,只留下一个接口来进行调用。而普通的函数式直接暴露在window的作用域下,同时假设上面两段代码是A开发人员已经写好的,而B开发人员开始维护,B开发人员这个时候也想实现一个eat和play的方法,这个时候所产生的问题就是,B人员所写的方法名和A人员的方法冲突。或者在其他的情况下,B想修改A的方法,在关联性不强的情况下,也使得B对于A的代码产生难度,(注:这里所说的关联性不是低耦合或者高耦合的概念),这里所指的面向对象的封装概念。模块化的实现不仅可以使得代码的可读性和复用性提高,还能大大的减少代码冲突和无意义的报错。在这里所举例的只是最为的简单的一种封装的模块化,在整站的模块化过程也可以调用框架,前端的模块化框架request.js和服务器框架node.js。
规范化的重要性还远远不止于此,现在说说规范化另外一个重要功能SEO,SEO是搜索引擎的排名机制的基础之上,对网站进行内部的调整及外部的调整优化,好的SEO就像好的影视剧,能让剧中之人露脸频率与被人熟知的机会加大。那么为什么前端的规范化和SEO有关联?SEO的工作过程中是一个网页发现、收集网页信息、之后针对收集的网页信息建立索引库,再由检索器根据用户输入的关键词返回结果。通过这个过程,我们抛出另外一个疑问,这个机制是如何搜集信息,而我们的规范化是如何让我们的信息被搜索引擎机制所抓取。
一、爬虫通过url超链接从这个网页爬到另外一个网页:
所以url的设计过程中,一方面对于的功能的实现,另外一方面也需要考虑到SEO的优化,具体的表现在于:
1.url尽量简短,在简短的url中使用规范的小写英文关键词。
2.减少域名的收录,一个网站如果有几个不同的域名,对于SEO来说,不能够判断其中哪一个才是正确的,在网页收录的过程中爬虫会收录这几个域名,在搜索过程中显示的网页或许不是你想要的域名,同时一个规范性的域名为http://www.test.cn,不规范的域名为http://test.cn,这些情况下会分散页面权重,不利于搜素排名。虽然在可以通过301重定向来转向权重。但无疑来说,规范的url是对SEO无疑是较好的。
二、通过标签来提高SEO的收录:
当搜索引擎抓取到了一个新的站点,爬虫将会对这个站点进行收录。为了使爬虫的抓取更为高效,也需要开发人员在开发中不仅仅是实现功能,同时也需要考虑网页的结构上对SEO的考虑。
1.HTML5的语义化的标签出现,对于SEO更加的友好,也促使我们需要合理的使用HTML5的标签进行网页结构的布局
2.meta属性content设置搜索引擎搜索到的关键字,content的内容和title标题设置的关键词需要精简。
3.页面中不过多的设置h1标签,也不能不设置h1标签,h1变迁的重要性仅此与title的内容,如果网页中使用不到h1标签,可以设置h1的内容为需要收录的内容,对h1的标签进行z-index的隐藏,不建议使用display:none进行隐藏,对于display:none的内容,爬虫会默认跳过。同时对于重要的内容渲染不使用js,js的内容和iframer的内容,爬虫的收录效果非常差或者说不收录。
4.图片需要设置alt属性,网页需要设置404页面;之所以需要图片设置alt属性是因为爬虫不认识图片上的内容,只能通过alt进行抓取图片的信息。网页中设置404页面,对于爬虫来说,会不断从当前页面上抽取新的URL放入队列。如果抽取的过程中进入404页面,爬虫会默认回到之前的收录的页面。
规范化是每一个开发人员在不停的思考、经验积累的过程总结出来的一套‘标准’。这套‘标准’也许没有在开发过程中带来惊喜,但是却会在‘隐藏’的地带带来福利。以上所说的规范化,只是蜻蜓点水,还有着许许多多的优势没有体现。(注:以上观点仅为个人观点,如果观点有误。欢迎指正和补充)