# SEE 03.08.2022 Notes - Contribution guidelines, Standards, Naming Convention ## Overview / Current contex ## Goals of the meeting - Typings - Efficient data loading - Interfaces, Abstract Classes, Classes - TypeORM vs GraphQL split in the codebase - **Domain boundaries & service usage + patterns / architecture** - **Naming conventions** ## Agreements - Types - src/types for types that are attached to a module or an external package - new types / interfaces added in the same folder as the domain / service logic - any can be used in tests - we add types when we are adding new domain / service logic before it's merged to develop - external packages types fixed before prototyping epics are closed - fixing the types should be in the AC of the Epic - Efficient data loading - Lightweight wrappers in the services around the repositories key methods e.g. FindOneBy, FindOne, FindMany etc. (whatever is needed) - Select only data that is needed, if not all eager loaded relationships will be queried - Use findOneOrFail + rethrowing the exception instead of findOne returning undefined + throw error - Interfaces, Abstract Classes, Classes - follow up spike about changing the return types of typeorm method wrappers to the TypeORM derived objects ## Follow ups - Discuss exception handling, error propagation, stack trace, rethrowing - Update typeORM ###### tags: `SEE`