技术宅,fat-man

增加语言的了解程度可以避免写出愚蠢的代码

导航

上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 50 下一页

2012年11月19日 #

mock对象3:前进!用库和引用屏蔽掉业务对象和mock对象

摘要: 引言上次给我领导演示过mock对象,领导觉得很好,不过他觉得这个方案不完美,因为我们通过一个基类对象屏蔽掉了业务对象和mock对象,虽然从接口上看,看不出这两者的区别,但是对于现有程序,为了造出mock对象进行测试,还要先重构程序才能做到这一点,领导觉得不爽,他想要一种完全透明的解决方案,不修改现有的任何一行代码,就能在业务对象和mock对象之间进行切换,我想了一下,觉得似乎可以通过导入不同库来解决,也就是说我写一个动态链接库项目,定义和业务对象具有相同名字,方法,属性的类,由于上次演示的业务对象其实是系统的库(System.Messaging)系统库在.NET的技术框架下是通过引用导入到项目 阅读全文

posted @ 2012-11-19 14:02 codestyle 阅读(472) 评论(0) 推荐(0)

2012年11月17日 #

再写mock对象2

摘要: 上文描述的是读写系统的内置类型,如果是我们自定义的类型又怎么样呢,于是进行了一次测试,添加一个动态链接库项目,并引用到进行读写的两个项目里,下面是测试代码自定义类型using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ElementX{ public class DataX { public string s; }}写入项目using System;using System.Collections.Generic;using Syst... 阅读全文

posted @ 2012-11-17 02:22 codestyle 阅读(167) 评论(0) 推荐(0)

再写mock对象

摘要: 上次写的mock对象的程序,其实并未真正的运行成功,因为当使用真正的业务对象从计算机真实的消息队列读取数据时,转换成为object类型传给使用程序时会产生一个异常(出现在把message.body转成object类型,说是没有匹配的格式对象),我设计意图是该消息队列读取类应该和读出的数据类型无关,它就是一个通用的处理程序,所以接口才会定成object,我不想违反自己的设计理念,加之是仓促为朋友写的代码,自己没有环境就放弃调试这个程序,何况上文重点是介绍,如何利用mock取代真实对象,但是最近还是想弄明白所以调试了一下,最新代码如下:核心模块的代码using System;using Syste 阅读全文

posted @ 2012-11-17 02:17 codestyle 阅读(399) 评论(0) 推荐(0)

2012年11月16日 #

周五临下班的的BUG是抓狂的BUG

摘要: RT,今天追加了一个功能, 阅读全文

posted @ 2012-11-16 19:03 codestyle 阅读(202) 评论(0) 推荐(0)

2012年11月15日 #

没有测试的开发是多么的悲催哇

摘要: 因为某个新增需求,我修改了一坨代码,不长,就那么4,5行,在用户注册环节里,作为负责的程序员不是写出来就完事,还需要验证修改的代码是正确的,可问题是为了验证这几行代码的正确性,我至少要保证他们被执行过一次,要求没有异常,并且它们要做的事情正确的做了,OK。为了触发这几行代码,那可费死劲,因为并不是只要用户注册这几行代码就可以被执行到的,如果我们把代码的执行流程看作一棵树,每个if语句都会让这棵树长出一个分支出来,那么显然,逻辑越复杂,树的分支越多,不幸的是,我要测试的代码处于一个不经常执行到的分支上,在这块代码前面有许多if语句挡住了它,那么我要精确的准备测试条件,保证代码在执行过程中不会走到 阅读全文

posted @ 2012-11-15 21:21 codestyle 阅读(278) 评论(0) 推荐(0)

重构了一小段C++代码,看样子写代码还是站在不腰疼才能写出好代码啊

摘要: RT,应该说重构前的代码也很不错,还有找毛病比写好代码容易的多,应该说是站着说话不要疼,另外猪头说:那个,修改代码需要勇气和智慧,但主要还是勇气重构前:重构后:第二次重构,好代码还是要精雕细琢啊 阅读全文

posted @ 2012-11-15 16:46 codestyle 阅读(303) 评论(1) 推荐(0)

2012年11月8日 #

关于如何提取代码成为函数,自己浅薄的一些看法

摘要: 之前很纠结抽取函数这档子事情,发现自己只要一认真,就会写一堆小函数出来,其实在小函数里跳来跳去的读代码也未必好,抽取函数应该有这么几个原则:复用性,扩展性,层次性,唯一性,清晰性,重要程度就是我列出的顺序,最不重要的就是清晰性,因为过度追求清晰性最终会丧失清晰性复用性,就是多个地方存在相同代码,提取出来作为函数存在,这是最理直气壮的事,写出来也不需要怀疑自己这么做是对的吗?能复用就是最大的理由。大师们总是说DRY,不是吗扩展性, 这是第二大理由,当一段代码被抽取出来成为函数,这个函数就成为了一个接口,隐藏了具体实现,因此当实现变化时,只会影响局部,接口变化了?这就没救了,所以还是需要一些预见性 阅读全文

posted @ 2012-11-08 17:07 codestyle 阅读(577) 评论(4) 推荐(1)

2012年11月4日 #

数学之美:《社交网络》中Facemash算法分析

摘要: 在电影《社交网络》的开始有这么一段,扎克博格由于被女友甩了,所以需要做一个网站(www.facemash.com),用来推选哈佛最漂亮的女生。网站的逻辑非常的简单,就是系统从照片库中随机挑出两幅女生照片,选择两者较“美”者。就是这么一个网站在上线两小时(周末凌晨两点到四点)内点击量达到了2万2千次,从而导致了哈佛网络的瘫痪。(备注:最近华中科技大学女生的照片也被类似的放到了网上评比,并且使用山寨的域名www.hust-facemash.com)信息的关注应该注意到,上述功能中涉及到一个排名规则,是由扎克博格那位同学提供的,他把公式写在了窗户上,如下截图:上面的公式主要作用作用是用来对进行女生的 阅读全文

posted @ 2012-11-04 23:53 codestyle 阅读(1246) 评论(0) 推荐(0)

2012年11月2日 #

一堂如何提高代码质量的培训课

摘要: 一堂如何提高代码质量的培训课作者: fangang发布时间: 2012-10-31 16:53阅读: 1670 次原文链接 全屏阅读 [收藏] 今天这堂培训课讲什么呢?我既不讲Spring,也不讲Hibernate,更不讲Ext,我不讲任何一个具体的技术。我们抛开任何 具体的技术,来谈谈如何提高代码质量。如何提高代码质量,相信不仅是在座所有人苦恼的事情,也是所有软件项目苦恼的事情。如何提高代码质量呢,我认为我们 首先要理解什么是高质量的代码。 高质量代码的三要素 我们评价高质量代码有三要素:可读性、可维护性、可变更性。我们的代码要一个都不能少地达到了这三要素的要求才能算高质量的代码。 ... 阅读全文

posted @ 2012-11-02 13:45 codestyle 阅读(226) 评论(0) 推荐(0)

2012年10月26日 #

小记开发过程中一个问题,以及python库加载

摘要: 问题描述:昨天晚上通宵加班,阻滞在一个问题上,程序要导入其他目录的一个文件,而那个文件又有它自己的依赖的文件(或者叫库吧)就是导入失败,早上起来继续看,打印了程序路径(print sys.path)程序路径是我导入模块时要搜索的目录集合,发现我是通过sys.path.append追加的那个目录,它在整个目录列表最后面。我怀疑是某种原因没搜索它,因此把它插入到整个列表的开头(sys.path.insert(0,'/xxxx/yyyy'))结果就很神奇的发现,能够正确导入那个库了 --!python库加载:1)启动模块添加路径A之后,所有被启动模块加载的模块,都可以加载路径A下的模 阅读全文

posted @ 2012-10-26 08:35 codestyle 阅读(248) 评论(0) 推荐(0)

上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 50 下一页