重构之美之一利用多态重构为带参方法
我在阅读遗留代码时,经常发现存在这样一种情形。在一个类中存在两个方法,它们做了相似的工作,区别仅在于方法内部某些对象的类型。例如: public class WorkSheet{
private void fillHeader() {
...
我在阅读遗留代码时,经常发现存在这样一种情形。在一个类中存在两个方法,它们做了相似的工作,区别仅在于方法内部某些对象的类型。例如: public class WorkSheet{
private void fillHeader() {
...
在开发过程中,当你发现代码可以Copy-paste时,就意味着代码出现了重复。这是一种典型的反模式。William J.Brown等在著作AntiPatterns-Refactoring Software,Architecture, and Projects in Crisis(即《反模式&m...
关于如何面试程序员,网上有很多优秀文章。这是其中一篇:《如何在面试中发现优秀程序员》。该文着重讲电话面试或亲自面试。一些公司的面试过程演变成90天的试用期。
关于面试过程我没有多少新内容补充。...
这是一篇提供有效、实用编程方法的程序箴言,作者Susan Harkins是世界最大的技术期刊出版社的主编,具有多年的实践经验;在这篇文章里她重申“最佳编码实践原则”的重要性;虽然文中主要讨论VB开发相关的...
分页程序一般由两条SQL组成:SELECT COUNT(*) FROM ... WHERE ....
SELECT ... FROM ... WHERE LIMIT ......
InfoQ:小马,请首先做一下自我介绍。 小马:大家好,我叫赵泽欣,在淘宝的花名是小马,隶属于淘宝UED部门,很荣幸能够接受InfoQ的采访,谢谢。 InfoQ:小马,现在Web开发相关的类库特别多,请问淘宝在选择Web框架做开发的...
这篇文章算是我一个小小的总结,大家看了不要见笑。 大学的时候上的是“网络工程”专业,关于编程的课程只有C语言,winform基础,java语言基础。教我们C语言的老师特别严厉,所以C语言那本基础教程...
一个合格的程序员,应该重视Bug,并在实际项目开发过程中,有效地规避这些Bug,当然也要分情况。有些Bug,在有些情况下建议不要做太严格的规避,否则的话,可能会对整个项目的开发进程产生严重的阻碍。个人的开发实践证明...
模式名称:生成器模式 1.问题描述 生活场景:你玩过种地、种花等类似的游戏吗?这是最近很流行的游戏哟!下面就是从种花游戏中剪切的四个花盆(盆景),很漂亮吧!你将不同的种子放入花盆,一段时间后你就可以看到各种美...
一、场景 在SQL Server 2005中,有一个表TestDatetime,其中Dates这个字段的数据类型是datetime,如果你看到表的记录如下图所示,你最先想到的是什么呢?
(图1:数据列表)你看到这些数据,是不是觉得这样的设计既浪费了存储...
一、数据表的设计 在数据库中,我们通过如右图所示的具有主子关系的两个表存储AuditLog相关信息。我们将“事务”作为我们进行追踪的单位,不过这里的讲的“事务”更多地指业务处理事务...
一、元素分组:<fieldset>、<legend>示例: 1 <fieldset>
2 <legend>健康信息:</legend>
3 <form>
4 <label>身高:<input type="text" /></label>
5 <label>体重:<input type="text"...
我是从《MySQL Admin Cookbook》一书中看到这个问题的,有一定的隐蔽性,遂记之。友情提示:本文测试所用的MySQL版本是5.1.44-community,其它版本未测试,结果可能有差异。 先看看InnoDB中的情况:CREATE TABLE enu...
概述使用Qt做过UI的一定对QHBoxLayout, QVBoxLayout, 和QGridLayout这三个最重要也最常使用的layout managers非常熟悉。那么在QML中又是如何控制和管理UI布局的呢?那么我们这篇文章就为大家介绍这些基础知识。首...
前几天新浪微博发生了一起大的系统故障,很多搞技术的朋友都比较关心,其中的原因不会超出James Hamilton在On Designing and Deploying Internet-Scale Service概括的那几个范围,James第一条经验“Design f...
借助开放课件是学习网页设计最简单且最便宜的方式之一。你可以通过开放课程免费得到一些全球顶级高校的指导。 诸如加州大学伯克利分校、华盛顿大学和麻省理工学院等著名学府都提供网页设计和开发课程。...
Jean Bezivin, Nantes大学的名誉教授,在他最新的博客中,回忆了软件工程过去四十年的历史,因为他相信颠覆的时刻即将到来。Jean认为软件工程已经发生了三次巨变:第一次巨变在1968年10月的Garmisch NATO会议上已经...
近日,Google的一位工程师Sans Serif发布了一篇博文非常清楚的描述了Android系统架构,中国移动通信研究院院长黄晓庆在新浪微博上推荐了该文,并认为文中对Android的介绍很好,您可以看一下Google工程师眼中的Andro...
前端是个很特殊,带点矛盾的职位。所以我们的“前端攻城师”也大都是些矛盾体。矛盾在感性和理性之间,矛盾在文艺和三俗之间,矛盾在放任和严谨之间。作为所谓的“攻城师”,攻的不仅是&ldquo...
每个编程人员都需要至少掌握三种编程语言。当然,这只是我的一家之言。 这是我经过多年养成的观点,也许是偏见,但我能够根据一个人所喜欢的编程语言来快速的了解一个程序员。当我读简历时,我会尝试使用我的这...
每次当我开始做一个新项目时我都非常的兴奋。即使是在做了20年的软件开发后,我仍然感觉心里像揣了一个小兔子似的怦怦直跳。这将是我们共同的旅程。我深信我们正在绘制一份充满乐趣、富有挑战、内容丰富的路线图...
这个帖子原本是在C++奋斗乐园论坛讨论的,后来觉得有必要和更多朋友分享下,所以就在这里也贴出来了,希望大家一起补充。因为我个人学的是C/C++的,所以JAVA等程序语言的书籍我就不讨论了。这里讨论的主要是C/C++的...
昨天我做了一些事情使我的编程效率提高了一倍。简单,容易,但使我的生活发生了巨大的变化。 你们中可能有些人已经知道我是怎么做的。对于其他的人,这听起来有些疯狂。 我不持续工作。 或者,我把定时器...
前一篇:Hacker传说之不能说的秘密(1) 说明1:对点击“推荐“的朋友表示感谢,博客园有没有可以看到是谁推荐的功能呢? 说明2:对所有的评论朋友表示感谢,即使是批评意见也很有价值。 说明3:是这个...
一点说明:之所以叫不能说的秘密,并非因为保守,而是因为告诉一般人,他非但理解不了,还有可能要取笑你。所以有自尊的Hacker往往只传自己信得过的人,以免自讨没趣。于是很多东西就逐渐成为了不能说的秘密。所以这个H...