程序
大侃而谈
一个北京人眼里的外来IT民工93年工作99年北漂4年创业未果现主业IT研发的技术与项目管理
展开
-
Ninject 3 学习笔记 二.用场景说话之前,也落俗的简述一下
我的个人的学习方法,就是会列举我所需要的场景来学习,看框架如何来运用。我也看到网上大量的讲起Ninject的文章,都是极度入门级,实在用处不大。但我想我这个系列不讲这一段也不对,因为这一段是对Ninject的初窥吧。好了让我们从代码来看吧,我的介绍会都放在注释中。 public interface IPerson { } public class ZhangF原创 2012-11-11 22:56:15 · 3915 阅读 · 1 评论 -
说说代码之美
模型的抽象能力的缺乏,估计是中国工程师的软肋,也是思维复杂化的原因。其实也是需求的分析能力,领悟能力。其实也是是否理解面向对象的本质的问题。《代码之美》这本书,刚好给了一些关于北美(但不限于)的顶级程序员的例子,与其说它是讲代码之美,到不如说是讲他们的思维方式,我们甚至可以窥见他们的价值观,个人的体会是,这本书里面的顶级程序员们体现了以一系列思维习惯值得国内同行参考。原创 2010-12-20 20:15:00 · 5520 阅读 · 0 评论 -
戏说计算机编码规范的历史:ANSI、GB2312、UNICODE、UTF-8……
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为"计算机"。开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种不同的状态。他们把其中的编号从0开始的32种状态分别规定了特殊的用途,一但终端、打印机遇上约定好的这些字节被传过来时,就要做一些约定的动转载 2011-01-09 23:26:00 · 1399 阅读 · 0 评论 -
JPA(Java Persistence API)学习总结
<br />具有ORM元数据的领域对象称为实体(Entity),按JPA的规范,实体具备以下的条件: 必须使用javax.persistence.Entity注解或者在XML映射文件中有对应的元素; 必须具有一个不带参的构造函数,类不能声明为final,方法和需要持久化的属性也不能声明为final;如果游离状的实体对象需要以值的方式进行传递,如通Session bean的远程业务接口传递,则必须实现Serializable接口; 需要持久化的属性,其访问修饰符不能是public,它们必须通过实体类方法进行访原创 2011-02-20 11:40:00 · 1299 阅读 · 0 评论 -
懒了好久,不是不愿意写,只是太忙了。可是发现,忙并不一定被认同。
懒了好久,不是不愿意写,只是太忙了。可是发现,忙并不一定被认同。回归吧。还是认真的对待技术吧,总之走上了这一行,这点点本事不能丢。最近?最近,用.Net更有了一些心得,做了一些我认为有点水平的东西,同时开始做一些Android的工作。个人有一个基于“云”的概念正打算开始做,也放到这里记录一下吧。原创 2012-10-14 22:02:51 · 766 阅读 · 0 评论 -
单建的实例哪里去了?【Asp.Net MVC4】
今天在做架构的过程中,遇到这样的一个问题:单建的实例不见了!真的很奇怪,整整一个下午,想了无数的方法,做了N多的测试,可就是找不见。大致是这样的情况:在项目启动的初期,将一些选项值初始在一个单建的实例中,事情很简单吧?好了,开始实现,一会儿就完成了,建一个控制台程序测试,一切正常。好了,刚才做的这些事情是一个网站的服务部份。现在开始搭建网站。Asp.Net MVC4,一会儿也好了,原创 2012-11-09 22:27:59 · 1978 阅读 · 0 评论 -
考虑最周全的关于日期的正则表达式
验证日期的正则表达式加入闰年的判断以及思路分析1、什么是合法的日期范围? 2、关于闰年的阐释。用正则表达式验证日期的难点有二:一是大小月份的天数不同,二是闰年的考虑。原创 2010-12-20 20:28:00 · 835 阅读 · 0 评论 -
国际象棋的常用英语术语
Chess set 国际象棋棋具; Color 棋色; White 白方; Black 黑方; Piece 棋子; King 王; Queen 后; Rook 车; Bishop 象; Knight 马; Pawn 兵; Bishop of opposite colors 异色格象; Bishop of the same colors 同色格象; Bishop ending 象残局; Board 棋盘; Square 方格; Rank 横线原创 2010-12-20 20:36:00 · 3254 阅读 · 0 评论 -
C#,WinForm中的KeyDown,KeyPress 和KeyUp事件相关知识点
Windows窗体通过引发键盘事件来处理键盘输入以响应Windows消息,大多数Windows窗体应用程序都通过处理键盘事件来以独占方式处理键盘输入。Windows窗体将键盘输入标识为由按位Keys枚举表示的虚拟键代码。使用Keys枚举,可以综合一系列按键以生成单个值,这些值与WM_KEYDOWN和WM_SYSKEYDOWNWindows消息所伴随的值相对应。另外,程序开发人员可通过处理KeyDown或KeyUp 事件来检测大多数物理按键操作。字符键是Keys枚举的子集,它们与WM_CHAR和WM_原创 2010-12-20 21:02:00 · 7093 阅读 · 1 评论 -
百万级访问量网站的技术准备工作
<br />当今从纯网站技术上来说,因为开源模式的发展,现在建一个小网站已经很简单也很便宜,所以很多人都把创业方向定位在互联网应用。这些人里大多数不是很懂技术,或者不是那么精通,而网站开发维护方面的知识又很分散,学习成本太高,所以这篇文章将这些知识点结合起来,系统的来说,一个从日几千访问的小小网站,到日访问一两百万的小网站,中间可能会产生什么问题,以及怎么才能在一开始做足工作尽量避免这些问题。<br /><br />你的网站因为努力经营,访问量逐渐升高,在升高的过程中,问题也可能开始显现了。因为带宽转载 2010-12-29 22:43:00 · 559 阅读 · 0 评论 -
不同线程更新WinForm窗体的内容
常会在窗体中其他线程的事件什么的需要更新界面的内容,也自已发明各种各样的写法,今天看同事的这种写法,感觉最清晰,最实用。记录在此。原创 2011-01-07 12:40:00 · 900 阅读 · 0 评论 -
2011研发管理上的几点思考
<br />今年研发管理上的几点思考,在这里先记录一个提纲。考核并不看问题发生次数和严重程度很久没有更新的代码将会被提出来让新人了解业务用技术提升效率Hack Day监控应用服务粒度的合理性及垂直化设计没有任何文档最原始的优胜劣汰机制原创 2011-02-21 11:12:00 · 593 阅读 · 0 评论 -
代码设计的一些原则
1,OCP(Open-Close Principle)开闭原则2,Liskov Subsitution Principle(LSP)里氏代换原则3,Dependency Inversion Principle(DIP)依赖倒转原则4,Interface Segregation Principle(ISP)接口隔离原则5,Composition/Aggregation Reuse Principle(CARP)组合/聚合复用原则6,Least Knowledge Principle(LKP原创 2010-12-19 23:31:00 · 2218 阅读 · 0 评论 -
MVC4中当使用WebAPI时使用Filter的误区
这两天使用MVC4中的WebAPI,开始搭架子,一两天该使用Filter的时候,无论如何都没有办执行。大家都知道,ActionFilterAttribute中有4个时间点函数可以重载,可为什么就不进这些函数呢?反复研究,从午饭后一直到现在总算搞明白了。using System.Web.Http.Filters;注意,当WebAPI时,你的ActionFilterAttribute必原创 2012-10-27 00:23:21 · 4813 阅读 · 0 评论 -
Ninject 3 学习笔记 一.为什么使用Ninject?
最近在使用IoC进行一个较复杂的项目进行架构,在IoC的选择上让我很是纠结。首先我不喜欢大量的配置文件进行配置,那简直是噩梦,比学习一门编程语言还痛苦。我喜欢前一段时间看EF的CodeFirst的那种模式,一切尽在代码控制;其次要轻,框架里面的大多数功能我能用上多少呢?甚至于可能你永远都不会知道。尝试过自己实现了简单的IoC功能,也的确在很多项目用到了,但是对于自己的能力还是有所了解的,更希望还是原创 2012-11-10 19:23:11 · 13577 阅读 · 1 评论 -
MongoDB C# / .NET Driver 中IMongoQuery的内部实现Query的用法
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 最近做的项目中打算使用。Mong原创 2012-11-06 19:44:18 · 9163 阅读 · 1 评论 -
不能正确运行Enmbedded RavenDB。异常:Could not find transactional storage type: Raven.Storage.Esent.Transactio
今天下午开始就出现如题的异常。Google,Bing无法找到答案。事实上昨天做了一个测试项目运行非常正常。今天在项目中正常进行使用时,就出现这个异常。上网找答案,看源码,都无法定位。就开始想今天和昨天做的项目都到底有哪些不同?迷茫呀……直到现在才想明白了,昨天做测试时都在一个项目中,今天正式做项目,入口在单元测试的项目中。解决方案,在调用的入口项目添加引用:Raven.Storag原创 2012-11-02 22:27:20 · 1010 阅读 · 0 评论 -
C#的Enum设计法则
Enum的运算通常涉及到位运算(AND、OR、XOR),按位运算, 常使用FlagsAttribute 自定义属性定义。FlagsAttribute 和 Enum 的准则: 只有要对数值执行按位运算(AND、OR、XOR)时才对枚举使用 FlagsAttribute 自定义属性。 用 2 的幂(即 1、2、4、8 等)定义枚举常量。这意味着组合的枚举常量中的各个标志都不重叠。 请考虑为常用标志组合创建一个枚举常量。例如,如果用于文件 I/O 操作的枚举包含枚举常量 Read = 1 和 Write =原创 2010-12-20 20:32:00 · 539 阅读 · 0 评论 -
JDK中的队列接口:BlockingQueue详解
BlockingQueue 方法以四种形式出现,对于不能立即满足但可能在将来某一时刻可以满足的操作,这四种形式的处理方式不同:第一种是抛出一个异常,第二种是返回一个特殊值(null 或 false,具体取决于操作),第三种是在操作可以成功前,无限期地阻塞当前线程,第四种是在放弃前只在给定的最大时间限制内阻塞。BlockingQueue 不接受 null 元素。试图 add、put 或 offer 一个 null 元素时,某些实现会抛出 NullPointerException。null 被用作指示 poll原创 2010-12-21 21:27:00 · 3299 阅读 · 0 评论 -
Java中,有关当前线程的一些知识点
当前线程的一些常用的方法:wait(),wait(long),notify(),notifyAll()等方法是当前类的实例方法,wait()是使持有对象锁的线程释放锁;wait(long)是使持有对象锁的线程释放锁时间为long(毫秒)后,再次获得锁,wait()和wait(0)等价;notify()是唤醒一个正在等待该对象锁的线程,如果等待的线程不止一个,那么被唤醒的线程由jvm确定;notifyAll是唤醒所有正在等待该对象锁的线程...原创 2010-12-21 23:18:00 · 958 阅读 · 0 评论 -
重构 之代码的坏味道(Bad smell)
1、重复代码。2、过大的类或者方法。3、不合理的类封装。4、魔鬼数字……原创 2010-12-27 22:26:00 · 1066 阅读 · 0 评论 -
VS插件,好用,提高代码效率。Productivity Power Tools
用过Eclipse的朋友都知道,Eclipse插件数不胜数,有很多很实用、很高效的插件帮助我们提高生产率,改善代码结构。VS的代码铺助功能相对Eclipse要差太远了,插件也不太多。尤其是免费的插件少之又少。这个插件不错,提供了一些非常好用的功能,大大提高我们的编码效率。A set of extensions to Visual Studio Professional (and above) which improves developer productivity. In this third m原创 2011-01-21 23:05:00 · 12175 阅读 · 2 评论 -
WinForm加载时各事件的顺序
WinForm加载时各事件的顺序真是没有找到好的介绍,那就自己来试吧。原创 2011-02-22 23:03:00 · 3800 阅读 · 0 评论 -
MongoDb的时差,延伸到应用程序的本地化
这两天发现存入的MongoDb的时间,当取出时,时间均发生了变化,相差了8个小时。反复琢磨发现是因为时差问题。相对来讲,解决起来很容易。当输出时:Time.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss:fff")这时候就想到这些年来自已做的应用程序基本都是面向国内的,如果你的应用程序需要面向国际呢?国际化需要注意的地方很多,字符原创 2012-11-08 21:41:16 · 1718 阅读 · 0 评论 -
常用Oracle数据类型
从网上的很多资料中收集整理,有自己修正补充的地方,说是原创也可以,说是转贴也行。当你在数据库中创建数据表的时候,你需要定义表中所有字段的类型。ORACLE有许多种数据类型以满足你的需要。数据类型大约分为:character, number, date, LOB, 和RAW等类型。原创 2010-12-19 01:18:00 · 674 阅读 · 0 评论 -
C#的Pen与Brush有哪些派生类
SolidBrush用一种单色填充图形。TextureBrush用一个位图填充图形。在构造这个画笔时,还指定了边框矩形和填充模式。边框矩形指定画笔使用位图的哪一部分--可以不使 用整个位图。填充模式有许多选项,如Tile平铺纹理,TileFlipX、TileFlipY和TileFlipXY指定连续平铺时翻转图像。使用 TextureBrush可以创建出非常有趣和富有想像力的效果。LinearGradientBrush封装了一个画笔,该画笔可以绘制两种颜色渐变的图形,其中第一种颜色以指定的角度逐渐原创 2010-12-20 20:56:00 · 4496 阅读 · 0 评论 -
强化与确认基础知识:try catch finally 的执行顺序
try catch finally中的finally不管在什么情况之下都会执行,执行的时间是在程序return 之前.原创 2011-02-21 13:43:00 · 792 阅读 · 0 评论