它山之石
长山互联网未来探索
一切美好事物,都是深度关系的产物。 长山是我的花名,这里和大家聊聊互联网、技术、产品、编程、心理学等我感兴趣的事情。 现在是一个新时代的开始,与你喜欢的事情,建立深度的关系,里面有新的创造。
展开
-
《技术领导者》学习笔记1——定义,模型,解决问题方式
前记:这两天看楚汉传奇,到目前为止得出几个观点:一个是时势造英雄,实践出人才。在我之前的一个博客中有体现(http://blog.csdn.net/chgaowei/article/details/6041734)。二是一个领导人,必须要敢于担当,敢于承担责任。三是团队中不一定都是顶级人才,但要互补。刘邦旁边为何那么多的人才汇集?并非是什么优秀的人才都会和优秀的人才在一起,而是他们在一起经过同样的原创 2013-03-02 21:38:38 · 3042 阅读 · 0 评论 -
设计模式之BUILDER生成器2
1.1 BUILDER生成器 1、 意图 将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。 构建是通过对生成器抽象接口的调用实现的。而构建出来的产品的类型(表示),是由具体的进行构建的生成器的子类的实例来决定的。这样导向器只需要调用生成器的抽象接口生成产品,而具体生成什么样的产品,则是根据导向器配置的具体的生成器实例相关。 终于理解了它是如何把复杂对象的构建原创 2010-03-31 21:32:00 · 1281 阅读 · 0 评论 -
继承和组合的比较
继承是一种白箱复用,父类的内部细节对子类可见。对象组合彼此不知道对方内部细节,成为黑箱复用。继承的优缺点:1) 子类可以直接重定义父类的操作。2) 编译时刻决定了,无法在运行期间更改。3) 子类要知道父类的实现细节,这样就部分破坏了封装性。子类和父类依赖过于紧密,父类的某些变化必然导致子类的变化。开发过程中遇到过类似的问题。这原创 2010-01-07 22:10:00 · 2236 阅读 · 0 评论 -
测试驱动开发的适用性
原文:http://www.infoq.com/cn/news/2009/11/uncle-bob-tdd-applicabilityTDD取代架构了吗?你不能通过TDD得到一个完整的架构。TDD可以告诉你某些架构决定,但是你无法在没有架构设计的情况下启动项目。因此某些预先的架构是必要的。其中最重要的一点是决定哪些架构元素可以延迟哪些不能原创 2009-11-12 19:24:00 · 1906 阅读 · 0 评论 -
解析技术债务
原文:http://www.infoq.com/cn/news/2009/10/dissecting-technical-debt术语”技术债务“是由Ward Cunningham首次提出,指的是开发团队在设计或架构选型时从短期效应的角度选择了一个易于实现的方案,但从长远来看,这种方案会带来更消极的影响,亦即开发团队所欠的债务。敏捷专家们就技术债务到底是什么以及如何对其进行分类给出了转载 2009-11-12 22:57:00 · 2010 阅读 · 0 评论 -
重构手法:Inline Temp
1.1 Inline Temp1.1.1 概述对所有对该变量的引用操作,替换为对它赋值的那个表达式自身。1.1.2 动机一般是用作replace temp with quer的一部分使用。另外一个地方是它不利于其他重构手法的使用。1.1.3 做法1、 如果这个变量未被声明为const(原创 2009-11-12 18:53:00 · 1596 阅读 · 0 评论 -
重构手法——Inline Method
1.1 Inline Method1.1.1 概述在函数调用点插入函数本体,然后移除该函数。1.1.2 动机代码大全和重构中都强调过的一点是,为了代码的可读性,不要吝于为几行代码写一个函数。这个重构方法,就是针对上述原则的滥用。如果代码已经清晰的表达了其意图,间接层的必要性就不大了。这个时候,就可以把间接层移除。另外一个原创 2009-11-10 19:46:00 · 2341 阅读 · 0 评论 -
初心修炼 ing——关于沟通、学习的心态和方法
今天下午加班,和一个同事共同开发一个流程引擎。这个流程引擎是我已经做了差不多的,但是这位同事要在此基础上进行开发。我们尝试了结对编程。这个流程引擎是我开发的,当时研究它也花费了很多的时间和精力,所以,我自认为我们在这方面还是一个“专家”,对他提出的意见,我总是不自觉的揣摩他的意图,并对他的思路以一种“专家”的视角审视。后来他的一个思路,和我讨论的很久,我终于理解了他的意思,并且,对原有的流程,原创 2009-10-31 19:08:00 · 1863 阅读 · 1 评论 -
初心修炼 ing——再论沟通
刚写了一篇文章,关于沟通的学习的心态,《初心修炼 ing》,感觉意犹未尽,在写一篇。 沟通的前提是什么?沟通的双方或多方存在共同的利益基础。 沟通的目的是什么?为了实现共同的利益,要消除误解,达成共识,促进良好的解决方案。记住,在任何时候,沟通的目的都不是说服对方,或被对方所说服,或者在沟通时在气势上站优势——任何时候,它的目的只有一个——良好的解决方案。原创 2009-10-31 20:11:00 · 1515 阅读 · 3 评论 -
企业要求在变 IT经理应具备十大软技能
原文:http://www.cioage.com/art/200910/86026.htm阅读提示:据IT招聘公司Robert Half Technology的部门主管Igor Abramovitch称,该公司发现近几年人们对软技能的兴趣明显浓厚起来。他说,光有扎实的技术性能力再也不吃香了。�...如果你认为IT人员只需要技术性能力,那可就错了。企业对IT员工的要求在变。转载 2009-10-18 08:47:00 · 1559 阅读 · 0 评论 -
初心,聆听之术
原文:http://www.infoq.com/cn/news/2008/08/beginners_mind 初学者之心(Beginners Mind) 是指学习时任何事物时都不要有先入为主,而要以初学者的心态来学习,即使对所学内容已经有了初步的了解。这个方法对于敏捷从业者非常有益,它引导我们无论什么时候,都要在采取行动之前都要观察并发现究竟发生了什么。 由Jean Tab转载 2009-10-17 12:16:00 · 1546 阅读 · 0 评论 -
程序员从初级到中级10个行动
<br />几天前看了一篇文章,非常不错:《程序员从初级到中级10个秘诀》<br />结合我自身的情况,列出我的是个行动:<br />1.学习另一门语言<br />我们目前主要的语言是c和c++。今年在学习一门新的语言,初步选定为go语言,另外,有时间的话在学习一下perl。<br />2.学习先进的搜索技术、手段和及策略<br />学习一下Google的高级搜索功能.<br />3.帮助别人<br />多来CSDN论坛,多回复帖子。<br />4.有耐心,常练习<br />在公司也要抽时间学习;安排周末的原创 2010-09-04 10:17:00 · 3826 阅读 · 5 评论 -
要事优先——《卓有成效的管理者》读书笔记
卓有成效如果有什么秘诀的话,那就是善于集中精力。卓有成效的管理者总是把重要的事情放在前面做(first things first),而且一次只做好一件事(do one thing at a time)。——这里的观点和高效能人士的七个习惯中观点类似管理者需要“整块的时间”,较长的连续性的时间。越能集中我们的努力,时间和资源,我们所能完成的工作也就越多。完成大事的秘诀:“每次只集中精力干好一件事情。”“有效的管理者知道他们必须完成许多工作,当他们在一段时间内只集中努力做好一件事——集中原创 2010-10-19 23:21:00 · 10185 阅读 · 1 评论 -
linux epoll简介
最近研究python的coroutine,顺藤摸瓜,从linux epoll开始:原文:http://baike.baidu.com/view/1385104.htmlepoll是Linux内核为处理大批量句柄而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。目录简介优点使用系统调用展开编辑转载 2011-12-05 19:23:27 · 2762 阅读 · 0 评论 -
怎样花两年时间去面试一个人
这是一篇 刘未鹏 发表的文章。原文地址:http://mindhacks.cn/2011/11/04/how-to-interview-a-person-for-two-years/这篇文章不但讨论了如何面试,还有关于如何学习的一些想法,非常不错,值得好好读一下。书中提到的一种招聘模式具有一定的可行性,有兴趣的同学可以尝试做一下。Joel Spolsky曾经感叹:招聘难,难于上青天(此处笔者稍加演转载 2011-11-05 14:53:47 · 4499 阅读 · 4 评论 -
《团队之美》笔记——领导力
管理的技巧就是通过其他人实现你的工作目标。写作的技巧就是创造一个能够激发其他人进行思考的环境。需要有一个激发人们创造力的体系。团队成员优势无补带来的威力。让成员认为他所做的是他想做的事情。雕塑就是把隐藏在石头里的形象挖掘出来。原创 2011-07-24 14:15:27 · 2789 阅读 · 3 评论 -
确定你的public继承塑模出“is-a”关系——c++学习笔记
查询一下三种继承:protected,public,private继承分别表示什么含义。好的接口设计可以防止无效的代码编译通过。是这样的。如果能够编译通过,则证明调用者的行为时正确的。则是一个非常好的设计思想。在设计public继承的时候,public继承和的思想是,能够施加到基类上面的事情,同样可以施加到子类上。这个和我们自觉的is-a关系不一致,要小心。请记住:public继承意味着is-a,适用于base class 的每一件事情都要使用与derived class。原创 2011-05-11 22:29:00 · 1813 阅读 · 0 评论 -
设计class犹如设计type——effective C++学习笔记
设计class犹如设计type(Treat class design as type design.)设计class要带着和“语言设计者当初设计语言内置类型时”一样的谨慎来设计class。class也是一个types,好的types具备自然的语法,直观的语义,以及一或多个高效实现品。class设计checklist:1、 新type的对象应该如何创建和销毁?2、 对象的初始化和对象的赋值该有什么样的差别?这决定了class的构造函数和赋值(assignment)操作符的行为,以原创 2010-11-18 22:00:00 · 1614 阅读 · 0 评论 -
宁以pass-by-reference-to-const替换pass-by-value——effective c++学习笔记
20 宁以pass-by-reference-to-const替换pass-by-value(Prefer pass-by-conference-to-const to pass-by-value.)pass-by-conference-to-const:class Point{ public: Point( ) : xval(2), yval(2){printf("%d,%d/n", xval, yval);} void SetXval(int i原创 2010-11-18 22:04:00 · 1914 阅读 · 0 评论 -
【转】华为员工必选题:做奋斗者,还是劳动者?
原文地址:http://www.infzm.com/content/53863#copy今天看的一篇文章。崇尚“狼性文化”的华为试图一直让员工保持着奔跑的姿势。 (CFP/图)“奋斗者”与“劳动者”,若老板要你在这两个“标签”中选一个,你会怎么办?25岁的周林最近就遇到了这个选择题。他所在的华为公司,这家被称为中国最神秘的通信制造企业,正在掀起一场轰轰烈烈的“奋斗者宣言”活动——员工们被要求提交一份申请,“自愿”成为“奋斗者”。不提交者,则自动划入普通“劳动者”之列。转载 2010-12-26 18:55:00 · 4391 阅读 · 7 评论 -
尽量以const,enum,inline代替#define——effective c++学习笔记
const:通俗的讲,就是一编译器代替预处理器。class的专属常量,且只有一份拷贝,需要在类内定义:static const int i = 0;这样不会提示出错。如果定义为static int i = 0 ;则编译器会提示:“错误:ISO C++ 不允许在类内初始化非常量静态成员 ”enum:typedef enum Type{ One, Two, Three,};Type T = One;对于上面的定义,One,Two,Thre原创 2010-11-03 22:54:00 · 2308 阅读 · 0 评论 -
每位开发人员都应铭记的10句编程谚语
ASP.NET开发者Kevin Pang 曾发表一篇博文《10 Programming Proverbs Every Developer Should Know》,文中列举了版主认为开发者应该铭记的10条编程谚语。《职场博客——伯乐在线》对本文进行了翻译,现把译文转载于此。全文如下:所谓谚语,就是用言简意赅、通俗易懂的方式传达人生箴言和普遍真理的话,它们能很好地帮助你处理生活和工作上的事情。也正因如此,我才整理了10句编程谚语,每位开发人员都应该铭记他们,武装自己。1. 无风不起浪转载 2010-11-01 20:22:00 · 1982 阅读 · 2 评论 -
是时候离开你的工作了吗?
你和你的工作从 酷壳 - CoolShell.cn 作者:陈皓有 69 人喜欢此条目源文:http://youtheuser.com/2010/10/04/you-and-your-job/,有人说下面的这个文章太过Crazy,有人说下面的这个文章是猎头的软文,你换工作换得越多,他们才能越挣钱。我的观点的,先别否定他的观点,试着去理解一下为什么他要这么说,你会发现还有一些道理的。然后,想一想,自己需要的是什么?一份工作?还是一份经历?还是不断的自我挑战?相信你会有知道该怎么去做的。当然,“离职”转载 2010-10-28 18:56:00 · 2087 阅读 · 5 评论 -
保持一颗好学之心
转自INFOQ:http://www.infoq.com/cn/minibooks/architect-oct-09, 初见这个题目,许多人可能会对自己相当满意:“我还是很好学的”。真的是这样吗?个人之见,有不少人其实并不像他们想象的那么好学,尤其是那些有了一定经验,在某些方面有些过人之处的“聪明”之人,随着技术水平和自信心的积累,往往丢失了好学之心,而他们自己却浑然不知。对此,去年I转载 2009-10-17 11:57:00 · 4044 阅读 · 0 评论 -
《重构是改革,重写是革命》读后感
原文:http://blog.csdn.net/wfrong/archive/2009/10/13/4664102.aspx比喻的比较恰当。目前我也在学习《重构》,并在工作中进行尝试。可以多交流。重构所要做的第一件事情,就是构造一个可靠的测试环境,对此深有体会。有了可靠的测试环境,就有了重构的一部分勇气。我们公司目前的情况和你介绍的差不多,每隔几年系统就要重写一下。我认为,不单代码需要原创 2009-10-13 21:16:00 · 2299 阅读 · 1 评论 -
使用 Watir 加速面向 Web 应用的自动化测试程序的开发
使用 Watir 加速面向 Web 应用的自动化测试程序的开发文档选项<trvalign="top"><img alt="" height="1" width="8"src="//www.ibm.com/i/c.gif"/><img alt="" wi转载 2009-09-19 14:17:00 · 2806 阅读 · 2 评论 -
几个实用的软件开发工具之——功能测试工具
5 flowtestFlowtest是我们公司前任总监开发的流程测试工具。基本的思路是,把每个网元作为一个单独的考察对象,而把其他和它交互网元用测试工具flowtest模拟出来。flowtest还可以实现流程模拟,模拟其他网元发送消息、接受消息。并且在flowtest中检测被测试网元的反应是否正确,如果不正确这打印出出错信息。测试流程使用脚本驱动,通过脚本来描述测试过程。并且,flowte原创 2009-09-18 22:11:00 · 5249 阅读 · 0 评论 -
几个实用的软件开发工具——总述
这里介绍几个适用的开发工具。在开发过程中适当的软件开发工具,可以提高软件开发效率,提高软件开发质量。下面介绍的软件分为一下几类:代码编辑工具,代码检测工具,版本管理工具,程序性能分析工具,功能测试工具,系统构建工具。《 代码编辑工具 》《版本管理工具 》《 代码检测工具 》《性能优化工具 》《功能测试工具》原创 2009-09-18 21:08:00 · 1681 阅读 · 1 评论 -
几个实用的软件开发工具之——代码编辑工具
1 代码编辑工具1.1 source insightSource insight 是一款非常优秀的代码编辑软件,支持创建工程(同时支持网络创建),语法着色,词语联想,它的代码搜索功能非常强大,非常适合阅读代码。下图是Source insight的全视图:左边为变量和参数列表:右边为工程文件列表:右下角为函数调用树:左下角为原创 2009-09-18 22:32:00 · 17353 阅读 · 2 评论 -
几个实用的软件开发工具之——版本管理工具
2 版本管理工具介绍两个基于界面的CVS工具。如果不习惯使用命令,可以使用客户端来使用CVS。2.1 wincvs一款开源的cvs客户端。视图如下:登陆界面:登陆后可以创建新库,导入,导出模块:也可以通过浏览文件,单击右键导入或导出模块:2.2 eclipse cvs插件如果你使用的代码编辑器是原创 2009-09-18 22:21:00 · 8897 阅读 · 0 评论 -
几个实用的软件开发工具之——性能优化工具
4性能优化工具4.1 gprofgprof是GNU profiler工具。可以显示程序运行的“flat profile”,包括每个函数的调用次数,每个函数消耗的处理器时间。也可以显示“调用图”,包括函数的调用关系,每个函数调用花费了多少时间。还可以显示“注释的源代码”,是程序源代码的一个复本,标记有程序中每行代码的执行次数。 原理:在编译或链接源程序的时候在编译器的命令行参数中原创 2009-09-18 22:14:00 · 4394 阅读 · 0 评论 -
几个实用的软件开发工具之——代码检测工具
3代码检测工具介绍几个动态和静态代码检测工具,可以帮助发现代码BUG。3.1 MEMWATCHMEMWATCH 由 Johan Lindh 编写,是一个开放源代码 C 语言内存错误检测工具,您可以自己下载它(请参阅本文后面部分的 参考资料)。只要在代码中添加一个头文件并在 gcc 语句中定义了 MEMWATCH 之后,您就可以跟踪程序中的内存泄漏和错误了。MEMWATCH 支持 ANS原创 2009-09-18 22:13:00 · 11773 阅读 · 2 评论 -
如何穿越团队协作的五重障碍
文/Tathagat Varma 译/顾全 自古以来,那些地位尊崇的理念、宗旨和经验,和长盛不衰的经济、社会和情感的价值,都是由共同工作于团队中的人们创造的。就算某些艺术、哲学和科学领域的非凡成就,看上去是由那些单打独斗的卓越个人所作,我仍怀疑他们也一样有其他人助一臂之力,这些人无私奉献而寂寂无名(也许在幕后),都是作为团队而共同工作在一起。从大国混战、社会动荡、政治反抗、建立帝国转载 2009-09-10 19:01:00 · 1585 阅读 · 0 评论 -
李开复在创新工场发布会上的发言
2009年9月7日,北京-今天,刚刚辞去谷歌全球副总裁、大中华区职务总裁的李开复博士在北京举办新闻发布会,宣布他将在北京创办旨在帮助中国青年成功创业的"创新工场"(www.innovation-works.com),开启自己人生的新篇章。以下创新工场董事长兼首席执行官李开复的发言全文: 非常感谢各位出席今天的发布会。 大家上周肯定已经听到了我离职的消息。网上的说法很转载 2009-09-07 22:16:00 · 1311 阅读 · 1 评论 -
21世纪最需要的7种人才—— 李开复给中国学生的第七封信
我们都知道21世纪最有价值的是人才,是什么人才呢,就是我今天要演讲的题目。我想我这个演讲有一个很大的假设就是21世纪需要的人才与20世纪、19世纪有着很大的差别,因为21世纪有几个很重大的革命发生。在21世纪我们更多的工作是靠我们脑力的创造,是靠平等的竞争,已经没有国界的差别,世界被铲为平地,任何一个国家的人都可以和另外一个国家的人合作或者竞争,而他们都可以接触到、使用到、共享到同样的转载 2009-09-06 08:43:00 · 1521 阅读 · 1 评论 -
jBPM4.1新特性和中文用户手册下载
原文:http://www.blogjava.net/kaysurf168/archive/2009/09/10/294523.html 9月1号,jBPM4发布了4.1版本,jBPM4.1的新特性如下: 新内容:Start节点支持form工作日历可定制化改进了tomcat的安装以及许多配置选项 扩展了持续集成的范围,降低执行时转载 2009-09-19 15:19:00 · 1263 阅读 · 0 评论 -
推荐一个提高效率的工具:Google桌面
介绍一个提高效率的工具,Google 桌面。“使用 Google 桌面搜索计算机如同使用 Google 搜索网络一样方便。这是一款款桌面搜索应用程序,能够对电子邮件、文件、音乐、照片、聊天记录、Gmail、浏览过的网页等等进行全文搜索。Google 桌面可以对计算机进行搜索,从而让您能够轻松地找到所需的信息,而不必手动整理文件、电子邮件和书签。”摘自Google 桌面官方的描述。在网上原创 2009-09-22 21:27:00 · 4249 阅读 · 0 评论 -
重构——构筑测试体系
1 构筑测试体系如果你想进行重构,首要前提就是要拥有一个可靠的测试环境。“编写优良的测试程序,可以极大的提高我的编程速度,即使不进行重构也是如此。”1.1 自我测试代码(Self-testing Code)的价值“Class应该包含他们自己的测试代码。”“每个Class都有一个测试函数,并用它测试自己这个C原创 2009-10-09 18:04:00 · 2027 阅读 · 0 评论 -
【转】最受欢迎中国技术博客评选(PB50)结果公布
国外有博客评选榜单,记得之前也有人提议国内也做一下类似的评选。这不,ZDNET搞了一个:PoPblogger50(PB50) 评选是中国技术博客受网友关注度的一个风向标。该评选由ZDNet等国内主流技术社区共同举办。PB 50评选跟踪的博客主要来自软件、网络、安全、存储、服务器、企业管理信息化等6大技术领域。有独立博客,也有来自BSP的博客。PB 50数据每个2个月更新转载 2009-10-09 21:45:00 · 1889 阅读 · 0 评论 -
【转】浅谈测试驱动开发TDD技术
测试驱动开发(TDD)是极限编程的重要特点,它以不断的测试推动代码的开发,既简化了代码,又保证了软件质量。本文从开发人员使用的角度,介绍了 TDD 优势、原理、过程、原则、测试技术、Tips 等方面。背景一个高效的软件开发过程对软件开发人员来说是至关重要的,决定着开发是痛苦的挣扎,还是不断进步的喜悦。国人对软件蓝领的不屑,对繁琐冗长的传统开发过程的不耐,使大多数开发转载 2009-10-09 21:12:00 · 1840 阅读 · 0 评论