[Cubicweb] What if we were to redo CubicWeb ?

Dimitri Papadopoulos Orfanos dimitri.papadopoulos at cea.fr
Tue Jun 10 14:23:24 CEST 2014


Hi,

If I understand you correctly, the following falls into "Agile
development". I'm merely repeating what you have already written, just
providing some comments/details:


CubicWeb (like most databases as far as I know) lacks support for
managing schema modifications. Currently one needs to:
* modify the schema,
* write the migration script,
* optionally rewrite import scripts,
* change views,
* ...???

Some automation would help, for example the migration script could be
(partially) inferred from the schema changes. I do understand this is
*not* straightforward.

Dimitri

Le 10/06/2014 12:31, Nicolas Chauvat a écrit :
> Hi List,
> 
> Five of us played a little game last friday, that could be called "if
> we were to redo CubicWeb, how would we do it?". The result is pasted
> below and you will see that it is trying to stay focused on design
> goals, not on implementation choices.
> 
> -----------8<-------------------8<-----------------------------
> 
> Design goals for CubicWeb
> =========================
> 
> RQL for the end-user
> ---------------------
> 
> - the end-user must be able to write queries and not be limited
>   to queries embedded in the source code of the application
> 
> - the terms of the schema must be usable to write queries
> 
> - the security and access rights must be defined in the schema
> 
> - the schema should be mapped flexibly to the underlying database schema
> 
> Building apps with components
> -----------------------------
> 
> - use registries to plug components (cubes), override existing
>   behaviour and favor reusability (too bad if OOP and inheritance is
>   not easy any more)
> 
> - have components for data schema and data behaviours
> 
> - have compononts for user interface and user interface behaviours
> 
> Web Native
> ----------
> 
> - each object must have a URL and be referenceable from outside the app
> 
> - it must be easy to use URLs to reference external objects
> 
> - REST (Representational State Transfer)
> 
> - HTTP usable for data manipulation
> 
> - it must be easy to develop a user interface with javascript and HTML5
> 
> Exemple-driven user interface
> -----------------------------
> 
> - it must be possible to "write" queries by using the mouse (see cube
>   searchui and definition of Query By Example in wikipedia)
> 
> Agile development
> -----------------
> 
> - easy to change schema and migrate existing data
> 
> Data IO
> -------
> 
> - easy and fast to load large amount of data
> 
> - easy to load data with a different data model
> 
> -----------8<-------------------8<-----------------------------
> 
> Hope this is of interest, please share your comments !
> 

-- 
Dimitri Papadopoulos
CEA/Saclay
I2BM, NeuroSpin
F-91191 Gif-sur-Yvette cedex, France


More information about the Cubicweb mailing list