|
阅读:2263回复:31
To:APH, mumu, 铁板, 关于好的结构
今晚和义明一起喝酒聊天,颇有感触
关于好的设计结构,mumu和铁板的结论相似,即能很好完成功能的设计就是好的设计,APH又有不同的观点:) 有个很好的比喻,如果建造一个茅草屋,你可以不划图纸,然后施工,但是,如果你建一个高楼,必需首先设计图纸,然后建造,并进行工程质量的监督,否则肯定是楼毁人亡.图纸是结构设计,同时,先设计图纸,后进行建造也是一种结构设计,不是吗? 结构设计是为了完成工程建造成功的前提,但是概念不同,如果建造一个茅草屋,你非得设计图纸并采用金砖来建造它,不知是什么结果,呵呵,估计APH有可能采取这设计方案:P,设计高楼,你不进行图纸设计,肯定不能完成,因为它超出了人的思维极限,只能靠方法和结构来保证,谁能有不设计图纸然后就施工的能力呢? 同样建立一个茅草屋也并不是人想像的那么简单,优雅,和自然巧妙的结合在一起,大概是小屋的致高境界了吧,所以,如何造型,如何选地,如何以花草相衬是设计的主目标,他们如何排列往往结果大不相同,但这能用对象的概念进行设计吗?小屋的位置和山之间是什么关系?对象不是一切! Multrix和Unix是很好的例子,一个功能很复杂,关键是它以功能设计为抽象模型,必然失败.Unix以概念设计为先,结构简单,现在看上去还是那么优美,30年了,不短了:) 现在上课有种"不知今昔是何年"的感觉,和你们的交流却很少,义明说是因为不愿降底层次交流的结果,呵呵,应该不是的,很多是值得大家思考的,以后大家真的是该多交流了:) |
|
|
1C#
发布于:2005-06-13 12:05
Re:To:APH, mumu, 铁板, 关于好的结构
俺只會蓋茅屋。。。
--------------------
[a=http://northway.blogchina.com/]寻找失落的路灯 @ North.Light[/a]
有沒有事比死更容易? 有沒有事比活更難? ~ 幸福是一雙溫暖的紅唇 ~ |
|
|
|
2C#
发布于:2005-06-13 13:10
Re:To:APH, mumu, 铁板, 关于好的结构
茅屋和大厦怎么区分呢?
--------------------
馋嘴蜗牛
日志:http://songbai.blog.wait4c.com/ |
|
|
|
3C#
发布于:2005-06-13 13:36
Re:To:APH, mumu, 铁板, 关于好的结构
GOD
| philosophy / math art /|\ /| . . . | computer(which from the application math+ automatic mechine) the key from Mr wang is the structure method is from the auto mechine............ so, all the thinking can not go beyond than the famous book"design patterns", hoho -------------------- [fly]我就是那头趟了取经混水的猪![/fly] |
|
|
|
4C#
发布于:2005-06-13 14:59
Re:To:APH, mumu, 铁板, 关于好的结构
呵,老牛真牛啊,我都没回帖,就知道我不理解什么是”概念“。
“结构”设计,这个词我很喜欢 “概念”设计,我从来就没搞清楚过。什么叫概念?误导观众啊 我现在只是个工人,一个有钱人要我建一个有品位的别墅区,小楼得5层高。 并且这个花园在未来的日子里可能会有停车场等等,但是现在不要。 我以前只盖过平房,这时候我会跑去看别人的高楼,别人的花园 由于我盖过平房,挽起袖子就把 楼和花园的插件仿造平房都做出来了,当然这是建立在平房的地基上。 啪啪啪啪,我把分别它们组合并安放在小区里后,别墅区我就盖完了。 这时候那个有钱人说:“你丫只盖5层我很没有面子。起码得15层,并且还要有游乐园,半年” 看在钱的份上,我容忍了他。我又找来几个工人 我们动手了,这时后发现在原有的地基上很不好盖游乐园与高房。 因为做高房的与游乐园都的为了自己的方便,分别修改了地基,但是地基是公用的,我们觉得总是要重补地基很是辛苦。 幸运的是这时我已经亲自做过5层的楼与花园,我比较明白我们为什么没法以以前的速度盖房子 我命令他们停下来把地基甚至部份的楼房打碎了,重新填上了一种以后连支持停车场都没有问题的材料。 这时候,那些工人开始骂我了,“你丫有病,为什么不一开始就填这种地基,害我们白做了一阵子。“ 我没吭声,因为我害怕他们知道我以前只是个工人,而不是现在的包工头。在以前我从没见过比水泥更好的原料, 因为我用不到它,也用不起它。 并且我怕他们了解到我从以前的工人变成现在人人羡慕的建筑设计师(一开始就能搭出合适的地基)是选择与演化的结果, 因为我没受过高等教育,我只能新的认识上重新构建来満足有钱人新的要求, 后来还是被这帮工人发现了,他们瞒着我写了本书,叫<重构,重构,再重构>。 我后来想,如果我有做唉肥儿铁塔那哥们那么广博的建筑知识,我就不会拆楼。 唉,我还是没太明白你们说的什么是概念?面向接口编程还不够用吗? -------------------- I like running [ 2005-06-13 15:24:18 KxjIron 修改 ] |
|
|
|
5C#
发布于:2005-06-13 15:37
Re:To:APH, mumu, 铁板, 关于好的结构
其实我是很羡慕aph的概念能力的,那篇文章我看了好几遍, 除了知道帅哥在设计上走在我们前面有了新的领悟但也不是完全领悟外 我没从中学到什么。 呵呵呵,我们还是来探讨一下具体而微的例子吧。 -------------------- I like running |
|
|
|
6C#
发布于:2005-06-13 17:11
Re:To:APH, mumu, 铁板, 关于好的结构
传说中的kmwang~~~
下个学期来教我们java~ 希望不要和04的数据结构有课时冲突~我还想回去重新听数据结构呢 李yeli讲的实在是不行啊~ -------------------- There are Pretenders among us.Geniuses with the ability to become anyone they want to be. |
|
|
|
7C#
发布于:2005-06-13 17:17
Re:To:APH, mumu, 铁板, 关于好的结构
人月神话里面有句很经典的一段话
意思是对软件开发要进行增量开发(增长而非搭建系统) 搭建而非编写 building not writing 但是更进一步来看 应该是 培育 而非 搭建 grow not building (增量化)方法迫切地要求自上而下的设计,因为他本身就是一种自上而下的软件。赠梁化开发使逆向跟踪很方便,并非常容易的进行原形开发. -------------------- There are Pretenders among us.Geniuses with the ability to become anyone they want to be. |
|
|
|
8C#
发布于:2005-06-13 17:43
Re:To:APH, mumu, 铁板, 关于好的结构
设计高楼,你不进行图纸设计,肯定不能完成,因为它超出了人的思维极限,只能靠方法和结构来保证,谁能有不设计图纸然后就施工的能力呢 严重精辟,严重同感,严重收藏ing 当当当, 问题来了 与概念设计有什么关系? 什么是基于概念设计,什么是正确的概念,怎么抽象出概念, 面向接口编程中接口是否就是您说的概念。 遇到有大量变化的需求如何办? -------------------- I like running |
|
|
|
9C#
发布于:2005-06-13 20:13
Re:To:APH, mumu, 铁板, 关于好的结构
俺只會蓋茅屋。。。-------------------- 寻找失落的路灯 @ North.Light 有沒有事比死更容易? 有沒有事比活更難? ~ 幸福是一雙溫暖的紅唇 ~ 那不是问题,问题是只会用盖大楼的方法盖茅屋,为何?浮躁也! |
|
|
10C#
发布于:2005-06-13 20:45
Re:To:APH, mumu, 铁板, 关于好的结构
APH应该去写些东西了:)
我现在提到是结构设计的问题,不是我的概念驱动编程 是的,应该具体问题分析一下 就以著名的<Design Patterns>中的第二章 实例研究:设计一个文档编辑器为例子吧:) 2.1设计问题的提出中考查了文档设计的7个问题,并强调了如何组织文档信息影响其他方面 看关于"1)文档的结构" 然后2.2作者论述了文档结构,并认为从根本上讲,一个文档是对字符,线,多边形等的安排而已,错误的根源由此产生 关键是如何该定义一个文档?他和安排是等同的吗? 然后认为,内部表示应该支持如下几点:如何将文本图形安排到行列表中,可视化生成文档和显示文档等等,错误根源二,文档与显示是对等关系吗?文档可以有不同的显示方式,可以显示在屏幕上,可以打印,可以转换为其他文档格式,因此文档本身的概念定义应与这些无关! 于是作者为了完成2.2所提出的要求,使用了Recursive composition技术,并且颇为得意的是竟然把字符作为图元的一个基本元素,并且依据该设计理念,将对象结构和文档物理结构进行了相似的设计!(附注,对阿拉伯文该如何处理?这种文字的显示可是要连字的!) 大家可以接着往下读,呵呵,不再多说什么了. 最后,关于拼写检查,这个难题可分为两个部分,1)访问需要分析的信息,而他们是被分散在文档结构的图元了!2)分析这些信息! 为什么拼写检查竟然会遇到这个问题!它显然不应该成为这部分的难题之一还是最重要的难题之一! 然后看他的实现吧,竟然会提到如何防止把编历机制放到Glyph类层次中,问题是他一开始就不应该存在问题!于是又应验了2.1中文档结构的重要性! 这个设计是典型的功能驱动设计! 无论它用到了多少巧妙的模式,依然不能掩盖其对概念抽象的严重失误!设计模式类似围棋的定式,他不是布局,也不是中盘撕杀. 呵呵,你们想想,这个项目该如何规划才是合理的呢? |
|
|
11C#
发布于:2005-06-13 20:52
Re:To:APH, mumu, 铁板, 关于好的结构
面向接口编程会强迫你使用概念驱动,并不是概念驱动本身 |
|
|
12C#
发布于:2005-06-13 20:55
Re:To:APH, mumu, 铁板, 关于好的结构
茅屋和大厦怎么区分呢?--------------------馋嘴蜗牛日志:http://songbai.blog.wait4c.com/ 呵呵,这看你的设计初始认识了,然后是对开发团体的估计. APH现在做的PDF需要4个人参加,所需实现的规范文档有1200页,所以他在做结构时可是费了番力气:P |
|
|
13C#
发布于:2005-06-13 20:58
Re:To:APH, mumu, 铁板, 关于好的结构
的确,需求会不断的增加,上面的文档编辑器也是一样,看看Word都多大了:P这应该是个好的讨论的例子吧 |
|
|
14C#
发布于:2005-06-13 21:09
Re:To:APH, mumu, 铁板, 关于好的结构
哈哈。
好多保罗艾伦阿,看来需要一个比尔盖茨。 -------------------- 因我的生命就有若微尘,躺卧于街头或结伴同行,也不介意做个自由人,无必须要紧。 |
|
|
|
15C#
发布于:2005-06-14 00:05
Re:To:APH, mumu, 铁板, 关于好的结构
比尔出现了。。。。哈哈。。。。
最近 Design patterns 很火啊,哈哈,不因为别的,只因为俺专外的大作业做这个。。。哈哈。。。 随便吹吹。。。 -------------------- [a=http://northway.blogchina.com/]寻找失落的路灯 @ North.Light[/a] 有沒有事比死更容易? 有沒有事比活更難? ~ 幸福是一雙溫暖的紅唇 ~ |
|
|
|
16C#
发布于:2005-06-14 01:33
Re:To:APH, mumu, 铁板, 关于好的结构
有个很好的比喻,如果建造一个茅草屋,你可以不划图纸,然后施工,但是,如果你建一个高楼,必需首先设计图纸,然后建造,并进行工程质量的监督,否则肯定是楼毁人亡.图纸是结构设计,同时,先设计图纸,后进行建造也是一种结构设计,不是吗?
*** 为建高楼而做的设计和建造,通常设计是不常变更的.否则建造也返工巨大. 所以有这样的设计,也因为有以前建高楼的经验,而目标是成熟稳定了的. 可认之为传统,设计者早已成竹在胸的.要么十分世故,或者有非常变通的办法. APH的楼,如果一次要设计出最完美的结构出来,可能是很危险的设计. 1.可用性. 要保证永远有可以下水的船只.或者是相似功能的模拟.同时这也保证了设计的可行性. GNU的HURD就目前看还是个完美的理想物. 2.渐近性. 没有做航母的经验,不防先做一条小汽船,熟悉之后,再研究更高级的动力和结构.在实现中发展和完美. 做为软件设计,不应该象建楼那样保守,但不妨学中国造原子弹那样,学习成熟的设计,逐步实现它. |
|
|
|
17C#
发布于:2005-06-14 01:37
Re:To:APH, mumu, 铁板, 关于好的结构
所有的驱动,都不如*物质驱动*来得稳当:)
|
|
|
|
18C#
发布于:2005-06-14 01:43
Re:To:APH, mumu, 铁板, 关于好的结构
Sir W.给我们一个好的答案,但没想到这个答案带给我们的问题,比它解决的还要多. |
|
|
|
19C#
发布于:2005-06-14 18:22
Re:To:APH, mumu, 铁板, 关于好的结构
茅屋和大厦怎么区分呢?--------------------馋嘴蜗牛日志:http://songbai.blog.wait4c.com/ 我的偏见.对建造者言, 从协作计,一个人盖的,是茅屋;许多人盖的,是大厦. 从进化计,第一次盖的,是茅屋;第N次盖的,都是大厦.大厦就是更好的茅屋. 如果学的专业不是盖大厦,恐怕往往要自己经历一番茅屋的过程. Sir W.讨论的,我猜是忽略过程的结果.拿一本经来念,却忘记讲取经的过程艰险. |
|
|
|
20C#
发布于:2005-06-14 21:16
Re:To:APH, mumu, 铁板, 关于好的结构
Wang sir,你举的例子真好啊,
醍醐灌顶啊,我明白了什么叫功能驱动设计。 布局,中盘厮杀,定式,贴切啊~ -------------------- I like running |
|
|
|
21C#
发布于:2005-06-14 23:55
Re:To:APH, mumu, 铁板, 关于好的结构
APH做的结构设计,并大量的进行了概念的抽象,不是为了别的,是一种折中,不然我们完成不了这个项目,到了现在,APH的信心竟然比我还足,认为到年底就该完成它了:D呵呵,我可不这么认为,我们只有四个人!
这种设计需要化费不少的时间和精力,但是却决定了结构的清晰性明确性,保障了几个人可以进行良好的合作,降低对编码的难度要求! 折中是必然的,这也就是mumu说的物质驱动吧. 当初做Postscript,做了大量的折中,甚至第一目的是尽可能减少代码量,因为就我一个人,到目前为止,我还不知道世界上是否还有另外一个人写的出来(Ghostscript 也是属于自由源码中Great项目之一了,但它不够商业软件的级别,也不是一个人写的),至少市场上没有,因为它的代码量太多了,所以尽管它不是那么优美,但还是美的:)但这个项目不同,如果不让APH做这样的设计将是非常危险的. 希望APH可以写些东西出来,到最后再验证一下,这个设计如何保障该项目的成功,如果换一种呢? mumu讲的很多是策略问题,正如上面写的,那是我的策略的考虑,呵呵,我现在讲的是具体设计:)策略的考虑就更说不清楚了. 上面讲的Design patterns的例子其实很有代表性,开始考虑了个结构,然后随着功能需求的增加,发现实现越来越困难,一直到无法实现,尽管一开始就意识到了,还是会有实现拼写器的煎熬,而且煎熬还在后面呢. |
|
|
22C#
发布于:2005-06-15 00:16
Re:To:APH, mumu, 铁板, 关于好的结构
阿Sir终于肯写出让我们看得懂的文字来了。
铁板哥的语录也越来越玄了。 |
|
|
|
23C#
发布于:2005-06-15 11:04
Re:To:APH, mumu, 铁板, 关于好的结构
test-driven ?
--------------------
[a=http://northway.blogchina.com/]寻找失落的路灯 @ North.Light[/a]
有沒有事比死更容易? 有沒有事比活更難? ~ 幸福是一雙溫暖的紅唇 ~ |
|
|
|
24C#
发布于:2005-06-15 20:32
Re:To:APH, mumu, 铁板, 关于好的结构
功能驱动是我取的名字,不知道贴切不贴切,多数人会不自觉的根据功能展开设计,很多时候可行,很多时候不可行.
好像古代的房子上面都有个木头横梁,他对房子本身没什么使用价值,可是... mumu看来是很久没有进行设计了,我这问题不是那么容易的,没有银弹,但人们总是追求它有... 做程序和做房子有个大的差别,软件总是要发展,房子建好了以后的命运是要拆的,所以有增量编程一说. 建房子的道理和一座房子本身相比自然是复杂的多,所以,这个话题会提出更多问题,自然是比解决的问题多了:) 不知道铁板怎么想Design Patterns里的这个例子?好像你做过编辑器,呵呵,如果是你,会这样设计吗? test-driver是什么意思? |
|
|
25C#
发布于:2005-06-15 22:05
Re:To:APH, mumu, 铁板, 关于好的结构
test-driven ?-------------------- 寻找失落的路灯 @ North.Light 有沒有事比死更容易? 有沒有事比活更難? ~ 幸福是一雙溫暖的紅唇 ~ 那个不能算是“设计”方法学吧:) |
|
|
26C#
发布于:2005-06-15 22:55
Re:To:APH, mumu, 铁板, 关于好的结构
请再多写些,写详细些。
大的设计是偶一向很头痛的。趁机请教一下。 |
|
|
|
27C#
发布于:2005-06-16 22:24
Re:To:APH, mumu, 铁板, 关于好的结构
我也会像Design Patterns里一样设计的
我一直都倾向于面向功能设计,我得想想如何设计是优美的了:( -------------------- I like running |
|
|
|
28C#
发布于:2005-06-16 22:34
Re:To:APH, mumu, 铁板, 关于好的结构
铁板哥的语录也越来越玄了。 有么?你说的是拆楼么? 我一直是以重构来获得好的设计,通常做第一个版的时候都写得比较乱 但是我会获得很多想法,做下一个版时我会抽象出很多接口尝试一些新的东西,味道会好很多 不过思考方式上还是面向功能展开的,按老牛的说法竟然不正解:( -------------------- I like running |
|
|
|
29C#
发布于:2005-06-19 18:21
Re:To:APH, mumu, 铁板, 关于好的结构
看来是我的回答太不实际,哥儿几个都沉下去了
如果我来设计的话,我的设计是如下的,大家不要见笑,探讨一下,老牛指教一下 首先会有个 1。有个 doc_node 的东西,是构成文档的抽象节点 由 句子,面片(线条,图片),控制符号,等等具体构成,修鉓信息也被放在了每个逻辑单位中。 它们可以组合成其它逻辑上的doc_node, 设计 doc_node 的修改控制操作,render,等等接口 设计或使用 contains 包含它们形成 document 设计对document的操作 over. |
|
|
上一页
下一页