Рубрика «php» - 14

image

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

Я несколько лет пользуюсь серверным telegram клиентом на php. И как многие пользователи — устал от постоянного роста потребления памяти. Некоторые сессии могут занимать от 1 до 8 гигабайт RAM! Поддержка баз данных была уже давно обещана, но подвижек в этом направлении не было. Пришлось решать проблему самому :) Популярность open source проекта, накладывала интересные требования на pull request:

  1. Обратная совместимость. Все существующие сессии должны продолжить работать в новой версии (сессия — это сериализованный инстанс приложения в файле);
  2. Свобода выбора БД. Возможность менять тип хранилища без потери данных и в любой момент, так как у пользователей разные конфигурации окружения;
  3. Расширяемость. Простота добавления новых типов баз данных;
  4. Сохранить интерфейс. Код приложения, работающий с данными, не должен меняться;
  5. Асинхронность. Проект использует amphp, поэтому все операции с базами должны быть неблокирующими;

За подробностями приглашаю всех под кат.
Читать полностью »

Привет, я – Павел Савельев, глава отдела BPA (Business Process Automation) в Lamoda. Это один из самых крупных отделов в нашем IT – 9 команд, и мы планируем расширяться и дальше. Расскажу о том, как устроен мой отдел разработки и что “под капотом” у Lamoda.

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

image
Читать полностью »

Модернизация старого PHP-приложения - 1

Недавно мне выдалась случайная возможность поработать с несколькими старыми PHP-приложениями. Я заметил несколько распространённых антипаттернов, которые пришлось исправлять. Эта статья не о том, как переписывать старое PHP-приложение на <вставьте сюда название чудесного фреймворка>, а о том, как сделать его более удобным в сопровождении и менее хлопотным в работе.
Читать полностью »

Мёртвый код: найти и обезвредить - 1

Меня зовут Данил Мухаметзянов, я работаю бэкенд-разработчиком в Badoo уже семь лет. За это время я успел создать и изменить большое количество кода. Настолько большое, что в один прекрасный день ко мне подошёл руководитель и сказал: «Квота закончилась. Чтобы что-то добавить, нужно что-то удалить».

Ладно, это всего лишь шутка — он такого не говорил. А жаль! В Badoo за всё время существования компании накопилось больше 5,5 млн строк логического бизнес-кода без учёта пустых строк и закрывающих скобок.

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

Эту тенденцию заметил не только я. В Badoo поняли: наши высокооплачиваемые инженеры постоянно тратят время на мёртвый код.
Читать полностью »

PHP-Дайджест № 186 (3 – 17 августа 2020) - 1

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8 Beta 1, снова о синтаксисе атрибутов в PHP 8: #[Attr] vs @[Attr], предложение по синтаксису для BigInt, обзоры PHP 8 и много других видео, инструменты, стримы, подкасты.

Приятного чтения!

Читать полностью »

Здравствуйте.

Представляю вам заключительную главу цикла. В ней пойдет речь о реализации самого парсера, его модулей, вроде функции анализа, построения стека и dom дерева. Помимо этого поговорим и об обработке комментариев. Как оказалось, комментарии могут обрабатываться по разному.

Напишем свой поиск элементов, подробнее поговорим о поиске по классам и идентификаторам. И многое другое!
Читать полностью »

«Летом между 2 и 3 курсом я пошла искать работу — а в Новосибе того времени почти все вакансии для ребят без опыта были про PHP. Начинала с очень простых вещей — WordPress, Drupal… Потом писала бэкенды на Yii и много еще разного. Go впервые попробовала в 2014-м, вдохновившись докладом, и затем часто находила работу, связанную с разработкой на нем, через сообщество.

Считается, что Go гораздо проще поддерживать, чем PHP. Я не согласна. Видела очень много чистого, легко читаемого и поддерживаемого кода на PHP, а сейчас время от времени встречаю много плохо написанного кода на Go. Проблемы начинаются тогда, когда мы не следуем лучшим практикам языков и систем, которые разрабатываем… Или когда выбираем для своих задач не тот инструмент», — Елена Граховац, руководитель ПК GolangConf 2019 и соведущая подкаста GolangShow.

В эту субботу днем обсудим типичные ошибки выбора в стриме с Леной, Сашей Макаровым и другими замечательными людьми. Подключайтесь.
Читать полностью »

PHP 8: код «До» и «После» (сравнение с PHP 7.4) - 1

Осталось всего несколько месяцев до выхода PHP 8, и в этой версии действительно есть много хорошего. Под катом расскажем, как эти нововведения уже начали менять подход автора этого материала к написанию кода.
Читать полностью »

Как будет выглядеть программирование в 2025 году? - 1

Мы часто читаем о бэст практикс в программировании, о новых функциях фреймворков или о том, что нового в очередной версии PHP. Читаем, как поменять «то на это», почему какая-то техника хороша или плоха, или какой новый пакет вы можете использовать в своём проекте. Но всё это рассуждения только о прошлом или настоящем.

Сейчас я заканчиваю чтение книги «The Inevitable», написанной основателем журнала Wired, речь в которой исключительно про будущее. Вдохновившись этой книгой, предлагаю посмотреть на будущее программирования.
Читать полностью »

Как создаются Highload проекты на PHP: расшифровка - 1

28 июля в нашем инстаграм-аккаунте и ютубе прошел прямой эфир с Александром Высоцким — ведущим PHP-разработчиком в лондонском офисе Badoo, который работает в команде антиспама. Саша рассказал о том, как создаются Highload проекты на PHP, своей жизни в Лондоне и, конечно, про Badoo.

***
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js