Я всегда программировал на процедурных языках, и в настоящее время я двигаюсь к объектной ориентации. Основная проблема, с которой я столкнулся, заключается в том, что я не вижу способа эффективно практиковать объектную ориентацию. Я объясню свою точку зрения. Когда я изучал PHP и C, было довольно легко практиковаться: нужно было просто выбрать что-то и подумать над алгоритмом для этого.
Например, в PHP было просто сесть и подумать: «Ну, просто на практике, позвольте мне создать одно приложение с областью администрирования, где люди могут добавлять продукты». Это было довольно легко, нужно было придумать алгоритм регистрации какого-либо пользователя, авторизации пользователя и добавления продуктов. Сочетая их с возможностями PHP, это был хороший способ попрактиковаться.
Теперь в объектной ориентации у нас много дополнительных вещей. Это не просто вопрос об алгоритме, а более глубокий анализ требований, написание сценариев использования, вычисление диаграмм классов, свойств и методов, настройка внедрения зависимостей и многое другое.
Главное, что в том, как я изучал ориентацию на объекты, кажется, что хороший дизайн имеет решающее значение, тогда как в процедурных языках достаточно одной смутной идеи. Я не говорю, что на процедурных языках мы можем написать хорошее программное обеспечение без дизайна, просто для практичности это возможно, в то время как в объектной ориентации кажется невозможным обходиться без хорошего дизайна, даже для практики.
Это кажется проблемой, потому что если каждый раз, когда я собираюсь попрактиковаться, мне нужно выяснить тонны требований, вариантов использования и так далее, то, похоже, это не очень хороший способ стать лучше в ориентации объекта, потому что это требует у меня есть одна целая идея для приложения каждый раз, когда я собираюсь практиковать.
Из-за этого, каков хороший способ практиковать объектную ориентацию?