по тому, какие требования к конечному продукту, приложение разделяется по слоям, проводится факт чекинг DTO, не DTO, монолит/не монолит, GraphQL/не GraphQL, и уже в самом конце, если все норм, решается, ООП/не ООП, даже после выбора БД SQL/не SQL
а не по принципу знаю/не знаю, люблю/не люблю