На самом деле нет ничего плохого в процедурном развитии.Вы можете написать хорошие и удобные в использовании приложения.Однако то, что вы часто видите, - это применение процедурных практик к языку OO.
Причина может быть в том, что программист просто приходит из неOO языка, такого как C, и пытается адаптировать свои знания к новому языку.Может также оказаться, что приложение настолько простое, что процедурный подход подходит лучше всего.
На мой взгляд, правильным подходом было бы определить, какое приложение вы хотите создать.Если вы знаете, что вы можете выбрать желаемую платформу и язык.Но это не всегда возможно, так как платформа и язык уже определены (руководством или около того).
Написать приложение на чистом ОО не так просто, как кажется.Особенно узнать вашу модель домена (на которой вы основываете дизайн своего приложения) может быть сложно.Но если у вас есть эта модель в моем опыте, то довольно легко создать ОО-приложение, маленькое или большое.Конечно, очень важно знать все потоки (варианты использования, процессы / процедуры (!)), Чтобы иметь возможность определять отношения в вашей модели.
Большой подводный камень для ОО - это чрезмерный дизайн.Сотни классов с наследованием и тому подобным.В результате вы получите раздутые приложения с функциональностью, которая этого не заслуживает.
Чтобы сделать этот длинный рассказ коротким: проясните для себя природу ОО и природу других парадигм и подумайте, что лучше дляприложение, которое вы хотите построить.В качестве практики вы можете также создать приложение как OO, так и процедурно, и посмотреть, что вы можете из этого извлечь.
Говоря о себе, я почти всегда использую OO для приложений на C # (или Java), также простых.Глубина модели варьируется также в зависимости от сложности и ремонтопригодности.Обычно я делаю прототипы с несколькими вариантами, и после этого решаю о моем окончательном дизайне (совет: всегда рисуйте / проектируйте свои модели!).Тем не менее, я не верю, что парадигма ОО подходит всем.