This linter can really enforce some best practices https://github.com/sqlfluff/sqlfluff
A list of best practices: https://docs.getdbt.com/guides/legacy/best-practices
And shameless plug but there's a chapter on modeling in my book: https://theinformedcompany.com