Существует пошаговая процедура для восходящего дизайна с начала первой строки кода? [closed]

PriNova спросил: 13 июня 2018 в 05:21 в: design-patterns

Обновление почти в конце этого сообщения. Я искал своего рода шаблоны проектирования, идиомы, концепции с подходным дизайном.

Например: Я закончил цикл проектирования и анализа для банковской системы. Требования, особенности, примеры использования и диаграммы использования и т. Д. Готовы. (Сверху вниз). Теперь для фазы реализации я перехожу к подходу, используемому для обработки первой функции (после написания unit-теста).

Вот главный вопрос: существует статьи, книги, ссылки о поэтапном процессе, таком как рефакторинг (Kent, Fowler и т. д.) для проектирования с начала первой строки кода?

Что-то вроде графа решений. переменная - > метод, функции, события и т. д. - > рефакторинг - > OO: первый класс, первый объект - > состав, наследование, поли - > рефакторинг для шаблонов - > модули - > система, каркас и т. д.

Я продолжаю с банковского примера, чтобы прояснить его больше: мой первый вопрос в графе решений спрашивает меня:

  1. Есть ли у вас нужна переменная, данные?

    "Да" - перейти к 2.

    "Нет" - перейти к 6. (Поскольку DB существует уже, например)

  2. Каким типом это должно быть?

    'Для моего ресурса это деньги, и я использую int, потому что я решил вычислить его с помощью cent-единиц (решение производительности) '- Сделайте это int-type и дайте имя домена desentend!

  3. Является ли это глобальным var?

' Да '- Сделать это статическим

"Нет" - перейти к 4.

  1. Является ли это фиксированным в течение жизни?

'Yes' - сделать его окончательным и goto 6 (окончательный не может быть установлен больше)

"Нет" - перейти к 5.

  1. Вам нужен метод, функция для получения / установки этой переменной? "Да" - записать эту функцию (без проверки вначале) и дать доменное имя для имени.6 ... И так далее ....

Пока у меня нет первой переменной a nd, то далее следует сказать, что я должен создать первый класс и реорганизовать этот var и method в него с целью OO-design.And каждый новый шаг продолжит работу в дереве решений, пока у меня не будет "Лучшая практика" "-система. Удобный, удобный, инкапсулированный, эффективный. Все понятия связаны с началом до конца. Итак, вы идете более абстрактно, пока не достигнете уровня абстракции, где вы остановитесь сверху вниз.

  1. Второй крошечный вопрос: Существует ли такой дублированный код из-за абстрактного наименования переменных, методов, классов? Когда я снимаю деньги с моего банковского счета, я просто выполняю математическую процедуру - вычитая переменную из другой (за исключением проверки и безопасности и т. Д.)

Извините за это сообщение looooong, но спасибо за чтение

Изменить: Чтобы уточнить, о чем я спрашиваю: существует пошаговая процедура, такая как каталог решений , для программирования от простых строк кода до определенного уровня OO-абстракции?

Обновление: Извините, я не могу дать ответ на свой вопрос, поэтому я должен сделать это таким образом.

Каждая проблема, каждая задача имеет решение. Существует много способов найти это решение. Но все еще ограничен. Пути к этому решению включают принятие решений. Решения, вытекающие из знаний, из опыта в определенной области. Один пытается избежать сложностей, сталкивается с решением памяти или оптимизацией времени, возможностью повторного использования, ремонтопригодности и т. Д. Систем, компонентов, классов, объектов, функций и данных.

В качестве новичка вы изучаете программирование язык и ознакомиться с правилами. Позже она пишет свою первую программу, анализирует и разрабатывает свой первый проект. Знания и знания об определенных процедурах возрастают. Эволюционный процесс поиска решений возникает для достижения набора целей.

Все из конкретных предопределенных решений.

Существуют подходы, которые отображают эти деревья решений. Примеры включают рефакторинг и гибкие методы в качестве целостной концепции. Александр Кристофер как источник идей для узоров. Позже последовал Кент, Фаулер, "Дядя Боб" и, конечно, GoF, чтобы назвать лишь некоторые из них. Все они следуют определенным образцам. Эти шаблоны можно найти во многих книгах. Уильям Ф. Опдыке написал тезис о процедуре от простейшего процесса к специальной концепции ОО.

Однако я еще не нашел базу знаний, которая объясняет все эти понятия, принципы, идиомы или эвристики на одном шаге как это можно найти в книгах авторов, упомянутых выше.

Существует много сайтов, описывающих эти шаблоны или рефакторинги. Единственные сценарии, которые изображают концепцию, можно найти в книгах Мартина Фаулера.

Если бы у меня было достаточно времени, музы и этот опыт, я бы создал такую ​​базу знаний, свободно доступную для всех.

Большое спасибо за чтение.


1 ответ

user1118321 ответил: 13 июня 2018 в 07:19

Нет пошаговой процедуры, которая приведет вас от нулевого кода к полной системной архитектуре. Что обычно происходит, так это то, что собирается какой-то набор требований для определения того, что, во всяком случае, нужно писать. Это может включать общение с клиентами, выдумывание идей самостоятельно или в группе или сравнение того, что предлагают конкуренты, и в чем их сильные и слабые стороны.

Вы можете подумать, что как только у вас будет набор требований, которые вы можете начать кодирование. Но дело в том, что а) это оставляет вам длинный список задач, которые необходимо выполнить без четкого порядка их выполнения, и b) требования будут меняться либо потому, что ваши клиенты меняются, либо потому, что вы понимаете, что существующие требования либо недостаточны, нереалистичны, либо не соответствуют вашим знаниям.

Приложения часто разделяются на различные библиотеки и модули, которые обрабатывают разницу. Вы можете использовать базу данных для хранения модели данных. Вероятно, вы используете инфраструктуру пользовательского интерфейса, возможно, с каким-то уровнем MVC для обработки ввода и вывода данных. Вам понадобятся другие предметы, которые могут не попасть в хорошо известные шаблоны. Некоторые из этих вещей могут быть спроектированы параллельно, возможно, разными людьми или командами. Или вы можете просто случайно выбрать место для начала работы и начать там работать.

В 30 лет профессионального программирования я никогда не видел, чтобы кто-нибудь следовал пошаговой процедуре для любой программы любого размера и производить что-нибудь полезное. Архитектура редко придумывается, а затем реализуется. Часто требуется несколько повторений попыток, видение того, что работает и где есть несоответствия между частями, или проблемы со скоростью, использованием памяти или удобством использования, а также перепроектирование деталей по ходу дела. Это проблема с несколькими поколениями, когда вам, возможно, придется выпускать свой продукт с некоторыми архитектурными проблемами, которые могут быть очищены позже, когда у вас есть время и средства.

PriNova ответил: 13 июня 2018 в 07:54
Я согласен с тем, что вы говорите. В моем примере я закончил эту фазу проектирования и анализа до определенного уровня / уровня абстракции. Следующий этап будет в какой-то момент первой итерационной фазой реализации функций / требований для достижения цели. Начиная от бетона до определенного слоя. То же самое, что и рефрактерство от процедурного до OO-Design, но на некоторых более низких уровнях. Я пропустил этот кусок головоломки специально для новичков.

Дополнительное видео по вопросу: Существует пошаговая процедура для восходящего дизайна с начала первой строки кода? [closed]

Strategy Pattern – Design Patterns (ep 1)

Design Patterns: Strategy

Strategy Design Pattern