Skip to content

Conversation

@Amitsouko
Copy link
Contributor

Traduction de la documentation française vers l'anglais.

Pour une meilleure lisibilité, faites un git clone du repo, et ouvrez les fichiers src/en/*.md (sources) ou bien ouvrez les fichiers docs/fr/*.html (build)

## Theme creation

A theme is created from a Symfony bundle.
The benefit of this consist in activing and sharing Synapse themes as well as bundles, and gathering all resource types inside : templates, configurations, routes, assets...
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

activating

Today, on the web, successful people are the those who think up, who innovate, who have a efficient and reliable operating system. They need to master their information system. However, each module delivering a business service brings technical debt in the system: if the company innovates, the module will not fit to the need anymore and will be replaced. This is often expensive, furthermore if some dependencies from the rest of the system are involved.
Let's take a step back from this statement : what if not only the wheel, but the whole vehicle which are not invented ? Everything potentially needs to be redone. But, as long as we can drive in city, no issue. Concerning driving on a circuit, there is a step.

It is there Synapse creates value : no wheel is proposed but tools to build your own. It takes time and energ to build a wheel. But this wheel will fit to the driver.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

energy


It is there Synapse creates value : no wheel is proposed but tools to build your own. It takes time and energ to build a wheel. But this wheel will fit to the driver.

Here we close the"custom vs out-of-the-box" debate.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

space after "the"


Synapse owns a non-intrusive interface with the rest of the project, systematically fostering decoupling, sometimes costing more complexity to stay in the isolation logic, in order to avoid side-effects and intempestive dependencies.

To conclude and sum up previous outlined isseues, Synapse is oriented for "custom" project developers who don't want to be part of the wheel of a whole system. Synapse suits to any projects, particularly to applications with plenty of management rules.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issues

# Architecture and bias

Let's go into further details : how Synapse allows to have a strong content management without strong coupling ?
Firstly, it is thanks to the two popular design patterns, particularly in Symfony : Deorator (Templating component) and Prototype (Form component).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Decorator

As previously described, Synapse is non-intrusive for the project which includes it.
To that end, an inversion of control is implemented between business objects and the Synapse model, through the notion of __content type__.

Traditionnally, when it is possible to implement custom models, it results to hard code the include of the librarie in the business model, either by abstract class / inheritance, or by composition. In both cases, the business model is hardly linked to the librarie : dedicated methods are implemented, thereby the architecture include a constrainst.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

library


Traditionnally, when it is possible to implement custom models, it results to hard code the include of the librarie in the business model, either by abstract class / inheritance, or by composition. In both cases, the business model is hardly linked to the librarie : dedicated methods are implemented, thereby the architecture include a constrainst.

Synapse take the counter of these habits by throwing off the strong bond with the business object : it will never directly take action, it just decorate the object through its own model. The decorated object must just implement the interface, and be referenced in a configuration (refer to [content type configuration](../2_installation_configuration/distributions/1_cmf_bundle.md)).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

decorates


The DX (Developer eXperience) come from a task sharing between coworkers too. The frameworks let each person work efficientely on his task.

In a standard team organisation, containing designers, web integrators and backend developers, mockups are designed by the design team, then integrated in HTML/CSS (and more) by frontend team, and finally "brought to life" by the backend team.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

organization if en_us

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants