Пятиминутка PHP
2.87K subscribers
334 photos
27 videos
827 links
Подкаст о PHP, DBA, архитектуре, DevOps. Авторское мнение о современных трендах в веб-разработке и интересные беседы с гостями. Темы про СУБД, Linux, DevOps

Автор: @petrmyazin
Download Telegram
Дженга для разработчиков!
😁32👍3
Читаю что нового планируется в PHP 8.3 (который выйдет в конце 2023): «Stack overflow detection» - первая мысль «интерпретатор научат определять, что код вставлен с сайта StackOverflow? 🧐» https://github.com/php/php-src/pull/9104
😁29
Roadmap навыков, которые часто требуются backend разработчику web-приложений.

Не заточен на PHP или какой-либо ещё язык программирования.

https://github.com/bzick/oh-my-backend
👍33👎4😢43🤔2
Свежая инициатива от Ryan Chandler (весьма активного разработчика из Laravel сообщества) - надстройка над PHP под названием PXP: https://pxplang.org

💡Идея стара как мир: берём язык программирования, добавляем немного сахара, немного типизации, и делаем траспилятор/компилятор в оригинальный язык. Наиболее успешный и похожий пример: TypeScript -> JavaScript.

📄Прочитал всю документацию на https://pxplang.org буквально за 10 минут - предложенных изменений пока кот наплакал, т.е. никакого координального сдвига парадигмы, лишь немного более приятный синтаксис. На таком языке я бы с удовольствием писал код, но если бы это всё было в в достаточной степени популярно и обложено инструментами разработчика, чтобы DX был не хуже чем у PHP.

🙅‍♂️Использовать как отдельный транспилятор в оригинальный PHP я не хочу, потому что:
- не хочу build step
- этот build step также усложнит отладку (ждём souce maps?)
- поддержки в PhpStorm нет. Поддержка может появиться, если PXP станет популярным. Но чтобы он стал популярным, нужны живые люди и проекты на этом языке - а кто будет на нём писать без поддержки в PhpStorm?) Проблема курицы и яйца как обычно.

🧪Можно было рассматривать PXP как полигон для пробы разных фич языка, перед тем как вносить предложения и RFC для PHP. Но для того, чтобы это был полигон, кто-то на этом полигоне должен проводить испытания. Нужна какая-то масса проектов и разработчиков готовых инвестировать своё время в PXP.

Короче, я скептичен 🧐

p.s. зацените игру символов в названии: PXP выглядит почти как ПХП! Прочитав впервые, я подумал, что это какой-то проект от русскоговорящего человека, который захотел сделать свой ПэХаПэ 😂
👍14🤣31💩1
Поделюсь свежим опытом использования ChatGPT (4). Есть две системы документоборота, нужно наладить двухстороннюю синхронизацию неких документов, при этом пользователи могут вносить изменения в обеих системах.

🫴Описал исходную ситуацию в одном абзаце и попросил подготовить описания трёх вариантов:
- С оптимистичными блокировками
- С пессимистичными блокировками
- С трёхсторонним слиянием при конкруентном изменении

+ попросил поготовить диаграмы последовательсти в синтаксисе mermaid

💬ChatGPT всё описал прямо как по учебнику: последовательно, понятно, корректно и с использованием конкретно моего примера (названия систем, имена документов - это важно, чтобы описание было не абстрактным, а конкретным). На подготовку такого документа вручную у меня ушел бы час, не меньше.

🍰На десерт попросил ещё схему с двухфазным комитом (которая на самом деле нам не нужна в данной задаче) - и её ChatGPT описал!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🤔10🗿6
Наткнулся на статью-рассказ от 2016 года: The Inner JSON Effect.

Возможно, это известный многим баян, но я прочитал впервые. Погуглив, нашел обсуждения на Reddit и HackerNews.

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

Если вы думали, что вам в карьере довелось повидать всё, включая разные странные самописные франкенштейны, то прочитайте статью, это просто угар 🤣 🤡: https://thedailywtf.com/articles/the-inner-json-effect
😁13🤯3🤣1
Пятиминутка PHP
Поделюсь свежим опытом использования ChatGPT (4). Есть две системы документоборота, нужно наладить двухстороннюю синхронизацию неких документов, при этом пользователи могут вносить изменения в обеих системах. 🫴Описал исходную ситуацию в одном абзаце и попросил…
Недавно я упоминал, как попросил ChatGPT описать схему синхронизации данных и нарисовать для наглядности диграму последовательности с помощью mermaid - результат был отличным!

Сегодня попробовал визуализацию блок-схем на основе кода, мой запрос был таким: Нарисуй блок схему в синтаксисе mermaid для кода на языке PHP описанного ниже

...и далее исходный код на PHP на 40 строк. Признаюсь честно, алгоритм не сложный - функция возвращающая bool, внутри набор из нескольких guard exporessions с ранним выходом, в некоторых местах запись в лог.

Блок схема нарисованная ChatGPT получилась абсолютно корректной, даже были отмечены места где происходит вывод в логи.

P.S. если не сталкивались с mermaid для рисования диаграм, попробуйте: https://mermaid.js.org
👍16👌4💩2
В телеграм относительно недавно появилась функция расшаривания папок. Сообщество PHP собрало подборку активных каналов (не чатов/групп):

⭐️ PHP (Rus) — https://t.me/addlist/R7i3akzlB2kwZTMy

⭐️ PHP (Eng) — https://t.me/addlist/yNksksLVT6M5NGEy

На сколько я понял, если добавить себе эту папку, то в будущем при появлении там нового канала Telegram покажет, что в данной папке появился новый канал (или несколько), «не хотите ли подписаться?». Получается удобный способ иметь под рукой актуальный и курируемый сообществом список каналов по PHP.
🔥14👍4
Сразу в нескольких телеграм каналах на неделе прочитал новость, что в Windows встроят поддержку WinRAR.

Звучит не плохо, но есть новости и поинтереснее: в обновлении Windows 11 (23H2) прямо в проводнике будет виден git статус файлов, «из коробки» - вот это поворот!
🔥26👍9😁3👎1
Хорошая заметка в телеграм канале Александра Макарова с кратким обзором htmlx и альтернатив: https://t.me/samdark_blog/116

Не слышали про htmlx? В двух словах: делаем шаблонизацию на бэкенде, в браузер приезжает готовый html код, но в некоторых местах этого html кода с помощью атрибутов мы декларативно описываем динамическое поведение (примеры на скриноте - это список из документации).

Плюсы:
- не нужно писать JS код
- не нужно собирать и компилировать фронтенд
- декларативный синтаксис, достаточно простой
- на самом деле htmlx не какая-то новая библиотека однодневка, а уже заматеревшее решение

Минусы:
- Совсем гибкий UI аля SPA построить не получится. Но это и не входит в задачи библиотеки.

Альтернативы?
- альтернатив много, история развития этого подхода богатая, см заметку в блоге Александра (https://t.me/samdark_blog/116)
- либо перестать генерировать html шаблоны на PHP бэкенде и делать фронтенд на фронтенд фреймворках, тут порекомендую видео от Ивана Поддубного с его накопленным опытом: https://youtu.be/POogPQm_PcE
🔥8👎1😁1💩1
Прочитал статью предлагающую ряд принципов типа SOLID, но немного других (см репост ниже 👇)

Эти принципы, и старые добрые SOLID, и предложенные автором статьи, звучат, с одной стороны, убедительно, но с другой стороны, всегда можно найти к чему придраться и устроить жаркий спор относительно «правильного» понимания или применения.

И тут у меня появилась «первоапрельская» идея - надо больше разных принципов! Причём не от анонимов из блогов, в от известных исторических личностей.
👏1
Forwarded from Леонид Черненко
Статья про параметры CUPID:

https://dannorth.net/2022/02/10/cupid-for-joyful-coding

Автор предлагает писать код ориентированный на CUPID, вместо следования устаревшим по его мнению принципам SOLID.

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

Краткое определение параметров:

C - Composability, возможность блоков кода "стыковаться" друг с другом

U - Unix philosofy, делай что-то одно, но хорошо

P - Predictability, отсутствие сюрпризов в коде

I - Idiomatic, единообразный, узнаваемый стиль

D - Domain-based, код основанный на предметной области
🥴6🌚4👍3👎1
Итак, принципы программирования по заветам Марксизма-Ленинизма от Владимира Ильича: LENIND

L - Labor Equality Principle (Принцип равенства труда): Все элементы кода должны иметь равные возможности для исполнения. Избегайте привилегирования каких-либо частей кода за счет других. Каждая функция, метод или класс должны иметь равный доступ к ресурсам и возможности для выполнения своих задач.

E - Economic Efficiency Principle (Принцип экономической эффективности): Максимизируйте использование ресурсов. Оптимизируйте ваш код для достижения максимальной производительности с минимальными затратами. Всякий излишек должен быть устранен.

N - Necessity Principle (Принцип необходимости): Каждый элемент кода должен быть необходимым и иметь цель. Избегайте бесцельного кода. Если часть кода не способствует общей цели программы, она должна быть исключена.

I - International Solidarity Principle (Принцип международной солидарности): Код должен быть написан таким образом, чтобы его можно было легко использовать, модифицировать и понимать в любой точке мира. Это включает в себя учет локализации и интернационализации, использование ясных комментариев и документации, а также придерживание стандартов кодирования.

N - No Exploitation Principle (Принцип нон-эксплуатации): Код не должен злоупотреблять своими ресурсами или зависимостями. Избегайте ситуаций, когда одна часть кода "эксплуатирует" другую, используя больше ресурсов, чем необходимо, или принуждая ее выполнять задачи за себя.


D - Dictatorship of the Proletariat Principle (Принцип диктатуры пролетариата): Код должен служить интересам большинства пользователей. Конечные пользователи - это "пролетариат" вашего кода, и его нужно разрабатывать с учетом их потребностей и интересов. Вы должны активно слушать отзывы и требования пользователей и стремиться их удовлетворить.
😁31👍7🤡4🥴3🔥2💩2👨‍💻1
📚Пятиминутка самообразования в субботу: Есть три основных операции с использованием ссылок: присвоение по ссылке, передача по ссылке и возврат по ссылке.

https://www.php.net/manual/ru/language.references.whatdo.php
👍6
😁36👍9🔥2
📚Пятиминутка самообразования в воскресенье: Памятка PHP/GoLang разработчику для подготовки к собеседованиям https://backendinterview.ru
👍313😭1
Прочитал сегодня на Reddit:

- laravel is apple
- symfony is android
- your own framework is linux distro buit by you

https://redd.it/1439ccf
😁22🤣10👎4👍3🤔2🔥1💩1🤨1
😁40👍9🤣5👎1👨‍💻1