Which design pattern is followed by Frappe Developers building the framework?


These days I am understanding the design patterns in programming languages. So I have an undesirable curiosity to know based on which design pattern the super awsome Frappe Framework is been developed.

Any lead to this area would definitely influence me moving further in Frappe and digging out the pros and cons of implementing design patterns.


Welcome to the ERPNext fray

For sure MVC Frappe and MVC?

Some trivia - I believe Xerox Parc pioneered Smalltalk and design patterns like MVC to implement the first windows gui, and arguably popularized the first VM-based development environment too.

Apple commercialized that with Macintosh and also too MS with Windows.

Smalltalk still rocks just sayin.

have fun

edit: This article introduces MVC, and how it works in the Ember.js web framework https://developer.mozilla.org/en-US/docs/Web/Apps/Fundamentals/Modern_web_app_architecture/MVC_architecture

edit: Note also this states:

DocType is the basic building block of an application and encompasses all the three elements i.e. model, view and controller. It represents a:

Table in the database
Form in the application
Controller (class) to execute business logic
Single Type
DocTypes can be of “Single” type where they do not represent a table, and only one instance is maintained. This can be used where the DocType is required only for its view features or to store some configurations in one place.

Child Tables
DocTypes can be child tables of other DocTypes. In such cases, they must defined parent, parenttype and parentfield properties to uniquely identify its placement.

In the parent DocType, the position of a child in the field sequence is defined by the Table field type.

1 Like

Frappe was inspired from early semantic web tools like Protege (https://protege.stanford.edu/). I would call this as “metadata driven” design pattern.