PHP, YII, MySQL, PostgreeSQL, Design Patterns, GIT, Rest API, Bootstrap, Jquery, JavaScript, HTML, CSS, Axure
Контакты

Наибольший вклад в теги

Все теги (64)

Лучшие ответы пользователя

Все ответы (832)
  • Почему Yii/Yii2 не подходит для крупных проектов?

    qonand
    @qonand
    Freelancer/Web Software Engineer
    Хоть Yii и создан в первую очередь как фреймворк для быстрой разработки приложений, ничего не мешает сделать на нем крупный проект. Как сказал oxidmod Yii ничего не навязывает разработчику, в этом его плюс и минус одновременно. Если проект реализовывают профессионалы - они спокойно его сделают на Yii качественно, если новички - они спокойно заговнокодят проект. Т.е. тут вопрос только в радиусе кривизны рук. Yii реже выбирают для крупных проектов чем тот же Symfony, т.к. с точки зрения бизнеса он более оптимальный, например:
    - в стандартной реализации Yii нацелен в первую очередь на скорость разработки, симфони - на качество. Соответственно в крупном проекте дешевле использовать Symfony со всеми его инструментами, чем реализовывать эти инструменты с нуля. Например, yii-шный ActiveRecord - хорош на простых проектах, но в сложных проектах он приносить больше проблем чем пользы, а в стандартной реализации никаких альтернатив ему не предусмотрено ...
    - Symfony накладывает определенные правила разработки для программистов, соответственно из за этого проще внедрять на проект новых разработчиков, не боясь что они заговнокодят.
    - в Yii низкий порог входа, соответственно "качество" многих разработчиков желает лучшего ...
    Ответ написан
  • Что значит хорошо знать фреймворк?

    qonand
    @qonand
    Freelancer/Web Software Engineer
    Хорошо знать фреймворк - это понятие довольно субъективное, и каждый человек может в него вкладывать свой смысл. Если Вы планируете искать работу с акцентом на изучаемые фреймворки думаю Вам будет достаточно:
    1. Знание общих принципов работы фреймворка (что как устроено внутри), но тут нужно понимать что не стоит изучать каждый класс от корки до корки, т.к. это бессмысленная работа, фреймворки постоянно развиваются и модифицируются. Например, Вы должны знать что такое DI, как оно организовано в фреймворке, и как с ним работать. Но не нужно прям досконально знать код.
    2. Чтение документации это хорошо, но практика всегда нужна. Вы не просто должны знать фреймворк по документации, Вы должны иметь опыт работы с ним. Как вариант можете придумать для себя какой-нибудь тестовый проект и реализовать его.
    3. Паттерны, архитектурные принципы и т.п. тоже важны, если Вы их знаете - тогда это плюс.
    4. СУБД. Для большинства проектов базы используются, поэтому помимо фремворка Вы должны так же хорошо ориентироваться в них, уметь писать сложные запросы, проектировать их и т.п.
    Ответ написан
  • Как лучше хранить фото-данные?

    qonand
    @qonand
    Freelancer/Web Software Engineer
    лучше хранить только ссылку на фотографию - это более гибко и оптимальнее по производительности. Приведу простой пример: допустим нужно вывести информацию о 30 пользователях списком с фотографиями, если использовать ссылки вот что мы получим:
    1. У нас будет возвращать из базы минимальный объем данных (блоб поля сильно увеличивают вес записи)
    2. Мы сможем при необходимости удобно сортировать, выбирать данные по URL, в отличии от BLOB
    3. В случае веб-ресурса - мы сможем кешировать картинки, blob-поле полноценно этого не позволит зделать
    4. Опять таки в случае веб-ресурса, мы можем разместить эти картинки на 100500 серваках, что бы распределить нагрузку, (а blob этого не позволит сделать)
    Ответ написан
  • Обязателен ли индекс для внешнего ключа InnoDB MySQL?

    qonand
    @qonand
    Freelancer/Web Software Engineer
    Обязателен ли индекс для внешнего ключа InnoDB MySQL?

    Да обязателен

    Таблица нормально создается и без индекса.

    При создании таблицы индекс на внешние ключи добавляется автоматически.

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

    Тут нужно понимать в чем разница между индексом созданным Вами по любому из полей, и индексом по внешнему ключу. Не рекомендуется заранее создавать индексы, т.к. на этапе разработки просто не понятно какие индексы действительно будут использоваться,на практике, а без каких можно обойтись (тем самым сэкономив время записи данных). С внешними ключами же история немного другая, они служат для проверки целостности данных, при вставке/редактировании (про всякие там джойны - вообще молчу). А значит каждый раз когда Вы добавляете запись, необходимо найти соответствующую запись по внешнему ключу. Поиск без индекса происходит очень медленно, поэтому его использование в этой ситуации по умолчанию вполне оправдано.

    Вопрос 1: зачем встроили создание индекса?

    Это плата за независимость от СУБД

    Вопрос 2: разве при удалении таблицы индекс и ключ не удаляются вместе с ней? Или в разных СУБД бывает по-разному?

    Аналогично с предыдущим пунктом, это плата за независимость от СУБД
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (7)