论坛首页 入门技术论坛

看看国外CTO是如何设计Java软件的

浏览 28741 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-09-04  
本人在一家外企工作,由于平时在项目开发中十分重视设计模式的运用,所以很快就参与到公司的跨国项目中,有机会了解了国外CTO的一些设计思想,并且个人也参与了部分组件的设计工作。<o:p> </o:p>

从接手的项目可以看出那些国外的CTO在设计大型项目时的基本设计思想是按照组件的开发模型。因为我到手的项目均为一个个Component 同时他们非常注重Interface design。因为每个Component项目开始前都会要求我给出详细的API Javadoc。对他们而言只要Interface确定下来的话Implementation是很容易实现的。而且他们也非常强调基于Interfacefaçade 结构模式的运用,每个API 都会要求多个实现方式。<o:p></o:p>

我参与这样的设计时间并不长,所以有可能理解上会有些偏差,以下为我个人对于Interface design的理解:<o:p></o:p>

  1. 在面向对象的设计中我们希望做到的是让结构与策略实现完全分离。Interface design就可以很好的实现这一目的。<o:p></o:p>
  2. Interface 构建了软件的基本框架。<o:p></o:p>
  3. Interface限定了implementation的方法结构,并且实现了implementation的可扩展性。<o:p></o:p>
  4. 对于熟悉GOF设计模式的朋友都会总结出这样一个编程的思维方式:Interface Driven Design (接口驱动) 。几乎所有的GOF设计模式都由接口 (Interface) 驱动的。合理的Interface design为各种Gof设计模式的实现提供了可能性。<o:p></o:p>
  5. Interface design 可以明确软件逻辑工作流,如果使用Easymock等模拟框架的话,可以直接写出清晰的,可运行的Use Case. 从而实现 TDD的开发思想。<o:p></o:p>
   发表时间:2007-09-04  
不错,非常赞同基于接口的facade模式,在该模式下使用Ioc(控制反转),将会使得系统高度组件化..........:)
0 请登录后投票
   发表时间:2007-09-04  
去年偶大学毕业时实习在富士通当苦力,知道日本的程序拿到中国来都是纯粹的coding,厉害的是他们的构架师,所以,我很快就离开他们公司
0 请登录后投票
   发表时间:2007-09-04  
williamy 写道
去年偶大学毕业时实习在富士通当苦力,知道日本的程序拿到中国来都是纯粹的coding,厉害的是他们的构架师,所以,我很快就离开他们公司
我以前也在对日外包的公司里实习过,说实话真的学不到什么东西。只是对着那详细的有点过分的日文文档机械式的开发。不过现在在欧洲的公司里好多了,起码欧美客户会把部分组件设计的工作也交给我们做。
0 请登录后投票
   发表时间:2007-09-04  
maqujun 写道
williamy 写道
去年偶大学毕业时实习在富士通当苦力,知道日本的程序拿到中国来都是纯粹的coding,厉害的是他们的构架师,所以,我很快就离开他们公司
我以前也在对日外包的公司里实习过,说实话真的学不到什么东西。只是对着那详细的有点过分的日文文档机械式的开发。不过现在在欧洲的公司里好多了,起码欧美客户会把部分组件设计的工作也交给我们做。


什么公司?
0 请登录后投票
   发表时间:2007-09-04  
晕,原来CTO就干这个

其实接口驱动也好,模型驱动也好,测试驱动也好
适合自己项目的设计就是好设计,
0 请登录后投票
   发表时间:2007-09-04  
CTO管到这么细会不会太忙了?

当然,这种精细设计的公司还是很不错的拉,楼主有福勒。
0 请登录后投票
   发表时间:2007-09-05  
是啊,在外企,核心的东西是不会让我们来做的~~~
0 请登录后投票
   发表时间:2007-09-05  
在项目中也一直在尝试Interface design和测试驱动,不过有时候会有一种立即实现的冲动,特别是在对一些接口设计感觉不自信的情况下,希望通过具体实现来验证,然后不知不觉就又陷入了细节考究之只中。

0 请登录后投票
   发表时间:2007-09-05  
这样做设计非常正常,我在国内企业也这么做。
只不过出于成本和人力的考虑,没有那么细致罢了。
当你对GOF和J2EE Patterns了然于胸,自然而然就这么做了。
另外,这不该是CTO做的事,而是架构设计师做的事。
一家公司通常有多个项目,而CTO通常只有一个,忙得过来吗
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics