它山石寓意一块来自远方山上的石头,不远千里而来,期望成为一块有用的基石。它山石项目始于2004年,不安分的程序员日积月累一点一滴打造这块石头:项目代码 --> 提取抽象 --> 组成框架 --> 搭成平台 --> 开发新的项目......目的就为搭建一个基础平台,把经验积累融汇进去,直接复用于以后的项目。让开发更简单,让代码不重复。
它山石可适用的范围的非常广,大幅提高了开发效率,且降低了开发门槛,同时积累了一定数量的稳定用户群,正是他们的不断使用和反馈,让它山石得以快速成长、完善。在我们多年的亲身实践过程中,基于它山石开发项目或产品,可以显著简化开发过程,缩短开发周期。而且缺陷率更低,便于维护,安全性、扩展性也更有保障。
从前台到后台,它山石做过数次代码重构、模块重组,为每一个功能设计详细的测试用例,它山石后台的测试覆盖率达到99.7%。我们保持每隔2年全盘重构一次代码的节奏,重构是整理,是归位,是吐故纳新,是为了轻装再上阵。在此,我们希望以开源的形式推广我们的产品,抛砖引玉,吸引同道中人交流切磋,它山石欢迎每一位愿意为它贡献代码和智慧的朋友。
我们坚信:它山之石,可以攻玉;它山之石,可以试错。
1、改进附件上传组件,支持批量上传,图形化显示及拖动排序; 2、完善Portal模块,运用到实际门户项目(BD知识库、新颜官网等)
1、模块角色控制改进:分收费角色、免费角色、基础角色、自注册角色; 2、改进取号器的锁机制,消除多线程取号同步问题; 3、支持创建企业域分组; 4、录入表支持自定义事件类、数据权限检测自定义类 ; 5、新增BI接口,任一SQL脚本可直接发布为数据服务,集成权限、缓存等控制; 6、安全过滤机制:对IP来源、访问频次、间隔时间进行限制
1、录入表支持字段自定义,Excel导入模板自定义; 2、支持域管理员自定义流程、切换域下账号; 3、支持短信验证码、图片验证码、邮件验证码登录; 4、数据表(报表)定义 支持覆盖式导入; 5、菜单按钮批量导入导出;
1、模块发布、在线购买支付、自动生成企业域及账号策略、分配账号;及代理机制实现; 2、完善系统安全机制,对白名单内的资源服务进行二次(图形码/短信/邮件)验证; 3、完善消息机制,支持站内信、邮件、短信、微信公众号等提醒; 4、完善流程定义,支持发送提醒、补充、催批、域自定义流程等; 5、完善在线用户库;支持系统重启后,在线用户库自动登录; 6、API验证实现,md5(secret + requestBody.json + timestamp)
1、新增在线调试接口功能(包含所有数据表和报表服务接口) 2、数据表定义支持更多高级配置;数据表导入添加进度条; 3、审批流添加草稿状态;量能监控加"审批流"主题 4、优化在线用户库;精确记录各类日志的访问来源浏览器信息; 5、统一替换操作类图标库为矢量图库;
1、搭建在线文档、案例库 2、部分代码重构,提升测试覆盖率99.2%(276) 3、完善用户操作权限安全控制;API签名机制实现 4、定时器Job维护机制重构,统一到JobDef 5、功能模块发布支持指定 资源列表
1、测试覆盖率98.8%(276) 2、审批流引擎、流程设计器、WFJob、待办提醒 3、数据导入导出支持XLS、XLSX文件(基于POI) 4、按Excel sheet页创建录入表,可多个一次性创建、根据Excel表头快速定义的录入表 5、数据表批量导入完善、取号器实现、数据表导入模板自定义 6、数据表实现回收站功能 7、数据表加透析功能 8、数据表新增后支持后续自定义操作 9、数据表定义界面改进、配置图形化;带数据服务字段下拉列表加刷新功能;数据表支持附件(file)字段类型
1、支持手动执行ETL任务和定时Job 2、企业域支持加辅助组、加强用户修改的安全控制 3、完善员工和用户同步、改进用户移动 4、bi.html 功能导航支持加自定义图标 5、文章列表增加排序功能,全文检索支持权限过滤 6、数据库支持MySQL、PostgreSQL、SQLServer、Oracle
1、完善模块化开发机制,支持模块导入导出(带资源文件) 2、完善数据表设计器 3、SnapshotFilter,抓取演示数据 4、缓存监控、量能监控改进
1、卜贝数据移动端 2、数据录入接口权限控制、支持对外开放API 3、完善对外开放接口、单独登陆等令牌机制 4、数据清洗:Job & ETL Task 5、资源检索功能 6、加强安全机制,密码强度控制和定期修改 7、SAAS之数据按域切分,企业域、开发者域、个人域 8、注册模块重构 9、Matrix机制实现 10、测试覆盖率 98.4%
1、完善report_portlet.html,增加通用查询条件、报表收藏、订阅、分享等; 2、recorder.html完善,支持独立打开或集成到report目录下,统一报表和录入; 3、增加报表、录入定义导入导出功能,引入业务功能划分模块化; 4、提升单元测试覆盖率至97.2%
1、完善接口机制,增加令牌校验; 2、改进录入数据查询排序及报表查询控制; 3、实现仿Oracle的全局临时表机制; 4、提升单元测试覆盖率至93.1%
从上次release至本次release半年多期间,用TSS平台开发了多个物流企业的综合BI系统,极大完善了TSS平台自身: 1、模块代码及测试代码合并,统一开发、测试、发布、维护,将TSS由原先的松散结构调整为一个统一整体; 2、完善底层对象池机制,新增性能监控面板,改进系统性能及稳定性; 3、加强系统安全控制,可配置不同安全等级(共5级),增加录入乐观锁机制及放SQL注入检测等; 4、支持配置多个邮件服务器 5、提升单元测试覆盖率至92.6%
1、增强系统安全 2、完善基于LDAP登录,及账号同步 3、改进异常信息提示的友好性,提升测试覆盖率至91.7%
1、在线管理数据源 2、增加数据报表分享及订阅功能 3、完善Grid、数据服务选择器、耗时查询合并处理等
1、UI重新设计 2、数据录入模块新增批量导入功能
1、数据采集附件维护功能 2、待办事项,使用站内信作为待办流程的提醒及快捷入口 3、将数据导出和定时推送从主服务分离,单独部署,以保障主服务的稳定 4、支持从外部同步用户对角色的授权信息
1、完善门户常用组件 2、给系统参数模块添加监听器列表,参数有变动时自动触发监听器列表里的所有监听器(Job/Cache/参数缓存刷新等)执行操作 3、使用系统参数实现动态新增数据库连接池等缓存池 4、“数据录入”完善:缓存查询条件、复制功能、查询条件级联、权限控制完善(添加浏览数据、维护数据等操作权限)、 删除和修改时记录快照日志、增加自定义查询功能(允许定制脚本条件进行数据过滤) 5、结合report、record、定时模块实现在线配置自动清洗数据功能
1、合并DMS至TSS 2、新增通用数据录入、新增报表推荐功能 3、定时邮件支持按角色或用户组发送 4、CMS文章编辑器完善,自定义附件插入功能 5、提升后台代码测试覆盖率至91%
1、编写TSS及tssJS介绍、安装文档 2、提升后台代码测试覆盖率至90%
1、整理各个基于TSS开发的BI项目,统一升级或迁移至TSS3.0平台 2、升级《百世快运BI:btrBI》至 TSS3.0平台 3、迁移《百世云仓BI:wmsData》至 TSS3.0平台
1、重写Web代码,提取出框架tssJS,兼容各大主流浏览器
1、重写定时任务配置模块,由系统参数模块配置实现。 2、可定时执行报表查询并发送邮件、同步用户、发布文章等
1、开发了第一个基于TSS的扩展系统DMS(数据管理系统) 借此验证了TSS的权限模型及SSO机制的有效性 2、完善了TSS管理后台的管理界面,改用门户生成,可授权 3、基于DMS的百世快运BI2.0发布并上线使用
1、初步解决了浏览器兼容性问题(支持IE及Chrome) 2、提高测试覆盖率至80%
1、第一个可完整运行的版本 2、MVC框架由webwork改成spring mvc,采用restful风格 3、完成前后台重构 4、Junit框架升级至4.6,测试覆盖率提升至70%
1、封装常见组件,包含ajax、dom操作、事件处理、菜单、 消息提示、布局、表单控制、Grid、树等
1、svn --> git,代码从google code迁移至Github 2、oracle --> h2 / mysql 3、tomcat6.0 --> tomcat7.0, 使用servlet 3.0
1、完成自动化构建,生成测试覆盖率报告等 2、放弃使用Ant自动构建测试,使用Maven来跑测试,结合Jenkins实现持续构建 3、引入clover插件统计测试覆盖率 4、完成database schema及数据初始化
1、重构后台代码、理清并统一权限过滤机制 2、完善单元测试,引入内存数据库H2作为单元测试数据库, 引入jetty作为内嵌web服务器测试web层 3、瘦身:砍掉一些不常用的功能点
一个全新的起点,TSS正式扬帆起航。
实践、总结、再实践、再总结......