Loading

文章分类 -  百家争鸣

各种观点、意见、思想的大熔炉!
摘要:[原文链接]Colin走到我的办公室门口叫我去看他最新的研究成果。他拆解了他的显示器切换器(用来在两台PC之间切换显示器的设备),拆开的设备就摊放在他的桌子上。他用从RadioShack网站上淘来的部件重新组装了它,并用VB6开发了一套管理它的服务器和客户端程序,经过这样的改造,他实现当鼠移动到屏幕边缘时显示器就能自动切换的功能。Colin在做这个项目时获得了很大的乐趣,并且正在变成我们团队里最强大的程序员。这发生在Arduino创建之前一段时间,那时硬件Hacking的门槛还很高。VB6正在衰退,使用它的人被认为只能维护那些烂的LOB程序。从Co... 阅读全文
posted @ 2014-03-24 19:43 dai.sp 阅读(155) 评论(0) 推荐(0)
摘要:[原文链接]你经常读编程博客吗?你经常读软件杂志吗?你经常读一些跟程序员相关的书籍吗?请停一下,放下你的计算机读物,下周再去读。去找一本跟IT无关的书。你是否曾经有过一种对编程世界如洪水般涌现的新事物不知所措的感觉?那正是你应该找一本不同的书去读的时候。找一本你觉得有趣的,或你喜欢的作家写的书。很多人认为读这些小说、读这些专业领域外的书都是浪费时间,但事实不是这样的。这些书的作用是让你的大脑转变一种思维视角。它们的作用是扩展你的知识领域。它们的作用是在替你准备消化下一个计算机里的新事物。你会发现一些有趣的现象,你会惊奇的发现看似不相关的主题却有着出... 阅读全文
posted @ 2014-03-24 19:41 dai.sp 阅读(121) 评论(0) 推荐(0)
摘要:[原文链接]现在距离我首次决定要创建Buffer这个应用已经将近2年时间里,在此之前的一年半时间里我一直为前一个创业项目而忙碌,就在那时,我开始发现一些规律,一些在创业过程中能影响你的生活起起伏伏的规律。就在那个时期,我学到了一个最重要的事情:当快乐时我做事做的最好。这几乎能体现在各个方面。如果我快乐着,我编程时会更有工作效率,我能更好的解决用户的问题,我发现我还能更容易集中注意力。就我而言,我发现有几个非常好的习惯能让我保持持续不断的快乐的感觉。而且,每当我的情绪有低落时,这些习惯是使我能迅速恢复到之前快乐水平的灵丹妙药。下面就是我坚持不懈的6个习惯:1. 早起... 阅读全文
posted @ 2014-03-24 18:59 dai.sp 阅读(134) 评论(0) 推荐(0)
摘要:[原文链接]好的编程原则跟好的系统设计原则和技术实施原则有着密切的联系。下面的这些编程原则在过去的这些年里让我成为了一名优秀的程序员,我相信,这些原则对任何一个开发人员来说,都能让他的编程能力大幅度的提高,能让他开发出可维护性更强、缺陷更少的程序。* 我不要自我重复— 这也许是在编程开发这最最基本的一个信条,就是要告诉你不要出现重复的代码。我们很多的编程结构之所以存在,就是为了帮助我们消除重复(例如,循环语句,函数,类,等等)。一旦程序里开始有重复现象的出现(例如很长的表达式、一大堆的语句,但都是为了表达相同的概念),你就需要对代码进行一次新的提炼,抽象。http://en.wikipedia 阅读全文
posted @ 2014-03-24 18:39 dai.sp 阅读(131) 评论(0) 推荐(0)
摘要:[原文链接]别以为是那些软件开发定律,别以为是开发出那些特殊用途的软件,别以为是软件设计技术本身。只有一条真理决定了一个软件程序员的成功还是失败。由于坚持这个真理,一个资深的程序员能在一天的时间里学会一门新的编程语言,而由于不坚持这条真理,一个初级的程序员用十年时间也只能挣到一份糊口的钱、永远是来实现别人的设计、永远不够优秀而得不到晋升的机会。这条真理让你看清了差的程序员和好的程序员的不同之处,好的程序员和伟大的程序员的不同之处,伟大的程序员和能通过自己的技术创造出一个亿万美元价值的程序帝国的超级程序员的不同之处。不是什么复杂的道理,不是什么难懂的理论。不是具有什么天赋或“编程超能力“才能做到 阅读全文
posted @ 2014-03-24 18:38 dai.sp 阅读(96) 评论(0) 推荐(0)
摘要:[原文链接]我读了Kevin Pang 的一篇可能非常老但非常好的有趣文章:每个程序员都该知道的10大编程格言。Kevin给了我们10条按他的观点的每个程序员必须知道的编程格言。可以看出,这都是不错的格言,而下面是我自己最喜欢的编程格言。保持简单直白(Keep It Simple Stupid)不要做重复的事情(Don’t Repeat Yourself)能干的人解决问题。智慧的人绕开问题(A clever person solves a problem. A wise person avoids it) –Einstein沉默会被理解为赞同(Silence is construed as a 阅读全文
posted @ 2014-03-24 18:34 dai.sp 阅读(260) 评论(0) 推荐(0)
摘要:[原文链接]在SDTConf 2009论坛上,Corey Haines和我共同主持了一个叫做“最臭的臭弹”的研讨会。会议上,我们试图去寻找下面两个(不同的)问题的答案:作为一个经验丰富的开发人员,回顾往事,最臭的让你最受折磨的代码是什么样的?也就是说,请指出一种代码,如果你能根除掉这种很臭的代码,那么在你的程序中的大部分设计问题都会迎刃而解我们有如此多的不同的原则和指导来帮助我们去实现好的设计。对于一个新手来说,他应该从哪里开始?哪种代码风味(code smell)或原则,对于一个新手来说,可以最大程度的帮助他们做出好的设计(节省好几年去总结经验)?尽管字面上这两个问题很相似,但我认为这第二个 阅读全文
posted @ 2014-03-24 18:11 dai.sp 阅读(235) 评论(0) 推荐(0)
摘要:[原文链接] Steve Freeman 写了一篇 blog拥抱极限编程(Do do XP)来反驳我的这篇文章。我开始厌倦了和那些坚持认为Scrum离开了极限编程就不再有价值的人的无休止的论战。 Scrum 很好用 — 但前提是实施者必须从基础上理解它的价值所在和实施原则。 你应用Scrum所处的环境条件决定了你在实施过程中应该采取哪些措施。 比如,在教堂里实施Scrum和在软件开发中实施Scrum有着不同的一套实施策略。而这两种情况下的实施措施又和传统的Scrum有不同之处。极限编程的拥护者动不动就抱怨在软件工业中Scrum没有提供很好的开发原则。 但就目前极限编... 阅读全文
posted @ 2014-03-24 18:02 dai.sp 阅读(183) 评论(0) 推荐(0)
摘要:[原文链接] agile software development在文章远离极限编程(Don’t do XP)里, Tobias Mayer 建议人们不要去搞极限编程(XP)。 我和Tobias相知已久,我想他这个问题上错了。 我不知道他在跟谁争论,但他们的有些争论就是“嚼舌根”。我想如果他曾经试过一次XP,那他的言论会更有说服力。 XP并不是一个万能的解决方案,但它确实是一种方案,而且我们知道如何使用它。作为一个临时的XP支持者,我并不抱怨 “在软件工业中Scrum没有提供很好的开发原则”,我只抱怨这个产业。 如果我们能在这个产业里有效率的工作,那我们也就不会有... 阅读全文
posted @ 2014-03-24 18:01 dai.sp 阅读(175) 评论(0) 推荐(0)
摘要:[原文链接]“技术债务(technical debt)”这个词是由Ward Cunningham 发明的,用来描述为了在最后期限前实现某个项目任务而让开发团队做某种技术上的妥协。这里有两篇博客文章,Uncle Bob 和 Martin Fowler 分别在里面描述了几乎所有项目都可能会遇到的各种技术债务。在A Mess is not a Technical Debt这篇博客里, Uncle Bob 评论说,做出妥协是实现有最后期限目标的必要的手段。但是他区分妥协与否的方法只是纯粹从代码的粗心与否来考虑:编码混乱并不是一种债务。编码混乱就是编码混乱。技术债务的产生是由现实的工程约束造成的。这是有 阅读全文
posted @ 2014-03-24 17:56 dai.sp 阅读(226) 评论(0) 推荐(0)
摘要:[原文链接] 我遇到很多客户做过压力测试 – 有大规模的,也有小规模的 – 有用开源工具的,也有用商业软件的。 压力测试本身变得越来越容易,越来越可以支付的起——因为出现了很多很好用的压力测试工具。还有一些公司提供在线压力测试服务。尽管做压力测试越来越容易、越来越有效率、而能花很小的代价产生很大的压强,但是我的所有客户都遇到了同样一个问题:压力测试并不会报告是什么导致了问题。它只会报告这有了问题,例如:查询页面在并发50个用户使用时变慢下来,但它不会显示什么导致了变慢。捕获到的性能统计数据例如CPU和内存使用量只是强调了潜在的问题区域,但并不会指出实际的根源在应用程序的什么地方。标准的压力测. 阅读全文
posted @ 2014-03-24 17:50 dai.sp 阅读(412) 评论(0) 推荐(0)
摘要:[原文链接]我收集各式各样的至理名言。最近我一直在研究敏捷软件开发;有收获吗?下面就是能够指导敏捷软件开发团队的26条核心原则。用例一完全能够运行后再开发用例二。厨房里有一种说法正好可以印证这个问题:“做好一盘菜后你再做下一盘”. 对于软件开发来说一个最大的问题就是人们喜欢并行开发多个任务。因为不可避免的,我们设计的功能中总会有一部分会被放弃砍掉,如果提前开发,很可能做无用功。 一次只开发一个用例(或很少几个用例,这根据你的开发团队的大小而定); 让这个用例功能完整; 让相应的测试用例都能通过; 相应的文稳都补齐; 只有在当前的用例完全开发完成后,才做为一个整体提交到版本库,才进行下一个用例。 阅读全文
posted @ 2014-03-24 17:24 dai.sp 阅读(173) 评论(0) 推荐(0)
摘要:[原文链接] 本周在欧洲举行的TheServerSide Java研讨会上,ThoughtWorks的架构师和著名讲演人Neal Ford 指出那些只静止的依赖于一种专门的技术的人会在几年之内被淘汰出局。 他谈到了19世纪的马蹄铁匠,那时候干这种工作看起来是稳定而且有前景的职业,直到有一天科技进步(汽车的出现)导致了整个行业被淘汰。 我对Neal的这些话颇有感受。 当我还是大学教师、教授面向对象编程的时候,我有一个成年学生是个真正的C语言编程高手。 事实上,他的专长是使用Borland Turbo C 3.0。 当他很费力的去领悟C++和Smalltalk和这类语言后面所代表的含义时,他竟.. 阅读全文
posted @ 2014-03-24 17:21 dai.sp 阅读(135) 评论(0) 推荐(0)
摘要:[原文链接] 人类心理学研究中的一个基础支撑科目就是分析人的潜意识和意识。 弗洛伊德是最早的一位能够清楚的认定和描述我们的心理活动“领域”的人。 在他这著名的一生的早期,他就指出我们的意识里分“潜意识”,“前意识”,“意识”。 如 果我们想能清楚他们分别跟我们的思想、感觉、认知、判断和动机(这这些在我们每天的生活,职业生活中都是关键因素)有什么关联,我们可以把我们自己描述成 一个冰山。 冰山的尖端,唯一能从水面看到的一部分,可以当作是我们的的意识。 它是有逻辑、有组织的,我们可以控制它,但这部分很小。 这庞大的水下的部分是我们的意识不到的。 它们是无组织、无逻辑、无关联的,但它们取能决定我.. 阅读全文
posted @ 2014-03-24 17:18 dai.sp 阅读(169) 评论(0) 推荐(0)
摘要:[原文链接]烂程序员会说什么?谁是烂程序员? [ku6video id='892dBHzZyB_Qe7zm5XENPg..'] 阅读全文
posted @ 2014-03-24 17:07 dai.sp 阅读(93) 评论(0) 推荐(0)
摘要:[原文链接] 本文的作者Eliot Horowitz是MongoDB的创始人和技术总监。 在一个科技公司里,软件技术经理用在编程上的时间应该不低于总工作时间的30%。无论是管理一个团队,还是一个分部,还是整个公司,当技术经理用在编程上的时间低于30%时,他执行职责的能力就会发生严重退化。 我的这个断言可能跟那些我看到的想成为团队首领的软件程序员们期望的情况完全相反。每次晋升,程序员们都期待花在编码上的时间会大幅度减少,当从“leader”爬到“经理”职位时,就应该彻底脱离编码活动。而且,他们期望以一种“动口/眼不动手”的方式来保持对代码库的熟悉。再上级的领导就跟编码完全没关系了(如果有的话.. 阅读全文
posted @ 2014-03-24 11:08 dai.sp 阅读(116) 评论(0) 推荐(0)
摘要:[原文链接] 好长时间没好好写点东西了,前段时间由于项目的需要出差了一个多月,期间各种加班,每天晚上加班到十点,回到宾馆实现是没什么精力再写博客了。有时间能静下来写点东西总是很好的一件事,如果写技术方面的博客,不仅能给读者提供一些解决问题的线索,也能加深自己对技术点的理解,如果写的是自己对项目的感悟,也算是对自己所做的工作的总结。现在终于有时间写点东西了,感觉还是不错的。 今天这篇博客不是写关于具体技术的,而是我对程序员怎样学习和提高自己能力的一些感悟。我是今年7月初毕业的,离开学校后就直接进入之前实习的公司上班了。现在算来工作了也将近半年了,算上实习的时间,将近一年了。在这期间,参与了几.. 阅读全文
posted @ 2014-03-24 11:08 dai.sp 阅读(219) 评论(0) 推荐(0)
摘要:[原文链接] 一个故事 老张有一个林场,专门种植树木,待树木成材后销到城里做家具。林场里有不少杉树,长得都非常挺拔,偏偏不知怎的长了一棵歪脖子树,长得倒是郁郁葱葱,偏偏造型奇特,别的树都力争上油,可这棵歪脖子树不仅横着长,还长得颇为怪异。老张几次都想挖掉它当柴火烧,看它那怪异的造型又忍住了,心想等这批杉树成材,一起砍掉吧。 一到晚上夜深人静的时候,林场里就炸开了锅,杉树们极力取笑歪脖子树。“你知道作为一棵树,我们的终极目标就是成为有用之材吗,你看旁边那个,可以做梁柱,小歪脖子,你丫能干啥啊?”;"这个臭歪脖子树,抢了我们的养分和阳光,长成这样,完全是丢我们的脸,我呸!"。 阅读全文
posted @ 2014-03-24 11:08 dai.sp 阅读(123) 评论(0) 推荐(0)
摘要:本文的作者Robert C. Martin,也就是大名大名鼎鼎的“uncle bob”在我手里的是一本很薄的白皮书,14年前,它颠覆了整个软件世界。这本薄书就是:《Extreme Programming Explained》,副标题是:拥抱变化。作者是Kent Beck,出版于1999年。这本书不到200页,很小。字体印刷的很大,而且留白很多。撰写风格很随意,通俗易懂。章节很短。里面提出的概念很简单。这本书的思想犹如一次地震,而且震撼至今仍无减弱迹象。第十章,位于53页,陈列了12条软件开发实践指导,它让软件业陷入了大论战;并催生了一次革命,由此改变了我们软件开发过程的各个方面。这些实践方法是 阅读全文
posted @ 2014-03-23 22:16 dai.sp 阅读(212) 评论(0) 推荐(0)
摘要:通过正确的权衡来获得最便捷有效的故障排除及最快速可行的优化使一个程序变得更加容易进行调试和优化,需要内在的权衡。对源代码进行越多的优化,程序与初始代码看起来就更不相像。因此,对程序进行调试也更加困难,因为实际代码运行起来并不跟最初始的代码相一致。这篇文章描述了一种持续的权衡方法,可以在调试程序和使之... 阅读全文
posted @ 2014-03-23 16:32 dai.sp 阅读(492) 评论(0) 推荐(0)