实践出真知,B/S系统开发实践出From11

1       From11概述

1.1    From11是什么

From11,读作 from幺幺 ,是一套功能丰富、代码简洁、逻辑严密、符合J2EE规范,非常适合敏捷模式开发的B/S系统开发框架。

 

From11建立在丰富的实践基础上,并借鉴多种开源代码的优秀设计思想。主要借鉴了:

?         Spring的控制反转(IoC)思想,解耦了代码的强度关联,提高了开发的灵活性。

?         Tapestry的显示组件化思想,简化、统一了页面的开发。

?         StrutsTapestry的客户端访问路径控制思想,使得访问安全策略的定义变得相当简单。

?         HibernateSQL封装思想,实现数据出入库操作的简洁、统一。

?        prototype,一套优秀的实现了ajaxjavascript函数。

1.2    From11的功能特点

1.2.1   功能丰富 

From11涉入了html + javascript + java /xml + SQL的所有环节,为B/S系统的整个开发过程都提供了有力的支持。

?         逻辑控制。如果只是对一个规则数据表的增删改查(所谓规则数据表就是有且仅有一个自增字段作为主键或者有一个或者多个非数字型的主键的数据表),则不需要写一行java代码。如果不幸数据表比较复杂,例如有关联,或者需要对数据进行一些特殊的加工处理,则需要在配置文件中多写几个配置项,或者把加工处理的代码封装到一个特殊类的函数下面,但需要做的事情也仅限于此,绝不会让您为了适应框架而多写一行代码。 

?        数据出入库。只需要写类似SQLFQL语句,所有事情,例如数据入库前校验、事务处理等,框架都自动完成

1.2.2   适合敏捷开发

我们认为“敏捷开发”的本质在于“修改容易”。要做到这点,需要

?         大结构基于SOA(分解)

?         小结构面向过程(分层)与面向对象(相似)合理使用,

?         重视开发环境对灵活性的要求。

按照上面的思路,我们把From11定位为解决“小结构”问题,我们不讨论面相过程和面相对象的优劣,我们需要的是合理、实用、简洁。From11基于MVC的分层原理,如下图:

上图中的fqls.xmlvvs.xmlFrom11中分别为数据出入库和数据显示实现简洁、统一的目标而分离出来的配置文件。ct文件是 From11的逻辑控制文件,本质上它就是一个容易理解和书写的xml文件。 htm文件是一种嵌了From11组件的html文件。From11的这种结构决定了用它进行应用开发时java代码会很少,大部分逻辑控制,页面显示,数据出入库都可以通过xml文件实现。

 

1.2.3   尽量简化应用程序开发

我们认为在应用程序开发过程中,

?         初期开发时,多一行代码只是多敲几次键盘,

?         迭代修改时,多一行代码就是多一分复杂,

?         运行维护时,多一行代码就是多一处隐患。

因此我们在设计From11时,尽量减少应用开发程序员的代码量,能够抽象提炼到框架中的,都放到框架中,能够通过XML文件进行配置实现的,就尽量不用硬编码的代码实现。

1.2.4   集成ajax

From11利用ajax方式实现客户端与后台的交互,提供良好的用户体验。利用From11,应用开发人员不需要做任何的ajax特殊处理,开发出来的应用程序就自动拥有ajax的特性。

1.2.5   数据合法性自动检查

对用户录入的数据,From11根据它在数据库中对应字段的属性(数据类型,数据长度,是否空等)自动进行入库前合法性检查(From11也支持客户端检查,这可由部署人员部署时配置)。大部分情况下,应用开发人员不用再考虑对用户录入数据的合法性检查问题。

1.2.6   自动处理数据库事务

利用From11开发应用程序,数据库的事务处理全部在框架里面实现,应用开发人员在业务处理时,如果需要用到数据库,只需从框架获取数据库连接,直接拿来使用即可,不用关心事务处理问题和连接的关闭问题。当然,From11也允许开发人员自己掌控获取的数据库连接,以实现更细粒度的事务处理。

1.2.7   简洁的安全控制

借鉴struts,JSF,Tapstry在路径安全控制方面的经验,利用From11开发应用程序只需要对功能实现的中心文件——ct文件进行路径安全控制,就可以完全控制用户对系统功能的访问权限。

1.2.8   适应开发和生产环境

开发环境对速度要求较低但对灵活性要求较高,程序员通常要求任何一处修改都能立即反映到运行结果上,而不是要在重启应用或者重新发布后才能看到结果。通常,在进行J2EE开发时,程序员对灵活性的要求很难得到满足,而From11通过合理分离代码和利用一些简单的配置,既满足了开发环境对灵活性的要求,又保证了生产环境对效率的要求。

1.3    From11的适合人群

From11的适合人群,至少需要具备以下条件:

?         html + javascript + java + sql B/S系统开发相关人员。

?         对开发框架在开发任务中的作用有一定的认识。

或者

?         From11有强烈的好奇心。

 

 

具有下面条件能加速您对From11的认识:

?         曾经被中文编码问题困扰过。

?         为国际化问题苦恼过。

?         认为页面数据的javascript校验太繁琐。

?         欣赏ajax的优势,但感觉有些复杂。

?         为列表浏览画面的繁琐任务,如查询、分页、跳转等而烦躁。

?         有过页面状态维持不当造成页面显示和系统数据混乱的经历。

?         对数据出入库时需要写大量乏味的代码做过简化的努力。

?         吃过数据库事务处理不当的苦头。

?         吃过数据库连接漏关掉的苦头。

?        B/S系统普遍的调试不方便有满肚子抱怨。

1.4    From11的软件开发观

?         软件开发是一个制造过程,更是一个设计过程。制造的是软件代码,设计的才是软件系统。

?         KISS(Keep It Simple&Stupid)原则。在简单自然与复杂别扭之间,没有人会选择后者(官僚除外)

不可否认,所有软件企业的管理者都希望软件开发就是软件制造,因为“制造”就可以模式化、数量化,管理就可以KISS化。但很遗憾,不管软件研究人员怎么努力,软件开发都还是没摆脱“设计”的成分。没有意识到这一点的管理者用KISS化的管理手段只能管理出一个混乱的团队和一堆混乱的系统。类似有一个现成的例子:为什么中国的科技界得不到诺贝尔奖为中国的科技界是KISS化管理。

代码是人写的,因此代码出错就是难免的。怎样实现尽量少出错误呢了程序员自身因素外,控制代码量、提高开发方便性是两个重要的手段。代码少了自然出错的地方也就少了;开发方便了自然开发效率就提高了,避免错误和调试纠正错误的可能性也提高了。这都需要在设计上和开发框架选择上下功夫,而后者尤其重要。合适的框架不仅提高了开发方便性,对整个系统的设计也会产生重要影响,因为好的设计出自设计人员对功能需求的准确把握和对实现逻辑的清晰判定,而要对实现逻辑有清晰的判定则必须结合开发框架。

From11除了自身的开发遵循KISS原则外,更坚持在From11上进行的开发任务也KISS的原则。

1.5    From11的名称来历

02年,一大型软件企业到某地招聘,一位负责招聘的女士说了一句话,大意是:如果你写了三年代码了都还在写代码,那说明你该转行了。在很多行业,三年,顶多够刚成为熟练工,在编码行业,居然就该退休了

From11——From One to One,意即一步一步来。我们就是要旗帜鲜明的宣称:

编码业和其他行业一样,同样需要伴随了思考探索的经验积累,甚至更需要这样的积累。编码业的发展需要编码者一步一步走下去,而不是刚走上正轨就以为达到了终点。

相关资源:Scrum敏捷软件开发_敏捷开发-专业指导文档类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2010年1月8日
下一篇 2010年1月8日

相关推荐