我正在做软件框架方面的设计,不知有没有相关理论方面的书或理论的?

已查看 1 次
跳至第一个未读帖子

huang yipeng

未读,
2009年6月21日 23:47:202009/6/21
收件人 pon...@googlegroups.com

我正在做软件框架方面的设计,自己有很多想法,现在想提高一下相关的理论,让手头的事情做得更专业一点。主要是想了解一些评价软件框架设计好坏的理论。不知大家是否知道相关的基本理论书籍或者论文什么的,提供一些。
--
软件使用其实应该很简单的

jinhu wang

未读,
2009年6月22日 00:11:262009/6/22
收件人 pon...@googlegroups.com
设计模式

2009/6/22 huang yipeng <yipen...@gmail.com>:

halida

未读,
2009年6月22日 00:40:182009/6/22
收件人 TopLanguage
搞清楚一些原则,
比如分治法就好了。
推荐unix之道,包含有一些设计的原则。
之后再看设计模式,不然会着魔的。
之后看编程珠玑,知道怎么做分析。

还是要看看别人的程序,看他们是怎么把一个负责的需求拆分的。
如果你要作某方面的程序,看看最优秀的实现是如何架构的,然后仿照就好了,
一个学科的模式基本上就那么几个。

Mingli Yuan

未读,
2009年6月22日 00:45:352009/6/22
收件人 pon...@googlegroups.com

halida

未读,
2009年6月22日 01:01:362009/6/22
收件人 TopLanguage
深以为然。
又有哪一门工程学不是这样呢?

On Jun 22, 12:45 pm, Mingli Yuan <mingli.y...@gmail.com> wrote:
> 一个不完全的列表。设计更多是一门手艺活,我个人的看法。
>
> 入手站点
>
> http://en.wikipedia.org/wiki/Category:Software_designhttp://en.wikipedia.org/wiki/Category:Software_architecture
>
> 基础知识
>
> Cohesionhttp://en.wikipedia.org/wiki/Cohesion_%28computer_science%29
>
> Loose_couplinghttp://en.wikipedia.org/wiki/Coupling_%28computer_science%29http://en.wikipedia.org/wiki/Loose_coupling
>
> Separation of concernshttp://en.wikipedia.org/wiki/Separation_of_concerns
>
> Software architecturehttp://en.wikipedia.org/wiki/Software_architecture
>
> Component-basedhttp://en.wikipedia.org/wiki/Component-based_software_engineering
>

> Coding by Conventionhttp://en.wikipedia.org/wiki/Convention_over_configuration


>
> 文章或者视频
>
> Best Practices in Javascript Library Designhttp://video.google.com/videoplay?docid=-474821803269194441
>
> API Design Mattershttp://queue.acm.org/detail.cfm?id=1255422
>
> Java API Design Guidelineshttp://www.artima.com/forums/flat.jsp?forum=106&thread=142428
>

> API Design (Part 1)http://blog.sundresh.com/2008/11/26/api_design_part_1


>
> Domain Driven Design and Development In Practicehttp://www.infoq.com/articles/ddd-in-practice
>
> 书籍:
>

> DDDhttp://books.google.com/books?id=7dlaMs0SECsC&dq=Domain+Driven+Design...
>
> 2009/6/22 jinhu wang <wangjinhu...@gmail.com>
>
> > 设计模式
>
> > 2009/6/22 huang yipeng <yipenghu...@gmail.com>:

wang xin

未读,
2009年6月22日 01:05:592009/6/22
收件人 pon...@googlegroups.com
个人看法,框架设计从来就不是一个理论活,某某专家委员会冥思苦想出来的框架往往不能很好的解决实践中的问题,EJB和POJO就是很好的例子。评价一个框架的理论更是不存在的,除了实践你没有办法证明一个框架比另一个好。

所以,设计框架不是目的而是手段,关键是你面对的问题是什么(希望不是为了毕业论文设计框架)。

熟悉各种设计方法学,设计原则,设计模式,对做好软件设计有很大帮助。但这些只是ToolBox中的一部分,更重要的是Do right thing on the right time.

2009/6/22 Mingli Yuan <mingl...@gmail.com>

huang yipeng

未读,
2009年6月22日 01:18:492009/6/22
收件人 pon...@googlegroups.com
我正做一个web frame 类似struts,我个人觉得功能设计比较好,但是想找一个分析思路和struts等框架对比一下,不求闻名世界,只求为存在找一个理由。以下是早上整理的一些比较思路。
框架的使用流程
    用户  --> 寻找框架、评估功能  --> 尝试使用框架  (看文档、写测试) --> 开始使用框架(初学、学习文档) --> 熟练使用框架(非常有经验、学习源码)
1.经济分析
    功能不等式
        用户使用框架功能得到好处   >  用户的学习成本+使用成本
2.软件设计方面:
    尽量减少用户关于框架的调试成本
            高质量的代码,减少因为框架本身的bug而影响用户的行为
            设计友好的异常模式
           
    尽量减少用户关于框架的学习成本
            没有必须掌握的深奥概念
            适度的知识量
           
           尽量减少用户关于框架的代码成本
            友好设计的配置文件
            友好设计的API

2009/6/22 wang xin <xer...@gmail.com>



--
软件使用其实应该很简单的

xingsen

未读,
2009年6月22日 02:00:312009/6/22
收件人 TopLanguage
框架设计不算什么高深的东西,随随便便就能搞出来一个。问题在,它有什么特色?需要达到什么样的目的。
有人骂struts1.x不好使,可是多少人去试图改造过它?改造的结果如何?改造一个东西要比创造一个东西更需要创意。
没错,框架需要创意。
比如这两年,我在设计一个名叫webnix的东西,走访了几乎所有的"性感名词"。我为它量身设计一个框架,定义体系结构,扩展方法,等等......这所有的
东西都需要创意。上面有人提到Unix,其实作为一个操作系统来说对web系统的设计并没有多少启发性,我的灵感是东挖一点,西挖一点而来的。所有的这
些不是特征的堆叠而是为了某种目的。
比如:为了让系统能充分的支持自定义模版,各个模块之间是如何在一个页面上进行渲染,资源文件,模版文件如何管理。我研究了jommla的模版,
drupal的模版;portal的做法;zope的skin。最后我从plone的自定义模版中得到启发。
这就是设计一个宏伟的框架的步骤,需要精雕细琢。那些为了一个目的而产生的框架不是我的目标,我的目标是要建立一个体系结构。我试图找过很多所谓的理
论,到头来发现理论不管用。真正有效的是你的创意。


On 6月22日, 下午1时18分, huang yipeng <yipenghu...@gmail.com> wrote:
> 我正做一个web frame
> 类似struts,我个人觉得功能设计比较好,但是想找一个分析思路和struts等框架对比一下,不求闻名世界,只求为存在找一个理由。以下是早上整理的一些比较思路。
> 框架的使用流程
> 用户 --> 寻找框架、评估功能 --> 尝试使用框架 (看文档、写测试) --> 开始使用框架(初学、学习文档) -->
> 熟练使用框架(非常有经验、学习源码)
> 1.经济分析
> 功能不等式
> 用户使用框架功能得到好处 > 用户的学习成本+使用成本
> 2.软件设计方面:
> 尽量减少用户关于框架的调试成本
> 高质量的代码,减少因为框架本身的bug而影响用户的行为
> 设计友好的异常模式
>
> 尽量减少用户关于框架的学习成本
> 没有必须掌握的深奥概念
> 适度的知识量
>
> 尽量减少用户关于框架的代码成本
> 友好设计的配置文件
> 友好设计的API
>

> 2009/6/22 wang xin <xera...@gmail.com>


>
>
>
>
>
> > 个人看法,框架设计从来就不是一个理论活,某某专家委员会冥思苦想出来的框架往往不能很好的解决实践中的问题,EJB和POJO就是很好的例子。评价一个框架的理论更是不存在的,除了实践你没有办法证明一个框架比另一个好。
> > 所以,设计框架不是目的而是手段,关键是你面对的问题是什么(希望不是为了毕业论文设计框架)。
>
> > 熟悉各种设计方法学,设计原则,设计模式,对做好软件设计有很大帮助。但这些只是ToolBox中的一部分,更重要的是Do right thing on
> > the right time.
>

> > 2009/6/22 Mingli Yuan <mingli.y...@gmail.com>

> >>http://books.google.com/books?id=7dlaMs0SECsC&dq=Domain+Driven+Design...
>
> >> 2009/6/22 jinhu wang <wangjinhu...@gmail.com>
>
> >> 设计模式
>
> >>> 2009/6/22 huang yipeng <yipenghu...@gmail.com>:
>

wang xin

未读,
2009年6月22日 02:13:322009/6/22
收件人 pon...@googlegroups.com
框架的价值在于降低开发人员的开发成本,所以评价一个框架无非是看对于我们的情况是否能降低成本。

包括几部分:
1. 是否能够解决当前问题。
2. 是否能够解决可预见的问题。
3. 学习成本

所以更重要的是你的问题是什么?

或者,我们可以把问题分成三部分:
1. 现有的Web开发框架中Presentation Layer(这里针对你所提到的Struts)有什么问题。
2. 问题是否严重,解决问题是否有意义。
3. 如何解决问题。

可以看到只有最后一个问题需要创新。第一个问题只能从实践中来,第二个问题需要思考和咨询。



2009/6/22 huang yipeng <yipen...@gmail.com>

Chenggang Li

未读,
2009年6月22日 01:39:252009/6/22
收件人 pon...@googlegroups.com
最喜欢你这样的回答,让人有的放矢.

2009/6/22 Mingli Yuan <mingl...@gmail.com>



--
李成刚

Chenggang Li

未读,
2009年6月22日 01:46:222009/6/22
收件人 pon...@googlegroups.com
恩,有道理,感觉设计确实是一个启发式过程,这里面经验非常重要。好的设计是慢慢积累和迭代出来的。不过多了解一些框架,研究其的设计方法还是有必要的,毕竟那些都是比较经典的设计,是一种模式。头脑中模式多了想法就多了,不至于在做设计时无从下手。

2009/6/22 wang xin <xer...@gmail.com>



--
李成刚

图灵刘江

未读,
2009年6月23日 00:42:062009/6/23
收件人 TopLanguage
图灵在翻译这本书:
Practical API Design: Confessions of a Java Framework Architect
by Jaroslav Tulach
http://www.amazon.com/dp/1430209739

作者是NetBeans的创始人。相信对大家有用。

sagasw

未读,
2009年6月23日 01:24:262009/6/23
收件人 pon...@googlegroups.com
http://doc.trolltech.com/qq/qq13-apis.html

作者应该是KDE的设计者。

2009/6/23 图灵刘江 <liuj....@gmail.com>

sagasw

未读,
2009年6月23日 01:28:552009/6/23
收件人 pon...@googlegroups.com
另外《unix编程艺术》应该算是不错的书,介绍了不少unix编程文化。
有赞为证:

四十年历史积淀底蕴深厚
老系统容光焕发依旧年轻

2009/6/23 sagasw <sag...@gmail.com>

Kenny Yuan

未读,
2009年6月23日 01:58:532009/6/23
收件人 pon...@googlegroups.com
http://97-things.near-time.net/wiki/97-things-every-software-architect-should-know-the-book

这本书在组里有人发过

--
Kenny Yuan
C++, UI, LISP, MMA, Psychology and Automobile.
BLOG: CS巴别塔(Computer Science Babel)
URL1: http://csbabel.wordpress.com/
URL2: http://blog.csdn.net/yuankaining/

Marvin

未读,
2009年6月23日 03:37:292009/6/23
收件人 TopLanguage
握手,与我心有戚戚焉。

supern lee

未读,
2009年6月23日 09:03:282009/6/23
收件人 pon...@googlegroups.com
这本书现在买不到了...

想弄本来收藏

2009/6/23 sagasw <sag...@gmail.com>

halida

未读,
2009年6月23日 20:43:332009/6/23
收件人 TopLanguage
这里不是有吗?

http://www.faqs.org/docs/artu/

回复全部
回复作者
转发
已删除帖子
已删除帖子
已删除帖子
0 个新帖子