2011-01-11 2 views
6

В проекте с одним человеком (веб-страницы или настольные приложения), где вы и разработчик, и разработчик, что лучше делать сначала, создавать или писать код?Что лучше сделать сначала, спроектировать интерфейс или написать код?

+6

«Когда мы закончили строительство нашего дома и переехали, и у нас была домохозяйка, мы, наконец, наняли архитектора, он сделал отличный дизайн». Ты можешь почувствовать это ;)? –

+0

Хотя я считаю, что вы должны начать с пользовательского интерфейса, я предполагаю, что логика программы довольно проста, как и во многих веб-приложениях. Если у меня сложные, сложные алгоритмы, я начинаю с другого конца, потому что дизайн этого кода повлияет на весь мой проект, тогда как пользовательский интерфейс обычно может содержаться. Важно, чтобы логика была сформулирована просто и четко, чтобы ее можно было поддерживать. Например, когда вы создаете язык программирования, начните с основного исчисления, а не синтаксиса. – luqui

ответ

13

По интерфейсу Я предполагаю, что вы имеете в виду пользовательский интерфейс, в отличие от API. Я всегда разрабатываю интерфейс. Когда я кодирую, я ленив, я делаю все, что сработает с наименьшими усилиями. Это приводит к интерфейсам, которые не имеют никакого смысла только потому, что это был самый простой (или самый чистый) способ сделать это в коде. Но прежде чем вы напишете код, вы непредвзяты и будете принимать более правильные решения о том, какой будет хороший интерфейс.

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

+0

+1, потому что вы начинаете с пользовательского интерфейса. – Simone

0

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

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

1

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

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

+0

Что именно вы кодируете * в *, если у вас нет дизайна? Я согласен с тем, что иметь в виду или на бумаге иногда достаточно, но я не вижу, как вы можете начать писать код без него. –

+0

Возможно, «делать код перед дизайном» - это не тот способ, который можно использовать.Скорее я сначала начинаю кодировать магистраль и более технические реализации, а затем создаю базовый интерфейс для тестирования этих функций. Завершение всего кода перед дизайном, очевидно, довольно глупый способ сделать это. Но, как я уже сказал, я не думаю, что я делаю это так, как должен (по моему собственному совету). –

1

Это я думаю, что общий шаг за шагом подход:

  • Узнайте, какие требования.
  • Сделайте макет приложения и покажите его клиентам или коллегам.
  • Создайте глобальный технический дизайн. Перечислите технологии для использования и высокого уровня обзора компонентов.
  • Затем начните кодирование или сделайте более детальный дизайн.
+0

+1, потому что вы начинаете с пользовательского интерфейса. – Simone

0

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

Это похоже на тестирование HTML-страниц.

2

Я думаю, что, говоря «проектирование интерфейса», вы подразумеваете графический интерфейс. Как учит PNL, вы будете обрабатывать лучшие вещи, которые вы уже видите, поэтому визуализация помогает в разработке нового проекта.
Вот почему я начинаю проекты, следуя своей первой визуальной идее, рисуя макеты страниц, которые я точно знаю, как будут работать, с ручкой и бумагой (я рад прочитать, что многие уважаемые коллеги тоже это делают).

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

Прежде чем писать код, я также создаю БД, который также делегирован методам нижнего уровня, используемым методами интерфейса, которые я уже написал (90% проектов, над которыми я работал, был DB-dased), подавляя каждую идею приходит мне на ум об атрибутах или боковых таблицах, которые могут лучше завершить информацию, обрабатываемую приложением, или улучшить функциональные возможности.

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

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

Я экспериментировал с правдой фразы, которую один из мастеров часто говорил: хорошая работа - 90% планирования, 10% выполнения.
Я глубоко согласен: при хорошем планировании остальное просто упаковывает все части.

Счастливое кодирование и счастливый новый год! :)

1

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

Подумайте об этом логично - интерфейс/интерфейс - причина, по которой база данных и ваш код есть, а не наоборот.

Я вижу, что так много людей тратят слишком много времени на архитектуру и дизайн базы данных, а интерфейс игнорируется.

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

Смежные вопросы