怎样处理遗留代码

介绍

想象一下,你未来的工作是处理一堆遗留代码【注1】,它几经易手。你会发现好的或糟糕的代码、不同的代码风格、或多或少没有被单元测试覆盖到。到处都能嗅到代码的味道,或许还有严重影响效率、灵活性、易测试等等严重问题。然后,你心里可能产生了大量的优化代码的想法!好吧……不要碰它们

为什么要保留现状?

请考虑以下因素:

怎么办?

这是一个开放式的问题,取决于你面对的实际代码情况。我给出对我管用的方法:

...

自由职业者如何增加自律

从1999年年底到2012年年中,我一直在家工作。

1)参考视频http://www.youtube.com/watch?v=KGg1567fzTY(大概匿名发布的),看看吧。(译者注:这个视频已经不存在了)

2)如果你有家庭或伙伴,仅仅因为你在家,并不意味着“你刚才在洗衣服?”。和家人一起制定规则,你在工作的时候不能被打扰。如果你“出现在”办公室,占用了家里的地方,那也是你的选择。紧急情况是可接受的打扰。

3)腾出一间办公室。厨房的桌子不是大的地方。一间空房、花园里的办公室,仅仅需要你专注的地方。不要把办公室放在厨房,你需要一个能锁住的屋子。

4)锻炼。这是十分重要的,虽然容易但不要偷懒。如果你6点起床工作,那么9点时要去健身房,做些事情。确保和你一起工作的人“明白”这是你的安排,保持这是安排,走出房间去干点什么。不要买健身器材就待在屋里。放空大脑,保持精力,出去看看周围的风景。不喜欢健身房吗?那就跑步、游泳或者我的最爱,骑单车(它有助于使大脑休息,还可以走10英里回来就可以解决一个难题)。

5)养条狗:)这是我最正确的决定。出去走走,见见人,保持身体充满活力。哦,她对解决技术问题非常在行。听起来很疯狂,但是和她聊聊问题,对我有好处(当我和同事讨论问题时使我不至于那么蠢)。

6)吃好。你有时间好好做饭,对,试着好好做一顿。

7)番茄时间管理法。有人喜欢有人不喜欢。(我不是粉丝)我喜欢coffitivity(注1).随意一些,这是比较舒服的管理系统。

8)Skype。如果你和一组人协同工作,用Skype联系展开工作。

9)社交化。找到当地兴趣小组,参加聚会,并融入其中。你很可能做不到,只是你一直低着头,3个月后你还没认识任何人,因为工作。加入俱乐部,做些事情,给你一个晚上不用工作的理由。

10)每月团队日。每月聚在一起搞个黑客马拉松(注2),喝喝酒,加强团队凝聚力。

11)使用trello(注3),真正使用它。这里有个复杂的例子,但是你可以和同事一起建立工作流。不要担心打乱你的步骤,重新开始。最重要的是,“每一个人”都要参与进来。不要成为唯一使用项目工具的人,你会失败的。

12)如果一天工作了16个小时,你要明白你已经做了两天的工作。去博物馆逛逛,好好睡一觉。早点结束,去骑骑马(看第1条)

13)开心。一个人工作的时候让自己舒服些,试6个月,看看感觉如何。如果不喜欢,那就换种状态。

14)我或许提到过……锻炼。每天出去锻炼,不要找借口。

15)需求管理。做起来比较痛苦,但是客户总是试着隐藏一些。如果你不知道他们到底想要什么的时候,尽量避免固定价格。大部分情况不是这样,如果是这样,你就要改变他们的想法。你的固定价格合同必须在需求条款里包括变动,使得有变动时,他们知道会发生什么。你将来会需要它的。

16)如果客户拿本地销售税讨价还价……那就算了。想想将来你们要就每个功能讨价还价,那该是多么痛苦呀。

17)按里程碑支付

还有,必须遛狗:)

...

我真的需要一种编程语言吗?

老板想让我在产品里增加按季节打折的功能,做为一个灰常棒的黑客,我选择C来写必要的逻辑:

 if (price > 100) { return 10; } else { return 5; } 

但是等一下,我们的IT部门不会批准这种低级的东东。它需要用VB.NET实现……

...