针对OpenSSL吐嘈的吐嘈-如此唱反调

前些天写了一篇《令人作呕的OpenSSL》,顿时引来了大量的恶评。令我非常尴尬,同一时候也认为悲哀。

假设说you can you up之类的,我认为起码这人看出了我的本意,仅仅是怀疑我的能力。可是我看到一些人居然在我评价了一段僵尸代码后认定我不懂编译代码,这就悲哀了,这段代码大致例如以下:

#if 0 /*abcdefghijklmn, ( and
           ABCDEFGHHHHSASA
           */
.....
#endif

请问有人会这么写代码吗?我仅仅是指出这段代码确实不合理而已。悲哀点在于,有些人为自己能看懂这段代码感到非常荣幸和自豪。由于他知道编译器先处理掉凝视再做宏的预处理,这仅仅能说明他没有忘掉当初学C语言时学到的东西,既然编译器的行为标准不是他制定的,那么他一定是学来的。非常多人都不是在看第一行代码,写第一行代码的时候才知道它的,假设来了一个新人,他不懂这些,当然仅仅是还没有学到,知道这么一个事实对于coder来讲是早晚的事,知道这一点确实不是什么值得自豪的事情。但他有逻辑,能看懂别人的代码,面对这么一大堆僵尸代码,这不是折磨人吗?难道不令人费解吗?确实。编译器没有迷惑,仅仅是编译器愤慨了而已,假设C标准不允许这么写的话,编译器会轻松非常多,能看懂这段代码并认为这么写没问题的人,记住。是编译器在纵容你。惯着你。不要得寸进尺。

不好的东西无论作者是谁都是不好的东西。即使是大师拉的屎也不是香的。只是我早就猜到会有人不允许我的观点,仅仅要是大家都在用的,存在即是合理的,他们就非要找一个这么做的理由不可,甚至还搞出这么做是“一种艺术”,...请看清楚,关于do {...} while (0)是我之前一直使用的,可是后来我舍弃了这样的做法,明确它妙处的人仅仅知其一不知其二,都知道它能取代goto,可是却不知道它应该用在哪里。

假设你认为它比goto好的话,Linux kernel的粉丝们是不是又要站出来为goto来平反呢??其实,Linux kernel同一时候使用了do{}while(0)和goto,仅仅只是前者都是用在宏定义中而已。Linux之所以用goto是由于它能够实现序列化的回退,正如:

sth1
...goto err sth1 if error
sth2
...goto err sth2 if error
sth3
...goto err sth3 if error
return
err sth3
err sth2
err sth1

在err sth3往下。一系列的回退能够自己主动进行。当然,假设你憎恨goto。用多层的do{}while(0)也是能够的。可是问题又来了,不是也有人说过层次太多不好吗?问题是,就由于某个大湿说了一句goto不好,从此goto就背上骂名了?假设你不是存在主义者。是不是应该大骂goto的引入者或者C的发明人呢?其实,goto也是艺术。其实,以上指出的其二就是,不论什么东西。看你怎么用,屎不能喂人,但能够喂狗,仅此而已。
       诚然。OpenSSL代码能够编译过,也能够执行,它的库已经被用于大量场合,这就说明它是正确的。是的。它并不错。它没有问题。问题在于。我们不应该评价代码本身的错与对。以及编译器怎样地将其优化成人看不懂的机器码。我们更应该关注的是它能给我们带来什么,它怎样让后来人能够看得懂,不那么令人费解地被理解,从而扩展它实现自己的定制需求,这才是根本,代码的生命力也因此而体现出旺盛。对于OpenSSL而言,可读性是差了点,或许跟它的历史以及开发模式加上缺人手有关。这些社区都是承认的。可是同学们把它当教条就不正确了,认为它应用广泛而且是大师參与当中就膜拜它。

开源的东西并不都是好的,也并不都是大湿的作品,开源的本质恰恰是消除了阶级门槛而带来的自由,随便一个菜鸟都能够在github上开一个项目,同一时候,也有非常多大湿參与的项目由于各种原因而夭折。这些原因中就包含代码太烂。太过技巧性,别人无法參与进来。英语和普通话的益处有目共睹,那就是它们的通用性,当然。你能够站在民族主义,文化主义的立场上反驳甚至憎恨我,可是我的意思是,无论你再不喜欢,无论它们多大程度的抹杀了你独特方言给与的创造性。你还是接受了它们。不是吗?你有你的方言,你能够说你的母语多么的美,可是面对第二种相同美的方言,母语的时候。你们将无法交流,无法互通有无...对于计算机编程语言写出的代码而言。可读性。可理解性就是通用性,要让每一个人都能读这段代码,能改这段代码。
       别把代码写的易读看成什么没有技术含量的事情,代码本身就不是什么极其重要的东西,它仅仅是一个交流的媒介,不光是人与机器的交流。还包含人与人的交流,不像高深的数学,代码不值得让你写得如此排他。

每一个程序猿在刚毕业后差点儿都以前认为写一些非常有技巧性的绚烂代码会显得自己水平非常高,看不惯那种寻常的代码。或许老师教过说goto不好,那就再也不用它。然后换成do{}while(0)或者switch case之类的,或许老师又教过,说OO的多态能够免去else if,然后就当成了教条,时刻捍卫这些教条的同一时候。残留着一点小叛逆。这就造就大量炫技巧的代码,奇葩的代码。比方仅仅用一行代码实现一个复杂的功能之类的。这类代码可读性极差。以至于非常难维护,差点儿不可扩展,在不久的以后,面临全面重写。

这样的喜欢炫技的,特别较真儿,钻牛角尖。你说一件事这么做不好,他非要给你找出这么做非常艺术的原因,反之你说这么做非常不错。他却非要挑一个毛病,总之,总是想表现他与众不同,表现的自己非常有不同的想法。这样的人倒是挺适合參加比赛或者去单打独斗,不太适合在团队工作,同一时候我也认为。公司在面试的时候。不要再出那种非常能让人炫技巧可是网上答案一搜一大堆的题了...
       喜欢唱反调的并不一定是怀疑论者。他们并没有勇气或者能力向权威提出质疑,很多其它地,他们是捣蛋鬼,毫无针对性。抓住什么都不放,就像大多数记者一样。看到人家做好事。就说是作秀,看到人家无动于衷。就说是冷漠...非常多人从大学毕业后。携带了一身的迂腐书生气,爱较真,你说一个观点,他就反驳,你说好。他就找出一点能证明不好的证据。你说不好,他就说你不懂这么玩的艺术性,他们这么做全然就是为了反驳你而反驳你,没有丝毫的逻辑性。经不起不论什么推敲...他们非常喜欢甄别说这话的人是谁,假设是权威,他们反而会把哪怕明显错误的观点当成教条。可是专家权威千万别犯错。否则他们就会永远被攻击,哪怕略微有一次。权威的观点真的就是对的。这就是一边倒的书生气。

这就要扯到教育了...
       现现在非常多人已经认识到了传统教育的悲哀,迫不及待地想要採用美式教育或者日式教育方式,但在认识到自己的局限性在于态度而不是方法之前,所做的一切终于还是悲哀。
       在这个奇妙的国度。相同一个问题,美国人日本人那样回答就说是引导思考。自己人假设那样回答相信非常多人都会认为是毫无根据的信口开河,非常多人已经丧失了推断能力!

生活在一个没有思考的世界。生活在一个仅仅有标准答案的世界。生活在一个歧视推理重视事实的世界。我每天面对的就是嘲讽和恶意!因此,怎样进行教育的方法并不重要。重要的是先改变自己的态度。学会思考和推断!

否则,美式日式的教育也会被模式化。成为教条!

更正一下,中国人失去推理推断力已经2000年了。或许更久。或许根本就没有推理推断力,必须有人给指个方向才干走!这或许就是集权的原因。

拿汉唐雄风反驳我的,那是你根本不懂成长曲线。
       非常多孩子,在非常小的时候表现的绝顶优秀,可是长大后就泯然众人。每一个人或者社会都有自己的成长曲线。拥有促进早熟的环境并非什么值得高兴的事实,相反它是夹生饭的温床,非常多人在YY汉唐雄风的时候。说不定来了一队罗马军团就能把皇家卫队给灭了,尽管也有把罗马军团灭了的极大可能性。当初西班牙人灭了美洲帝国之前。那些帝国之间不也轰轰烈烈地上演战国七雄吗?假设当地的人相同YY。说阿兹特克国王的无敌军队能够横扫整个西欧(假设他们确实知道有西欧的话),那么我想大部分的人也会赞同的。有点跑题,但事实就是。不加推理信口开河的可能是你而不是我。

我没有根据。我就不会肯定的说某件事。我说的仅仅是自己的设想猜想。或者仅仅是自己的一点看法,假设有人那我所论述的这些看法来较真。那他就真的上套了。
       有一点我非常相信。那就是喜欢唱反调的人基本就是干活的人,这是最最令人悲哀的地方。由于不唱反调的人基本都当了领导,也基本失去了不论什么解决这个问题的能力,当然也包含唱反调的能力...
       我发现一个让别人相信你的好办法。那就是表达论点时千万别推理。直接说在某个外国人写的书上看到的就可以,但别太详细,由于教育出来的非常多人的强烈的钻牛角尖癖好....理论联系实际就是一脬屎,假设牛顿生在中国。那他的所谓毫无摩擦力的理想平面不被骂死才怪!

别人先提一个问题并给个答案,能够回答和反驳。可是却没有能力提出问题或者不敢针对一个问题给出自己的答案或者哪怕是一点点看法。

时间: 2024-10-06 15:49:36

针对OpenSSL吐嘈的吐嘈-如此唱反调的相关文章

codeforces比赛总(吐)结(嘈)

2019.8.11 在机房打了一个小时之后被家长叫回家打剩下的一个小时 机房里面的大佬做题都好快好快,,,我题还没看完他们就A了orzorzorz 第一次A题8分钟就提交了,一次A,还是快乐 B题稍微敲得有点慢,WA了2次没找出为什么 baijiu大佬告诉我是因为我没有认真看题的缘故:要求\(h_i\) >= 0 oh GG B好像50分钟左右就交了,然后剩下的一个半多的小时什么都没做出来 我还是太菜了orzorzorz 原文地址:https://www.cnblogs.com/qwqq/p/1

Linux TCP拥塞控制中undo操作

Linux的TCP实现复杂且繁琐,建议不要直接去看代码,而是花点时间把TCP规范先撸一遍.本文主要描述一下TCP实现中undo操作,然后顺便再吐一下槽(千万不要觉得吐槽有什么不好,很多好东西都是从吐槽开始的,从造纸,蒸汽机,到法兰西第一共和国,再到Linux...). 1.TCP对网络拥塞是基于预测的 TCP属于网络的一部分,这无可厚非,但当一个人说自己精通网络的时候,他更可能的意思是自己精通网络节点的行为而不是端到端的行为.比如,一个Cisco的工程师精通各种路由协议,可以设计出复杂的OSPF

《构建之法》读后感

<构建之法>给我的第一映像是“终于有一本我可以看的下去的关于软件的书了╥﹏╥...”.<构建之法>与其他的软件工程的书不同,没有密密麻麻的字,没有晦涩难懂的词汇,没有让人看不下去的感受.邹欣老师用一种特殊的方式告诉我什么是软件工程. <构建之法>最大的特点是那些虚拟人物的对话,他们之间的对话就是现实中许多工程师在工作中会遇到的问题.在书中邹欣老师通过阿超.国栋.小飞.小李等虚拟人物的对话以及他们答辩.讨论形象生动得说出了工程师们在遇到问题时的困惑,以及思维方式,并对他们

[数据]全拼-简体字对照表

按2011版<新华字典>顺序排列 常用字6000左右,很生的生僻字未收录.[红色]为多音字(600左右). 拼音    例字    备注 ā    [阿][啊][腌]吖锕     āi    [挨][唉]哎哀锿埃     ái    [挨]皑癌     ǎi    [嗳]毐欸矮蔼霭     ài    [嗳][唉][艾]砹爱暧嫒叆碍隘     ān    安桉氨鞍庵鹌谙     án    玵     ǎn    铵俺埯唵揞     àn    岸按案胺暗黯     āng    肮    

Egret的若干局限

Egret是个好东西,整套workflow用下来,特别顺手,对于移动端游戏的开发来说,选择Egret无疑是个不二的选择. 当然,小学语文课上老师就教过一种写作手法,欲扬先抑,笔者今天倒过来,来说说Egret的若干局限性. 笔者从接触Egret到现在用Egret作为主职开发工具,已经整整一年时间了,有些嘈已经吐过了,但有些嘈还在咽着.当然,哪个工具框架没有局限性呢,但是这些局限性还是要让Egret初学者明了一下. •1.3D旋转 3D旋转虽然已经脱离了Egret这个2D引擎的范畴了,但是,让我们这

深入学习Java的跨平台

该问转载自:http://www.cnblogs.com/gw811/archive/2012/09/09/2677386.html 1.什么是平台 Java是可以跨平台的编程语言,那我们首先得知道什么是平台,我们把CPU处理器与操作系统的整体叫平台. CPU大家都知道,如果计算机是人,那CPU就是人的大脑,它既负责思维运算,又负责身体各部件的命令控制.CPU的种类很多,除去我们熟知的Intel与AMD外,还有比如上面说到的SUN的Sparc,比如IBM的PowerPC等等,这些各个公司生产的C

好文章之——PHP系列(一)

注:最近实习的公司是一家做电商企业,后台主要是php开发,好久不怎么接触php的我看了几篇相关文章,提高下对它的认识与理解,发现里面的学习思路还是非常好的,当然也会重新拾一下基础知识啦! 其实自己心中还是有点小纠结的,感觉自己学的东西太杂了,没有非常精通的.毕竟人的精力是有限,举个例子:“如果1年干php,第二年又干java,第三年可能是Python.但是当第四年他可能想去找另外一份工作,那他到底要找什么样的工作呢? 每一种技能都不精,如果面试PHP,人家就按你php的水平给你薪水,而不太会看重

并发编程的目标与挑战

If I had only one hour to save the worlds,I would spend fifty-five minutes defining the problem,and only five minutes finding the solution. 如果我只有1小时拯救世界,我将花55分钟定义这个问题而只花分钟去寻找解决方案 --Albert Einstein 本文讲解的将是多线程的一些重要概念,为接下来自己以及读者更好的理解并发编程做个铺垫. 之后会讲解volat

一个高级PHP工程师所应该具备的

初次接触PHP,就为他的美所折服,于是一发不可收拾. 很多面试,很多人员能力要求都有"PHP高级工程师的字眼",如果您真心喜欢PHP,并且您刚起步,那么我简单说说一个PHP高级工程师所应该具备的,希望给初级或已经达到中级的PHP工程师一些帮助. 一.平静的心态和所有程序员一样,要写一手好的程序,没有好的心态是不行的.遇事不可急躁,不可轻言放弃.在程序开发过程中,尤其是初中级程序员,写出的程序或架构会遇到很多问题,其中一些问题比较弱智,而有些问题根本没有碰到过,于是不可太过急躁,应该逐个