Skip to content

Latest commit

 

History

History
11 lines (8 loc) · 2.24 KB

4-frameworks.md

File metadata and controls

11 lines (8 loc) · 2.24 KB

Frameworks.

Most projects have a set of common needs and demands. Usually, the best option to fill these gaps is using an already existing solution, commonly adopted, supported and maintained, such as an AppExchange managed package. When managed packages do not really cover the needs, or do not even exist, often the customer has also the possibility to build something by itself. Alternatively, there is also an option to use free AppExchange package or open-source frameworks, although these are not officially supported and maintained by Salesforce or any vendor. Despite the lack of official support of maintenance, some of this frameworks are really trustable since they are currently being actively maintained and has reach a very robust status of quality, after being used by several years in hundreds of projects by thousands of developer who actively contribute to improve them day to day. Our recommendation is to use the following frameworks for the following gaps, rather than building something custom for the project ourselves, since these open-source solutions are much better than what we could build and the do not require effort or time to be created, but just to learn how to use them. Besides since they are open-source, we will always have full access to the source code to read and understand it so we can also modify, change, or extend accordingly.

Our main frameworks in the project, all of them implemented under the MIT license, would be delivered as an unlocked packaged and only contain the relevant subset of features that is actually used in this project. The customer could choose build something custom for the project, but they do not have a managed paid alternative.

  • NebulaLogger: as our logging framework. No considerable alternatives.
  • apex-domainbuilder: as our test data framework. An alternative to the old-fashioned TestDataFactory patterns.
  • apex-mockery: as our test mocking framework. Possible alternative could be Amoss, fflib-apex-mock is much heavier.
  • apex-trigger-actions-framework: as our trigger framework. No considerable alternatives. Other trigger frameworks are simply not as good as this ones.
  • soql-lib: our framework for the selector layer to centralize database queries. fflib-apex-common is too heavy and a bit obsolete.