做一个有信仰的前端开发人员 1.提问,阐述浏览器用户开发人员的关系(提问—阐述中举例VCD—具体阐述关系) 浏览器为什么有现在这么大?处理速度是现在这样的? 浏览器—开发人员—用户 浏览器需要用户,所以浏览器其实是根据用户的需要去做,即使是去做的遵循标准,最初目的也是为了用户。为什么浏览器有纠错性,为什么曾经的一个标准要错误的标签必须报错,不能正常显示页面。浏览器是为了用户好,用户好自己才能活下去;标准也是为了用户好,让用户知道自己技术是对用户有利的。但是为什么浏览器和标准却有如此大的不同。因为这中间插了一层人,就是我们开发人员。因为我们开发人员的不同行为方式,从而导致了浏览器和标准一些截然不同的行为。 举个简单的例子。用户通过电视连VCD看光盘内容。但是光盘往往有错的时候,许多放这些碟子的VCD机器读到错误就卡死到那里了。刚开始的时候,用户会抱怨碟子不好,慢慢的用户就会放弃VCD机器,因为碟子普遍不好,还要VCD做什么。然后VCD厂家不能坐视不管吧。所以他们就研究出了纠错技术,读到错误的部分,跳过去,不影响大部分的浏览。用户感到爽了,自然就不会放弃VCD机器,至少暂时不会有此想法。但是发明VCD碟子的人们呢,他们希望VCD碟子不会被损害,而不是简简单单跳过去。所以他们可能会考虑改进碟子被损害的几率,因为如果他们不改进技术,那么VCD厂家将放弃这个技术市场,从而投向另外的技术市场,从此VCD的技术就会消失。然后可能出现的情况就是VCD技术升级了,可能成为WCD、XCD等等。但是这时候新的问题就要出现了。你这个技术升级了,我的机器也得跟着升级,但是升级代价多大,用户会不会接受你这个新技术,等等问题。当你这个升级的技术的升级代价很大,或者用户觉得无法适应的时候,厂家就会放弃这项技术。是的,这个技术又要面临完蛋的危险。因此升级的时候,如果升级带来的代价太大,就不得不考虑放慢步伐,让用户和厂家接受以后一部分之后再进行下一步。如此看来技术想要存活下去真的是夹缝中求生存啊。 浏览器就像VCD机,我们写的代码就是光盘。现在我们就不难理解我们的web标准它多么想一步到位但是却不能够,看看XHTML2.0的下场。是的,xx语义化很好,img和a的移除很棒,省多少代码哪。但是假如我们是厂商,我们不得不面临的一个问题是什么?问大家。换位思考。我们不得不面临的一个问题就是:现有解析引擎的全面崩盘,要做一个全新的解析引擎。所有浏览器厂家基本回到了原点……那么我们会接受这个标准么?问大家。如果有的人说会,那么问他,你是做标准的还是做市场的,如果都照你这么做公司就要破产了。一个公司首要的是要存活,然后才考虑信仰(良知不在此范围)。那好,用户看到的页面也是没什么变化的(表面上),现在一个正常的浏览器厂商老板都不会接受这个标准。除了GOOGLE可能会欢迎,因为它们首先是做搜索引擎其次是做浏览器的,标准有利于搜索引擎。然后新的问题就出来了,厂商不接受这个标准,怎么办。没有人市场的标准就是一纸空文,没有意义。所以。XHTML2.0完蛋了。尽管它让代码更简洁,让搜索引擎更喜欢。 2.解决文初提到的问题。引申出开发人员的不坚定是整个问题的产生因素。告知大家保持信仰。 我想说的并不是浏览器用户开发人员三者的关系,我想说这三者的关系,只是想告诉大家,浏览器是根据市场来决定web标准的存活的,而用户就是市场的根本。大家想想,老师说过我们这行业里有多少混子,大家大部分也都加前端群里和那些工作前线的人交流过了,他们是什么水平想必大家心里都很清楚。他们写出来的代码能是什么样子的,前阵子郑晗给我看过一个table布局下的问题,全部table加img,背景色都截图到img里。大家想想是不是,这些代码如果按照标准来会怎么样。如果我们是厂商,再次换位思考,这样的代码泛滥带来是什么结果。问大家。带来的结果就是用户无论用什么浏览器看到的都是不对的页面。那么我们有没有办法整治那些混蛋开发人员呢?没有办法,他们也不是你的员工,别的办法也不能立即奏效,我们只能保住眼前利益,对吧。此处可以提问大家,遇到这种问题怎么办。那么我们就只能够增强浏览器的纠错性。那么好吧,浏览器就变大了,处理速度变慢了。 假如我一开始就告诉你们,一切都是因为我们这些代码开发人员,可能你们接受不了。但是我这样带着大家换位思考下来,相信你们都能理解了。为什么浏览器厂商会这么做。因为它也是为了活下去。很简单的一个例子,搜狗里有纠错功能,输入错误的拼音能得到正确的词组。这也是搜狗成功的一个重要因素。 那么这样带来的结果是什么,就是浏览器不断变大,用户体验越来越不好,什么鸟浏览器,或者什么鸟网站,太TM慢了。更有小白会说,擦,升级了浏览器网速就变得这么慢。这是一个恶性循环。怎么解决?作为浏览器厂商,我们想解决这个恶性循环,我们会希望什么发生呢?想想,就是一个新的技术出来,不用过大的更改解析引擎,不用太大的代价。根源上的解决才能解决问题。但是实际上呢,他们不知道做标准的多么为难,他们有个解决的办法,但是升级代价太大,所以他们不得不忍耐的一步一步的慢慢实现升级。 哦了,讲这么多,想告诉大家,我们就是改变这个恶性循环的重要环节,如果我们每个代码开发人员都有良知,写好的代码,那么这个升级的过程就会快的很多很多。就像如果世界上每个劳动者都有良知,珍惜时间,在路上发生车祸的时候不停下来看热闹,在旁边发生口角的时候不停下来看热闹,那么整个世界的劳动力的浪费率将会提高多少?劳动成果将会提高多少呢?在经济学家眼里,这些小事,就是阻碍世界经济发展的重要因素,这些劳动力的浪费将给世界带来巨大的损失,同样这些劳动力自己也没有得到{zd0}的回报。 所以我想说,为了所有人,做一个有信仰的前端开发人员。
2010年4月18日星期日 23:58 很久没演讲了。好激动。但是最近真的很忙很忙。今天晚上十一点赶工了一个小时才写完,准备的不是很充分。每次演讲都希望对大家有帮助,其次才是锻炼自己的思维,总结知识。本来还准备有个话题准备讲最近的实习经验,但是刚写了个部门实施方案,所以暂时不想谈那个话题了。下次有机会吧。希望大家都一起快速成长。
|