For me the hardest part has always been designing data access layer. After trying various strategies I started leaning towards many small focused DAOs like in example below. public class EmployeeService { public Task<EmployeeAnnualReport> GetEmployeeAnnualReportAsync(int id, IGetEmployeeAnnualReportDAO dataAccess) { Employee employee = await dataAccess.GetEmployeeAsync(id); // skipped for brevity } public async Task UpdateEmployeeAsync(int id, EmployeeUpdateInfo info, IUpdateEmployeeDAO dataA...| Recent Questions - Software Engineering Stack Exchange
Write code for human beings to improve developer experience, readability and maintainability| iO tech_hub