|
群友和灵浪都比较关心新站点的开发,如果没有回应,会让大家着急,因此,我把目前的进度简单地介绍一下。在软件开发过程中,交流十分重要,在此作以下说明:
1.关于需求
需求是整个软件的核心,决定一个软件的成败。
我个人认为灵浪和我所拟的需求还不够具体,目前还没有明确具体的需求。因此势必随着软件开发和实际应用,需求会不断更新,软件需要会不断修整,这个可以预见到。
我们做的不是一个论坛,也不是其他已有成型系统的二次开发,更不可能拿一些现有的开源系统来组装。所以在时间上和组装比不是一个数量级,新系统里的每个功能都需要手工开发。事实上一开始是要做个论坛,因此利用几天时间二次开发了一个,后来随着需求的变化,最终又否掉了,J (所以说,需求在不断更改和完善)。
2.关于时间
软件开发时间:软件开发有本经典书叫《人月神话》,通过书名大家可以看出,软件是按照人&月来计算的,而不是人&天,所以请大家不要着急,我们是希望做出精品的。
我的时间:我个人平时上班大概12小时左右,路上来回3小时,吃饭1.5小时,练功1.5小时,还剩下6小时,还需要睡眠,所以可能会更新比较慢,请大家体谅。
3.关于系统架构 (目前走在这一步)
3.1 关于选型
JDK: JDK6.0
IOC Container: Spring 2.5.6 (抛弃Guice,Guice目前发展不错,但是我们需要的不仅仅是一个IOC容器,而且需要一站式的JavaEE各规范的支持,但我们最终不使用AOP标注)
ORM: Hibernate 3.3.1
Web Framework: Struts 2.1, JSP 2.0, JSTL
JS: JQuery (抛弃Prototype,两者都能跨浏览器,但是近来JQuery发展更好些)
Security: Spring Security 2.0
Search Engine: Lucene, Compass
Transaction: Hibernate Transaction, JTA
Application Server: Tomcat
Cache: EhCache (抛弃OSCache, JBossCache,EhCache是目前发展势头最好的Cache方案, 涵盖普通缓存,轻量级缓存,页面缓存,中央缓存服务器等方面。我们通过对比抛弃了OSCache(更新慢)和JBossCache(太沉重))
Database: MySQL | Oracle
整个系统采用目前最为流行的annotation大于configuration的风格。
3.2 系统分层
系统采用通常业界最流行的架构方案,分成四个层:
(1) 数据访问层
主要封装对数据库/JMS/外部资源的访问逻辑。简单的CRUD可能会挪到业务层。HQL都在这层定义,不会放在业务层。
(2) 业务逻辑层
封装核心业务逻辑,使用Spring的annotation定义Service类。使用Spring的Transaction annotation来定义事务,事务一律在业务层解决。对只读方法使用readOnly,异常只用runtime的。
(3) Web层
MVC使用Struts 2(实际就是WebWork的改进版),使用ZeroConfig和CodeBehind实现灵配置文件。
View使用JSP2.0,JSTL。
Validation使用JQuery.
(4) 领域模型层
使用JPA annotation来定义实体和关系。
3.3 其他
(1) 安全控制
使用Spring Security的Login/Logout,RememberMe机制,通过用户+角色+授权控制,拦截URL和页面内容。
(2) 二级缓存
不使用QueryCache,缓存实体及其关系。
(3) 日志
使用Log4j作者的最新Logback & SLF4J,替换掉 Log4j & commons logging,它的性能更佳(判断日志记录的操作对比时3纳秒对30纳秒)。事实上,Hibernate和Jetty都迁移到了SLF4J。
3.4 遗留问题
(1) 关于量化表
使用图片自动生成,还是做个flash自动获取,目前还未定。
(2) 关于远程教学软件
不打算自己实现远程教学,毕竟这种软件已有很多成型产品,本站可以考虑使用UC。
总之,我们会尽力,会做出令大家满意的东西,请大家期待!
[ 本帖最后由 a吾龙 于 2008-11-24 11:35 编辑 ] |
|