Как запланировать мой веб-проект перед стартовым кодом? [закрытый]

Меня и моего друга начал сотрудничать как партнеры, мы решили сделать Удар как* веб-сайт после веб-сайта. Нам записали идеи как 100's их (да, мы выбираем лучший и легкий среди них сначала).

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

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

Я знаю, что это - очень плохой подход для проекта среднего размера.

Здесь в stackoverflow я видел много опытных кодеров. Потребность изучить много от Вас парни :).

Так можете Вы помогать мне о том, как запланировать проект и что кодирование стандарта/структуры/платформ, который будет использоваться (я делаю код PHP).

Заранее спасибо.

9
задан Arshdeep 6 June 2010 в 01:07
поделиться

3 ответа

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

Нисходящий подход (также известный как поэтапное проектирование) - это, по сути, разрушение системы для получения представления о ее составных подсистемах. При нисходящем подходе сначала формулируется общий вид системы, определяя, но не детализируя подсистемы первого уровня. Затем каждая подсистема уточняется еще более детально, иногда на многих дополнительных уровнях подсистем, пока вся спецификация не будет сведена к базовым элементам. Нисходящая модель часто специфицируется с помощью "черных ящиков", что облегчает манипулирование ею. Однако "черные ящики" могут не прояснить элементарные механизмы или быть достаточно подробными для реалистичной проверки модели. http://en.wikipedia.org/wiki/Top-down_and_bottom-up_design.

Однако существует множество других подходов.

http://en.wikipedia.org/wiki/Software_project_management#Software_development_process

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

5
ответ дан 2 November 2019 в 23:59
поделиться

Что касается стандарта / структуры / фреймворков кодирования, я рекомендую стандарт кодирования фреймворка zend , структуру MVC и Zend Framework .

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

  • Разработайте базу данных. Сделайте диаграмму ER. Поместите это в документ.
    Кратко опишите причины, лежащие в основе дизайна для важных вопросов (почему вы выбираете полиморфное отношение, зачем использовать это представление, какие варианты выбора более сложны и т. Д.). Это будет меняться по мере того, как вы кодируете (и вы ничего не можете сделать). Задокументируйте изменения. Чтобы справиться с изменениями, используйте систему управления версиями для базы данных, например rails migrations .

  • Разработайте структуру вашего веб-сайта (разделы, страницы, ссылки, потоки страниц и т. Д.).Задокументируйте это. (например: «на сайте 2 раздела, этот раздел состоит из ...» и т. д.)
    На основе этого составьте документ с описанием ваших контроллеров и представлений. («Контроллер для статей с представлением списка и представлением статей, также редактировать и создавать представления, но только для администраторов» и т. д.).
    Опишите, как вы собираетесь применять аутентификацию и авторизацию (на уровне контроллера и представления). Кому разрешено где.
    Опишите, как вы защищаетесь от основных веб-атак (xss, csrf) там, где это необходимо. (пример: «Я избегаю всех своих переменных представления, используя htmlentities для защиты xss и ...»)

  • Создайте свои модели и дополнительные функции (отправка электронных писем, фоновые задания и т. д.). Это будет основная часть кода. Задокументируйте каждый из них и опишите основные проблемы (например, как должны обрабатываться часовые пояса, как эта конкретная модель должна подключаться к валютной службе, как эта модель должна анализировать и управлять некоторым файлом crone, какой алгоритм вы должны использовать, чтобы выбрать 5 лучших статей, в зависимости от вашего приложения.) Опишите, какие библиотеки вы используете, как и для каких целей (пример: «мы должны использовать curl для удаления SO и создания RSS-канала»)
    Опишите, как вы защищаетесь от основных веб-атак там, где это необходимо (sql-инъекция, xss).

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

5
ответ дан 2 November 2019 в 23:59
поделиться

Несколько мыслей от человека, который любит абстракции.

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

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

Судя по вашему описанию, похоже, что вы наслаждаетесь большой свободой в творческом процессе (в отличие от того, когда вам вручают техническое задание и просят его выполнить). Я бы сказал, что не стоит слишком много планировать, "просто начать кодить сразу" - это очень весело и не так уж плохо. Опыт будет вашим лучшим другом, и к тому времени, когда вы дойдете до сайта №100, у вас его будет много. При создании второго сайта ваш опыт поможет вам избежать некоторых ошибок, которые вы совершили при создании первого, и вы обнаружите новые сходства, которые вы не предусмотрели на этапе планирования. Просто найдите время, перенесите общий код в единую библиотеку, вернитесь и отредактируйте свой первый сайт, чтобы использовать его. Проделайте это несколько раз, и вы извлечете уроки, которые многого стоят.

2
ответ дан 2 November 2019 в 23:59
поделиться
Другие вопросы по тегам:

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