今天跟SUN的高级工程师有了些交流,感触颇多。首先要谈到它的一个产品(其实不能叫产品)JEF,也就是Java Enterprise Framework。JEF可以说是很多框架和组件的有机结合,有opensource的,有商业的,也有sun自己写的,其实也是SUN在多个大规模项目中不断实践的基础上发展起来的。它通过定义良好的分层和封装,能够提供应用开发非常坚实的基础。下图是JEF的整体架构图:
<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> <v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> <v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>
<v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>有机会再进行对它整体架构和各个组件功能的详谈吧。
再谈一谈对真正的系统架构师的认识。JEF的2个主要设计者我都见过了,都是香港人,都温文尔雅,学识渊博,经验丰富。能够聆听它们对软件架构的理解,对项目实际问题的分析和解决,真的是受益匪浅,对自己将来进行设计时思考问题的深度和广度都有很大的提高。这才是真正的架构师!他需要对各种框架,组件都了如指掌,在面对具体的项目需求时能正确的选择最适用的技术;他需要对软件整体架构有清晰的认识和理解,知道在面对实际项目时该使用何种架构,包括thin client还是rich client,with EJB还是without EJB等等;他需要有一种严谨求证的性格,对任何东西不是盲目下结论,而是根据具体的分析和实证进行取舍。。。。。。通往真正的架构师的路还很长,需要经历的项目,需要做的事情还很多。我们不能盲目尊大(拿spring+hibernate做个小项目就以为很牛),也不能丧失信心(经验和领会都是靠项目做出来的)。我们应该时刻保持向上的心态,去主动参与项目,去沟通,去交流,去总结,去思考。即使将来成不了真正的架构师,我们也可以自豪的说:“我每一步都是踏实的走下来的,我每一个项目都是用心在做的,我的代码都是注释详实,简单易懂,为后来者提供很好的可重用基础的而不是被人咒骂的,我做的是可用的软件而不是垃圾软件。”希望与所有有志于成为真正的系统架构师的同学共勉。