网上很多技术评论性文章、网站的误区

原创 2005年02月27日 12:34:00

转载自CU,作者 longnetpro  

我们无论在自己学习或者给别人解惑的时候,一定要有严谨和认真的态度,要言之有物,要条理分明,虽然有时做得不够好,但是态度一定要端正!


 最近看了一些国内比较好的技术网站(这里主要讨论与PHP有关的),发现有很多问题,下面简单说一下个人看法。

一、从水平上来看,国人的文章与老外的文章差距的确很大。很多写得精彩的内容多是翻译自国外文章(有的还会有些翻译错误),而国内原创的作品很多缺乏新意 ——基本是千篇一律或是将国外的文章改头换面,还有就是大量转载传抄,很少有人能自己独立提出一些与众不同的见解或是心得。同时很多这类文章水平也不高 ——有相当数量文章中描述的都是一些小儿科的做法,没有什么太多的技术含量,不但对初学者的指导意义,还会误导一些人(当然国外的文章也有一部分会误导人,我将会在下面谈到这个问题)。这里并非强调老外的文章观点与内容就一定都正确,但是他们的文章中信息含量比较高,指导意义与实用性都相对比较强。

二、对一些源代码或是技术文章的分析,明显看得出来中国人与外国人思维的巨大差异性——中国人的思维自由而散漫,毫无体系可言,只顾自己用自己的,把一个东西搞出来就完了,基本不考虑代码的兼容性,扩展性,友好性,可读性什么的,因此其实没有什么实用价值,如果要使用这些东西,结果只有两个:一个就是只借用思想然后自己开发出一套新的(适合与高手一级,但很可能又会走自由散漫的老路),第二个就是使用后的项目与被使用代码一样杂乱,一样自由散漫,一样没有兼容性,扩展性,友好性等等。对文章也是这样,多数基本上是想到哪写到哪,虽然总结是总结过,但没有弄出一个提纲性的东西,可能别人看了半天也搞不懂你在说什么(当然国人中有的文章也的确很不错,这点不能全盘否认)。对老外写的文章,他们大多数在结构上都一样,但在内容上就是百花齐放,各家不同,而且每篇基本上都有明确的观点,有一个主旨,无论作者本人的理解或是想法对错与否,他都会找出一些证据来证明,这至少给读者一个选择与判断的机会,也能引起初学者的思考,使他们不会盲从,对读者的误导会大大降低,也有一定的启发性。国内的文章基本很少给出有力的证据让人信服,对高手来说,他们自会判断作者观点的正误与否,但对初学者而言却让他们不知对错,对比较崇尚权威的中国人来说,宁可信其有,不可信其无,结果就是某些错误的思想影响了一大批人,文章还被做为经典四处转载,文章作者在那里沾沾自喜,结果是“流毒无穷”(说得恐怖一点的话)。而对那些可以自己判断的高手而言,他的判断也是相对盲目的,因为原文没有有力证据,他必须用自己的知识来判断,仍然是一样的狭隘,同时对别人也没有帮助,他们也不会发表反对意见(与潮流不符)。总之这样结果就是:这类文章没有太大的实用价值,又由于文章指导性相对差,学又不一定学到什么东西(是否学到东西还要看该读者的悟性与接受新事物的能力与思维创新能力),还有可能禁锢人的思维,因此不如不发,不如不转。

三、很多文章内容不客观,不全面,同时缺乏时效性。我刚才说老外也有很多文章对人有误导,也有这些方面在内,其中一个主要问题是个时效性,但不幸的是,这一点却最容易被忽略。很多文章内容与观点,只在特定的历史时期,特定的环境与条件下是成立的(包括很多经典文章),但在当前的情况与条件下多数是不成立的(强调是多数)。但往往文章转帖或发布者完全不考虑现实情况,将过时的文章原文照发,也不写注解,结果造成一个后果就是,本来趋于淘汰的技术或方法又被炒起来了,对初学者而言,本来他完全可以直接接受新的内容,却因为这类文章的误导,并发现有些旧的东西比新的好用,就完全不顾旧的东西的问题,因为贪图好用而放弃新的内容,最终就是本来可以避免的问题或是已经被逐渐淘汰的问题还在不断地被重复,总也得不到根治(因为总有初学者不断加入这个行列)。一个最典型的例子就是PHP中register_globals的用法问题,大量的所谓安全问题无一例外不是与之有关,网上不断转载所谓安全问题,结果导致这个问题一直不断。其实这个早就是个过时的问题了,手册及官方网站都已说明,只要大家都用高版本的PHP,用新的写法写代码,就不应该再有大量这类问题出现(注意不是绝对没有问题)。新手从来没有在网上看到什么正面的文章说为什么用$_GET而不用变量,大量的文章却只说用变量会导致安全问题,并只说你不能这样不能那样,而到底你应当怎么却提得很少,同时那些所谓的解决方案也已经过时了,并不适用。从普通人的思维角度来说,如果你明确说某种做法是正途,并说明了为什么,他会按这个正确的路走,如$_GET,即使失去了方便性,对安全考虑多一点的用户,他会取舍的,而且这时正确的观点也已树立了;而另一个角度,你如果不指明正途的话,他就只会尽量不走文章提到的错误的路(“不走提到的错误的路”与“走指明了的正途”从效果上是完全不同的,前者再犯错的机率会远远高于后者)。

四、文章不成体系,水平差别大,也没有因此而分级别,有些文章的内容观点或是代码有明显问题却视而不见,有些内容名不符实或是夸大其辞,也被采用,对人误导极大。有些文章的说明不实事求是,只拣好听的说,对应当注意的问题只字不提,极为有害。即不够客观与全面。某些人写的或是翻译的文章,语句不通,语法不对,标点乱用,错别字(同音字)、打字错误层出不穷。

针对以上问题,有几个建议:

首先,网站需要有一个技术与业务水平都比较高的负责人或是管理者,还要有一些高水平的编辑(这个不难做到,找几个比较有空的人做版主负责即可,但水平要高一些,要做到客观公正)。编辑的主要工作是修改错别字或语法标点错误,并对观点有疑问(指有明显错误或明显不客观有失偏颇这类问题,不是说你认为有疑问就有疑问的)的地方加上注解(但最好不要改动原文的文字)。

二、删除过时文章,或加注解以提醒读者注意,不能不闻不问。对文章内容精彩或是有启发性,但某些观点有疑问的,这时应当加以提示或注解(),语气还是应以尊重原作者的劳动及版权,但绝不能写一个“文章内容及观点与XXX网站无关”了事,这是对读者不负责任,因为你是技术网站,你的责任是传播最新的,正确的,有价值的技术与思想,而不是只提供场地让大家乱扯又不负责任。

三、原文作者、原文写作日期、原文引用自(如果有的话)、转载人、转载日期、转载来源等应当在标题下就注明,这也是对作者及转载者劳动的尊重。其中原文写作日期尤其重要,一定不能没有,最好是明示,并对可能过时的文章加以特殊标记并用加重文字明示出来,最好是直接加上“此文章可能已过时”的字样明确加以提醒。另外,一定要加上一句“此文章非权威,仅作参考,请读者自酌”之类的提示,尽量将文章对读者的可能性误导降到最低。

四、将文章分级或分类或两者兼而有之,如按入门级、普通级、进阶级、专家级等等这样分级或是按安全、代码、技巧等等这样分类。使整个体系结构清楚。

五、对一些结构比较固定的内容,比如说有人发布源代码,可以考虑用特殊结构的提交页面:如有标题部分,描述部分,代码部分,说明部分,技巧部分,问题部分,总结部分,下载URL等等,最后形成HTML文章时,将这些部分组合起来成格式统一的文档。这样结构清楚,读者一目了然,又具收藏价值。


对于提交文章者而言,我也有几个建议:

一、一定要有原文作者名,原文日期(如果是原创一般提交时会自动记录时间),注明是否原创或转载,如是转载,转自哪里,最好有URL或是书名期号等。

二、在写文章时,问一下自己,我的观点是否客观,是否全面,文章中是否有我自己都似是而非的内容。如果不客观,则减少主观观点,直至改到客观为止,如有必要一定要加上主观观点,最好加一句话“这是本人个人观点,仅作参考”或是“我个人认为。。。”(就是我常说的话)。如果不全面,就应该修改你的文章的中心观点使你的内容与论题相符,使内容全面。有似是而非的内容,如果必须写上,请注明“这点我也不甚清楚”或是“这点我也只了解一二,不透彻”或是像我自己常写的那句“在这一点上我没有太多的发言权,因为我也不是很了解”——没人因为你这样写会贬低你的水平,如果你真的有水平的话。

三、文章的论题与观点都有了,要有总结。如果针对某些问题有解决方法,最好提出正解,而不要只说你不应该这样那样(上面谈过的问题),说一些没有意义的话。当你提正解的时候或是说你应该如何如何做时,最好不要一口气倒出所有的详细步骤,而应该点到即止,但信息应该足够多,否则一样没有意义。信息多到什么地步呢?多到让读者形成一个概念,有办法自己找到最终解决方案。却绝对不应该替他包办代替,不然又多培养了一个懒汉。

四、文章结尾处,如有可能,最好总是加上这一句(前面也提到过的):“个人观点,仅供参考”。

五、文章最后一定要附上参考信息,或是个人致谢,当然是在有这些信息的情况下。这也是对知识与其作者的尊重。

六、检查错误。包括打字错误,标点错误,语法错误,语句错误,到内容错误,逻辑错误,代码错误,例证错误到最后的观点错误。



后记:

我的想法基本也写完了。其实我对读者写文章的建议就是我在国外写英语文章的一个基本完全步骤。这边小学生写文章基本上都是这样一个过程,只是我在上面建议中加了一些我自己总结的内容。老外很讲条理性与观点和内容的match,多的内容或是与观点无关的,你写得再精彩都要删。另外,老外极其讲究语法错误和拼写错误及标点错误(标点错误有时是fetal错误,在考试中弄错了可能会被严重扣分),三个大的语法错误,你的文章的百分之五十的分就没了。我的一个真实例子,quiz时一写作题40分,要写一段八句话的段落,第一句是主题topic sentence,第二句是main idea 1,这两句没问题,但第三句我就写了一句Because i .... 然后加个句号。在中文这个很正常,我一个观点出来,然后“因为。。。”,这个没问题。但在英语中,because是连词,只能引导从句,必须要有主句,否则就是fragment,是极为严重的语法错误,我全篇就只这个错误,当时没察觉,就被扣掉八分,其实加上一个主句就没有问题了,如 It was ... because ...。后来再一问,如果只写“因为。。。”,就象中文那样的写法,你得写成 This is because ....,当时就晕,不过后来再也没有类似错误发生。我在这里不是讨论英语,只是说写文章时,对语言的要求是很高的。可能在中国,上了大学都不学中文了,结果是一个个写的论文写得象幼儿园小孩写的,也没有体系。结果也导致了思维没有规范,大家也不遵守规范,最后就是一团糟,中国人到哪个地方那个地方就乱 ——地方乱,市场也乱了。


其实,我以上说的这些情况其实国内外很多类似网站都有,国外的不说,国内的大站phpe以及前几天在CU上做广告的troyoo都有类似的问题。 PHPE上的很多文章都犯了我提的那些问题(当然我不是专门针对PHPE或是TROYOO)。还有PHPE上的很多源代码也是,有的水平极低,有的名不符实,有的乱吹,有的根本不合理的东西居然被下载次数最多——当然我没看的或是不懂的我也不敢乱发表意见——至少我看到的很多代码中,甚至有一半左右都是有那些问题的。一个典型的例子,PHPE上有一个类库是ZipLib,作者在他的说明中吹得离谱,好象解决了一个很大的问题,下载的人数也非常之多,很多地方都转载推荐,我在LEOHACK和CTB的论坛上都看到过。然而实际情况完全不是这样,他的代码我只看了一遍,就已经完全知道他的全部思路和他犯的全部错误,因为他这类似功能的代码我不但设计过,也写过一个完整版的,功能比它的强大得多(以前发给过shukebeita),他的想法我原来全都想过,他的错误我在设计阶段就排除了,就是说,同样的功能与操作,他的思路从一开始就被我抛弃了,而我当时的思路还没有他的这么没有价值(只能这么说,因为的确没有价值)。首先,他就把打包与压缩的概念弄混了,他吹的不用服务器提供压缩库就可以压缩完全是错的,我以为他高手高到把压缩算法给用PHP实现了,抱着学习的想法来看它,一看,发现只是打包而已,在没有ZLIB库函数的情况下还是不能压缩,PEAR中的TAR不早就实现了吗?PEAR中也可在ZLIB有效的情况下压缩,无效的情况下只打包。最为可笑的是,作者自己定义了一套打包格式,使用前还要先在本机用作者自己写的WINDOWS程序(LINUX下不能用)先打包压缩再上传到网上用他的PHP解压解包,或是在网上打包压缩后在本机上用他的程序解压解包。有现成的TAR不用,自己搞一套,又不通用还特麻烦。更为严重的是,分析代码后发现他的文件格式设计不好,需要他把所有文件打包压缩成一个巨大的字符串后(所有过程在内存中操作),才能写到磁盘上去,而不是象TAR或是TGZ那样可以边打包压缩边写盘的。因此这个库根本就不可用,用了它只会为以后留下无穷的后遗症。我说这个不是说我的水平有多高多高,也不说那个作者本身的水平有多低多低(是说那个写的库水平比较低),只是说,就象PHPE这样的站,上面很多东西都是很有问题的,很多读者慕名而来,最后可能反受误导,这对双方都不好。


写这么长的文章,也是一时兴起,正好这边周一放假,是长周末,没事也是没事。几天前EasyChen对我说PHPE想办杂志,要我支持,我当然支持。但我看了一下PHPE,发现有很多问题,其实这些问题早就看到过,也深恶痛绝,只是一直不想花时间写这么长的文章。我平时反正想,“中国人很多都这德性(不是全部),你没有头脑,愿意迷信别人,你自己不会分析,不会学习是你自己的问题,你倒霉你被误导关我鸟事!”,因此也没有什么兴趣写下我这些想法。不过,既然这次有这个机会,其实也早想说了,只是想到中国学风不正,写了这些肯定会有人说你出风头,你牛什么牛之类的,因此也懒的管。其实我是无所谓,并不在乎别人怎么想,在北美,我上面谈到的那些根本就是司空见惯,习以为常的事,在中国却是像怪物。中国的学风我现在想起来只会摇头,想不通当年在大学里是怎么混过四年的——当年我只懂数学和原理,不会写程序,论文也不会写。幸好我会用五笔打字,比较快,可以在计算机上打论文了,因此论文五十多页光COPY 就三十页,不然,我手工写就算是COPY也要累死,结果现在看来写的还没有这边高中生写的文章好。要在这边,你论文没有一定量的原创或是突破,你十年都拿不到学位。在国内这样混虽然能混个文凭,但根本是做不出什么东西的,也无法创新。

中国的教育现在大致流于这种形式,实在可悲,教育成为产业,成为赚钱工具了。对于我来说,赚钱也成为第一位了,但不是靠写程序。写程序,只是个人爱好,写评论或是技术文章也只是个人爱好。我是不会再做程序员的了,有好多种赚钱的方法比做程序员轻松自由,也赚得多。

言尽于此,希望这篇文章给大家一点启发。对PHP还是一如既往地关注,有空时也会写几个类玩玩。

顺便做个广告,如果大家觉得好,不妨广泛转载,但请注明作者与时间。涉及到有一些批评性的内容(如ZipLib库的问题),如不方便可以删除。对这篇文章本身,虽然不一定很好,但我自信还是有一定说服力的,相对也是客观的,反正大家可以保留自己的观点。持反对意见的,请批评指正,我会回应的,但请不要搞人身攻击或出言不逊。

最后还是声明一句,个人观点,仅供参考,如有不妥,敬请见谅,各位有保留自己观点的权利。

向所有提出合理的批评意见与建议的人致敬!向所有看这篇文章的人致谢!多谢大家这么有耐心看完这篇文章。

相关文章推荐

android之旅-Intent和BroadcastReceiver(修改了网上文章很多不足,重点参考了android4高级编程)

看了很多网上的文章,发现很多不足,有的也很不全面,于是决定自己写一篇,望大家支持,批评,知道,很多知识点还是没提到,Service还没学,所以还没整合,以后学了会再写一篇。 一、Intent作用及分类...

CSDN有个主题叫:问底,里面有很多牛逼的人写的技术文章

转载至:http://www.csdn.net/article/2014-11-28/2822858 【问底】徐汉彬:Web系统大规模并发——电商秒杀与抢购 发表于2014...

从网上订火车票的网站12306.cn谈谈网站性能技术

从网上订火车票的网站12306.cn谈谈网站性能技术 12306.cn网站挂了,被全国人民骂了。我这两天也在思考这个事,我想以这个事来粗略地和大家讨论一下网站性能的问题。因为仓促,而且完全基于 本人...

“12306.cn网站挂了”好文章收藏,引发的技术架构问题讨论。

12306.cn网站挂了,被全国人民骂了。我这两天也在思考这个事,我想以这个事来粗略地和大家讨论一下网站性能的问题。因为仓促,而且完全基于本人有限的经验和了解,所以,如果有什么问题还请大家一起讨论和指...
  • lmx88
  • lmx88
  • 2012年09月21日 10:46
  • 599

收藏一个AJAX技术文章比较多的网站

====================================================== 注:本文源代码点此下载 =============================...

如何成为一个优秀的程序员(看完后纠正了我的很多误区...)

在看这份FAQ之前,你必须先读完ESR的《如何成为一名黑客》(本文末尾附有中译版),该文所讲过的道理我不再重复。该文用很大的篇幅讲什么是黑客文化,虽然态度和信仰的确是成功的最关键因素,但是你肯定会想,...

针对网上很多抱怨的言论,写了一个EF中update对象时,通用的遍历赋值方法,以供参考

网上很多人抱怨说EF修改对象时,逐条赋值很麻烦,其实,用一个对象给另一个对象赋值,无论是哪门面向对象的语言,都是逐条的赋值,这是编程的基本原理决定的。希望大家不要单单对EF存偏见。但既然有那么多人提这...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:网上很多技术评论性文章、网站的误区
举报原因:
原因补充:

(最多只允许输入30个字)