锁定老帖子 主题:重构的几大重要特点
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-11
呵呵 我发现tw闭嘴的速度很快的
每当要面临硬碰硬的问题时 嘴巴就闭上了 闭嘴之前的宣言说来说去就是一些正确的废话: xx不是万能的。 然后就是扮资本家: 不给钱别想从我嘴里撬出一个字,没钱就一边凉快去吧; 如果我说漏了,那也是对你的恩赐。 这话听起来很耳熟。。。想起来了:半仙都爱这么说。 我不是你的客户或者潜在客户,我也不见得比你缺钱花,所以不要以为以钱做准入门槛就能抬高你的地位。记住你的使命:为tw赚吆喝。所以你应该抓住机会展示tw强大的一面,而不是就地找个台阶往下爬。 我就顺着你的话说下去:重构,面向对象技术,不针对并行程序设计 首先请问什么是你定义的面向对象技术。如果我用c写了一大坨面向过程的应用,是不是重构就不能用了?那是不是意味着,面向过程的程序只能推倒重写而无法重构?并且,tw无法接下c的项目?甚至一部份c++也不行吧,因为c++完全可以写出c的风格。 其次,这句话的逻辑似乎有问题。并行和面向对象难道是对立的吗?这两个概念甚至不是一个范畴的吧。却被列举在一个句子里作为正反两面。 我只是举了一个并发的例子。但那个缓存的问题呢?哦,这个不是面向对象,所以对tw来说这是个奇点。 我还可以举出更多不是并发的例子-并且是面向对象的。 比如,我需要抽象出一个接口,这个接口需要隐藏所有IPC的细节。 而这个IPC包括进程间,内核间,内核和进程间,不同物理机器之间。 现在的情况是所有的通讯接口是分散在各处的。怎样重构才能使得它们能以统一的api出现? 从技术上来说这不存在任何问题。但是这里需要一些小技巧来隐藏实现-但这小技巧绝对不只是search/replace all那么简单。 tw可以完全不懂各种IPC而做出重构? 可能tw不会接这笔生意,因为这是用面向过程的语言来写的。 那么tw有更好的选择。在再版重构的时候,明确说明所谓的面向对象-在tw看来-是哪些范畴,明确指出哪些语言的哪些特性才是tw有能力解决的。 面向对象和重构是两个不错的概念,但是tw对这两个概念独到的见解和解释却有悖于common sense。tw的理念--或者说tw所宣传的理念--是:common sense是错的,只有开化了的tw才能带着大能的光辉来解救无知的人们--同时索取报酬。 |
|
返回顶楼 | |
发表时间:2010-04-11
seen
你看过<重构>这本书吗?实际工作中用过重构这种技术吗? |
|
返回顶楼 | |
发表时间:2010-04-12
最后修改:2010-04-12
我认为在重构方面,gigix是国内的TOP X。 起码作为一个译者,人家读书就翻来覆去读了多少遍了,而且经验丰富。
记得很久以前我也发过一个帖子,大意也是 先写单元测试,再重构。不过后来gigix一针见血的评价了我: IDE很容易自动做完的工作,反而我费那么大劲。 前些天看他的第二版序,我觉得更是说明了那个道理: 重构需要扎实的基本功。把步骤都记牢了,必定不会出错。而且只有难于理解(难于写单元测试)的程序,才需要重构。 如果你很容易的写出个单元测试,说明这个程序完全没想象的那么糟糕么。 老抛不要灰心啊。我现在已经脱离了IDE,捧着书每天人工重构呢。 一起加油啊。 |
|
返回顶楼 | |
发表时间:2010-04-12
sg552 写道 我认为在重构方面,gigix是国内的TOP X。 起码作为一个译者,人家读书就翻来覆去读了多少遍了,而且经验丰富。
记得很久以前我也发过一个帖子,大意也是 先写单元测试,再重构。不过后来gigix一针见血的评价了我: IDE很容易自动做完的工作,反而我费那么大劲。 前些天看他的第二版序,我觉得更是说明了那个道理: 重构需要扎实的基本功。把步骤都记牢了,必定不会出错。而且只有难于理解(难于写单元测试)的程序,才需要重构。 如果你很容易的写出个单元测试,说明这个程序完全没想象的那么糟糕么。 老抛不要灰心啊。我现在已经脱离了IDE,捧着书每天人工重构呢。 一起加油啊。 重构的活这阵子没有了。。。。 再看一遍重构。。。 以前看的脑子里有个概念 但没到把所有的步骤背下来。 |
|
返回顶楼 | |
发表时间:2010-04-14
抛出异常的爱 写道 sg552 写道 我认为在重构方面,gigix是国内的TOP X。 起码作为一个译者,人家读书就翻来覆去读了多少遍了,而且经验丰富。
记得很久以前我也发过一个帖子,大意也是 先写单元测试,再重构。不过后来gigix一针见血的评价了我: IDE很容易自动做完的工作,反而我费那么大劲。 前些天看他的第二版序,我觉得更是说明了那个道理: 重构需要扎实的基本功。把步骤都记牢了,必定不会出错。而且只有难于理解(难于写单元测试)的程序,才需要重构。 如果你很容易的写出个单元测试,说明这个程序完全没想象的那么糟糕么。 老抛不要灰心啊。我现在已经脱离了IDE,捧着书每天人工重构呢。 一起加油啊。 重构的活这阵子没有了。。。。 再看一遍重构。。。 以前看的脑子里有个概念 但没到把所有的步骤背下来。 拳不离手,曲不离口 继续重构印度人的代码去了 ~~ |
|
返回顶楼 | |
发表时间:2010-04-14
突然想到 《编程之道》里面的一段话,很像是重构过程中的感觉。
"Technique?" said the programmer, turning from his terminal, "What I follow is the Tao -- beyond all technique. When I first began to program I would see before me the whole program in one mass. After three years I no longer saw this mass. Instead, I used subroutines. But now I see nothing. My whole being exists in a formless void. My senses are idle. My spirit, free to work without a plan, follows its own instinct. In short, my program writes itself. True, sometimes there are difficult problems. I see them coming, I slow down, I watch silently. Then I change a single line of code and the difficulties vanish like puffs of idle smoke. I then compile the program. I sit still and let the joy of the work fill my being. I close my eyes for a moment and then log off." “技巧?”,大师转过身说,“我所遵循的是道--它超乎所有的技巧。当我开始编程时我看到的是整个一大块的程序,三年后我看到的是子过程。现在我什么也看不到了。我的整个存在是没有任何形式的虚无。我感觉很悠闲,总之,事实上是我的程序自己在写,有时我看到一些问题,我看到它们,就停下来静静地观察它们,然后我改变了一行代码,难题就象一阵轻烟一样化为乌有。然后我编译程序。坐在那里享受工作的喜悦。闭了一会眼睛然后退出系统。 |
|
返回顶楼 | |