Будет ли лучше использовать фреймворк для разработки сайта или просто его код вручную?

Дубликаты:

Любой, кто не использует веб-инфраструктуру? Зачем?

Большинство веб-программистов (а не дизайнеров) используют редакторы wysiwyg или компилируют свой HTML-код?

Что лучше использовать HTML / CSS, отредактированные вручную, или с помощью проектных программ? и почему?


Теперь, прежде чем продолжить, я чувствую более удобное кодирование вручную без использования фреймворка типа PHP. Каковы преимущества использования каркаса против ручного кодирования и наоборот при проектировании крупномасштабного сайта?

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

Преимущества этого:

  • Быстрее развиваться – некоторые из них уже написаны для вас
  • Легче для новых нанимателей учиться (если они знают рамки) – они будут знать, где вещи, как вещи структурированы
  • Меньше «вашего» кода – меньше писать, меньше отлаживать, меньше поддерживать

Недостатками фреймворков являются:

  • Можете не делать именно то, что вы хотите, точно так, как вы хотите
  • Больше узнать. Вы знаете язык, теперь изучаете рамки
  • Может раздуть ваш проект. В некоторых структурах есть много вещей – если вы не используете их, это просто раздувается. Довольно минимально – что такое 10 МБ или около того в эти дни?
  • Может быть медленным. Некоторые структуры имеют значительные накладные расходы

Кодируя вручную, вы делаете то, что хотите, как хотите, и использование фреймворка требует разумного изменения от «как это сделать», «как мне это сделать в рамках». Иногда структура сводит вас с ума, поскольку что-то, что кажется легким, может показаться навсегда, но есть много преимуществ:

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

Возьмите тест-драйв чего-то вроде Drupal. Посмотрите, что он может сделать, и посмотрите на доступные плагины.

Я работал над 3-мя заказными системами CMS и теперь работаю с Drupal, и, хотя у него есть свои причуды, это намного лучший опыт. Девять раз из десяти функциональность, в которой вы нуждаетесь, уже существует как модуль. Основные функции выполняются для вас и обновляются другими людьми, и сообщество упрощает обучение.

Я бы предложил структуру, особенно при работе с чем-то крупным масштабом. Количество времени, которое оно должно сэкономить вам, должно само по себе стоить, а также согласованность вывода, такие функции, как поиск, поддержка AJAX и локализация, будут проще и, скорее всего, менее ошибочными, чем делать это вручную.

Я предполагаю, что вы тоже будете использовать JavaScript, а инфраструктура IMO не вызывает проблем из-за проблем совместимости между браузерами.

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

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

Архитектура обучающего программного обеспечения больше искусства, чем науки, и все книги по шаблонам в мире не научат вас тому, чему вы научитесь, работая с хорошей веб-картой и читая источник.

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

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

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