Читаю что нового планируется в 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
Не заточен на PHP или какой-либо ещё язык программирования.
https://github.com/bzick/oh-my-backend
👍33👎4😢4❤3🤔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 выглядит почти как ПХП! Прочитав впервые, я подумал, что это какой-то проект от русскоговорящего человека, который захотел сделать свой ПэХаПэ 😂
💡Идея стара как мир: берём язык программирования, добавляем немного сахара, немного типизации, и делаем траспилятор/компилятор в оригинальный язык. Наиболее успешный и похожий пример: 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 выглядит почти как ПХП! Прочитав впервые, я подумал, что это какой-то проект от русскоговорящего человека, который захотел сделать свой ПэХаПэ 😂
Sinaga79
Sinaga79: Situs Toto 4D Terbaik dengan Hadiah x3000
Main Toto 4D di Sinaga79 dengan deposit Rp 10.000 saja! Dapatkan hadiah hingga x3000, prediksi gratis, dan withdraw 3 menit. Daftar sekarang!
👍14🤣3❤1💩1
Поделюсь свежим опытом использования ChatGPT (4). Есть две системы документоборота, нужно наладить двухстороннюю синхронизацию неких документов, при этом пользователи могут вносить изменения в обеих системах.
🫴Описал исходную ситуацию в одном абзаце и попросил подготовить описания трёх вариантов:
- С оптимистичными блокировками
- С пессимистичными блокировками
- С трёхсторонним слиянием при конкруентном изменении
+ попросил поготовить диаграмы последовательсти в синтаксисе mermaid
💬 ChatGPT всё описал прямо как по учебнику: последовательно, понятно, корректно и с использованием конкретно моего примера (названия систем, имена документов - это важно, чтобы описание было не абстрактным, а конкретным). На подготовку такого документа вручную у меня ушел бы час, не меньше.
🍰На десерт попросил ещё схему с двухфазным комитом (которая на самом деле нам не нужна в данной задаче) - и её ChatGPT описал!
🫴Описал исходную ситуацию в одном абзаце и попросил подготовить описания трёх вариантов:
- С оптимистичными блокировками
- С пессимистичными блокировками
- С трёхсторонним слиянием при конкруентном изменении
+ попросил поготовить диаграмы последовательсти в синтаксисе mermaid
🍰На десерт попросил ещё схему с двухфазным комитом (которая на самом деле нам не нужна в данной задаче) - и её 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
Возможно, это известный многим баян, но я прочитал впервые. Погуглив, нашел обсуждения на Reddit и HackerNews.
Эта статья могла бы быть отличной первоапрельской шуткой, но дата не та. Возможно, это просто художественный рассказ в стиле сюрреализма.
Если вы думали, что вам в карьере довелось повидать всё, включая разные странные самописные франкенштейны, то прочитайте статью, это просто угар 🤣 🤡: https://thedailywtf.com/articles/the-inner-json-effect
The Daily WTF
The Inner JSON Effect
Jake eagerly stepped into his new job, grateful for more experience and new challenges, craving to learn new software stacks and see what his new company had to teach him about the world of software.
They told him he’d be working on some websites, dealing…
They told him he’d be working on some websites, dealing…
😁13🤯3🤣1
Пятиминутка PHP
Поделюсь свежим опытом использования ChatGPT (4). Есть две системы документоборота, нужно наладить двухстороннюю синхронизацию неких документов, при этом пользователи могут вносить изменения в обеих системах. 🫴Описал исходную ситуацию в одном абзаце и попросил…
Недавно я упоминал, как попросил ChatGPT описать схему синхронизации данных и нарисовать для наглядности диграму последовательности с помощью mermaid - результат был отличным!
Сегодня попробовал визуализацию блок-схем на основе кода, мой запрос был таким: Нарисуй блок схему в синтаксисе mermaid для кода на языке PHP описанного ниже
...и далее исходный код на PHP на 40 строк. Признаюсь честно, алгоритм не сложный - функция возвращающая bool, внутри набор из нескольких guard exporessions с ранним выходом, в некоторых местах запись в лог.
Блок схема нарисованная ChatGPT получилась абсолютно корректной, даже были отмечены места где происходит вывод в логи.
P.S. если не сталкивались с mermaid для рисования диаграм, попробуйте: https://mermaid.js.org
Сегодня попробовал визуализацию блок-схем на основе кода, мой запрос был таким: Нарисуй блок схему в синтаксисе 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.
⭐️ PHP (Rus) — https://t.me/addlist/R7i3akzlB2kwZTMy
⭐️ PHP (Eng) — https://t.me/addlist/yNksksLVT6M5NGEy
На сколько я понял, если добавить себе эту папку, то в будущем при появлении там нового канала Telegram покажет, что в данной папке появился новый канал (или несколько), «не хотите ли подписаться?». Получается удобный способ иметь под рукой актуальный и курируемый сообществом список каналов по PHP.
Telegram
PHP (Rus)
Alisa Kruglova invites you to add the folder “PHP (Rus)”, which includes 8 chats.
🔥14👍4
Хорошая заметка в телеграм канале Александра Макарова с кратким обзором 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
Не слышали про 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, и предложенные автором статьи, звучат, с одной стороны, убедительно, но с другой стороны, всегда можно найти к чему придраться и устроить жаркий спор относительно «правильного» понимания или применения.
И тут у меня появилась «первоапрельская» идея - надо больше разных принципов! Причём не от анонимов из блогов, в от известных исторических личностей.
Эти принципы, и старые добрые 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, код основанный на предметной области
https://dannorth.net/2022/02/10/cupid-for-joyful-coding
Автор предлагает писать код ориентированный на CUPID, вместо следования устаревшим по его мнению принципам SOLID.
Отличная статья, каждый из параметров заслуживает пристального рассмотрения, аргументация на высоком уровне )
Краткое определение параметров:
C - Composability, возможность блоков кода "стыковаться" друг с другом
U - Unix philosofy, делай что-то одно, но хорошо
P - Predictability, отсутствие сюрпризов в коде
I - Idiomatic, единообразный, узнаваемый стиль
D - Domain-based, код основанный на предметной области
Dan North & Associates Ltd
CUPID—for joyful coding
What started as lighthearted iconoclasm, poking at the bear of SOLID, has developed into something more concrete and tangible. If I do not think the SOLID principles are useful these days, then what would I replace them with? Can any set of principles hold…
🥴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 (Принцип диктатуры пролетариата): Код должен служить интересам большинства пользователей. Конечные пользователи - это "пролетариат" вашего кода, и его нужно разрабатывать с учетом их потребностей и интересов. Вы должны активно слушать отзывы и требования пользователей и стремиться их удовлетворить.
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
https://www.php.net/manual/ru/language.references.whatdo.php
👍6
📚Пятиминутка самообразования в воскресенье: Памятка PHP/GoLang разработчику для подготовки к собеседованиям https://backendinterview.ru
backendinterview.ru
Введение - Backend interview
Книжка для подготовки к собеседованию на должность backend developer
👍31❤3😭1
Прочитал сегодня на Reddit:
- laravel is apple
- symfony is android
- your own framework is linux distro buit by you
https://redd.it/1439ccf
- laravel is apple
- symfony is android
- your own framework is linux distro buit by you
https://redd.it/1439ccf
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
😁22🤣10👎4👍3🤔2🔥1💩1🤨1
В продуктах JetBrains появится AI помощник (аля Copilot)! На базе того же OpenAI. Ждём в PhpStorm!
https://blog.jetbrains.com/idea/2023/06/ai-assistant-in-jetbrains-ides/
https://blog.jetbrains.com/idea/2023/06/ai-assistant-in-jetbrains-ides/
The JetBrains Blog
AI Assistant in JetBrains IDEs | The IntelliJ IDEA Blog
Update, Dec 6: JetBrains AI Assistant is generally available with v.2023.3 or JetBrains IDEs and ReSharper. Read more in the dedicated post. This week’s EAP builds of all IntelliJ-based IDEs an
🔥40👍4🤔3
Laravel Livewire v3 + Filament v3 beta выйдут 20 июля на Laracon US.
Roadmap Filament v3 на GitHub: https://github.com/orgs/filamentphp/projects/2/views/13
Roadmap Filament v3 на GitHub: https://github.com/orgs/filamentphp/projects/2/views/13
👍6