Обложка канала

PHP.today

3917 @phptoday

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

  • PHP.today

    Я помню, как работал с большим массивом данных, и очень удивился когда обнаружил, насколько отличается потребление памяти ассоциативного и классического массивов. Даже пришлось нагородить свой велосипед, чтоб работать с 10 миллионами строк из базы не втыкая еще пару планок оперативы (разница была в районе - ассоциативный 8 гигов, классический - 300 мегабайт). А тут очень наглядно показано, какие нюансы работы с памятью возникают при работе с массивами https://habr.com/ru/articles/746868/
    PHP. Как увеличить потребление памяти в 3 и более раз при работе с массивами

    Содержание Общие сведения. Увеличиваем потребление памяти вдвое. Увеличиваем потребление памяти втрое. Ещё раз увеличиваем потребление памяти на ровном месте. Заключение. Общие сведения Известно, что...

    Хабр
  • PHP.today

    Вы еще не пользуетесь rector? Тогда мы идем к вам! Способ уменьшения боли при рефакторинге для обновления (да и не только, там тысячи сценариев для анализа и исправления кода). Подробности тут habr.com/ru/comp…s/720216
    Апгрейд и рефакторинг PHP-проектов — теперь это просто с Rector

    Привет! Меня зовут Александр Володин. Я PHP backend developer из компании Skyeng. Опыт разработки более 8 лет. С выходом PHP 8 мне захотелось скорее использовать все новые фичи релиза, поэтому я взял...

    Хабр
  • PHP.today

    Написал для вас "Шпаргалку по JavaScript для всех бэкэндеров". Она для тех, кому иногда приходится сталкиваться с JS, но настолько редко, что основные тонкости языка очень быстро выветриваются из головы. #js #frontend #шпаргалка vc.ru/dev/612…kenderov
    Шпаргалка по JavaScript для всех бэкэндеров — Разработка на vc.ru

    Часто встречаю странное пренебрежение, а иногда даже и отвращение со стороны backend разработчиков к JavaScript.

    vc.ru
  • Реклама

  • PHP.today

    Ну о-о-очень познавательная статья про пароли, их проверку и безопасность. https://habr.com/ru/post/714478/
    Как правильно проверять сложность пароля пользователя при регистрации

    За десятилетия айтишки сложилась практика ограничивать пользователей в сложности их паролей. Сейчас пароль пользователя должен: быть не меньше N символов; && быть не больше M символов (чуть...

    Хабр
  • PHP.today

    Привет, на связи Podlodka PHP Crew! Большинство русскоязычных конференций и митапов по PHP приостановлены. Но мы продолжаем собирать комьюнити! Во 2-м сезоне поговорим, как внедрять в работу новые инструменты разработки с пользой для бизнеса. Вместе с Александром Макаровым, Валентином Удальцовым, Александром Кирсановым и другими спикерами разберёмся с основными и продвинутыми сценариями отладки кода, научимся эффективно комбинировать PHP и Docker. Стартуем уже 27 февраля! В программе: ✴️ Лайвкодинги по поиску ошибок с помощью статического анализа; ✴️ Практика применения Docker; ✴️ Доклады по отладчикам кода и анализу code style; ✴️ Воркшопы по работе с Composer. Это не всё 😉 В новом сезоне вас ждёт много интересного. За подробностями — на сайт Онлайн-конференции Podlodka Crew родились из одноимённого IT подкаста. Каждый сезон длится пять дней — рассматриваем одну тему с разных сторон, чтобы узнать её как можно глубже.  🤑 Успейте забрать свой билет по сниженной цене — ранним пташкам скидки.
  • PHP.today

    Отличная шпаргалка по возможностям mysqldump, уверен, многие из вас (нас) не знали и половины опций этой команды #database #mysql #mysqldump https://habr.com/ru/company/cloud4y/blog/715172/
    Mysqldump в MySQL

    Mysqldump имеет множество опций (я насчитал 111 штук ). Большинство из нас, скорее всего, придерживаются простого подхода. Вот как я обычно экспортирую одну базу данных: mysqldump some_database >...

    Хабр
  • PHP.today

    Вышел PHP 8.2: разбираем главные изменения

    Вместе с PHP-разработчиками Александром Макаровым ( @SamDark ), Валентином Удальцовым ( @vudaltsov ) и наставником Хекслета по PHP Владленом Гилязетдиновым ( @funkylen ) разбираемся, какие новые...

    Хабр
  • PHP.today

    Yii. Лет 10 назад был моим любимым фреймворком. Шутка ли, в пару строк кода/ в пару кликов с Gii можно получить грид, который будет не только выводить все что нужно, но и работать по ajax с jQuery под капотом, собственным готовым дизайном, и все это за пару минут! Пока вы спите, команда разработчиков и энтузиастов неустанно пилит пакеты для нового Yii3. И многие уже в продакшене! Я все как-то хотел написать про третью версию фреймворка Yii, но руки не доходили. И вдруг на Хабре наткнулся на статью, которая обещает стать циклом. Похоже Yii3 собирается подвинуть популярные в последние лет 5 Symfony и Laravel. Все тут https://habr.com/ru/post/695664/
    Yii3 Overview 1. Вступление

    Доброго времени суток, дорогой читатель. За свою профессиональную карьеру я успел поработать с множеством инструментов — как на PHP-стеке, так и вне его: базы данных, различные очереди, поисковые...

    Хабр
  • PHP.today

    Довольно любопытная статья о том, что и как MySQL пишет на диск, и немного тонких настроек, с которыми можно поиграться, чтоб ускорить базу. https://habr.com/ru/post/684474/
    Разбираемся что MySQL пишет на диск и зачем

    Disclaimer: автор не является разработчиком MySQL, все нижеописанное может не совпадать с реальным положением дел. Часть 0: Размышления о хранении данных Разработчики предъявляют высокие требования к...

    Хабр
  • PHP.today

    С 9 июня потихоньку релизят альфа-версии PHP 8.2. Недавно вышла уже третья альфа. О том, какие RFC включили в 8.2, что же такого новенького мы получим - можно почитать вот тут sergeymukhin.com/blog/ch…v-php-82 (спойлер - ничего сверхъестественного я там не нашел, конечно же, но кое какие вещи типа readonly классов, или устаревание некоторых синтаксических вещей будет полезным)
    Что нового в PHP 8.2

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

    Sergeymukhin
  • PHP.today

    Я на всякий случай напомню, что у нас есть еще и чатик, где можно позадавать вопросики Ссылка: https://t.me/all_it_ru
    PHP Today Чат

    Говорим про PHP. Канал тут: @phptoday.

    Telegram
  • PHP.today

    Меня тут недавно попросили рассказать про гит для ребят, только начинающих свой путь в разработке ПО, и я понял, что мне очень нравится рассказывать что-то, что я знаю. А потом посыпались вопросы по каким-то нюансам, и вдруг оказалось, что рассказывать то, что я не знаю - еще более увлекательно 🤣 И тут я подумал - а не заняться ли мне инфоциганством в мире IT? Было ли бы интересно кому-то из вас узнать что-то новое/старое но более подробно на паре-тройке небольших видеомитингов в формате «первый бесплатно, а потом, как пойдет»? Ставь лайк, если да, и какаху, если инфоцигане задолбали. Навскидку приходят разные темы, от инструментов вроде git, ngrok, сервисов типа elasticsearch, nginx, varnish и до каких-то вещей внутри языка вроде алгоритмов, ООП. А может даже что-то про серверы, bash scripting etc. Ну и конечно - можно поговорить о Magento, ведь разрабов там постоянно не хватает, зарплаты х2 от обычного ларавельщика, ООП не хуже чем в симфони, интересных задач хватает (вроде каталога на 2 млн продуктов, которые нужно синхронизировать каждые два часа) а сама мажента таки в ближайшие лет 5 точно не умрет (а потом можно будет свалить куда-то в смежную область) Заодно прикрепляю опрос, чтоб узнать, какого уровня кунг-фу у большинства из подписчиков.
  • PHP.today

    Еще одна, не менее важная часть - это так называемое «поведенческое» интервью. Обычно вопросы по этому поводу задают те же интервьюеры сразу после решения задач, но иногда выделают отдельное собеседование по этому поводу. Простым языком - самый основной вопрос я уже писал в одном из прошлых постов: «какую встретили проблему, как решили, где ошиблись, и какие сделали выводы». К примеру - я делал систему записи к врачу, и из-за большой ограниченности во времени архитектор команды решил взять готовое решение, подпереть костылями и обработать напильником. Но это самое готовое решение имело кучу своих проблем и было плохо расширяемым. В общем я плюнул на все это и сел писать свой велосипед. Однако через неделю оказалось, что готовое решение не зря разрабатывалось многие годы, и содержало много скрытых фич и багфиксов. В общем, потратив в общей сложности полторы недели я все же вернулся к предложенному решению. Ну а вывод простой - не ругаться с архитектором принимать во внимание все аспекты предлагаемого решения и проводить глубокий анализ требований прежде чем нырять с головой в разработку. Еще хочу добавить, что некоторые компании не только хотят послушать про ваше поведение в прошлом, но и заставляют наложить ваш опыт на свои идеи/принципы. Например - Амазон имеет 17+ (они все еще пополняются) так называемых принципов лидерства, к каждому из которых необходимо подготовить историю из личного опыта. Вот тут можно почитать про них подробнее: https://habr.com/ru/amp/post/645045/
    Как разработчику применять принципы лидерства Amazon

    Добрый день, меня зовут Павел Поляков, я Principal Engineer в каршеринг компании SHARE NOW, в Гамбурге в 🇩🇪 Германии. А еще я автор телеграм канала Хороший разработчик знает , где рассказываю обо...

    Хабр
  • PHP.today

    Алгоритмы. Тут все максимально просто. Интервьюер смотрит на то, как вы умеете решать те или иные алгоритмические проблемы за конечный промежуток времени. Для подготовки требуется понять что такое сложность алгоритма по времени и по памяти tproger.ru/article…xplained ну и потратить от 100 часов на leetcode.com на решение разнообразных задач. А так как все мы любим решать сложные, никому не нужные проблемы методами, которые никому не известны (отсылка к анекдоту, если кто не понял), то такая подготовка - одно удовольствие. Правда обидно за эти интервью - вроде бы созданы они были с благой целью - узнать как человек решает, как мыслит и где оптимизирует, а в итоге - превратились в простой фарс. В итоге инженеры меряются не логическим мышлением, а всего лишь часами, проведенными на литкоде. Скорее всего именно поэтому многие стартапы отказываются от такого подхода, и вместо решения задач гоняют по языкам.
    Оценка сложности алгоритмов, или Что такое О(log n)

    Если вы всё ещё не понимаете, что такое вычислительная сложность алгоритмов, и ждете простое и понятное объяснение, — эта статья для вас.

    Tproger
  • PHP.today

    Итак, приступим. Собеседование в топ компании обычно состоит из многих этапов, начиная с созвона с HR, и заканчивая многочасовым собеседованием, где матерые разработчики по очереди будут приходить и показывать вам, какое вы ничтожество, нет, на самом деле все дружелюбны, максимально вежливы, и всегда готовы помочь. Каждый отдельный этап - это полноценное интервью, где вы должны показать не только умение кодить, но и умения думать, общаться, ошибаться и находить свои ошибки. Также топовые компании добавляют в каждое такое интервью поведенческие вопросы вида «расскажите свою самую большую ошибку в работе, как вы ее исправили, и чему научились в процессе». Обычно основные этапы делятся на два типа - алгоритмы и архитектура. Я начну не по порядку, и поделюсь с вами, на мой взгляд, одной из самых точных статей по этому поводу. Но прежде чем начать читать, я хочу еще раз подчеркнуть, что System Design - это НЕ проверка ваших знаний!! Вам нужно показать не свои знания и опыт, а как вы думаете, ошибаетесь, предполагаете, и что будете делать в той или иной ситуации. Главный совет - забудь весь свой опыт и начни думать «с нуля»! https://habr.com/ru/amp/post/516718/ Вот тут еще подборка неплохих видео с задачами и решениями, однако я хочу вас предостеречь, что некоторые интервьюируемые больше сыпали опытом, чем реально показывали свой мыслительный процесс: youtube.com/playlis…playlist
    Netflix за 45 минут: Краткий рассказ о system design-интервью, чего ожидать + подборка полезных ссылок

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

    Хабр
  • Реклама

  • PHP.today

    Всем привет! Заметил, что в большинстве компаний на постсоветском пространстве собеседования, обычно, сводятся к тому, насколько человек знает отличия класса, от интерфейса, может ответить, что выведет код $a = “a1” + “1a”; Пары каких-нибудь вопросов с подвохом, ну и сопутствующие технологии, будь то джоины в MySQL, композеры, докеры etc. Часто завершается такое собеседование соревнованиями вида «чье ооп круче», паттернами и SOLIDом. Приученный к такому, довольно простому ходу собеседований я окунулся в мир FAANG, где твое ООП ничего не значит, а подробное знание настроек elasticsearch - лишь приобретаемый навык, который вообще никого не волнует. И в этот момент уверенные в себе Senior PHP/FullStack/etc девелоперы часто становятся в один ряд с обычными зелеными джунами, только что вставшими на путь истинный. В общем, я хочу вам поведать, как же все-таки стать тем самым Senior Software Engineer по мнению крупных компаний, из чего состоят собеседования, и почему попасть в FAANG (уже MAANG) гораздо проще чем вы думаете. Кое где буду писать личный опыт, но так как я ленив, то если буду находить уже готовый велосипед в сети, который, по моему мнению, хорошо описывает ситуацию, буду просто делиться ссылками.
  • PHP.today

    Вот вам еще одна статейка по безопастности веб приложений, на этот раз о SSRF habr.com/ru/comp…g/590673
    Атака с большим будущим: за что SSRF поместили в ТОП-10 киберугроз

    В конце сентября сообщество OWASP (Open Web Application Security Project) выпустило обновленную версию списка наиболее опасных угроз для веб-приложений OWASP Top-10. Примечательным стало появление в...

    Хабр
  • PHP.today

    Большую часть жизни пишу код под Magento и Symfony, и, знаете, я настолько привык использовать геттеры и сеттеры, что нововведения PHP 8 в виде объявления свойств в конструкторе с последующим использованием публичных или readonly свойств мне как будто режет глаз. С одной стороны код получается короче и пишется быстрее, но уже давно существуют кодогенераторы, которые делают все за тебя. А вы используете публичные свойства?