More Related Content
Similar to 社区项目开发的问题以及未来的建议 (20)
社区项目开发的问题以及未来的建议
- 4. 解决方案 关键的思路: 专注 关注点分离 开发团队拆分方式改变,让每个人都发挥自己擅长的技能,更专注于自己的领域 开发人员必须进行单元测试 使用Maven进行项目的生命周期管理、依赖管理 使用Subversion官方推荐的trunk、branches、tags的方式来管理项目的版本
- 5. 团队拆分方案 按技术拆分 优点: 专注 测试驱动 容易低耦合,高内聚,关注点分离 对技术研究的更透彻 更容易形成规范和风格 更容易技术积累 更容易扩展和优化 缺点: 对团队成员有较高的要求 沟通成本相对较高
- 6. 常规的技术拆分方式以及需要掌握的技能 数据访问层(DAO) Ibatis、Hibernate、JDBC、JNDI、JPA、JTA Oracle、MySQL、PostgreSQL 、SQL优化 Key-ValueStorage、NoSQL 半个DBA 业务逻辑层(Business Logic) SpringIOC、AOP、JMS Restlet、Jersey、RESTeasy、ApacheCFX MemCached、Terracotta Design Pattern 、DDD (Domain-Driven Design领域驱动设计) REST、SOA、ROA Http 展示层(MVC & UI) Struts、WebWork、SpringMVC Velocity、FreeMarker、JSTL、JSF JavaScript 、JQuery、Dojo、Prototype 、RIA、Widget HttpCache、JavaScriptCache
- 7. 拆分后的工作流程 所有成员一起听取业务需求 所有成员共同进行需求分析,确定系统架构,以及各层的技术选型 项目负责人创建项目 根据产品提供的UseCase以及页面原型, 数据访问层的成员和DBA一起确定数据库模型,定义Dao的接口 业务逻辑层的成员规划REST资源的URI,定义Service的接口以及领域模型 展示层的成员定义ViewBean,串联项目的PageFlow 各层通过单元测试、压力测试等各种测试方式来验证开发的成果 通过依赖注入等方式将各个模块合并起来 项目合并后,整体测试 交付测试部门测试
- 8. 使用Maven管理项目 建议使用多模块模式来管理项目 club-rest-project club-domain-model 定义jaxb注解的domainmodelobject或者通过xslschema定义domainmodelobject club-dao 依赖club-domain-model模块 定义dao的interface,生成dao的javadoc club-dao-impl 依赖club-domian-model,club-dao club-dao的实现,sqlmap,Dao的测试 club-rest-api 定义rest service interface,生成restservice 的javadoc以及restresource的URI说明文档 club-rest-impl 依赖club-domain-model,club-dao,club-dao-impl restapi的实现,业务逻辑处理,定义restresource,业务逻辑测试 club-rest-agent 依赖club-domain-model club-rest-api的实现,代理操作restresource,resource 测试 club-rest-webapp 依赖club-domain-model,club-dao,club-dao-impl,club-rest-api,club-rest-impl 通过配置文件整合依赖的项目,打成war包发布 club-web-project club-web-component 依赖club-domain-model,club-rest-api,club-rest-agetn 社区的MVC,用户权限管理 club-webapp 依赖club-domain-model,club-rest-api,club-rest-agent,club-web-component 通过配置文件整合依赖的项目,打成war包发布