开始改bug,在改bug中,有4点感受:
1、一个类不宜写得太大,很难想象一个有四五十个成员函数的类能具有很好的可读性和可维护性。在着重考虑可读性和可维护性,将效率次之的情况下,可以有比较多的办法来实现。
2、与程序行为无关的全局变量,特别是一些数据和表格,比如我们的缺省配置,报警配置等等,应该引入机制,放到程序外面,这样,无形中程序就小了(因为这些变量都将放到程序的.data段),也便于统一处理。
3、基类企图统一共有操作,但职责不明确。我的观点是,不管用什么办法,能统一处理的,就统一处理,不让别人插手;存在差异性,不好统一处理的,决不处理。欲言又止的事情还是少一点。
4、在包含头文件时,还是尽量避免 include all 的情况,这样每次头文件改动,基本上需要重新编译一遍。还是用哪个包含哪个比较好。
对于生产者和消费者在仅抢占式任务调度的OS中优先级的设定问题。对于两个线程,假如同操作一个队列,谁优先级高谁执行的次数多是毋庸置疑的,但这执行不一定是有效的。假如消费者优先级高,那么对它而言,大多数情况下队列为空,它不断的被挂起,唤醒。假如生产者优先级高,那么对它而言,大多数情况下队列为满,它同样的不断被挂起,唤醒。这样,两种办法实际上都不是有效的。那么两个线程一定要sleep,至少高优先级的一定要sleep,可sleep多长时间呢。对于消费者和生产者X,Y,假如消费者消费速率为x,sleep时间为xt,生产者生产速率为y,sleep时间为yt,队列长度为L,那么何时总消费速率 M 最大呢?此时xt和yt分别为多少?显然是一个规划问题(不一定是线性的)。那么当线程个数是3,而且互相制约呢,比如有两个Q1,Q2,对于Q1,X,Y分别是消费者和生产者,对于Q2,Y,Z分别是消费者和生产者,那么此时的最佳情况又如何呢?(一定不是平面上的线性规划问题,三个变量嘛。)如果为 n 呢?看起来就很复杂了,有空再研究。
最近在网上看了些文章,说这个相貌俊朗的人大多内心善良,而模样丑恶的一般都不干什么好事。如果是你天生丑陋,善事做的多了,自然也眉清目秀了,而若你本身虽美貌俊秀,亏心事干久了,相貌中便也透出一股阴气,冷飕飕让人寒颤。想想虽无法解释,但也确有道理,放眼看看各位看官,自然都是正人君子,故齐刷刷一片帅哥美女,偶尔有几个惨点的,但神态中彰显高贵,一副气宇轩昂的样子,那相貌中的不足也全然忽略了。
古人云:相由心生。观相之术流传至今必然有一定的道理。也许相貌不能决定你的命运,但它必然记录你的历史,就像年轮一样。
昨与莫君闲谈代码之美感,均觉得代码写的好不好,不宜细看,可以远观。若错落有致,此起彼伏,时而悠长,时而短促,大多是写的比较好的。反而杂乱无章,参差不齐,格式潦草,一般都是写的差的。虽然代码的排版格式,命名注释的风格与代码本身的质量无关。就像美貌和智慧本无必然联系,但一般而言,长得漂亮的水果大都好吃,那些七扭八歪的常常发育不良。
故云,貌美者未必智慧,然美貌与智慧常兼备。
---------------------------------------------------------------
有一定道理,代码首先是给人读的,就算设计上还不是很合理,但是排版和注释能起到一定的抵消作用.
白居易写诗首先给老妇人读,如果老妇人听明白了,他就认为诗写的完美了.简单是诗的第一个台阶.
代码一样,首先需有吸引人阅读的魅力,让别人看进去,别人才能进一步和你交流设计上的正邪,流程上的优劣.如果一大堆陌生的逻辑,没有任何注释,对别人就是一种心里上的伤害.如果这种伤害太多,谈什么协作,团队,统统是扯淡.
--------------------------------------------------
张进
这个成语大致是指那些第一个干坏事的人,然而始作俑者未必晓得自己做了件坏事,无心做了件错事,背了几千年骂名,是不是很冤枉呢?其实一点都不。
做软件和其它的行业有些不同,就是维护的成本很大,维护基本上是软件的主要工作,一锤子买卖的很少,加功能,更改,移植,兼容等等等等,无一不对软件的可维护性提出更高的要求,而这一切往往在开始就决定了。置身事外的人往往理解不了这些,改个这东西,有什么难的,我们的xxx都用了这么久了,肯定没问题,等等。
千载尤行秦制度,祖宗之法已从公元前220年沿袭两千余年,却仍轰然而毁。对这个制度,两千年来不断的变化,修正,弥补,如果计算成本的话,不知道是多么大的一个天文数字。而结果只不过是比欧洲落后了几百年,丧失了工业革命的机会。
对于生孩子这件事情,男人们其实只要努一点点力就好了,女人却要承受280天的重负以及随之的巨大痛楚,而这一切并没有结束,女人们要放弃自己的生活,相夫教子,而男人只要甩一点奶粉钱就不管了,男人怎么能明白其中的艰辛呢。
以前有很多博彩类型的街机,象什么“电子基盘”、“龙虎斗”,“老虎机”、“熊猫机”,还有一些推硬币的,拨香烟的。我有一个朋友比较热衷这些,总希望从里面赚取一点收益。大家可想而知,玩这些必定是亏本的,因为老板是要赚钱的。但我这位朋友最终竟然从中赚了不少,原因是在不断的尝试中,他找到了这些东西的bug。
不知道大家以前有没有盗打过电话,当时我们对电话通讯还是研究了很久,包括电信(以前叫邮局)的业务也进行了研究,找到漏洞。之后有好几年打电话都不花钱,然后就认识了很多女孩子。
在单机时代,有些游戏很难,我们总想着投机取巧。为什么它能把游戏进度存下来?存档文件里面有什么?经过几次尝试,我们终于用dos下的debug程序,把自己改成等级999,拥有所有装备和物品。
但是不管怎么说,破解是困难的。如果你妄想破解一个256位密钥的DES加密,基本死几遍也不可能。那怎么办呢?答案是“社会工程学”。
谈到黑客,不能不说凯文•米特尼克,在若干年后,我看到了他的《The Art of Deception》这本书,不觉惊呼,英雄所见略同。当我给sina的邮箱管理员写了一封诚恳的Email,得到了某人的密码时,我就深深的领悟了这点。
一个系统的安全取决于人,而不是技术。