---
# System prepended metadata

title: 'SEE 03.08.2022 Notes - Contribution guidelines, Standards, Naming Convention'
tags: [SEE]

---

#    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`