刚写了个东东,欢迎大家提提意见.(文字)(200分)

  • 主题发起人 主题发起人 田伯光
  • 开始时间 开始时间
热闹:)
我不得不说几句:
1、分层这个东西的来源
分层首先来源于西方软件工程的进展,以及分布/发布的需求。
另外,分层也是一种模块化手段,是纵切的一种扩展。
2、分层的好处
在软件工程很成熟的情况下,分层起到非常好的分解任务的作用。
另外,西方的需求分析很到位,所以其需求更改情况更少,所以分层对他们来说几乎没有什么副作用。
3、分层的坏处
分层的坏处在于增加软件的广度复杂度,如果需求分析不到位,经常更改,则分层明显要增加成本和复杂度。
分层在小项目中的滥用,也是要避免的。
4、分层的替代方案
分层仅仅是众多抽象方法的一种,完全可以用其他各种替代方法达到相同的目标,比如模块化(呵呵,听起来挺土?)等。
楼上谈到 O/R Mapping 了,呵呵,这个东西是几乎所有分层中最为成熟的层了。
请参见:
http://www.macrobject.com/en/dobject/index.htm
http://www.macrobject.com/cn/dobject/index.htm
 
To kidneyball兄,
我肯定不会有意见,我开这个贴子就是为了向大家学习的,大家都可以畅所欲言。因为今天有些事。来不及仔细推敲你的回贴,只匆匆留下了这个贴子,请大家都见谅。
To chinaplate兄,
也许你也有你的目标和直灼,我也非常欣赏,不过其实我现在发现目前的软件中,复制和粘贴的问题远远超过了其他方面的问题,也正在起草我的下一篇文章“讨伐复制粘贴”,也可以再一起探讨。
To dreamfly1024兄,
也非常感谢你的参与,我有空也会细细你的O/R Mapping工具,其实我发现,对于模块化虽然有些土,但是我认为对它的应用在当前的很多项目中更加适合应用,而且模块化也是面向对象的一种方式。
来不及一一回复,回来再与大家细细交流,望大家见谅。
 
to 田伯光
首先说说万能药,这个只是谈论修辞提到,指出 kidneyball 中文有待提高。我上文已经很明确的做了说明。顺便问一句,不知道田先生可看过这部电影?软件开发中为什么称为silver bullet么?说不说没关系,只是题外话而已。
“第二,谈谈,为什么会提出这个题目?”
这个话题由你提出,让我们看前因后果,我不说什么了。不过你举的例子,我在第三条里面会引用一下。
“第三,谈谈"类是用来表达概念的"”
“我不是完全同意这个概念,这得看情况而定,这同样是个度的概念。”
你这里说的度是“对象粒度”还是其他意思?如果是这个意思,那么分歧很明显了。我认为,这个是采用oo设计的根本出发点,而不是以度作为根本出发点,所以,也就不是“为了架构”。“同样的问题对于你"为什么用类来表达概念的?"”,很简单,是由object oriented本身告诉我们的,这个是根本。高内聚,低偶合是oo设计的质量标准,而构架是问题领域的解决方案。所以你说的“从总体看,如果达不到这个目标,我认为任何的方法,包括你所指的"类是用来表达概念的",都一文不值”这个话,逻辑是错误的。因为你的前提是说需要“增加代码复用,可以增加开发效率和软件质量,同时增加软件的可维护性可扩展性”。就如你第二个条目的例子,只能说明这个开发人员没掌握好开发技能,而不能说是oo本身的问题。
“第四,谈谈什么是复用。”
oo既然是提倡interface复用,而interface就是定义了行为,显然,这个复用是指结构上的复用,而非代码上的复用。所以,我说oo的strategy是不如gp的policy+traits的。再看看designed pattern 里面 strategy 的说法,做个小小的推论,就是说把功能划分成interface。
“第五,谈谈你所指的设计。”
我对构架的定义:对某个领域提供的一个解决方法。如orm、spring、structs等等。就用orm做例子吧,反正上面的帖子提出来了。那么完成orm类库,就是我指的设计了。同样,完成我上面一直说的graph,同样是设计。显然,编码就是设计中的一部分,而且类的划分,类提供的方法,类的交互,类的使用,就是设计的重点了。这里我不区分类和interface。这样的方式,不可避免的包含了迭代。我觉得这种东西是没有必要指出来,结果 kidneyball 先生就说我不提因果了。
“第六,再谈回三层”
知道我指的设计了,同时上面的帖子我也说了,三层二层就是对象粒度的划分而已。既然采用了oo,就得用oo的方式开发。“单层也是三层的一种形式”,Martin Fowler的这个说法也就很勉强了,相当的没有意思。
“最后,谈谈interface & C++”
从类的设计上来说,interface 和 abstract class没有区别,我以为。“用类来表达概念”就是一个abstract class。再看看我上面提到的c++的时候,没有谈到oo;谈oo也没有谈c++。只是从oo来说,c++,java,c#没有大的差别。我提c++,全是指的gp。
 
to kinedyball
我以为应该先劝你多看看中国文学。暗箭是指讽刺。这个是中国文学作品里面到很常见的词语,你理解错了。你举的暗箭,都不是。比如你说的“是因为我脑筋实在太慢转不过来,要笨人去适应高人是很有难度的,因此想麻烦高人委屈一下迁就下笨人。”,这个就是暗箭。因为这不是你的本意。同样,“可能这个问题要留待jhwh兄下次一不小心看到了我这篇回贴时再作解答了。”这个一不小心,又是一个暗箭。如果你真的认为我是“一不小心”,那么你就不会特意吧这个词加上了。
好了,笨人高人就不说了,这个“一不小心”还真得说一下,免得让人误会不是。“一不小心又看到了其他人的回帖”,这个是原话,“又”字相当的明显指明,我是先看到了田伯光先生的回贴,没有回。因为当时我对这个帖子并不在意,随便说说罢了。而田先生的回贴颇有怨气,我也觉得话过了,也就没有回。东翻西翻,却看到你的回贴,就回了。我写的这个“一不小心”就这样来的。我推测,在你看来,我是在意这个帖子的,所以就讽刺了一下。但是与事实不符。再往下看,也有几个地方小小的讽刺了一下,而我的意思并不是你说的那样,所以我说了:“回贴很放了一些暗箭,然而方向都错了,毫无意义”。再次劝你看看中国的文学,了解一下中国的文化。当然,对那样无头无尾的回贴,任何人有怨气是难免的,那是我的不对。这里道歉一下。声明:这里没有任何讽刺的意思。同时,对于先生这篇回贴上的明枪暗箭,我就不说什么了。
回复你的暗箭:
“暗箭一:”
“前面其实还有一截:“看看引用的两句话,第一。。。。”,“第一句的万能药与软件有什么关系,第二句是病句,但是我们都能明白它的含义,就是因为语言的内涵、外延和语境。””
看来你是把“看看引用的两句话”当作主语了。这个句式是欧化句式,是以后面为主,五四的白话文用这样的句式很多,杂文用得多些,小说用得少些,而古文是不这样说的。同样,现代文学作品这样的句子少,因为现代文学几乎都是小说了。多看看白话文的作品,很多意思的东西,也能了解历史,了解中文的发展,一举多得。
“暗箭二:”
“改为‘你觉得思维跳跃,是技术上的差距造成的,而不是因果关系没写明白。’”
原话不变,仍然是这个看法,不是讽刺。这也是我说真话伤人的原因--没有人喜欢听这种话。那么你回想一下最开始你对软件设计的看法,对比一下现在的看法。开始你能接受现在的看法吗?你后面提到的“但看到jhwh兄热心地为mcd一书写了大段评论”,那我不是在评论mcd,而是在说用gp怎样进行设计,该怎样考虑,以及gp设计达到的现状。显然,你没有看明白我说的。没办法,我只有认为“你觉得思维跳跃,是技术上的差距造成的,而不是因果关系没写明白”。
“暗箭三:”
“从“有什么直接关系呢”(我的原话)到“怎么没有关系?”(jhwh兄的话)。两句相减,差为“直接”。”
再次强调,“类就是表达概念”,而分层只是粒度大小的另一个说法。上面我一直在强调这根本出发点。所以“同时2.“表达层,逻辑层和数据层是三个不同概念”,所以3.“任何应用程序一定要分成三层”。”这两个推论根本就是臆造的。为什么不好好看看我的观点呢?直接的关系就在这里体现的。
“最小......说到底,就是主观的经验(*不是我的看法*)。于是jhwh兄实际的推理是:”
对,就是经验,没有任何捷径。andrei,mcd的作者说,要到35岁才能成为好的构架师。我对这个话嗤之以鼻过,但是现在我觉得他说的他自己。对于你的推论:
1.“类是用来表达概念的”,
2.“概念的划分是要靠经验的”,
3.“懂设计的人知道怎样的类是粒度最小,什么时候设计什么粒度的类”,
4.“我是懂设计的人”
我毫不犹豫的回答:是!对于第四点,做个说明,相对于andrei这样的大师,我是只能看到他的脚印。这样的大师,本来也就那么几十来个。我的懂,是不能和这样的大师相提并论的。
5.“我觉得任何时候都要分开表达层,逻辑层与数据层”,
6.“因此任何应用程序一定要分成三层”
这两个推论是错误的,已经说明了多次了,不再说明。

下面就说不同意见了。
1、 “我上面帖子说的意思,是指我不想重新做这那些已经做过的事情。不是你说的这个意思。”
不管项目复杂度大小,看看orm的例子就知道了。如果采用orm,很多sql是不用做了,不管怎样该库,动动配置文件就好了。两种情况下,你是采用orm呢,还是自己写这些sql?即使你的类封装了sql。
2. “从你看 modern c++ design的说明来看,你没明白什么是gp。”
又回到老问题:是技术上的差距造成的。你的文字表明了你对gp的看法,你当然认为你对gp懂了。那么你就用你懂的gp对已有的gp库进行重新设计,然后看看差异,再看看你设计的方式和讲gp的书的意思是不是一样,然后你就明白了你倒是懂没懂。对了,“OO之神如果认为对于一介凡夫的看法毋需举证反驳,只要说一声“你有这样的看法,看来你没明白其他语言为什么在GP出来那么久一直不引入GP的原因。””这个话,说明你还没有明白oo与gp的差别。当然,也不排除你大显本事,故意这样说。顺便说说我对oo的态度:oo也就那样了,搞明白了的东西没有必要大肆关注。也算是给我说的“其实看它们也就那么一回事了”做个注脚。
3.“里面的smart pointer,visitor,multimethods等等......”
4.“这个书除了前面的具体技术外,通篇讲的是怎样进行设计,居然你认为是没有讲设计?”
两者意思相近且关联,一起说了。不知道为什么,你不提我说的:“退一步来说,不是构架把”这个话,然后又把“构架”这个词提出来。看来不提出来对你有利。这不是科学的态度。请看看我上面对构架的看法。不同意没有关系,因为这里不是讨论这个话题。但是有一点我很奇怪,就是先生对“系统详细设计,程序设计的技巧在讨论之列”感到奇怪。没有具体代码,就像楼主提到的user的例子,谁能说出好坏呢?空对空。而且语言都有局限,很可能需要采用某种技巧才能达到需要的结果,不讨论技巧,怎么能知道这样的设计可以通过呢?我记得敏捷还是rup里面提到,代码就是设计。当然,和你提倡的相对比,他们可能完全错了,设计根本可以不要代码的!(这就是讽刺。)
5. "这就是我们技术上的差距。我能够用统一的方式进行,而你们认为这些是各不相关的"
对,就是你没有明白“类就是表达概念”。没其他可说的。
6. “‘先进的思维都是在c++里面,java,c#都是拾人牙慧,而且还差得远’,这就是我的认为。因为你我考虑的层面是不一样的,所以我觉得没有对话平台。”, 赞成。
7. “好了,这下明白了gp是先进的了吧”。
好了,关系到对语言的看法了。首先需要搞清楚这个先进的意义。这个先进大概意思是指语言能赋予的表达能力的大小,方便等等特征。比如相对结构化,oo显然要先进。这方面,c++ 的gp明显比oo先进。至于你同意不同意,没有任何关系。java的二进制模型是确定的,而且是中间代码;c++只是源代码层面是确定的,而且是直接的机器码,c++想做到java的方式当然很不容易。但是,这个和先进无关的。你看看Bjarne的c++设计与演化这个书,再看看当时历史条件的计算机环境,你就知道c++为什么不设计java的这些东西--不是没想到,而是再三权衡的结果。看看java,c#从c++里面学到多少东西吧。同时,我也指出,为什么对java c#的反感,就是它们因为针对c++的宣传以及使用人员的言论。
8. “多看看其他类型的语言,诸如c++, lisp,prolog,而不是一味的抱着oo,这样会对你的思维有着大的提高。”
不说什么。
最后谈谈“类就是表达概念”这个话。这个话见于Andrew Koenig & Barbara Moo夫妇的 ruminations on c++。不是这本书支持我的论点,而是我在里面学会了他们的观点,并且从中受益。虽然可以直接看gp,不过明白了oo再看gp,就会少很多困惑。这就是我说搞明白了oo再看gp的缘故。
 
本来不想说,看到这么热闹也就进来说两句,调节一下气氛。
[田伯光]、[jhwh]、[kidneyball]都吃得太饱了!!
 
本来不想说,看到这么热闹也就进来说两句。
1、技术本身并无“好”与“不好”之分;
2、用什么技术要看具体情况而定。
 
...10月19日是鲁迅先生逝世70周年,看来最近流行复古,一篇讨论项目架构的文章,连“先生”,“五四白话文”都用上了。无怪乎余不知所以然哉...
嗯,笨人如我,只恨爹娘生晚了几年,离“架构大师”的入门标准35岁还少那么两年。中文修为也比国学大师jhwh先生天生少了两年以上,中途又少不更事,跑到国外去虚度了几年光阴,如今中文能力,只能仰大师的项背,不可赊望同日而语了。但我想正因如此,希望大师能了解笨人的苦衷,我至今为止,都认为本贴是一个讨论学术的贴子,不是五四时期的文坛论战。因此还是作最后一点努力,希望大师能迁就一下笨人。用结构清晰,逻辑明确的风格来行文。
似乎大师很有些误会了我的意思,也从另一个侧面证明了“别人对你的所说所做会作出各种各样稀奇古怪的解释,不要忽视人们的这种能力”这句话的正确性。在此澄清一下。首先对于笨人高人,这是我的本意。可能jhwh兄身在其中有点局中人不知庐山真面目的感觉了,希望其他观众能做个见证。至少在我的贴子里,我从来没有怀疑过jhwh兄在OO方面的水平。一开始,我怀疑过jhwh兄的表达能力,但后来证实是错误的,我也做了道歉。虽然鲁迅先生说过“我向来不惮以最坏的恶意推测中国人”,但我对此不以为然。因此在讨论学术的文字中,如果不是大师后来点醒:“有暗箭!”,我只会笨笨地尝试去理解。
现在实际的情况是,我认为jhwh兄是高人,jhwh兄认为我辈是“你会...看来你不明白...”的愚人。偏偏高人往往在说了这么一句后,就没了下文。那么愚人只好把把自己的一些愚见提出来,希望通过高人的驳斥,来理解高人的想法。然而,高人回答之后,答案中又再次夹杂着好几个“你会...看来你不明白...”。那么愚人继续询问,如此而已。这是我以上文章的行文基调和主旨。如果大师之前是怀着堤防暗箭的戒心来看我的文字。不妨以平常心再看一下,我想交流会更顺畅一点。
关于“一不小心”,我没有奢望过jhwh兄在百忙之中对本贴会很在意。因为很明显,我每次回贴,系统会告诉向谁谁谁发了通知,表中没有jhwh兄的大名。可见jhwh兄的回贴,的确是不小心看到了。我在那个句子里用“不小心”,不是要强调jhwh兄在意,而是想强调,在论坛发贴子不是面对面说话。面对面说话可以卖关子:“你这么说,说明你不懂” “哦?愿闻其详。” “如此这般如此这般”。但在论坛上,jhwh兄说前不说后,我看不明白,就要等到下次jhwh兄“不小心”逛进来的时候才能解答了。所以我希望jhwh兄能对一些明显我会不明白的地方(例如说“你会。。。看来你不明白。。。”的地方)能直接了当地给出说明而已。
关于暗箭一,这样的句子,前面是重点还是后面是重点,不是主要问题。问题是jhwh兄在上上篇回贴中质疑我的中文标点能力,说的是我无视句子中的逗号而把“第一。。。”部分看作疑问语气。我强调前面还有一截,是想说明这个“第一。。。”部分不是独立句子。我自然相信中文标点能力如jhwh兄,当然知道既然是一个分句,那个位置就不能用问号,而无论分句本身的语气。所以我把它列为暗箭之一。对于jhwh兄提出关于中文的建议,我会虚心接受,别说我在国外虚度了几年光阴,就算一直在国内,中华上下五千年的文化,其是尽愚人碌碌一生所能学完?而jhwh兄无论在编程技术与国学修为上都能傲视同群,也正是我把jhwh兄视为心目中的神的原因了。
关于暗箭二,“那么你回想一下最开始你对软件设计的看法,对比一下现在的看法。开始你能接受现在的看法吗?”。暂时来说我还保持着我最开始的看法,因为jhwh兄的看法我虽然知道是真理,但没搞懂前因后果。我工作还要做,项目还要交。“类是用来表达概念”这个八字口诀虽然是万事万物的起源,但它不是金庸笔下的内功心法,不是学会之后就能“身体自然而然产生一道反弹之力”的东西。从心法到应用,还有许多实际的招数,在我没理顺思路之前,为了混口饭吃,也只有屈就不太正确但实用的错误看法了。
jhwh兄:“显然,你没有看明白我说的。”;某愚人:“jhwh兄说的因果关系我没搞懂”。先有鸡?先有蛋?鸡不知道,蛋也不知道,由它去吧。。。。
“而分层只是粒度大小的另一个说法”,大神提出来的概念自然是真理。但请首先证明“分层”=“面向对象”再把面向对象的“粒度”概念套上去,愚人如我会更明白一些。当然,我会说出“请证明分层等同于面向对象”这种蠢话,是因为我没有搞懂分层的真正含义,祥情我已在上篇贴子中说了,jhwh兄也许百忙之中没有留意。如果再回贴时jhwh兄可以少打几个字,不用专门指出了。
关于暗箭三,“为什么不好好看看我的观点呢?”,我一直以为,jhwh兄的观点就是:
认为还有“做三层不能为三层而三层”这样的东西存在,很显然的的没有理解oo的根本
那么,理解了oo的根本的jhwh兄,自然觉得“做三层不能为三层而三层”是不存在的,存在的是其反面“任何应用都应该做成三层”。如果这个推理环节有误,请jhwh兄指出,顺便最好能用逻辑清晰简明扼要的一句话,说说jhwh兄的实际观点是什么?如果这句话里没有反问,没有多重否定,没有“如果。。。看来还不明白。。。”一类的句式,就更好了。当然,如果jhwh兄说,“我的主要观点是类是用来表达概念的”,愚人我也只能懵懵地装作恍然大悟状了。
“做个说明,相对于andrei这样的大师,我是只能看到他的脚印。这样的大师,本来也就那么几十来个。我的懂,是不能和这样的大师相提并论的。”。Andrei其实也没什么了不起,他把他的经验写出来,编成一本书。我这种愚人看了,居然以为自己懂了。相反jhwh大师,说了一个观点。我这种愚人看了,对答了几千字的文章,到现在也不知道这个观点到底是什么。你说谁强。
关于jhwh兄的不同意见:
1. 不知道跟我原来的问题有什么直接关系。
2. ”这个话,说明你还没有明白oo与gp的差别。”。虽然你是大神,我不得不说我对这种句式每次都作同样的回答有点烦了。可不可以做个Event?
On Event 说明你还没明白XXXdo
提问“请问大神对XXX怎样理解”
不过从“搞明白了的东西没有必要大肆关注。”,看来高手对GP还是有点不明不白的。与愚人我是难兄难弟,五十步笑百步耳。
3. "你就知道c++为什么不设计java的这些东西--不是没想到,而是再三权衡的结果。"
嗯,c++不做别人的东西是再三权衡。别人不用c++的gp是因为它先进。。。好象有点懂了。
最后谈谈“类就是表达概念”这个话。虽然我是愚人,但我对这句话的正确性没有疑问。疑问的是大神屡屡用这句话来论证一切的逻辑关系。
===============================
因天时已晚,次日上班,未作复查。有病句错字请告知,自当速速更正。
 
哈哈哈,还是黄耀彰说得好,确实我是吃得太饱了。这下准备收手了。不过对于充满无穷信心的kidneyball,完全是没吃饱。收手前,这最后一贴,用来对于那样阴阳怪气的人,“是以为刺”一下。
我上面称先生,不过是因为我不习惯称“兄”道“弟”,直接写论坛名字也没有礼貌,其他又没有好的称呼,就这样称呼了,没其他意思。现在怎么办?没办法,只有换个称呼了,阁下如何?于是阁下就拿“先生”这个称呼,合同“复古”、“无怪乎余不知所以然哉...”这样的话刺了我一句。呵呵,真的觉得阁下很有意思,短短几句话,就能够让人痛快的笑了,很有点“一笑君王便着绯”的感觉。嘘......
拿笨人与高人对照着来说,大家都知道不过是讽刺讽刺,挤兑一下人而已。说一次大家笑笑也就是了。然而在我上面个帖子做了解释,道了歉。阁下还来玩这样的手段,确实显示出了笨人像――过了时效的东西,还拿来显,只是让人多笑一下而已。
“一开始,我怀疑过jhwh兄的表达能力,但后来证实是错误的,我也做了道歉。”
很好,把你道歉的话找出来,在什么地方,让大家也看看。只是不知道大富翁能不能修改帖子。如果可用,也好赶快改个道歉的话出来,骄傲的指给大家看。
关于“一不小心”,你完全可以按照你的理解慢慢回味,慢慢鄙视我,谁让你不懂中文呢?唉,真是没法子可想。

”Andrei其实也没什么了不起,他把他的经验写出来,编成一本书。我这种愚人看了,居然以为自己懂了。”
对于gp,我只是指出使用gp设计需要注意的东西,以及policy ,traits的意义、关联,而且也是andrei明确提出的――为了表达我惶恐的诚意,我立即指出这个“支持我观点”的书名: modern c++ design。
一面说看不懂我写的,另一面又觉得andrei没什么了不起,除了让人佩服,我还能说什么呢?阁下看不懂我写的,却能看懂andrei写的,确实让人惊奇。不过想道阁下是在“海外几年”的,于是欣然的明白了:阁下完全看懂了andrei写的英文,至于内容?不说也罢,根本不在阁下考虑范围内,阁下只需要认为“gp是好东西”就足够了。前面既然知道阁下不懂中文,所以我也觉得这样的话虽然听着那么奇怪,但是还是能理解的。至于阁下认为“与愚人我是难兄难弟,五十步笑百步耳”,千万不要这样谦虚,因为我说的gp和阁下说的gp是不一样的。c++的gp内容还没有完全确定,这次0x标准大会还会增加新内容。以阁下之见识,完全还可用笑标准委员会。毕竟对于如阁下这样,看懂了andrei的英文,而且知道template就是模版,然后就懂gp的人,是完全又资格笑别人的。不过这让我想起论坛上民科的典型样子:该民科头一扭,说,我为什么要相信科学,要怀疑一切!然后就用他自己的理论来推翻了整个科学大厦,建立起了另一座大厦。所以,阁下千万不要谦虚,你完全可以用你的大厦笑天下所有人......耳,耳耳,耳耳耳......永远的耳下去。
对于“类就是表达概念”这个事,“虽然希望渺茫,但我还是希望jhwh可以告诉我这本支持你论点的书的书名,作者,出版社”。不知道为什么渺茫,是认为我不会指出书名,作者?那么就是小人之心度君子了之腹;如果是认为我指出这个书的名字和作者渺茫,那么就是表明,阁下认为这句话不过就是我臆造,拿牛人当大旗而已。于是正义的旗帜就由阁下掌控了,“大师”、“神”,“大神”这样的明枪,可用毫无顾忌的加在我身上了。但是,对于“希望渺茫”这个话,明白中文的人,都能够确定它是后一个意思。我指出前一个意思,也就是让阁下少了跳梁的机会。当然,以阁下“在海外几年”的思维,能把这样的话翻出其他花样也不是没有可能。当然,那样故意大显本领的情形,确实超出我的估计。但是很可惜,我把书、人都指出来了,而且还指出,我是接受了大师的说法。我还指出,根据这个说法,衍生出了三层二层只是粒度的划分。显然阁下没懂这个话,屡屡用来指责我“任何应用程序一定要分成三层”――其实这个话是阁下自己造的靶子,然后再自己打。臆造出来的事物,是没有多大效果的,而且副作用就是容易让自己陷入自己造的幻境。让人撕破幻境后,还原到事实面前,也就很容易抓狂。阁下还是把这些话静静的收回去的好,如何?
“最后谈谈“类就是表达概念”这个话。虽然我是愚人,但我对这句话的正确性没有疑问。疑问的是大神屡屡用这句话来论证一切的逻辑关系”,还是请阁下仔细看ruminations on c++,看看大师是怎样设计小工具的。并且看看大师说的,尽量避免使用指针的意思。虽然书里面说oo的时候,到处都是指针,不过由于是真的大师,我想,阁下在做民科前,还是得搔搔头,皱皱眉,犹豫一下的。毕竟阁下不是完全的民科。
显然,这里我老是指出我说的不过是大师说的话,而以前的帖子基本没有明确指出,不过是我的小小的私心:显示自己懂了。但是世界就这样,不管我怎样说这是“差距”问题,在不懂的人的狂放刀枪下,我很快就招架不住,也就只有抬出后面的大人物来,堵堵他的口。结果显然是我大败亏输了。还是我朋友说得对,对这样的事情,千万不要理会,否则错的就是你。信乎。
 
既然你觉得兄字不好,那我也不好再用。跟用"阁下",又怕涉嫌拾人牙慧,失去先进性。于是决定直呼你了。
既然你已经作了总结陈词,一席话真情流露,痛快淋漓。如果我对其中一些问题不理不睬,顾左右而言他,就显得假小人了。我承认我在之前的贴子的确用了些激将的手法,而且比较明显,我本来就没打算刻意隐藏。唯一与你不同的地方,是你很早就点破了会放暗箭,而我则没有点明我在激将。因为我想一来明眼人都看得出,二来激将之法,要点就在于不点破,当年美猴王火眼金睛一眼就看穿了八戒的激将法,但八戒只是不点破,最终还是还是成功激得猴王出山。至于我为什么要用激,下文我会说明。在这里 开头我只是想坦白一下,下文的确是我心中所想,无半句虚言。至于你信不信(又或者有没有看到本贴)就不是我所能左右的事了。

你似乎有点气晕菜了。关于笨人和高人,从头到尾都不是讽刺。你从一开始就说“因为技术上的差距,我们没有对话的平台”。那么技术高的人,当然是叫高人了。而因为技术差距无法理解高人的话的人称为笨人,合情合理。我承认,自始至终我心底并不认为我跟你的差距到了不能对话的地步。但一来这与正在讨论的技术问题无关,二来以一个笨人身份正好可以理直气壮询问高人:“你到底在说什么?”,有助于我论述的展开。可以说,这是你硬塞给我尚方宝剑,我欣然笑纳而已。如果你觉得高人笨人看着不舒服,我完全可以改。你你看是把我升级一下变成高人好呢?还是你降级一下咱们一起做笨人?不过,如果我改的时候,也请你同时把贴子里关于“层次”,“差距”什么的说法删掉就是了。
而至于“大神”的称呼,的确是有讽刺的味道。这个说法是我在10-22日的贴子提出来的。因为以下几点:
1. 在10-21的贴子中,你一开始抓住那个逗号还是问号的问题,抓住我在上面贴子说起“我当时身在国外”的短短七个字,质疑我的中文能力,令我觉得这场对话陷于无聊。而关于逗号问号,我在后文已经一再论证:“无法用分句所带的逗号判断分句的语气”。
你也许要说,你之前不是在说我的表达能力吗?
请你回头看看之前我关于你表达能力的质疑,在当时我不知道你是故意不说的时候,那句话的确有三种理解,我也详细列出来了。而后来事实证明,我开始以为是第三种,实际是第二种,可见并不是无的放矢。而关于暗喻,则纯属误会,我后来用了很多笔墨解释过,以你的句式和标点,在那个位置的确可以认为你是在反问"万能药"和"软件"没有关系。虽然我也奇怪你为什么要问,但我自己一直强调要有问必答,正面回答问题,所以就直接说了这里是暗喻。个人觉得没有讽刺成分。
2. 在10-20, 你的贴子中,写:
“这里讨论三层,确切的说,就是指的对象的设计和使用。”,
而我在随后的贴中,明确地说了:
“我觉得我和楼主所说的三层与面向对象是不同的概念。不是在扣字眼,因为这是楼主与你根本分歧所在。”
并作了简单论证。而在10-21的贴子里,你好象没有看到一样(又或者真的没看到),未作任何说明就:
“三层二层,本质是oo的粒度划分。”,
在未证明分层等同于OO的前提下,直接就把OO的粒度概念套了上去。因此我觉得已经失去了讨论的逻辑基础。而这种不经证明就直接使用命题来论证的人,我从中学开始就习惯性地称之为“大神”
3. 在10-21的贴子,你提到“这就是我的认为。因为你我考虑的层面是不一样的,所以我觉得没有对话平台。”。我是凡人,在没有令我信服之前就说出比我层面要高”的人,我也只能称为“神”了。不然凭什么要我承认你层次比我高?在你看来,可能觉得“你不承认就算,但不要叫什么大神,听着恶心”。但在我看来:“主观上的层次不是问题重点,我不想在这个问题上纠缠。我叫你一声大神好了。如果你不想听,自然会跟我说,到时候我们再谈层次问题。”。我觉得这不是讽刺,而处理这种情况的一种对策。而后来你没有明确表示不满,也就是说为了保持语言中层次上的地位而接受“大神”的称号。你情我愿。

对于“很好,把你道歉的话找出来,在什么地方,让大家也看看。”
粘贴如下:
来自:kidneyball, 时间:2006-10-22 14:42:40, ID:3602937
“在此,我收回之前关于你兄表达方式的所有说话并表示抱歉。说到底不是你兄一时疏忽没有关照过我的理解水平,也不是我的理解能力极其低下。其实是你兄的暗箭水平高超,有意为之而且完全达到了目的。自然在面对客户进行需求分析时能做到收放自如。”
贴子可以编辑,但我没有编辑过。之前关于你表达方式的评论,是因你一个问句引起(也是我卷进这场讨论的原因)。
我指出你说话不够直接了当,可能没参与过实际需求调查。因为我当时觉得你是想把他的意思传达给我们听,但却问了一句令人有三种理解的话,害得我必须分三种情况讨论,白打了三分之二的字。后来你说明有放暗箭的嗜好后,我收回关于你表达能力与需求调查能力的评价并道歉。
如果现在你说你并不是放暗箭,而是真的无心问了句有三种理解的话。那么我在此收回我之前的道歉,并继续质疑你的表达能力与需求分析能力。

对于“一不小心”。你不信我也没办法。只能加重点语气再强调一下,在我说“一不小心”那天,你就算说“我很关注这个贴子”,我也会质疑你这句话的真实性。而且会说“如果你关注,请不要说了一些有因无果惹人疑问的问题后,隔了三天再来回贴。”
不过我觉得你现在晕菜得厉害,把自己之前说的东西都忘了不少,我说的也许也未必记得,因此我把原文中提到“一不小心”的两处贴过来,你慢慢品味:
1. “结果是,jhwh兄认为我没有尝试去理解这句话的“内涵,外延和语境”,而没有考虑到我可能尝试过去理解,但与jhwh兄的理解不同。可能这个问题要留待jhwh兄下次一不小心看到了我这篇回贴时再作解答了。”
2. “我看的书叫Modern C++ Design, jhwh兄所说的书叫C++ Modern Design,可能不是同一本。这就不是内涵,外延和语境可以解决的问题了。只能盼望jhwh兄下次不小心看到回贴时告知了。”

关于“modern c++ design”这本书,你似乎有点晕菜了。你一开始提出这本书时,不是在说gp, 你是叫楼主去看mcd学strategy。在我看来,一开始你认为楼主根本不懂什么叫strategy,然后又叫他去看一本不是他主攻语言,没有正面讲述strategy的书,简直是牛头不对马嘴。按照你后来的论述也知道,你自己也认为此书是依赖gp的,gp的机制与纯oo有很大不同。而且你认为象我这种刚能看懂的半桶水是不中用的,必须要看透全书,分析类库,再用其做过实际项目后才叫做入了门。那么楼主如果真的按你的指点做了,他就等于重新去学习C语言到一个中高手的层次,仅仅是为了和你讨论一个问题。你觉得这样对一个已经大学毕业正在用其他语言实际工作的人现实吗?因此,在你第一次提到这本书名的时候,我主观上认为你除了在显示你自己已经读过这本书,造成一个技术差距的假象外,没有任何其他作用。
关于gp,我只是说我“能看懂语法,知道它在干什么”而已,离懂还差很远。因此我在gp方面没有嘲笑过你,没有嘲笑过某某标准协会,甚至连讽刺也不敢。但至少,我有自信我的知识及得上行内平均水平(对于自信高手的你,我自信一下平均水平应该无伤大雅吧),而我并没有看出mcd的内容与架构设计和概念设计有很直接的相关性,这是实话实说而已。
我唯一用过“讽刺”语气的,是关于你关于他对c++先进性的看法。因为我从来不相信有一种绝对先进的语言,就算有,我也不敢相信正好就是我学会的那一种。莫非当初你选择C++,是因为在未选择之前,就对泛型的先进性与OO的不足有着深厚的了解?“所以我一直很讨厌java c#针对c++来说事”,从这句可以看出你在语言先进性问题上遇到的烦恼。但你一边讨厌着别人针对c++说事,一边抱着c++针对别人说事。这不是一边讨厌着别人,一边做着同样的事吗?

关于书名,作者,出版社。我这样说是其实是想讽刺你在上次说modern c++ design的时候说成c++ modern design. 害我写关于mcd那一段之前专门问了一次作者出版社,写的时候不安得很:如果不是同一本书岂不白写。
关于希望渺茫。我是在讽刺我至今为止所问的每一个关键性问题,都没有得到正面回答。例如你说的multiprogramming的相关资料;例如OO与分层的相等性;例如所有你说"你。。。,说明你不了解。。。”的地方;例如最最根本的,你的主要观点是什么?你否认了我之前认为的“所有程序都必须三层”的论点后,还没有指明你的实际论点。
而且,其实说到底,我的希望的确是落空了。你的原话:
“同样,粒度问题和‘类就是表达概念’是一致的。这句话是根本,其他的是衍生物。好了,如果还没明白,我确实说不出更多了,不然就不会有牛人写厚厚的一本书来阐述了。”
我说过很多很多次,在“类是表达概念”这个问题上,我们没有分歧。分歧在于“衍生物”部分。我从“在类是表达概念”中看到了“做项目不能为三层而三层”。而你,开始我以为你看到了“任何项目必须三层”,但后来你说不是,那么,我真的不知道,你到底看到了什么。而你列出的这本书,应该支持你看到的那个结论,而不是“类是表达概念”这件事本身。
而且你叫我看看那本书。。。。“看看大师是怎样设计小工具的。并且看看大师说的,尽量避免使用指针的意思。虽然书里面说oo的时候,到处都是指针”。。。。你确定这个跟架构设计和概念设计有直接关系吗?怎么我觉得越来越往程序设计方面去了?莫非又要通读全书,默念“类是用来表达概念”八字真言,去感悟其中奥妙?(啊呀。。。又讽刺了。。。sorry, sorry) 不过,这本书我还是会找来看的,毕竟开卷有益。
“也就只有抬出后面的大人物来,堵堵他的口。”,要抬大人物,请不要说看了某大人物一本书后你自己的理解,而应该引用大人物原话,。有吗?哪里?书名?作者?出版社?另外提醒下,引用时请用双引号,在场的人都知道你是中文标点大师,剽窃的责任不好推卸喔。。。。(啊呀。。。又讽刺了。。。真是习惯了。。。sorry, sorry)

这点与主线无关,不过你有些言论真是实在。。。不知道怎么说好。放着这么个靶子不打手痒。
“该民科头一扭,说,我为什么要相信科学,要怀疑一切!”
你是在说我吗?我没有这样的气势。我只是说:“我为什么要相信你,我有点怀疑你”而已。是你自己觉得自己代表着科学,象征着一切啊,大神.

====================================================================
最后,回应你对我的看法,我也谈谈对你的看法。
你朋友说得的确很对。“对这样的事情,千万不要理会,否则错的就是你”。你的朋友了解你,有些事情从一开始你的态度和论点就注定了你不可能是对的。
你的系列贴子,开始于对人不对事的一句话,终结于对人不对事的一篇文章。有一点我到现在都没搞明白,你说你开始不在意这个贴子,我是相信的(原因已在上文说明)。但一开始时,为什么对楼主或者他观点如此反感,在原文的留言里说了“楼主根本不懂设计。(无下文)”,还要跑到这里来再说一次。而我只不过回了个对楼主观点半赞成半反对的中性贴子,也被卷进来了。在你埋怨我如何自信过度,唇枪舌战的时候,请记得:是你把我卷进去的,应该由你来想办法说服我,或者说服其他人支持你,或者创造一个各舒己见的平台。而不是强调技术差距要我无条件地服从你。
对于每一个论点,我都详细的说出自己的看法,与你讨论。我自始至终没有强迫你接受我的观点,我的论调一直是:如果你要我接受你的东西,请说出有理有据的论述。就算无理,也没所谓,也请说点有关系的论据,让我长长见识。 而你的回应只是“你。。。看来你不明白。。。”,或者列出一本不相干的书(所谓不相干,就是该书无论标题,目录,前言,后记,都与问题不直接相关。而且在正文中无法找到一句、一段或一篇对问题正面描述的说话),然后说“按我对这本书的理解,应如何如何”。
如果你把这些贴子看成一场与我的论战的话(不是我的看法),问题出在硬是要把“做项目不能为三层而三层”这句话拿来批判。如你最后所说,到最后说不过要找权威书籍助阵的时候,我至少能找出三四本书可以直接引用作者原话来支持我的观点。不过你至今没有找出一本实际与问题相关的书来,只是一直在说看了某本书后“我的理解怎么怎么样”,所以我也懒得翻书了。当然你若要说Fowler小儿牵强附会,哪及我Andrei半分英才,那我无话可说,但观众自有判断。于此点,我只能私自解释为你没有广泛涉猎过(一般意义上的)关于企业级应用架构设计的书籍,又或者看的时候怀着很重的偏见去看。(个人观点,观众请自行判断)
另外一点没明白就是你开始以这样的方式回贴的原因。我也想过你是出于知识分子的正义感,看到错误的观点忍不住要说两句。又或者如你最后所说要摆显一下,但一来应该不会这样对人不对事地直接说“楼主根本不懂设计”;二来,说了之后至少会简单展开一下说明理由。
在你埋怨我如何如何讽刺你时,请明白这样一个事实:如果没我在不停刺激你,你说完那一句就算了,没人会知道你后来的一大堆论点。因此,我暂时只能推断,你回贴仅仅是为了打压别人,虽然我不知道在一个技术论坛上以这种方式抬高自己有什么好处。(如果你实际上不是这样想的,那么对不起。毕竟我是凡人,逃不开“对别人的所说所做会作出各种稀奇古怪的解释”这句话)所以说到底我对在贴子中使用任何讽刺手段没有任何负罪感,因为我觉得激将法是为了保证你继续回贴,阐明我的疑点。前提是,关于技术的部分,我说的都是真心话,而且也不会对自己过份抬高;对于你的疑问部分,是合乎(一般意义上的)逻辑的。不过,对于你来说,我不屈从于你的判断,没有无条件全盘接受你观点,已经是“充满无穷信心的kidneyball"了。
说点题外话,你喜欢用“你会问这样的问题,说明你不懂XXX(XXX是与原问题关系不大的东西)”而又不做解释。跟我初中时一个同学很象,如果不是知道他不是做编程,我简直有点怀疑你是他。他也很喜欢用这样的句子,因为他觉得一个问题直接回答太没创意,喜欢搞得玄些。例如:
他:“这个方程很容易,傻的都会。”
我:“那你说这方程怎么算?”
他:“你不懂,是因为你还没搞明白九九乘法表”
我:“我知道九九乘法表,但跟这个有什么关系?”
他:“你觉得你知道而已,这种东西很难跟你说的。你自己再去看看书吧”
然后他就满足地走了,这是他的寻找自信二连招。但相处久了,我就学乖了:打破沙煲问到底。“你是怎样理解九九表的?”“我看过书了,它们的关系到底是怎样?”。。。为了一直装玄,他就不得不一直想办法想些东西出来套下去,因为他知道一但正面回答了一个问题,就好象递归程序遇到了终结条件,我就可以开始层层往回套,于是他骑虎难下,很是好玩。所以,如果你觉得我胡缠蛮搞,在此表示抱歉,但这是应对这种句式的唯一方法,实不得已。而且也给你个建议,以后遇到这种对手,在头两贴他开始一直刨根问底的时候,就应该停止这种把戏,正面回答了。不然递归层数越来越多,越来越搞不清,最后说不下去的总是你自己。
最后说说一些非技术方面令我搞不懂的地方。
例如之前所说的,你说“我很反感java,c#针对c++说事”,但偏偏又拿着c++针对java和c#说事,却不怕别人反感。可能你会说“别人反感关我什么事。”,那么,你反感又关别人什么事,为什么要拿出来说?而且,从你最后对我的看法,我很怀疑你之前是象这次这样,自己上门找骂,到最后自己又忘了,还觉得别人针对你。
又例如,我只不过随口提起“当时身在国外”,你何必如此耿耿于怀?在以后每个贴子里都要强调一次。至少在我来讲,我提起国外是迫不得已,因为除此无法解释我没看过MCD中文版,而policy是否译为“策略”在当时可能是个问题。之后我从来没有表现过任何在此方面的优越感(实际上也没有)。而你一开始拿个标点开始质疑我中文能力,然后我解释了那是个分句;你又跟我说那是个所谓“五四文学欧式白话长句”,然后我又再次强调长不长句没关系,那里只要是个分句就不可能是问号。于是你也不认个错,就每贴子没来由的“看来你习惯了外语,要看看中文了”。说的时候面不红吗?
你对于我在其他地方的小小讽刺如此大动肝火,对我在你标点能力上的明褒实贬却视而不见,还大加利用。于此点,我的看法是,无论是之前的技术差距,还是这里的中文差距,你就是要造成这样一种形势:“我说了你也不懂,所以我就不用说了”。至于实际上为什么不肯说,不知道,真的不知道。怕我不接受?你技术这么好还怕这个?
负面看法说了,正面的也有,C++语言能力估计应该不错,比我强。
==============================================================
最后,简单概括一下我目前所了解的整个推理脉络。这真的就是至今为止我的所见所想,没有讽刺成分。如果各位观众觉得我看漏眼或者理解错误,欢迎指正。如果能帮忙找出jhwh的主要论点就更加好了。
jhwh, 背景:主攻C++语言,据说对gp编程有很高造诣;对Java与C#社区某些人看轻C++非常反感,同时又认为C++是当前最
先进的语言。
主要论点:未明
引理:
1.“不能为三层而三层”这种东西不存在。 (但又不等同于“任何项目都要用三层”)
2. 分层就是面向对象里的粒度。
3. modern c++ design一书是gp的经典著作,也是理解strategy与架构设计,概念设计的宝典
论据:
1. 类是用来表达概念的
2. 在面向对象中应该坚持最小粒度
由论据1,2,显然可证引理1,2,3. (此句为全部推理过程,认为不显然的人显然没明白OO之根本,因此没有对话的平台)
由引理1,2,3及论据1,2, 显然可证主要论点。(理由同上)
由主要论点及推理过程,可得推论:
1. 楼主不懂设计
2. kidneyball自信过度,但又不明白OO之根本,技术不过关,没有对话的平台。
============================================================
好了,总结到此为止。除非有人找出了你的主要论点,我可能会继续对这个论点本身作点议论。如果你不计较技术上的差距,能够跨平台与我谈论一些其他技术上的问题,我深感荣幸并且欢迎。但在此问题上我不再向你发贴。
(2006年10月24日重新编辑)
 
后退
顶部