Skip to main content

Home/ SoftwareEngineering/ Group items tagged lean

Rss Feed Group items tagged

kuni katsuya

Lean service architectures with Java EE 6 - JavaWorld - 0 views

  • Entity-Control-Boundary (ECB) architectural pattern matches perfectly with our pattern language
  • domain structure is an Entity, the Control is a service, and the Boundary is realized with a facade
  • In simpler cases the facade and service can collapse, and a service would be realized only as a facade's method in that case
kuni katsuya

Lean service architectures with Java EE 6 - JavaWorld - 0 views

  • DAOs aren't dead, but they cannot be considered as a general best practice any more. They should be created in a bottom-up, rather than a top-down, fashion. If you discover data-access code duplication in your service layer, just factor it out to a dedicated DAO and reuse it. Otherwise it is just fine to delegate to an EntityManager from a service. The enforcement of an empty DAO layer is even more harmful, because it requires you to write dumb code for even simple use cases. The more code is produced, the more time you must spend to write tests and to maintain it.
  • With JDK 1.5 and the advent of generics, it is possible to build and deploy a generic, convenient, and typesafe DAO once and reuse it from variety of services
  •  
    DAOs aren't dead, but they cannot be considered as a general best practice any more. They should be created in a bottom-up, rather than a top-down, fashion. If you discover data-access code duplication in your service layer, just factor it out to a dedicated DAO and reuse it. Otherwise it is just fine to delegate to an EntityManager from a service. The enforcement of an empty DAO layer is even more harmful, because it requires you to write dumb code for even simple use cases. The more code is produced, the more time you must spend to write tests and to maintain it.
kuni katsuya

Lean service architectures with Java EE 6 - JavaWorld - 0 views

  • key ingredients of a service-oriented component: Facade: Provides simplified, centralized access to the component and decouples the client from the concrete services. It is the network and transaction boundary. Service: The actual implementation of business logic. Domain structure: This is a structure rather than an object. It implements the component's persistence and exposes all of its state to the services, without encapsulation.
  • This convention not only standardizes the structure and improves maintainability, but also allows automatic dependency validation with frameworks like JDepend, Checkstyle,  Dependometer, SonarJ, or XRadar. You can even perform the validation at build time. If you do, the continuous build would break on violation of defined dependencies. The rules are clearly defined with strict layering: a facade may access a service, and the service a domain object, but not vice versa
kuni katsuya

Around the World in Java: JBoss AS 7: Catching up with Java EE 6 - 1 views

  • JBoss AS 7.0.2 (Full Profile)
  • JBoss AS 7, claiming to be lightning fast
  • Eclipse Integration
  • ...28 more annotations...
  • JBoss AS Tools
  • able to deploy my application directly from the workspace
  • bad news is that JBoss AS 7 does not currently support other persistence providers like Eclipselink, OpenJPA or DataNucleus
  • GlassFish and Resin, you can simply drop the JARs of your preferred provider and its dependencies in a designated folder of your server installation and edit your persistence.xml to override the default provider of the server
  • JBoss AS 7 appears to require an adapter per persistence provider, which to me looks like an unfortunate and unnecessary design decision
  • potential to take over the lead from GlassFish
  • documentation continues to be sketchy and far below the standard of JBoss AS 5
  • surprisingly lean and fast
  • top-level performance
  • classloader leaks
  • productivity issues of the Eclipse integration
  • lack of support for JPA providers other than Hibernate
  • Each of these is currently a blocker for using JBoss AS 7 in production
  • Redeployment
  • after a couple of redeployments, there was an OutOfMemoryError
  • new classloader leak
  • JBoss AS 7: Catching up with Java EE 6
  • Performance measurements
  • JBoss AS 7.0.2
  • GlassFish 3.1.1
  • Empty server startup time 1.9 s
  • 3.2 s
  • Empty server heap memory 10.5 MB
  • 26.5 MB
  • Empty server PermGen memory 36.3 MB
  • 28.4 MB
  • MyApp deployment time 5.8 s
  • JBoss AS 7 is now at a competitive level with Resin and Glassfish and actually outperforms Glassfish in almost all of these tests
kuni katsuya

15 Tips on JPA Rich Domain Modelling - Thinking In Objects - Not Mappings [For Greenfie... - 0 views

  • [For Greenfields]
  • Try to identify concepts and abstractions from the target domain. Use them as candidates for entities.
  • Do not obfuscate them with additional technical naming conventions like XYZEntity or "BOs".
  • ...10 more annotations...
  • Write unit tests
  • without involving the EntityManager
  • - Thinking In Objects
  • JPA Rich Domain Modelling
    • kuni katsuya
       
      strategy to use when less or unconstrained by legacy db schema baggage. ie. the *proper* and *ideal* way to model domain classes... using oo, not dumb structs!  :)
  • Build objects, not structs
  • Think about builders
  • Let the tool (JPA-provider) generate the DDL
    • kuni katsuya
       
      generated ddl can be optimized by hand if required
    • kuni katsuya
       
      eg. see step 12 below
  • Provide a lean facade/service layer
  • only contain crosscutting concerns
1 - 6 of 6
Showing 20 items per page