摘要:
谈谈防御性编程一提到“防御性编程”,大家都会感觉,这个话题很大,不知从何说起,该说哪些具体内容。 我做这篇文章的源头,是我已经做了很多很多相关前端及后端数据流校验的事情。对测试同学给我提出的所有bug做了整体的统计促使我对“防御性编程”的思考。我想绝大多数的程序bug都是因为代码“防御性”做得不够好而导致的,而导致代码“防御性”不够完善的原因又是多种多样的。 我们做防御性编程,无非一个目的——打造高质量的模块(或程序)。然而,相信大家都清楚,不可能仅凭做好了“防御性”来评价模块(或程序)的质量高与低。同样的,即使我们搭建了十分健壮的代码“防御性”,我们也不可能确保不会有任何bug的产生。 .. 阅读全文
posted @ 2013-09-06 19:14
HackerVirus
阅读(2657)
评论(0)
推荐(0)
摘要:
面向对象的几个基本概念的理解一、面向对象是执行者到指挥者的转变现在要做一件事情:把大象放进冰箱。 做这样一件事的步骤就是:1、打开冰箱。2、放进大象。3、关上冰箱门。如果你是这么做的,那么这就是面向过程,它偏向于是事件的“执行者”。而面向对象,则偏向于是事件的“管理者”,它一定是先创造出一种冰箱,它具备可以开门,可以拉大象进门,可以自动关门的功能,然后调用这个冰箱去自己完成“把大象放进冰箱”这件事。你愿意去当一个执行者,还是去当一个管理者?当然是管理者,所以,编程语言的发展,一定更趋向于人的更合理的思维方式。二、类和对象“物以类聚”这句成语听过吧?类,就是具有相同特征的一类事物的统称,它是抽象 阅读全文
posted @ 2013-09-06 19:13
HackerVirus
阅读(282)
评论(0)
推荐(0)
摘要:
SQL Server 复制:事务发布SQL Server复制:事务发布一、背景在复制的运用场景中,事务发布是使用最为广泛的,我遇到这样一个场景:在Task数据库中有Basic与Group两个表,需要提供这两个表的部分字段给其它程序读取放入缓存,程序需要比较及时的获取到这些数据,作为DBA你需要从权限和性能控制的角度出发,我采用了SQL Server的事务复制技术和timestamp,下面只讲述事务复制的搭建过程;二、实现过程(一)环境信息系统环境:Windows Server 2008 + SQL Server 2008 R2发布服务器:192.168.1.151,服务器名称:USER-H2B 阅读全文
posted @ 2013-09-06 19:03
HackerVirus
阅读(208)
评论(0)
推荐(0)
摘要:
API HOOK库API HOOK有两种做法,一种是SetWindowHookEx,简单易用,但如果做其它的HOOK,如HOOK OpenProcess,就需要修改内存地址了,内存地址可以通过WriteProcessMemory来修改,先将调用函数的地址改成自己的(jmp到自己的函数),然后需要时,再改回来。View Code#pragma once#ifdef _M_IX86template class Hooker{protected: static DWORD HookFunction(LPCWSTR lpModule, LPCSTR lpFuncName, PROC lpFunc... 阅读全文
posted @ 2013-09-06 19:00
HackerVirus
阅读(412)
评论(0)
推荐(0)
摘要:
SQL语句调优 - 索引上的数据检索方法如果一张表上没有聚集索引,数据将会随机的顺序存放在表里。以dbo.SalesOrderDetail_TEST为例子。它的上面没有聚集索引,只有一个在SalesOrderID上的非聚集索引。所以表格的每一行记录,不会按照任何顺序,而是随意地存放在Hash里。这个时候如果用户想要找所有单价大于200的销售详细记录,要运行的语句会是:SET STATISTICS PROFILE ON SELECT SalesOrderDetailID , UnitpriceFROM SalesOrderDetail_testWHERE UnitPrice > 200由于 阅读全文
posted @ 2013-09-06 18:58
HackerVirus
阅读(177)
评论(0)
推荐(0)
摘要:
快速高斯模糊经由厉害博主Imageshop的博文http://www.cnblogs.com/Imageshop/archive/2013/01/07/2849782.html提示,我这里实现了高斯模糊函数,但是有一下几点问题向各位讨教探讨:①这个函数处理速度没有Imageshop博主描述的速度快,如何提高效率。②高斯模糊后感觉整幅图像会向右下角平移一定距离,没有详细研究过算法本身,这样是否为正常,有何解决方案,大家一起探讨。(反正我用高斯模糊后图像载进行USM锐化得到了我觉得很不理想的结果,原因应该就是这个平移造成的)③高手帮看看我这个函数是否本身就有错我做的工作很简单①我将contrast 阅读全文
posted @ 2013-09-06 18:38
HackerVirus
阅读(507)
评论(0)
推荐(0)
摘要:
C#计算两个文件的相对目录算法楼主大菜鸟一只,第一次写技术博客,如果有概念错误或代码不规范的地方,还请各位多多批评指正。话不多说,来看题: 前一阵子开发了一个用户控件,里面调用了很多css,js等资源文件,而引用控件的页面所在目录是不同的。问题出来了:如果目录不同,那么控件里引用css,js资源文件的路径也会相应变化。现在已知两个文件相对于网站根目录的路径,如何计算相对路径呢?请看代码: 1 public string GetRelativePath(string path1, string path2) 2 { 3 string[] path1Array = pat... 阅读全文
posted @ 2013-09-06 17:15
HackerVirus
阅读(521)
评论(0)
推荐(0)
摘要:
之前大四时候实习的公司有使用过Redis,不过那时所有配置均由主管完成了,而我也只是处于能使用的阶段。时隔1年多,近期回想起这货,在研究中,想把它整合进现在公司的网站系统中,做做数据快照(已完成)和数据缓存,现在把自己学习的一个过程写下来。首先声明,我用的是windows系统开发,所以以下所有的文字只和windows系统有关,其他系统的没研究过!Redis的简介,度娘一搜一大把,这里就不做阐述了。首先要先下载Redis,地址:https://code.google.com/p/servicestack/wiki/RedisWindowsDownload(至BZ写这篇随笔时,使用的最新版本为2. 阅读全文
posted @ 2013-09-06 16:31
HackerVirus
阅读(246)
评论(0)
推荐(0)
摘要:
白话插件框架原理本文将用尽可能简单的文字来描述插件框架原理。很多人以为插件化很复杂,所以就一直将这类框架阻挡在门外。实际上,在我们的实践过程中,从框架的使用角度来看,它非常简单,我们团队里面非正规院校毕业的女生也可以来实际使用。如果说插件框架难的地方,我反倒觉得克服人的天然惰性更加困难。我们不能习惯于墨守成规,日复一日年复一年,按照相同的模式来开发,将自己打造成一部“编码机器”,成为没有价值的“程序猿/媛”。使用插件框架,没有多少技术难点,不过需要我们提升我们的软件开发思想,改变现有开发方式。1 插件框架本质在.NET平台,一个程序是由“程序集 + 资源”构成的。程序集是由我们开发的一个个的类 阅读全文
posted @ 2013-09-06 15:12
HackerVirus
阅读(540)
评论(0)
推荐(0)
摘要:
Jquery文本框值改变事件(支持火狐、ie)Jquery值改变事件支持火狐和ie浏览器,并且测试通过,绑定后台代码可以做成autocomplete控件。具体代码列举如下:?$(document).ready(function () {$("#UnitName").focus(function () {var bind_name = 'keyup';if(navigator.userAgent.indexOf("MSIE") != -1){ bind_name = 'input propertychange'; }$(th 阅读全文
posted @ 2013-09-06 15:11
HackerVirus
阅读(254)
评论(0)
推荐(0)