I am building up a team for my new start up company and am also ding _
contract jobs in my spare time. I have been working for huge(like defense),
large(like msft), midsize and very small start up companies. Here are my 2
cents.
是介于大和小之间的。
JQuery+JSF+EJB+JPA+Mysql
第一 UI, 你用了JQuery, 这个是属于容易上手的framework,但是jquery UI本身几乎是
没有的。jquery也分用和精通。 对于其他的framework,比如extjs, dojo那些你熟悉么
, 用这些组织大的script projects经验怎么样。后者更适合做商务应用的原型。而且
跨平台支持是通过framework保障的。我不说网页和flash activescripts,这些是美工
做的。 你的scripts能作为browser extension, mobile website或者bookmarklet跑么
?还有一个比较新的GWT, GWTP, 我用过但是by far不如用script自己写效能高。
第二 你用了JSF, 但是我们现在通常比较多的是restful service,或者用传统的基于
xml的service, UI通过data store和后台联系, 几乎没有表单操作。对其他方提供的
服务一般用ESB接进来。
第三 后台呢, 如果你用了JPA, 那么应该知道基本上湖数据库无关。 但是因为做大系
统的特殊性, 我们一般用这个比较少, 做中型应用, 比如我现在做的交通管制系统
, 可以用。 但是做到网站, 几乎是纯java甚至是C的服务进程。 一般中型系统我们
用hibernate什么,到大了是自己操作jdbc或者用ibatics这种比较简单的辅助。 如果
系统再大了连整个caching机制也是自己做的。
后台对前台是完全独立, 基本上是通过中间件(包括JSM 或者其他的in house中间件)
,或者socket(MINA)直接调用的。
第四,你的用户认证和session管理用的是什么? apache DS? ldap还是 shiro?
如果我需要做纯粹的小应用, 绝对是php, ruby, dijango 甚至不用写, 有大量的
open source
package.光CMS,shopping cart, forum都有无数的开源程序,这些程序本身也有接口
, 或者模板。
另外, 任何一个大网站,根本不是你这样的小系统能够抗得住的。这么说的, 基本上
纯java不用你说的framework. 其实大多数还是用C 连C++都不是。 ++只是用来实现
design pattern而已。包括malloc STL基本上自己都替换光了。 我以前的做过的一
个系统, 光服务器6000台, 在任何时候光heart beat package就有两兆的数据在
游荡。 这些系统的难度和挑战都不在做网站上, 主要的资金开销在engine上。网站本
身属于site engineering一般都不是core business. site给换光了,只要有engine,照
样转, engine本身也是power 很多企业/公司。
美国和中国的一个主要的区别在于美国更注重后台的稳定和内容的深度。 而中国出来
的东西前台是更花哨,用户功能更加完整。所以你想对大公司的核心职务, 你的简历
要突出算法, OS, 高性能计算的优势, 会这些应用framework没有用的。你的这个
again适合中型的公司
总结一下, 就是你做的系统, 横跨了UI/scrpts, Web Service, business Servers,
Database services这四层。 对于小系统这个无疑是不需要的,因为他们整个一个就不
用分层。 但是对于大系统呢, 这四层又是分离的, 你只要专著于一层就可以了,任
何一层都可以使用各种技术, 比如UI那一层用php+YUI, 它不在乎提供服务是jersey,
还是axis2, 它只要知道 XML或者json的格式就可以了。 后台也是, 你只要把我要求
的应用, 用effective java填进我的framework就可以了。 我的framework本身会
handle通信, load balancing, backward/forward compatibility 什么的。 所以我
现在的start up要的只是在每一层更加focus的。你做的的更加适合中型系统。
其实和上面说的不一样的, 虽然做小系统的活更加多,但是也绝对的更加容易外包。
你到dice什么上面看, 做os commerce templating也就2000块, 其他的小模块就
几百, 爬数据的几十。 用java写framework一堆要求的也就5000。但是那些中型
的, 活不好外包的本地的半大不小的公司,更适合在本地找人。