Почему использование веб-платформа (как направляющие) по php?

Использование .Distinct(), вероятно, самое простое изменение, учитывая код, который у вас уже есть.

В качестве альтернативы, здесь есть несколько более лаконичное решение, использующее только LINQ и поиск Dictionary:

private static readonly Dictionary<string, int> _errorCodeScores = new Dictionary<string, int>
{
    { "@", 1 },
    { "-2", -2 },
    { "!", 5 },
};

private static int Score(string[] errorCodes)
{
    return _errorCodeScores
        .Where(s => errorCodes.Any(c => s.Key == c))
        .Sum(s => s.Value);
}
9
задан ankur 16 May 2009 в 20:15
поделиться

12 ответов

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

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

Почти каждый разработчик обладает инстинктами ковбойского кодера, которые говорят ему: «Самостоятельно делать что-то гораздо веселее, чем использовать код, написанный другими, и я уверен, что я достаточно хорош, чтобы сделай правильно с первого раза, так будет еще быстрее и лучше! ». Эти инстинкты почти всегда ошибочны.

28
ответ дан 4 December 2019 в 05:53
поделиться

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

РЕДАКТИРОВАТЬ Причина, по которой я сказал, что они предназначены для начинающих, заключается в том, что Я, как новичок, использовал фреймворки, чтобы лучше разбираться в языках.

-4
ответ дан 4 December 2019 в 05:53
поделиться

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

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

0
ответ дан 4 December 2019 в 05:53
поделиться

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

Но как только вы начнете реализовывать более сложные функции, вы станете намного эффективнее с фреймворком.

Попробуйте сделать это с нуля: - правильная проверка формы - Обработка нескольких языков и форматирования даты / времени - Аутентификация

Рассматривайте фреймворк как бесплатные инструменты и стабильную реализованную функцию, которую вы можете использовать.

1
ответ дан 4 December 2019 в 05:53
поделиться

Вам также следует просто использовать фреймворк на основе PHP, такой как Symfony или CakePHP, их использование должно значительно сократить время производства.

Одной из причин использования фреймворка является разделение кода. Возьмем, к примеру, symfony. Все модели созданы с помощью библиотек propel или doctrine. Требуется очень мало SQL. Вы создаете экземпляр нового объекта и пользовательских методов получения и установки для хранения данных, и вместо того, чтобы писать SQL в коде страницы, вы создаете функции в объектах, связанных с запросом. Когда вам нужно получить доступ к одним и тем же данным на разных страницах, вы запрашиваете модель для этого, сохраняя бизнес-логику с моделью там, где она должна быть, поэтому нет никакой разницы. Вся работа выполняется в «функции контроллера действий». Вы получаете все необходимые данные, а затем выводите на дисплей как можно меньше php,

1
ответ дан 4 December 2019 в 05:53
поделиться

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

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

1
ответ дан 4 December 2019 в 05:53
поделиться

Во-первых, у PHP тоже есть фреймворки, так что поставленный вопрос упускает суть

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

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

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

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

1
ответ дан 4 December 2019 в 05:53
поделиться

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

Возможно, у вас уже есть кодовая база, которая поможет сделать это за вас. Ознакомьтесь с некоторыми фреймворками PHP, так как там вам удобнее. Взгляните на CakePHP , CodeIgnitor и / или Zend Framework .

Если вы создаете много небольших приложений / сайтов, использование фреймворка может сделать ваше жизнь проще.

3
ответ дан 4 December 2019 в 05:53
поделиться

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

4
ответ дан 4 December 2019 в 05:53
поделиться

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

Вы также упомянули, что любите писать сами - я знаю, откуда вы.

21
ответ дан 4 December 2019 в 05:53
поделиться

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

7
ответ дан 4 December 2019 в 05:53
поделиться

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

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

Вы даже можете пойти дальше и создать базовые классы, из которых вы расширяете новые классы для создания своих веб-сайтов. (например: объекты данных с общими методами выбора / вставки / обновления / удаления).

Держу пари, это дает вам лучшее представление о том, почему фреймворки так чертовски удобны;)

2
ответ дан 4 December 2019 в 05:53
поделиться
Другие вопросы по тегам:

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