编程杂谈
zhangxzhi
这个作者很懒,什么都没留下…
展开
-
理论计算机的一些有启发的想法
1 门电路,自动机和图灵机。 门电路只能处理固定数目的输入。 自动机更近一步,可以处理变长输入,但是不能存储值。 图灵机出场,可以存储值,我们可以写软件了。 我们还能不能发明更复杂,更强有力的模型?2 可计算性 可计算,停机问题,超级停机。 有没有一种可计算性是不依赖于计算模型的?3 智能到底是什么? 物质,意识。物质和意识的关系。唯物论,...2009-09-16 17:21:01 · 88 阅读 · 0 评论 -
从scrum说敏捷
最近又搞了一次scrum培训,整整搞了两天,加上以前也有参加过scrum的培训,同时一直关心敏捷开发,所以有了一些想法。首先,我的观点是软件开发是一个介于科学与艺术之间的事情。至少目前是这样。也许有一天有人把软件开发研究透彻了,搞成一套工具,一套流程,是个人都可以搞出一个成功的软件,但是,目前的情况不是这样。这个有可能就是软件的本质。由于有了这个本质,所以很难精确的度量。可以度量,...2010-09-09 00:47:49 · 56 阅读 · 0 评论 -
使用反射提高单元测试的质量
首先,单元测试以及单元测试覆盖率只是一个工具,很烂的代码一样可以有全套的单元测试和很高的单元测试覆盖率(这里只指代码覆盖率,不涉及分支覆盖等)。其次,单元测试和覆盖率是有用的,尤其是在我们想把一件事情搞好的时候。单元测试顾名思义就是对单元进行测试,这里的单元就是方法。但是我们在类的设计中会设计方法的访问限定符,以此来更好的做到高内聚,低耦合。如果只是对public的方法做测试,那么为了验证...2010-06-28 19:59:33 · 153 阅读 · 0 评论 -
老生常谈之如何写好的代码
这两天一直做code review,经常看着看着就有一种要死的冲动。好的代码,一个老生常谈的问题。结合最近的实践,总结一下常见的问题。1 了解你的代码很多程序员并不了解自己的代码。比如null!=Object,很多人已经不知道为什么会有这样一个编码规范,怕if(Object!=null)写成Object=null通过判断。我并不喜欢这个规范,因为读起来不自然。2 不要盲...2010-11-04 23:01:19 · 111 阅读 · 0 评论 -
系统故障分类以及对我们的启示
最近关注了一下系统的故障。发现故障基本的原因可以分为以下几类:按照故障的次数排了一下。1 数据库故障。2 jar包版本不兼容故障。3 外部系统故障。4 编程故障。5 硬件故障。由此可见,在对大型系统做设计的时候。数据库一定是要关注的,因为数据库挂了,基本上影响面很大。多个系统不停的开发升级,对于jar包的管理是一个很大的挑战。外部系统故障,基本不可控,但...2010-11-13 00:58:33 · 175 阅读 · 0 评论 -
用户体验的分层
前两天开会的时候涉及到用户体验。突然想起了王国维的《人间词话》中的三层境界。想到用户体验是不是也存在着不同的层次境界。1 限于各个方面的条件限制,产品只能提供一个基本的用户体验(没有真实的用户介入进来),有可能为了快速占领市场,或者其他目标,而对用户体验做的比较少。简单的说,就是产品主动给了用户一个基本的体验,用户没有参与到这个事情上来。2 当一个产品在市场上占有一定地位之...2011-03-20 11:22:56 · 262 阅读 · 0 评论 -
开发故事
故事1:[code="java"]这段代码我没有找到被引用的地方,是不是有什么隐秘的用法?哦,没有的,这段代码没有用了。没有用了怎么不删掉?删掉干什么?不删干什么,你还要改,我还要code review,测试还没有办法对这个改动进行测试。恩,还是放在那里吧,谁知道那天又会用到了。[/code]那天基本不会到来的,即使到来了,谁又能保证这段代码没有问题呢,到那时,技术变了...2011-10-30 20:49:40 · 106 阅读 · 0 评论 -
编码简介
梳理一下编码的知识,做一个ppt。2011-11-20 21:18:19 · 76 阅读 · 0 评论 -
CSV文件的一些注意点
狭义的csv是comma separated values.wiki的定义CSV is a delimited data format that has fields/columns separated by the comma character and records/rows terminated by newlines. 广义的csv是以任意一个字符分隔的平面文件。...2012-08-20 15:38:24 · 452 阅读 · 1 评论 -
文档的作用
万事万物总是有其两面性的。当瀑布模型把文档放在一个很重要的位置之后,随后的敏捷把文档并没有给予同样的重视。一直都觉得敏捷的适应范围是很广的。但是最近由于所在项目文档的缺乏,让我重新思考了文档的作用。文档缺乏的好处是,恩,真的是有好处的,因为这个客观上促进了项目组成员的沟通交流,而沟通交流的越多,一个项目组越熟悉,其可能成功的概率越大。同时,项目减少了文档维护的时间。不好的地...原创 2010-06-16 18:09:09 · 217 阅读 · 0 评论 -
衡量程序的质量
本文介绍几个衡量代码质量的指标和工具1 CAP篇不好的程序。刚性程序:不易改变的程序。脆弱程序:改变了一个地方会影响其他一个看似貌不相关的地方。一切的一切都是依赖的问题,不要依赖细节实现,请依赖抽象。因为抽象的东西一般比较稳定。稳定性:一方面,不依赖别的什么东西,是一种稳定性的体现。另一方面,被很多东西依赖,导致难以变动,一样是一种稳定性的体现。核心是这个接口要...原创 2010-08-21 22:44:06 · 210 阅读 · 0 评论 -
抽象简化了开发吗?
都说抽象是简化了开发!呵呵,我不这样认为,声明先,不是我的原创观点,只是看到以后深得我心。对于一个不求甚解的人,抽象是简单了,对于一个真正严肃的程序员,抽象只会增加复杂度,因为要搞清楚事情运作的原理,又多了很多层面的东西需要了解。比如我曾经在一个论坛看到关于java中char能不能存储中文字符的讨论。很明显,很多人把字符集,编码和byte搞混了。这时我就想,如果大家都是简单的从字符...2009-03-29 16:10:12 · 158 阅读 · 0 评论 -
好好的做程序员这份有前途的工作
好好的做程序员这份有前途的工作!!!凡是对我说这句话的人都没有做这份有前途的工作!!!这个只是一句牢骚之言,现在那个心劲也过了。又回到了程序员正常的状态之中。...2009-09-23 00:07:40 · 86 阅读 · 0 评论 -
《代码之美》第7章 漂亮的测试 的bad smell
这章基于二分查找讨论了一个漂亮的测试应该怎么做。先看看原文怎么做。这里的讨论省略了随机,性能,数组中元素重复,以及输入为null的情况。[code="java"] public void testBinarySearch() { int[] testArray = ...; int target = ...; int returnValue = Util.bi...2009-09-26 02:13:37 · 81 阅读 · 0 评论 -
面向过程,面向对象与程序设计
有一种说法,说是一个长时间搞面向过程的人(搞c的人)很难理解OO的精髓,很难做出好的OO设计。以前我也是同意这种说法的,不过那是在学校的时候。 现在我的观点是不论面向过程还是面向对象,要做一个好的设计,必须掌握足够的计算机底层知识。 1 最根本的理由,软件开发是在计算机上的,因此,天然的要受到计算机的限制。计算机对程序的执行过程本身就是一个过程,其他任何的高级概念都是建立在...原创 2009-04-28 23:55:52 · 74 阅读 · 0 评论 -
jar的混乱
使用了一阵.net之后回到java上,发现jar包的维护真可以用梦魇来形容。一个class可以有n个jar包,实现的功能差不多,但是又有可能有一些细微的偏差。包含该class的jar有可能是满足当前需要的一个小jar包,也有可能不仅包含该class及其相关的class,还有一堆其他功能的class堆积在这个大的jar包里。有可能当前好好的,以后加入新功能时就有问题了,因为classloader误用...2009-05-25 23:43:55 · 59 阅读 · 0 评论 -
一个貌似失败的行业通用解决方案之旅
公司于两年前计划研发一个行业的通用解决方案。当时的外部环境是,有几个人在一个大型的项目中做了1-2年,对于一个大型系统的架构和研发有一定的积累。公司正在谈一些大的行业项目,貌似有极大可能成功。公司高层貌似比较重视这个事情,把搞一个解决方案作为公司以后发展的一个方向.于是一个pm带着几个有一定经验的和几个新毕业的(异地)开始了这个通用解决方案之旅。1 阶段1开始的时候从系...2010-03-11 10:53:01 · 61 阅读 · 0 评论 -
计算机数学基础 数论简要笔记
基本概念:整除,因子,素数,合数,互质,公约数,最大公约数,欧几里德算法,模运算。素数的个数是无穷的。除法定理令a为整数,d为正整数,则有唯一的整数q和r,其中0...2010-03-26 17:59:41 · 312 阅读 · 0 评论 -
我们要写怎么样的系统
编程也好久了。越来越觉得一个做一个好的程序员不是一件简单的事情,只有努力努力再努力。经常看到一些很烂的代码,总是想着怎么要把它改善一下。今天,看了javaeye的你的代码写的很烂的帖子,心里一阵的寒啊。有那么多的人在说:在没有了解整个程序的解决方案之前,你不可能就那么轻易的判断代码的好和坏。在没有了解清楚前请不要轻易下结论,任何一段代码能跑起来都有它的一定道理。恩,得用历史的发...2010-08-17 23:17:48 · 102 阅读 · 0 评论 -
编码知识ppt1.4
编码知识的一个PPT,时隔1年重新更新一个版本。检测编码的工具可以见[url]http://zhang-xzhi-xjtu.iteye.com/blog/1547584[/url]原创 2013-01-15 17:13:34 · 67 阅读 · 0 评论