Задать вопрос
Senior PHP Developer.
Основной рабочий фреймворк: Yii2.
Более 9 лет опыта коммерческой разработки. Более 11 лет в IT.
Контакты
Местоположение
Украина, Киевская обл., Киев

Достижения

Все достижения (19)

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

Все теги (74)

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

Все ответы (143)
  • Виновен ли я в самописном движке?

    iiifx
    @iiifx
    PHP, OOP, SOLID, Yii2, Composer, PHPStorm
    > Подскажите, что я неправильно так же сделал, как начинающий кодер?

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

    Есть такое правило: Чтобы написать свою первую строку хорошего кода вы должны сперва написать миллион строк плохого. Это костыли, велосипеды, неудачные и даже брошенные проекты. Никуда от этого не деться, у всех так и вы не исключение. Если вы будете делать проекты на одних лишь вордперссах, то никогда так ничему и не научитесь. То есть научитесь ровно тому, что умеет вордпресс. А умеет он... ничего. Так и останетесь шаблонным "веб-мастером", который вроде как и умеет что-то, но ничего особенного из себя не представляет. Всегда изучайте и пробуйте что-то новое, чтобы каждая завершенная неделя давала вам хоть и небольшие, но новые знания.
    Ответ написан
    6 комментариев
  • Из-за большого количество посетителей сайт поплыл, что делать?

    iiifx
    @iiifx
    PHP, OOP, SOLID, Yii2, Composer, PHPStorm
    Как исправить проблему, кроме как переделывать на Nodejs?

    Контролировать запросы к БД. Не создавать повторных идентичных запросов без нужды. Повторно использовать полученные данные. Использовать кэширование данных. Оптимизировать структуру БД, включая индексы.

    Есть ли решения кроме Nodejs?

    Проблема у вас не в PHP.

    Как сделать чтобы на сайт могли зайти неимоверное количество людей и чтобы сайт выдержал нагрузки

    Использовать рекомендации, которые я и другие вам написали.

    Правда жизни: Прочитал книгу "Как изучить PHP за 20 минут" - сделал сайт. Все классно, но если заходит больше 3х человек сайт перестает работать! PHP - га**о! Ухожу на NodeJS\Ruby\Python\*...
    Ответ написан
    2 комментария
  • Случайный ряд из таблицы MySql, сейчас пол секунды. А максимально быстро как?

    iiifx
    @iiifx
    PHP, OOP, SOLID, Yii2, Composer, PHPStorm
    1. Определите кол-во записей в таблице. Не последний ID, а именно кол-во
    2. Определите рандомное значение между 0 и кол-вом-1 записей, это будет смещение
    3. Получите нужную запись с таблицы:
    select `id` from `localities` offset {$offset} limit 1


    Не сравнивал скорость, но должно быть в разы быстрее.
    Рандомное смещение можно получить как на стороне PHP, так и на стороне MySQL.
    А о RAND() вам уже написали.

    Детально:
    У вас N записей в таблице, вам нужно получить через mt_rand(), к примеру, случайное число от 0 до N-1. Это и будет ваше смещение.
    $count = 100;
    $offset = mt_rand( 0, $count-1 );
    Ответ написан
  • Junior PHP, что бы вы спросили на собеседовании?

    iiifx
    @iiifx
    PHP, OOP, SOLID, Yii2, Composer, PHPStorm
    Джуниор джуниору рознь и в разных конторах разные требования, но в идеале вам нужно знать и уметь:
    - PHPStorm, PSR, чистый самодокументированный код
    - Composer, автозагрузка классов
    - Базовое понимание ООП, статический и динамический контекст, умение применять на практике
    - Git, работа с ветками, мерджи, разруливание конфликтов
    - Индексы в БД, какие, для чего нужны, составные индексы, какие недостатки имеют
    - Джоины в БД, подзапросы, группировка
    - Внешние ключи в БД, минимум по нормализации данных
    - JS, jQuery, HTML, CSS, хоть минимально

    Все остальное индивидуально, в зависимости от требований.
    Ответ написан
    8 комментариев
  • Что нужно изучить для разработки современных веб-приложений?

    iiifx
    @iiifx
    PHP, OOP, SOLID, Yii2, Composer, PHPStorm
    В связи с этим вопрос – что ещё нужно знать?

    Бэкенд вам в любом случае нужен.

    Если я правильно понимаю, Angular, Vue и прочие фреймворки – это только фронтенд.

    Все верно.

    Куда не сунься, везде о веб-разработке говорится, как о разработке именно фронтенда, а также это непременно связано с Node.js (дабы что-то написать на ангуляре, без него никак). Каким боком связан фронтенд с Node.js - я не понимаю, т.к. Node.js - это, по сути, способ запустить JS вне браузера.

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

    Если я хочу запустить приложение в браузере, то зачем мне node? Это всё меня вводит в ступор, я вижу лишь противоречия.

    Вы не путайте. Есть технологии, которые используются в процессе работы приложения и есть технологии, которые используются в процессе разработки приложения. Все эти Gulp, Grunt, Babel, Webpack и прочие - это инструменты разработки. Они ускоряют, упрощают, повышают качество работы. В то время jQuery, Angular, React - это библиотеки и фреймворки, с помощью которых приложение будет работать.

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

    Здесь я лишь могу предположить, что сервер вместо html должен обмениваться данными с приложением посредством json или чего-то ещё.

    Да, JSON, как самый распространенный. Вам нужен фреймворк для бэкенда, на котором можно развернуть REST API. Насколько мне известно большинство современных фреймворов современных языков программирования, которые используются для веб-разработки, это умеют. Я не могу утверждать точно, я работаю в рамках одного языка.

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

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

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

    Что ещё нужно изучить? Или перечисленных знаний достаточно?

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

    Можно ли не использовать Node.js и, соответственно, npm, если JS (TS) требуется только в браузере? При этом тестирование тоже необходимо.

    Да, вполне. На стороне клиента, к примеру, JS+Angular. А на стороне бэкенда, к примеру, PHP+Laravel. Сейчас очень много языков и еще больше фреймворков под них. Выбирайте то, что для вас проще.
    Ответ написан
    2 комментария

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

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