GeWorkbench Core: Developers' Point of View

From Informatics

Jump to: navigation, search

Core includes eight packages (they are not organized very clearly, but here is the rough picture):

  1. analysis: support the abstract analysis
  2. bison: data type
  3. builtin: internal, mainly the project panel related. The packages are all under builtin.projects, so it should have been called 'projects' in the first place.
  4. components: parser and data format
  5. engine: mainly configuration and management mechanism
  6. events: as named
  7. util: as named

The guide line:

  • We should not add anything in core if it is for one particular component and its feature.
    • Sometimes we have to add to core as the only feasible way to support certain feature/component, but we should try to avoid doing it.
    • From the implementation point of view, the only dependency among the core and all components should be the dependency of individual component on the core.
  • We should refactor the code and jar file INTO the core if they are used or will potentially be used by more components.

If something is in core, it does not mean it was the best/correct design. The precedents in existing code should not be used as justification that we should continue to do similar things.

Personal tools