给大家举个实际例子, 明早就要答复.有想法的快回贴:
简单说下公司的背景: 我来该公司3年半, 小老板已经换了3个了. 各小老板之间还有2 至6个月的gap, 处于无政府主义状态.
今天具体的问题:
下午跟大老板, project manager等开会. 要在一个项目中加feature. 具体的说就是在已有的report(pdf格式)上 多加几项内容. 听起来很简单吧? 仅仅就是多加几个 value, 太trivial 了. 简直都不象developer干的活儿. 老板望着我流露了一句:"你可能需要不止半天的时间吧?", 那言外之意就是如果我超过了一天时间, 就不正常了. 他让我下班前或明天一早给个estimate.
我回到座位上看了看现有的Project 的Code. 现有的Project是一小印花了几百小时写的, 另一小印 花了半小时review的, QA 还没有test 过.我想运行一下, 还没执行什么就throw exception, 然后我再debug找错. 到下班前还没运行通个一次. 最最可恨的是: 该 project
完全没有可维护性, 完全没有一点点可扩展性. 一个加杂在code中的Query有800多行,真monster query. 还有我还改的那个report, 每一个field的位置, 字体大小, 宽度, padding, 等等, 全部都是按pixel值 hard-coded. 一个function 2000多行几乎都是在设置这些pixel值
完全没有可维护性, 完全没有一点点可扩展性. 一个加杂在code中的Query有800多行,真monster query. 还有我还改的那个report, 每一个field的位置, 字体大小, 宽度, padding, 等等, 全部都是按pixel值 hard-coded. 一个function 2000多行几乎都是在设置这些pixel值
这次不管做不做refactor我都要一个星期时间, 而不是一天半天的. 但如果我refactor了. 今后再加field, 就不需要一个星期时间, 而真就只要只半天时间. 大家说这种情况要refactor吗?