pythonarchitecturedevelopment-environmentzope

Zope: Best pratice to develop enterprise grade application


I've many legacy applications developed in Zope and I want to evolve them to enterprise grade apps. But I didn't find sufficient documentation to develop a "modern" app in Zope:

Where can I find documentation, samples and best practice to do my task?

The standard Zope documentation is old and incomplete to my scope.


Solution

  • First I would try to get an overview of the state of the applications. Which Zope version are they running on? Note that the widely spread version 2.13 (or even lower) is no longer maintained, see https://www.zope.dev/developer/roadmap.html

    If you know what you have, you can estimate the effort to port them on a supported version, or whether it makes more sense to replace the applications.

    how can I integrate Products.PluggableAuthService

    The plugin has a pretty good documentation, see https://productspluggableauthservice.readthedocs.io/en/latest/ - also have a look in the example plugins. If you have specific questions, I would suggest you to ask in the following forum - https://community.plone.org/

    ORM: how can I use an ORM to abstract data model in my stack?

    For Zope applications, you usually don't use an ORM. The model classes inherit from Persistent or similar.

    Application Architecture: may I build a Product for each Model or for each View? Or there is another way to organize the application?

    Usually, one product contains the model and the necessary views, but you can certainly also develop the applications in just one big folder. That depends on your preferences and how big the team of developers is.

    Versioning and Deploy activity.

    For versioning I just used git, as everybody nowadays.

    For deployment, there is buildout, or pip with requirements.txt or ansible or what I used ... https://batou.readthedocs.io/en/stable/

    Where can I find documentation, samples and best practice to do my task?

    You could look at Plone, as Plone is a pretty modern Zope application.

    The standard Zope documentation is old and incomplete to my scope.

    The Zope documentation partly has been updated for Zope 4. As a matter of fact, the documentation is just too extensive, the team of maintainers is pretty small, and "nobody" starts a new Zope project nowadays.

    What actually happens - it gets updated now and then when work is done on e.g. a changing behavior, then also the documentation gets updated.

    Try to work with the documentation, and when you notice something outdated, try to fix / update it, that is the way I learned to work with Zope.

    Other than that - I think it is pretty awesome, that Zope is still alive, working, and security patched within days as it is already more than 20 years old and the number of maintainers is pretty small.