重拾Grails - 内部办公系统开发日记

[size=medium]
开发环境版本号
GRAILS_HOME=/workspace/javaspace/grails-2.2.0
TOMCAT_HOME=/workspace/javaspace/apache-tomcat-7.0.34
JAVA_HOME=/workspace/javaspace/jdk1.7.0_10

开发环境重装流程
1. 安装IDEA
2. 安装JDK
3. 安装Grails,版本要和SVN上的版本一致
4. 在IDEA里创建一个空项目(相当于执行了grails create-app命令)
5. 运行grails install-templates命令(web.xml在这里)
6. 从SVN check out文件夹:
1) 我创建的文件,如domain、controller下载下来
2) 我修改的文件,如Datasource.groovy等,会与默认的本地版本冲突,但不会覆盖本地文件,这时需要人工diff一下,将SVN的版本覆盖本地版本。
7. 安装插件
8. 启动测试

SVN原则:只保留我编辑过的文件,自动生成的文件没被修改过的话就不上传。
[/size]


------------------华丽分割线-------------------------

公司内部需要一个OA系统,考察了一圈开源CRM啥的,功能强大到繁琐,但又缺少我们需要的功能。于是,决定重操旧业,下载了IDEA、JDK7、Grails,我来自己做一个吧,就当是对老本行的缅怀。

[b]12-12-11[/b]
大概花了一周的空余事件,一边构思MYOA(我起的系统名字,哈哈)的Module部分,一边学习Grails的基础、回顾IDEA。总的来说,Grails真的很敏捷,也较容易上手,[color=red]自动生成出的代码就是学习最好的入口[/color]。
[b]12-12-12[/b]
完成google subversion的配置,学习了[color=red]layout[/color]标签。至此了解了MVC三个层面最基础的“约定”。
[b]12-12-13[/b]
解决grails+[color=red]mysql[/color]存取中文的问题
[color=blue] mysql CREATE SCHEMA `myoa` DEFAULT CHARACTER SET utf8 ;
DataSource.groovy url = "jdbc:mysql://localhost/myoa?useUnicode=true&characterEncoding=UTF-8"[/color]
完成Project-Company-Employee模型的设计,完成自定义约束的设定

[b]12-12-15[/b]
深入研究了[color=red]belongsTo[/color]、hasMany、hasOne的作用
[b]12-12-16[/b]
深入阅读了controller和gsp章节
[b]12-12-20[/b]
掌握了layout、URLMapping的基本使用。下载了两套免费的css模版,完成主页。 发现Company-Employee-User之间出现循环FK,重新设计User,解除循环关系。
[b]12-12-22[/b]
完成基本的create、list、show功能。 update和delete比较复杂,以后再弄。
[color=gray](元旦前出差了一周,加上过了个元旦,有两周没coding了)[/color]
[b]13-1-4[/b]
优化gsp页面,使用了[color=red]template[/color]功能,可不要把它当成简单的include哦,真是老强大,竟然可以识别到domain的继承关系(这是IDEA的功劳)。
[color=blue]--/template/_createdBy2.gsp
${trace.createdBy.name}
--company/show.gsp
<g:render template="/template/createdBy2" model="[trace: company]"/>
--employee/show.gsp
<g:render template="/template/createdBy2" model="[trace: employee]"/>[/color]
引入了CKEditor富文本编辑器,再次被Grails的插件系统震惊,第三方框架都被视为插件,安装、管理起来非常方便。
[img]http://dl.iteye.com/upload/attachment/0078/8216/b00e1e6c-56f8-3c26-8575-65f6088f6b2c.png[/img]

[b]13-1-6[/b] css是下载的模版,但是还是需要整理一下,折腾了两天,头都晕了,前端不是俺强项呀。还要兼顾浏览器的兼容性。。。把margin, padding先归零是个好办法。
[b]13-1-7[/b] 雏形已经有了,目前有两个技术难点:权限控制,这个好难呀。并发更新,这个应该可以利用grails自带的version(乐观锁)来实现。
[b]13-1-8[/b] 官方文档是个好东西,看了一下12章关于安全的内容
[quote]12.1Securing Against Attacks 列举了一些网站攻击的例子,从各种注入到钓鱼网站
12.2Encoding and Decoding Objects 编码、解码对象
12.3Authentication 认证方式:简单的可以通过filter或interceptor实现,复杂的就用安全框架
12.4Security Plugins
12.4.1Spring Security
12.4.2Shiro[/quote]

[b]13-1-9[/b] 完成在三种环境下的部署:mac、windows、linux (tomcat+mysql)
[b]13-1-19[/b] 又出了一周的差,加上把mac弄坏了,暂时没电脑coding了。不过今天的重大成果是申请到了阿里云的主机试用,把[url=http://42.96.149.175:8080/myoa]系统部署[/url]上去了,好有成就感。
[b]13-1-21[/b] 完成利用excel导入数据的功能,再次看到插件体系的强大
[b]13-1-23[/b] 完成报销模块的; 在云主机搭建了SVN环境,目前可以SVN下载源码,然后编译发布,并且可以连云主机上的mysql了。
[b]13-1-24[/b] 完成上传报销明细功能;初步学习了service的使用,依赖注入。
[b]13-1-25[/b] 利用service层,极大优化了文件上传和excel导入功能。提高代码重用,让controller不再臃肿。
[b]13-1-26[/b] 各种优化工作:SessionTool, 验证, 自动利用excel第一行生成POI的config map。 下一步的工作重点需要引入自动化单元测试模块,不然功能一多,没有自动化测试模块,很容易出现漏洞、bug
[b]13-1-28[/b] 学习引入shiro权限管理框架,实现功能级控制(控制uri),下一步是数据级限制(控制row)。
[b]13-1-29[/b] 继续研究shiro,强大的Grails又成了双刃剑,好的是只需要寥寥几句,竟然就实现了“访问控制”功能; 坏处是不知其所以然,好在用IDE的单步运行,找到了一些动态方法的根源,清晰了很多。 然后又花了大半天的时间做了个permission string生成功能。

[b]13-2-19[/b] 春节休假完毕,继续。
完成edit-update功能
完成i18n国际化,支持中英文

[b]13-2-20[/b] 深入研究字符集,国际化。
CRM功能基本完成

[b]13-2-27[/b] 复合索引、报销功能的数据级权限
[b]13-2-28[/b] 集中梳理:company、employee、报销、user界面,包括国际化、权限
[b]13-3-10[/b] 利用闭包完美优化了二级数据级权限控制的部分,闭包好方便
[b]13-3-16[/b] 经过最后一阶段的整理、细节,正式上线。开发工作告一段落,我要去学几天Oracle了。

[img]http://dl.iteye.com/upload/attachment/0081/8730/c8dd9730-7417-3141-ab62-18eee0bb5b0a.png[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值