Получи случайную криптовалюту за регистрацию!

Пых

Логотип телеграм канала @phpyh — Пых П
Логотип телеграм канала @phpyh — Пых
Адрес канала: @phpyh
Категории: Технологии
Язык: Русский
Количество подписчиков: 6.51K
Описание канала:

Блог @vudaltsov о разработке на PHP.
Чтобы поддержать канал, подпишись на Пых Boosted: https://boosty.to/phpyh.
Реклама и вакансии НЕ размещаются.

Рейтинги и Отзывы

4.00

2 отзыва

Оценить канал phpyh и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

2

3 звезд

0

2 звезд

0

1 звезд

0


Последние сообщения

2022-08-03 15:19:14 Мой продвинутый курс по PHP

Я уже пару лет мечтаю о том, чтобы масштабно и комплексно поделиться знаниями, и наконец-то мне представилась возможность записать свой продвинутый курс по PHP! Огромное спасибо Loftschool за предложение посотрудничать!

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



9.7K viewsВалентин Удальцов, edited  12:19
Открыть/Комментировать
2022-07-05 11:11:34
В продолжение предыдущего поста предлагаю повторить наш опрос о ЗП. Сравним результаты с сентябрём 2020. Итак, пыхарь, сколько нынче получаешь в тысячах рублей?
Anonymous Poll
9%
<50
15%
50-100
18%
100-150
18%
150-200
16%
200-250
10%
250-300
5%
300-350
3%
350-400
1%
400-450
6%
>450
2.7K voters8.2K viewsВалентин Удальцов, 08:11
Открыть/Комментировать
2022-06-30 18:14:46 SuperJob о зарплатах PHP-разработчика в июне 2022 года

Информация для канала предоставлена пресс-службой SuperJob.

Программисты PHP в среднем зарабатывают в Москве 250 тыс. руб. в месяц, в Санкт-Петербурге — 210 тыс. руб., в Екатеринбурге и Ростове-на-Дону — по 200 тыс. руб. Наиболее востребованы специалисты с опытом разработки на PHP от 2 лет. Работодатели отдают предпочтение кандидатам с опытом работы с различными фреймворками, навыками рефакторинга чужого кода и unit-тестирования. Также востребован опыт проектирования и поддержки клиент-серверного API.

Минимальные зарплаты для кандидатов с опытом работы с PHP от полугода составляют 90-120 тыс. руб. в Москве, 80-100 тыс. руб. в Санкт-Петербурге и от 60/70-100 тыс. руб. в городах миллионниках. Чтобы претендовать на такую зарплату, кандидат должен знать теории баз данных и иметь опыт работы с СУБД, знать ООП, JavaScript, HTML и CSS, XM, а также уметь читать техническую документацию на английском языке.

При этом максимальные зарплатные предложения составляют 300-500 тыс. руб. в Москве, 250-420 тыс. в Санкт-Петербурге, до 350 тыс. руб. в Екатеринбурге, Ростове-на-Дону и Краснодаре — до 400 тыс. руб. в месяц, в Новосибирске — 380 тыс. и в Казани – 350 тыс. руб. в месяц.

Кстати по данным SuperJob, за год средние зарплатные предложения в IT-сфере выросли на 20,4%, а количество вакансий в IT за месяц увеличилось на 11%.

Подробнее и больше цифр: https://www.superjob.ru/research/articles/113508/programmist-php/
8.0K viewsВалентин Удальцов, 15:14
Открыть/Комментировать
2022-06-01 14:52:39
Пыхарь, используешь ли ты мутационное тестирование?
Anonymous Poll
53%
Что?
40%
Слышал про такое, не пробовал.
3%
Использую только в pet-проектах.
2%
Пробовали на работе, не удалось внедрить. Сейчас в комментариях расскажу, почему.
3%
Успешно используем в рабочем проекте.
1.4K voters2.4K viewsВалентин Удальцов, 11:52
Открыть/Комментировать
2022-05-23 13:44:44
Сегодня коллеги поздравили меня прекрасным PHP-тортом!
2.7K viewsВалентин Удальцов, 10:44
Открыть/Комментировать
2022-05-18 14:15:02 Выборочная оптимизация на примере Composer 2.2

Рекомендую январский выпуск Пятиминутки PHP, в котором Пётр разобрался, как разработчики ускорили Composer, и поставил под сомнение их результат.

Однако в этом посте я хочу поговорить не про результат, а про подход. Он называется выборочной оптимизацией: подпрограмму улучшают не целиком, а только для конкретных случаев. Попробую обобщить и формализовать такой метод:

1. Исследуем очередное узкое горлышко в программе.
2. Ищем предпосылку, при которой можно можно провести оптимизацию подпрограммы.
3. Выдвигаем гипотезу о том, что при использовании программы предпосылка выполняется достаточно часто.
4. В случае подтверждения гипотезы, проводим оптимизацию для этой предпосылки.

Здесь важен баланс между стоимостью оптимизации (затраты на внедрение, прирост сложности кода) и профитом от неё (изменение целевых метрик, доля улучшенных сценариев). Иными словами, игра должна стоить свеч.

https://5minphp.ru/episode95/
2.0K viewsВалентин Удальцов, 11:15
Открыть/Комментировать
2022-05-12 18:04:19 Перестань не использовать функции в PHP!

Функции??? Да! Те самые функции, которые когда-то все спокойно юзали, но которые позже заменили класс-ориентированным программированием с неймингом вида Utils, *Helper и т.д.

Функция — это никакой не code smell, а удобная конструкция процедурного программирования, которую не стоит избегать и недооценивать. Если ты считаешь наоборот, я попробую тебя переубедить!

Сначала разберём два традиционных замечания к функциям. Во-первых, в PHP для функций не предусмотрен автолоадинг. Да, файлы с функциями нужно явно прописывать в autoload.files, они будут загружаться на каждом хите. Однако, этот оверхед пренебрежим в случае "умирающего" PHP и отстутствует вообще, если используется preloading или PHP "не умирает". Поэтому тут в минусы запишем только возню с composer.json.

Во-вторых, функции нельзя мокать. Это традиционное мокистское заявление, на которое почти всегда можно ответить: "Так не мокай!" и послать к Фаулеру. Функция — это имплементация, а не интерфейс. "Интерфейс" функции time — это callаble в PHP и callable(): int в Psalm/PHPStan. Чтобы заабстрагировать функцию, её следует объявить как callable инъекцию или параметр (см. пост #133), и тогда в тесте можно передать всё что угодно. Если же мы говорим про "захардкоженное" использование функции, то, если она не берёт на себя больше, чем должна, это не составит проблем. Никто же не боится в коде "хардкодить" array_map или trim. Главное, чтобы функции сами были протестированы.

А вот плюсов я насчитал куда больше!
Функции идеально подходят для операций, не требующих организации состояния. Согласитесь, класс с приватным конструктором без состояния — это кастрат костыль.
Декларация функции, очевидно, лаконичнее декларации класса.
В один файл можно положить несколько функций, это не нарушает стандарты. При этом название файла не должно соответствовать имени функции.
Так же, как и классы, функции могут быть определены в неймспейсе, ничто не мешает вам объявить свои функции для каждого модуля.
Функция лаконичнее выглядит в вызывающем коде: myFunction() vs MyClass::myMethod().

Критерии хорошей функции всё те же: низкая цикломатическая сложность, небольшое количество параметров, SRP. Если функцию "раздуло", то либо её надо разбить на несколько функций с разными именами, либо задачу всё-таки надо решать с использованием классов.

Вот несколько функций из нашего проекта: https://gist.github.com/vudaltsov/eb53927894cb467588e67352e2d8f1d9.

И напоследок статья Никиты Попова, которая несколько лет назад могла мне поменять отношение к функциям: https://www.npopov.com/2012/08/10/Are-PHP-developers-functophobic.html.

Пиши в комментариях, используешь ли ты функции или нет и почему.
2.7K viewsВалентин Удальцов, 15:04
Открыть/Комментировать
2022-05-11 18:03:52 Очень крутая серия видео про дженерики в PHP от Brent Roose, смотрится легко и быстро.

https://youtube.com/playlist?list=PL0bgkxUS9EaKyOugEDffRzsvupBE2YEoD
3.2K viewsВалентин Удальцов, 15:03
Открыть/Комментировать
2022-04-21 15:09:35 Встреча с программным комитетом PHP Russia 2022

• У меня есть тема, но я не решаюсь выступить.
• Я выступил на митапе, но не уверен, что мой доклад подходит для конференции.
• Однажды я подал доклад, но его отклонили, больше не хочу.
• Я хотел бы выступить, но, кажется, в нашем высоконагруженном проекте с тремя фреймворками, пятью видами БД, сотней микросервисов и кубернетесом нет ничего интересного.

Пыхарь, если при упоминании слова "конференция" у тебя проносятся такие мысли, то это замечательно, потому что ты без пяти минут докладчик! Мы ждём тебя сегодня в 19:00, чтобы вдохновить, помочь и направить. Буду рад стать твоим ментором и выступить бок о бок в сентябре!

Подробности в канале конференции: https://t.me/PHPRussiaConfChannel/295.
3.0K viewsВалентин Удальцов, 12:09
Открыть/Комментировать
2022-02-24 10:27:03 enum EnumNaming
{
case camelCase;
case PascalCase;
case snake_case;
case SCREAMING_SNAKE_CASE;
}

dump(
EnumNaming::camelCase,
EnumNaming::PascalCase,
EnumNaming::snake_case,
EnumNaming::SCREAMING_SNAKE_CASE,
);
2.7K viewsВалентин Удальцов, 07:27
Открыть/Комментировать