摘要:摘要:在数据挖掘中,K-Means算法是一种 cluster analysis 的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法。在数据挖掘中,K-Means算法是一种cluster analysis的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法。问题K-Means算法主要解决的问题如下图所示。我们可以看到,在图的左边有一些点,我们用肉眼可以看出来有四个点群,但是我们怎么通过计算机程序找出这几个点群来呢?于是就出现了我们的K-Means算法(Wikipedia链接)K-Means要解决的问题算法概要这个算法其实很简单,如下图所示:从上图
阅读全文
摘要:创建笔记用例(创建笔记之前需要先登录)登录用例
阅读全文
摘要:团队编码风格:类名,模块名,文件名 大驼峰命名法(Upper Camel Case)方法名,变量,小驼峰命名法(Lower Camel Case)常量可以用全大写加下划线或大驼峰命名法重构:类以上的名称不允许重复删除无用代码代码分段编写
阅读全文
摘要:引言上次给我领导演示过mock对象,领导觉得很好,不过他觉得这个方案不完美,因为我们通过一个基类对象屏蔽掉了业务对象和mock对象,虽然从接口上看,看不出这两者的区别,但是对于现有程序,为了造出mock对象进行测试,还要先重构程序才能做到这一点,领导觉得不爽,他想要一种完全透明的解决方案,不修改现有的任何一行代码,就能在业务对象和mock对象之间进行切换,我想了一下,觉得似乎可以通过导入不同库来解决,也就是说我写一个动态链接库项目,定义和业务对象具有相同名字,方法,属性的类,由于上次演示的业务对象其实是系统的库(System.Messaging)系统库在.NET的技术框架下是通过引用导入到项目
阅读全文
摘要:上文描述的是读写系统的内置类型,如果是我们自定义的类型又怎么样呢,于是进行了一次测试,添加一个动态链接库项目,并引用到进行读写的两个项目里,下面是测试代码自定义类型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...
阅读全文
摘要:上次写的mock对象的程序,其实并未真正的运行成功,因为当使用真正的业务对象从计算机真实的消息队列读取数据时,转换成为object类型传给使用程序时会产生一个异常(出现在把message.body转成object类型,说是没有匹配的格式对象),我设计意图是该消息队列读取类应该和读出的数据类型无关,它就是一个通用的处理程序,所以接口才会定成object,我不想违反自己的设计理念,加之是仓促为朋友写的代码,自己没有环境就放弃调试这个程序,何况上文重点是介绍,如何利用mock取代真实对象,但是最近还是想弄明白所以调试了一下,最新代码如下:核心模块的代码using System;using Syste
阅读全文
摘要:因为某个新增需求,我修改了一坨代码,不长,就那么4,5行,在用户注册环节里,作为负责的程序员不是写出来就完事,还需要验证修改的代码是正确的,可问题是为了验证这几行代码的正确性,我至少要保证他们被执行过一次,要求没有异常,并且它们要做的事情正确的做了,OK。为了触发这几行代码,那可费死劲,因为并不是只要用户注册这几行代码就可以被执行到的,如果我们把代码的执行流程看作一棵树,每个if语句都会让这棵树长出一个分支出来,那么显然,逻辑越复杂,树的分支越多,不幸的是,我要测试的代码处于一个不经常执行到的分支上,在这块代码前面有许多if语句挡住了它,那么我要精确的准备测试条件,保证代码在执行过程中不会走到
阅读全文
摘要:RT,应该说重构前的代码也很不错,还有找毛病比写好代码容易的多,应该说是站着说话不要疼,另外猪头说:那个,修改代码需要勇气和智慧,但主要还是勇气重构前:重构后:第二次重构,好代码还是要精雕细琢啊
阅读全文
摘要:之前很纠结抽取函数这档子事情,发现自己只要一认真,就会写一堆小函数出来,其实在小函数里跳来跳去的读代码也未必好,抽取函数应该有这么几个原则:复用性,扩展性,层次性,唯一性,清晰性,重要程度就是我列出的顺序,最不重要的就是清晰性,因为过度追求清晰性最终会丧失清晰性复用性,就是多个地方存在相同代码,提取出来作为函数存在,这是最理直气壮的事,写出来也不需要怀疑自己这么做是对的吗?能复用就是最大的理由。大师们总是说DRY,不是吗扩展性, 这是第二大理由,当一段代码被抽取出来成为函数,这个函数就成为了一个接口,隐藏了具体实现,因此当实现变化时,只会影响局部,接口变化了?这就没救了,所以还是需要一些预见性
阅读全文
摘要:在电影《社交网络》的开始有这么一段,扎克博格由于被女友甩了,所以需要做一个网站(www.facemash.com),用来推选哈佛最漂亮的女生。网站的逻辑非常的简单,就是系统从照片库中随机挑出两幅女生照片,选择两者较“美”者。就是这么一个网站在上线两小时(周末凌晨两点到四点)内点击量达到了2万2千次,从而导致了哈佛网络的瘫痪。(备注:最近华中科技大学女生的照片也被类似的放到了网上评比,并且使用山寨的域名www.hust-facemash.com)信息的关注应该注意到,上述功能中涉及到一个排名规则,是由扎克博格那位同学提供的,他把公式写在了窗户上,如下截图:上面的公式主要作用作用是用来对进行女生的
阅读全文
摘要:一堂如何提高代码质量的培训课作者: fangang发布时间: 2012-10-31 16:53阅读: 1670 次原文链接 全屏阅读 [收藏] 今天这堂培训课讲什么呢?我既不讲Spring,也不讲Hibernate,更不讲Ext,我不讲任何一个具体的技术。我们抛开任何 具体的技术,来谈谈如何提高代码质量。如何提高代码质量,相信不仅是在座所有人苦恼的事情,也是所有软件项目苦恼的事情。如何提高代码质量呢,我认为我们 首先要理解什么是高质量的代码。 高质量代码的三要素 我们评价高质量代码有三要素:可读性、可维护性、可变更性。我们的代码要一个都不能少地达到了这三要素的要求才能算高质量的代码。 ...
阅读全文