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

Автор: @petrmyazin
Download Telegram
Сразу в нескольких телеграм каналах на неделе прочитал новость, что в 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
Laravel Livewire v3 + Filament v3 beta выйдут 20 июля на Laracon US.

Roadmap Filament v3 на GitHub: https://github.com/orgs/filamentphp/projects/2/views/13
👍6
🌿 Про минимальное количество аргументов для variadic-параметров в PHP

При использовании variadic-параметров в некоторых случаях нужно ограничить минимальное количество элементов. Это можно сделать с помощью проверки внутри метода:

public function eat(string ...$foods): void
{
if (empty($foods)) {
throw new LogicException('Need to eat something.');
}
// ...
}

Но можно избавится от проверки и ввести это ограничение другим способом:

public function eat(string $food, string ...$moreFood): void
{
$foods = [$food, ...$moreFood];
// ...
}

Причём это будет работать как в классическом варианте:

$pet->eat('apple', 'meat', 'bread');

Так и с помощью распаковки массива:

$foods = ['apple', 'meat', 'bread'];
$pet->eat(...$foods);

Периодически использую этот подход на практике, позволяет задать дополнительные условия на уровне сигнатуры метода.
👍265🔥3🤡1
🔥32👍6😁3
Интерпретатор PHP скомпилированный в WASM и установленный через npm - теперь вы можете запустить PHP код и для этого даже не понадобится устанавливать PHP! Но понадобится Node.js: https://redd.it/14pq3r7

https://reddit.com/link/14pq3r7/video/oofemralhs9b1/player
💩24😁17🤯3
Золотые цитаты телеграма
😁64👍19🥱1
😁289👍2
Знаете как в Linux удалить французский язык?
rm -fr /

(комментаний на всякий случай: это шутка, команда не удаляет французский язык, но может удалить важные файлы в системе)
🤡47😁26👎5🔥5🤬4💩4👍3🤮2
Forwarded from Laravel World
This media is not supported in your browser
VIEW IN TELEGRAM
Релиз Herd

Среда разработки Laravel-проектов под macOS. Включает в себя всё необходимое, в том числе PHP и nginx.

https://herd.laravel.com/
💩25🤡12🤔8👍4🥱1🥴1
Хорошая статья про важные причины выбора микросервисной или монолитной архитектуры 👇 Заодно подпишитесь на канал моего старого коллеги по подкастам, Антон знает о чём пишет