Во-первых, отказ от ответственности: я не знаю, подходит ли этот вопрос к этому сайту, но я все еще считаю его актуальным не только для меня, но и для других начинающих людей. Если вопрос может быть улучшен, чтобы соответствовать здесь, пожалуйста, укажите в комментариях. Если это не подходит, дайте мне знать и, если возможно, дайте мне знать, где это можно обсудить, потому что я не нашел хороших форумов для этого.
Я научился программировать в 2009 году, когда я изучал PHP. Позже в 2012 году я перешел на C # и .NET. Во всяком случае, кодирование не проблема, записывать алгоритмы не моя проблема. Моя настоящая проблема заключается в том, чтобы знать, что должно быть закодировано для достижения требования и где оно должно быть закодировано.
Большинство доступных в Интернете курсов посвящены тому, как - как писать код на определенном языке, как использовать некоторые наборы API и т. Д. Это не моя точка зрения.
В эти годы я много читал о множестве вещей: объектно-ориентированный анализ и проектирование, шаблоны проектирования, доменный дизайн и так далее. Я понимаю, например, принципы SOLID, некоторые из основных идей DDD, такие как необходимость привлечения экспертов в предметной области, разработка повсеместно распространенного языка и так далее. Я бы осмелился сказать, что я теоретический фон хотя бы разумный.
Но когда дело доходит до практики, я чувствую себя катастрофой. Некоторое время назад мне нужно было продолжить развитие финансовой системы, которая уже была разработана кем-то другим. Это такая «старая система», разработанная на C # и WinForms. Это был первый раз, когда я выбрал проект с реальной сложностью домена, с большим количеством бизнес-правил и так далее.
Признаюсь, что, когда я получаю требования, большую часть времени я думаю: «Как, черт возьми, это можно сделать?» - Я понятия не имею, как начать работу над требованиями, чтобы выяснить, что нужно сделать. Я считаю, что мои основные недоразумения заключаются в том, что я должен кодировать, какие классы, интерфейсы и куда идет каждая часть логики, в каком классе должна быть каждая вещь. Проблема в том, что я не знаю с чего начать.
В большинстве случаев, с большим количеством размышлений, у меня возникают некоторые идеи, но я никогда не знаю, как судить, верна ли моя идея или нет.
Я имею в виду, я не думаю, что это недостаток теории, так как я сказал, что читал о куче вещей об архитектуре программного обеспечения и объектной ориентации, которые мне рекомендовали, но это не сильно помогло в определении того, что должно быть сделано на практике ,
Итак, как я могу научиться действительно делать объектно-ориентированный дизайн? Я хочу узнать следующее: данные требования знают, как начать работу над ними в процессе, который приводит к выяснению того, что должно быть сделано и где принадлежит каждый фрагмент кода. Как я могу научиться судить, верна ли моя идея или нет?
Я полагаю, что полностью объяснить это как ответ здесь было бы невозможно. Однако то, что я ищу, может быть в соответствии со стилем сайта - это ответы, просто дающие обзор и указывающие на некоторые ссылки (книги, онлайн-курсы и т. Д.), Которые можно использовать для расширения идей и реального изучения этих вещей.