Angelo Lee's Blog
This is my kingdom .If i don't fight for it ,who will ?
摘要: 结对编程(Pair-Programming)可能是近年来最为流行的编程方式。所谓结对编程,也就是两个人写一个程序,其中,一个人叫Driver,另一个人叫Observer,Driver在编程代码,而Observer在旁边实时查看Driver的代码,并帮助Driver编程。并且,Driver和Observer在一起时可以相互讨论,有效地避免了闭门造车,并可以减少后期的code review时间,以及代码的学习成本。有实验证明,平均下来,结对编程所花费的时候比单人编程增加了10%,但也会比单人编程减少15%的代码BUG。如果再算上后期代码的维护和学习成本,结对编程比单人编程更有效率,还更为节省成本。 阅读全文
posted @ 2011-08-17 22:28 Angelo Lee 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 酷壳里有很多我觉得很不错的文章,但是访问量最大的却是那篇《6个变态的Hello World》,和它能在本站右边栏“全站热门”中出现的还有“如何加密源代码”,以及编程真难啊等这样的文章。可见本站的读者们的偏好,我也相信你们都是“身怀绝技”的程序员。所以,今天给大家推荐这篇文章,相信一定能触动大家的兴奋点。这篇文章的原文在这里(http://mindprod.com/jgloss/unmain.html),我看完后我想说——什么叫“创造力”,创造力就是——就算是要干一件烂事都能干得那么漂亮那么有创意的能力。什么叫“抓狂”,抓狂就是——以一种沉着老练的不屈不挠的一本正经的精神一点一点把你推向崩溃的边 阅读全文
posted @ 2011-08-17 21:55 Angelo Lee 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 我个人认为,这是一篇不错的文章,虽然我不是Program Mananger,但是我几乎在做着和这个职位很相似的工作。在这里,我把这篇文章推荐给所有的程序员,我相信,这篇文章会让你明白,只有技术是远远不够的,因为没有Program Manager这个角色,程序员们只不过一些手中拿着利器却不知所措的散兵游勇。我希望我的导读和原文能给所有的程序带来启示。原文在这里:“How to be a program manager”http://www.joelonsoftware.com/items/2009/03/09.html这篇文章的作者叫Joel Spolsky,在Microsoft做过Progra 阅读全文
posted @ 2011-08-17 21:54 Angelo Lee 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 下面是一些非常不错的编程教程,当然,全是英文版的。不过因为是新手教程,所以非常容易阅读,可以在学习技术的同时加强一下自己的英语阅读能力。如果你是一个新手,建议你把本页设为你的收藏夹。CIntroduction to C ProgrammingC Optimization TutorialCompiling C and C++ Programs on UNIX Systems- gcc/g++Building and Using Static and Shared C LibrariesProgramming in C: UNIX System Calls and Subroutines Usi 阅读全文
posted @ 2011-08-17 21:52 Angelo Lee 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 本文源自这里,文中列出了全球前200名的开发者的BLOG。有的可能你很熟悉,有的你可能还不知道。这些BLOG的排名通过查看,Google PageRank,Technorati Authority,Alexa Rank, Google links, Twitter Grader Rank等等,形成的综合排名。如果你对此感兴趣的话,你可以看看这篇文章——《如何制作一个Blog排名》下面是前200名的排名。希望对那些有日常浏览Blog习惯的人有帮助。大家可以下载更为详细的Excel表格。本排名截止至:2009年第二季度其中:TT = This Time 本次名次LT = Last Time 上次名 阅读全文
posted @ 2011-08-17 21:05 Angelo Lee 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 对于程序开发者来说,有两种技术需要我们掌握,一个是技术上的能力,另一个是非技术上的能力。不幸的是,许多程序员过多地关注了技术上的能力,而忽略了非技术上的能力的培养,因此,我们的程序员们经常会有一些很不好的习惯,这里我们例举了程序员们最常犯的5个非技术的错误,与大家共勉。1.- 缺乏团队纪律“Discipline is the bridge between goals and accomplishment.” Jim Rohn.纪律是一个最有价值的技能,不仅仅只是在软件开发领域,同样在其它领域也是一样的。但对于现实来说,我们很难找到即有才华又有纪律的人。这正如足球队一样,非洲的球员们才华相当的出 阅读全文
posted @ 2011-08-17 21:01 Angelo Lee 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 质量管理在软件工程中是非常非常重要的一个环节,无论你有多么精妙的算法,或是使用了多么先进的技术,还是拥有了多少强的设计,在质量控制或质量管理面前,这些都可能什么都不是。这里,有一些质量管理的法则,可以让软件的用户从中受益。如果对质量管理一言以蔽之:面对一个长期不断需要改善的软件,当其用户或是管理者们来说,他们对某个组织所提供的标准有一种完全和最基本的信任。下面,我们给出8个质量管理的法则:1. 始终从用户角度出发: “无论何时何地,我们都需要明白用户当前的或未来的需求,并能够达到用户的需求,甚至超出用户的期望。”这是整个软件工程的重中之重。质量管理从某种意义上来说,就是实现用户需求的质量的管理 阅读全文
posted @ 2011-08-17 20:42 Angelo Lee 阅读(215) 评论(0) 推荐(0) 编辑
摘要: Why Code Reivew:浅层次的Code Review是基于代码规范的,代码规范是通过可读性、易修改性来解决团队协作、提升项目可维护性。深层次的Code Review会检查技术和业务逻辑实现的正确、优雅性,类似于黑盒测试。Code reviews 通过大家的建议增进代码的质量。Code reviews 是一个传递知识的手段,可以让其它并不熟悉代码的人知道作者的意图和想法,从而可以在以后轻松维护代码。Code reviews 鼓励程序员们相互学习对方的长处和优点。Code reviews 确认自己的设计和实现是否清楚和简单。我们没有提到可以帮助找到程序的bug和保证代码风格和编码标准。这 阅读全文
posted @ 2011-08-17 20:31 Angelo Lee 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 一个非常严重和困难的bug,能够成就一个饱经沧桑深受压力的有经验的专业程序员的职业生涯。经受这种考验的创伤程度,相当你受到了一次严重的身体伤害,离婚,或是家庭成为的离世。研究人员在研究了计算机编程心理学后,得出了一个程序员们在解决一个困难的bug时的心路里程。这些不同的境界,很像为大众所知的Kübler-Ross Stages of Grief(这个模型描述了人对待哀伤与灾难过程中的5个独立阶段(否认,愤怒,耍赖,抑郁,接受)。绝症患者被认为会经历这些阶段),而且原因都很相似。就好像死亡所伴随的悲伤一样,fix一个bug是一个过程其初始化了一个事件,一开始是拒绝相信,其造就了你苦闷的 阅读全文
posted @ 2011-08-17 19:28 Angelo Lee 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 入门教程Subversion Cheat Sheet(PDF version)The Subversion BookSubversion Official DocumentationSVN 1-Click SetupSubversion客户端Tortoise SVN (Windows only)Cornerstone (Mac only)WorkbenchSmartSVNVersions (Mac only)SubclipseSubcommanderFSVS“Fast System Versioning”,Syncro SVN Clientscplugin (Mac only)iPhone S 阅读全文
posted @ 2011-08-17 19:24 Angelo Lee 阅读(155) 评论(0) 推荐(0) 编辑
摘要: Extended WPF Toolkit 可以说是WPF Toolkit 的一个补充,也包含了许多WPF 控件供开发者使用。本篇将介绍Extended WPF Toolkit 1.4.0 中新增的一些控件。安装Extended WPF Toolkit Extended WPF Toolkit 安装其实很简单,利用nuget 可以快速将控件库添加到项目中。右键References 选择“Add Library Package Reference...”在搜索框中输入"Extended WPF Toolkit"名称即可找到控件库,点击“Install” 安装。在XAML 中加入 阅读全文
posted @ 2011-08-17 19:14 Angelo Lee 阅读(604) 评论(0) 推荐(1) 编辑
摘要: You want to use Dictionary in your C# program for constant lookup times and to associate keys with values. Look at some examples of using Dictionary with Keys and KeyValuePair, as well as with classes and methods. This document has tips and examples for using Dictionary with keys and values using th 阅读全文
posted @ 2011-08-17 19:13 Angelo Lee 阅读(535) 评论(0) 推荐(0) 编辑
摘要: 一 源码管理工具源码管理(SCM/Source Code Management),也称为版本控制系统(VCS/Version Control System)。1)为什么我们需要SCM/VCS 1. 备份和恢复:源码是软件公司的财富,备份和恢复用来防止意外的损失;2. 同步:同一项目中多程序员间实现代码的共享和同步;3. 短期的撤销:通常的如果某个开发人员的提交导致了break,则可以撤销导致break的提交;4. 长期的撤销:如果某个BUG是很久以前的提交导致,则可以撤销到当时提交的版本来debug;5. 跟踪改变:每次改变的提交都有注释,改变的历史会被保存,我们还可以看到提交的时间,作者等信 阅读全文
posted @ 2011-08-17 19:13 Angelo Lee 阅读(546) 评论(0) 推荐(0) 编辑
摘要: Code Review中文应该译作“代码审查”或是“代码评审”,这是一个流程,当开发人员写好代码后,需要让别人来review一下他的代码,这是一种有效发现BUG的方法。由此,我们可以审查代码的风格、逻辑、思路……,找出问题,以及改进代码。因为这是代码刚刚出炉的时候,所以,这也是代码重构,代码调整,代码修改的最佳时候。所以,Code Review是编码实现中最最重要的一个环节。长时间以来,Code Review需要有一些有效的工具来支持,这样我们就可以更容易,更有效率地来进行代码审查工作。下面是5个开源的代码审查工具,他们可以帮助你更容易地进行这项活动。1. Review board:Revie 阅读全文
posted @ 2011-08-17 19:13 Angelo Lee 阅读(302) 评论(0) 推荐(0) 编辑
摘要: Principles Of Object Oriented DesignLink:http://www.surfscranton.com/architecture/ObjectOrientedDesignPrinciples.htmDon’t Repeat Yourself (DRY)DRY 是一个最简单的法则,也是最容易被理解的。但它也可能是最难被应用的(因为要做到这样,我们需要在泛型设计上做相当的努力,这并不是一件容易的事)。它意味着,当我们在两个或多个地方的时候发现一些相似的代码的时候,我们需要把他们的共性抽象出来形一个唯一的新方法,并且改变现有的地方的代码让他们以一些合适的参数调用这个 阅读全文
posted @ 2011-08-17 19:05 Angelo Lee 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 好的注释风格:一、注释Why注释应该是注释Why,而不是How和What。代码告诉你How,而注释应该告诉你Why。但大多数的程序并不知道什么是好的注释,那些注释其实和code是重复的,毫无意义。应该避免的代码注释一、自恋型注释public class Program { static void Main(string[] args) { string message = "Hello World!"; // 07/24/2010 Bob Console.WriteLine(message); // 07/24/2010 Bob ... 阅读全文
posted @ 2011-08-17 18:52 Angelo Lee 阅读(234) 评论(0) 推荐(0) 编辑