浏览模式: 标准 | 列表 全部文章

慢速软件开发

大家也许听说过软件工程领域有一本经典的图书叫做“快速软件开发”,快速开发似乎一直是软件开发者追求的目标,但具体实践告诉我们快速似乎总是与质量对立,很多时候我们不得不为之前的快速付出后期的代价,那么看看这篇文章,也许你会有新的感受。

» 阅读全文

Tags: 软件开发, 软件工程

Grails开发笔记 - 如何输出SQL Log

Hibernate是一个流行的Java对象关系映射框架,grails的数据访问层GORM就是建立在Hibernate的基础上。Hibernate 能够根据配置自动生成sql语句,使得程序员可以随心所欲的使用对象编程思维来操纵数据库。然而如果使用不当,往往容易造成性能问题,例如N+1次查询问 题。在开发过程中,常常需要通过查看Hibernate生成的SQL来对数据访问层进行调优。Grails使用了Log4j作为日志组件,因此可以像传统 的基于Hibernate的Java项目那样,通过配置Log4j来达到输出Hibernate SQL Log的功能,这里就不再详述。Grails提供了两种更加简单的方法:

1.修改config.groovy文件中的log4j configuration,把hibernate="off"改成hibernate="on",这样就可以输出Hibernate运行的详细日志,包括SQL Log。

2. 一般情况下,我们不需要方法1输出的详细的日志,仅仅需要输出SQL Log,可以DataSource.groovy中的数据库环境配置(environment specific settings),例如在development的dataSource中添加logSql = true即可。

  1. // environment specific settings 
  2. environments { 
  3.   development { 
  4.     dataSource { 
  5.       dbCreate = "update"  
  6.       url = "jdbc:hsqldb:mem:devDB" 
  7.       logSql = true 
  8.     } 
  9.   } 

 

Tags: grails, sql

Grails开发笔记 - 如何改变默认主页

grails为开发者提供了一个controller列表的默认主页,在开发时用起来确实很方便,但总不能把它用到产品环境下吧。可是在grails- app/views下面怎么找不到这个文件,也没有哪个controller和主页相关?实际上这个默认的主页独立放在web-app下,文件名是 index.gsp。

» 阅读全文

Tags: grails

Grails开发笔记 - 立即加载和延迟加载

使用ORM时,常常碰到N+1次查询的问题。hibernate采用立即加载(eager load)和延迟加载(lazy load)来解决这一问题,GROM建立在Hibernate的基础之上,理论上同样适用。但事实如何?

» 阅读全文

Tags: grails, hibernate

Play with Play! - 一个Rails-like...

由于java语言的局限性,实现一个rails-like的Java开发框架一直是一个难题。在Java上想体验Rails-like的开发模式,只能选 择grails或者jruby on Rails。然而这两种框架都是动态语言实现的框架,只是基于JVM而不是基于Java语言本身。动态语言确实有很多优点,但往往难以调试。是否有一个 Java语言实现的Rails-like框架?答案是Play!

» 阅读全文

Tags: play, java, rails, grails, jruby, 框架, hibernate