TeamLead и разработчик со стажем более 5 лет

Начинал как php разработчик и уверенно разбираюсь в версиях начиная со старой 5.4 и заканчивая 7.2. Из Фреймворков использую symfony на уровне новичка и laravel на pro уровне (версии 4.1 - 5.6) принципиально не люблю cms но умею готовить большую тройку (WordPress / Drupal / Joomla).

Немного разбираюсь в dev-ops (nginx+php-fpm/hhvm) girlab + ci и совсем немного в docker

Из баз данных неплохо знаю mysql/postgres, есть опыт с redis.

Последний год активно изучаю node js стэк и умею React/Vue.
Контакты

Достижения

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

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

Все теги (37)

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

Все ответы (33)
  • Как быстро подтянуть свой уровень веб-разработчика, чтобы соотвествовать требованиям работодателей?

    iit
    @iit
    TeamLead + php/js разработчик
    Сейчас главный разработчик на огромном портале.
    Пришел туда так как пригласил однокурсник ( сейчас он тимлид ). Знал php на уровне недобыдлокодера. js - чуток Jquery. Html/css более-менее.

    Предыдущие разрабы свалили на более "вкусные вакансии" - у одного теперь своя студия а второй теперь заместитель директора одного крупного автомобильного портала.

    У нас двоих в итоге "модифицированная" этими злыми гениями UmiCMS устаревшей век назад версии. Задачь с дедлайном вчера на несколько листов a4. И огонь в глазах. Сначала это был ад. Костыли на костылях, контроль версий или бэкапы? нет не слышали! Хакерские атаки и 3 шелла. Постоянные попытки поднять внезапно упавший ночью сервак и сотни тысяч других радостных у ужасных ситуаций.

    Сейчас нас уже 5.

    Читая хабр, выполняя работу и постоянно развиваясь я вырос в неплохого backend разработчика. Научился классным штукам вроде git с push autodeploy, laravel, nodejs, composer, npm, bower, gulp, scss, haml. Подучил jQuery и создал для проекта 3 плагина, Angularjs, Backbone, Html5 bootstrap.

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

    После того как к нам пришли 2 дизайнера и один frontend ninja все стало просто замечательно.

    Итог - нужно найти компанию где согласятся взять джуна. Сейчас очень многие компании выращивают своих специалистов. Даже если нет наставника - не стоит отчаиваться. Опыт придет с работой. Главное упорно работать и применять мозг для сокращения объема работы, изучать технологии. Создавать для забавы мини-проекты.

    Единственный минус - первое время зп будет критически малой. Но это можно компенсировать фрилансом.
    Ответ написан
  • PHP ORM для бизнес приложений?

    iit
    @iit
    TeamLead + php/js разработчик
    Все зависит от размера проекта и фреймворка. Если проект не большой то подойдут laravel с Eloquent. Отдельно ставить Eloquent смысла мало он всеровно затянет половину ядра laravel.

    Если проект уже среднего размера тогда подойдут Symfony + doctrine. Правда для того что работать с ними нужно достаточно много знать один dql чего стоит.

    Если же проект огромный и дико нагруженный то есть смысл попробовать сделать его не на php а например на java + spring + hybernate.

    Ещё советую попробовать ddd и можно будет в любой момент поменять laravel на symfony а eloquent на doctrine или на тот же propel
    Ответ написан
  • Как один раз инициализировать CURL для всех методов в классе?

    iit
    @iit
    TeamLead + php/js разработчик
    Вынести инициализацию curl в конструктор объекта а сам ресурс в protected свойство класса
    class SomeController{
    
        protected $curl;
    
        public function __construct($url){
            $this->curl = curl_init($url);
        }
    
    }
    Ответ написан
  • Насколько плохо echo внутри метода?

    iit
    @iit
    TeamLead + php/js разработчик
    Если вы используете фреймворк то шаблон должен выводится средствами фреймворка.

    Если самописка то в проекте должен быть только один финальный echo который выводит уже готовый шаблон.

    echo на прямую в контролере - однозначно зло.
    Ответ написан
  • Как называется такая аутентификация и как выбрать правильный способ?

    iit
    @iit
    TeamLead + php/js разработчик
    Все зависит от того кто и как будет обращаться к backend.

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

    В случае обычного сайта или SPA возможно использовать сессии.

    Если используем обычные статические страницы + http api тогда сессия вполне нормальный вариант в том числе и для приложения по типу web-view.

    Если используем SPA с REST api / Graphql тогда токены удобнее.

    Что касается где хранить id пользователя в токене то самом JWT есть заголовок для этого. Вообще Jwt это 2 json + хэш/ключь слепленные вместе через base64.

    Первый json - служебный в нем идет алгоритм и тип ключа, второй - настраиваемый и может содержать что угодно, правда для некоторых моментов например id токена (jti) или id сессии (sid) есть предопределенные заголовки. Полный их список тут

    В вашем случае есть 2 варианта

    1 - доступ по сессии
    API и SPA требует сессию для защищенных методов, авторизация эту сессию предоставляет. Авторизация - может быть выполнена как обычной статической html с формой так и отдельным SPA.

    2 - доступ по токену
    В этом случае Авторизация реализуется в виде api на стороне сервера, и в виде токена
    + формы + логики авторизации на стороне клиента (Vue). Если токен есть - тогда есть доступ, если нет - то доступ только к методам регистрации и авторизации.
    Чтобы не палить код той части приложения где есть логика и фронт закрытой части - можно использовать code-splitting - сперва подгружается форма авторизации а остальное грузиться тогда когда это нужно.

    Есть правда еще более извращенные варианты вроде SPA с SSR на том-же Nuxt/Next/Express где пользователю токен а бэку на Go/JAVA/PHP уже токен приложения + токен пользователя.
    Иногда стоит использовать OAuth2.0 и LDAP которые тоже довольно интересны.
    Первый хорош на все случаи жизни, но только если используется куча связанных приложений/микросервисов а второй просто рай для бизнес-пользователей с Windows для какой-нибудь коробочной CMS.
    Ответ написан

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

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