分类 编程 下的文章

五种开源协议比较: BSD、Apache、GPL、LGPL 、MIT

BSD开源协议

BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。

如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。

不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

- 阅读剩余部分 -

优秀程序员的18大法则

经过多年的积累,我发现,下面这些基本的指导法则,可以帮助我成为一个更加高效的程序员。
程序设计法则,与设计和工程的原理密切相关。下面这些编程法则帮助我让我获益匪浅,所以我想分享给大家,希望也能帮助大家更高效,生产出的代码更容易维护,并且bug和缺陷更少。


- 阅读剩余部分 -

PSSH 批量管理服务器

想找一个轻量的批量管理机器的工具,网上搜了一下发现有介绍pssh这个工具,用python写的,python版本大于2.4即可,于是下载试了一下。
1 下载

wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz

- 阅读剩余部分 -

防止装箱落实到底,只做一半也是失败

.NET提供 struct 类型,正确使用可以减少对象数量,从而降低GC压力,提高性能。不过有时候我会发现,某些同学有这方面的意识,但是有时候一疏忽一偷懒,就没有得到相应的效果了。这里举一个真实的例子:假设我们要将一对int作为字典的键,用于映射到某些数据,那么你会怎么做?当然我们可以直接使用 Tuple<int, int>,但这样就可能产生大量的对象。于是我们打算使用自定义的值类型:

- 阅读剩余部分 -

C# 5.0 新特性

第一:绑定运算符,:=:

这个只是简化了数据绑定,跟ASP.NET MVC3不断改进一样,其实不是什么亮点改进

comboBox1.Text :=: textBox1.Text; //将文本框的内容绑定到下拉框。 

第二:带参数的泛型构造函数:

这个的加入给一些设计增加了强大功能,泛型早在C#2.0加入后就有着强大的应用,一般稍微设计比较好的框架,都会用到泛型,C#5.0加入带参数泛型构造函数,则在原有基础上对C#泛型完善了很多

public class T MyClass : T: class, new()  
public class T MyClass : T:class, new(int) 

- 阅读剩余部分 -

C#提高效率的技巧 - VS篇

相信做开发的没有不重视效率的。开发C#,VB的都知道,我们很依赖VS,或者说,我们很感谢VS。能够对一个IDE产生依赖,说明这个IDE确实 有它的独特之处。无容置疑,VS是一个非常强大的IDE,它支持多语言编辑。支持C#,VB,C/C++,HTML……它拥有强大的调试编译功 能。它让我们不用去记住那些安装,环境变量设置,服务器设置,编译的繁琐过程。高度集成化。凡事有利有弊,在敏捷开发盛行的时代,VS是否值得我们使用是 无容置疑的。但是强大的VS也拥有众多的设置,众多的技巧。记住某些小技巧可以让我们更加方便,快捷地使用VS。这是很有必要的。每个人或多或少记住了一 些小技巧。但是不可能全部都记住,我们按照我们自己的编程习惯记住一些自己比较常用的就好。

- 阅读剩余部分 -

C#中的委托和事件(续)

为什么要使用事件而不是委托变量?

在 C#中的委托和事件 中,我提出了两个为什么在类型中使用事件向外部提供方法注册,而不是直接使用委托变量的原因。主要是从封装性和易用性上去考虑,但是还漏掉了一点,事件应该由事件发布者触发,而不应该由客户端(客户程序)来触发。这句话是什么意思呢?请看下面的范例:

NOTE:注意这里术语的变化,当我们单独谈论事件,我们说发布者(publisher)、订阅者 (subscriber)、客户端(client)。当我们讨论Observer模式,我们说主题(subject)和观察者(observer)。客户 端通常是包含Main()方法的Program类。

- 阅读剩余部分 -

随机文章

最近回复

分类

其它

友情连接

推广链接