Независимое предварительное кодирование разработчиков Планирование /дизайн /архитектура

Для независимых разработчиков или разработчиков недели или недели, когда вы собираетесь начать крупный /корпоративный проект, какие первые шаги вы предпримете, когда хешируете детали и конструкции предварительного кодирования?

Какие инструменты вы используете? Считаете ли вы, что проще всего с традиционным механическим карандашом и бумагой? Вы используете текстовый редактор, чтобы получить свои идеи и требования в маркированном формате? Вы используете UML?

В чем мой вопрос, каков первый шаг, который вы предпринимаете при разработке большого приложения? Какой носитель вы используете для записи ваших заметок? И когда вы обычно довольствуетесь началом написания кода?

1 голос | спросил user29981 12 J000000Tuesday11 2011, 06:22:10

4 ответа


2

Мой первый шаг - это, как правило, думать об объектах в моем домене и о том, как они относятся.

Обычно я начинаю с Excel , с некоторой иерархией enities и грубыми нотами по реквизитам и методам. Иногда я начинаю с бумаги или доски.

Затем я перемещаюсь прямо в мой конструктор DB (будь то SSMS или Workbench) и начинаю класть плитки, так сказать. Я занимался различными средами моделирования, но я предпочитаю простоту и работаю непосредственно с БД.

Мне нравится начинать писать код , как только у меня есть модель рабочего домена , потому что это помогает выявить недостатки и лепить дизайн (я подписываюсь на Agile и TDD). Тем не менее, я также время от времени останавливаюсь на документе, по диаграмме или простому английскому, свое понимание модели в то время, в основном для общения с заинтересованными сторонами.

Удачи вам в следующем (большом) проекте!

ответил jkoreska 12 J000000Tuesday11 2011, 07:16:04
2

У Apple есть страница на App Design Стратегии , это, вероятно, довольно хороший совет, независимо от того, на какой платформе вы проектируете. Первым делом в списке является создание «заявления определения приложения», которое определяется как:

  

краткое, конкретное объявление основной цели приложения и его предполагаемой аудитории.

ответил Caleb 12 J000000Tuesday11 2011, 07:15:30
2

ручка, бумага, текстовый редактор, почта и столько же лицом к лицу с клиентом, сколько я могу.

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

переписывание спецификации, когда вы нажмете голову, поможет вам найти части спецификации, которые не ясны, кажутся излишними или нелогичными. С этого момента ваши вопросы к клиенту должны начинаться очень специфично и улучшаться.

Когда это возможно, я также пытаюсь прототип в этом раннем сеансе разработки, используя язык REBOL для его возможности создавать интерфейсы и прототипы объектов прямо перед клиентом. Обычно я могу открыть интерфейс, точно так же, как он закончил говорить со мной (я могу напечатать код REBOL с закрытыми глазами ;-).

Его очень сжатый язык и его использование DSL и почти естественный синтаксис языка и формат файла очень эффективны при описании вещей и данных, которые клиент действительно сможет прочитать прямо из вашего текстового редактора!

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

rebol []

user: make object! [
    first-name: "John"
    last-name: "Doe"
]

view gui: layout [
    text "first name" 
    field user/first-name

    text "last name"
    field user/last-name

    btn "create" [view layout [text "User was added" btn "close" [unview]]]
]

нет необходимости в абсурдном синтаксисе XML и сложных IDE, которые просто делают экран похожим на общую научную лабораторию вашему клиенту.

для каждой маленькой темы, вы затем создаете одно из этих маленьких крошечных приложений, и они становятся ссылкой на реализацию. (вы даже можете сохранить любой gui на диск как png, используя одну строку кода !:

save/png %user-creation.png to-image gui

, который вы можете легко отправить клиенту для справки и утверждения.

надеюсь, что это поможет.

ответил moliad 12 J000000Tuesday11 2011, 09:08:23
1

Вот мой весь рабочий процесс, а не только предварительное кодирование, но решил включить остальные для полноты:)

Я только начал создавать свой собственный рабочий процесс для личных проектов, но здесь идет:

  • Резюме: Каково мое приложение в двух словах? Это помогает мне отвлекаться от побоев во время разработки. Является ли эта функция, о которой я думаю, принадлежит моему приложению на основе моего резюме?
  • Примеры из практики : Существуют ли какие-либо приложения, которые делают что-либо похожее на то, что вы планируете делать ? Что вы можете узнать от них? Что Вам нравится? Что не нравится вам нравится? Как вы будете исправлять те вещи, которые вам не нравятся?
  • Каркасы: я использовал Карандаш и любил его. Это в основном тот шаг, на котором я определяю большинство требований к моим моделям. Это позволяет мне создавать клики по моему приложению без необходимости кода.
  • UML: на основе каркасов у меня довольно четкое представление о том, какие модели мне нужно будет создавать, и какую бизнес-логику мне нужно будет писать. UML просто позволяет мне очистить все до кодирования.
  • Прототип: напишите что-нибудь довольно быстрое и грязное, чтобы доказать всю функциональность моего приложения. Для этого не будет применена графика или стиль. Это функциональный только
  • Заключительное приложение: прототип не должен отбрасываться, поэтому я могу просто реорганизовать часть кода, применить к нему стиль /графику /скрипт.
  • Тестирование /Отслеживание ошибок /Исправление ошибок.

И я закончил.

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

ответил Demian Brecht 12 J000000Tuesday11 2011, 10:57:42

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132