TGViewer
Channel Public Channel
Пятиминутка PHP

Пятиминутка PHP

@tg_5minphp

Подкаст о PHP, DBA, архитектуре, DevOps. Авторское мнение о современных трендах в веб-разработке и интересные беседы с гостями. Темы про СУБД, Linux, DevOps

Автор: @petrmyazin
Subscribers
2.79K
Photos
360
Videos
28
Links
860

Showing posts older than #1208 · Back to latest

Older Posts 20 shown
Post #1207 2.61K
Зацените что нашел на просторах телеграмм чатов (в пыхтелке https://t.me/phpyhtelka): PHPoC (PHP on Chip) – аппаратная платформа, объединяющая микроконтроллеры со встроенным PHP интерпретатором https://voltiq.ru/cat/devboards/phpoc/
  • 🔥 11
  • 😱 8
  • 😁 3
  • 👍 1
  • 🤡 1
Post #1203 2.9K
  • 😢 15
  • 👍 4
  • 🔥 2
Post #1201 2.78K
🎨 Недавно поставил в PhpStrom бесплатный плагин Codium AI - реализует адополнение и чат с ИИ.(https://plugins.jetbrains.com/plugin/20540-codeium-ai-autocomplete-and-chat-for-python-js-ts-java-go-_)

Делюсь впечатлениями:
+ действительно бесплатный, я не нашел каких-либо подвохов или урезанной функциональности
+ работает без VPN
- автодополнение сильно уступает Github Copilot, медленно отвечает и не так хорошо
+ есть чат с ИИ в боковой панели, который умеет поддерживать контекст беседы. Сначала я не мог придумать полезных приёмов работы с чатом, но сегодня нашел один случай: рефакторинг множества констант в enum!

На скриншотах "было" (на светлом фоне) и "стало" (на тёмном фоне). Результат был получен не за одно действие, а за 4 последовательных просьбы, по затраченному времени, скорее всего, я бы быстрее конвертировал вручную. Но, возможно, чат запомнит этот диалог и в следующий раз сделает всё за одно действие?

В полученном коде вы можете заметить ошибку в match ($this->value) - должно быть match($this).

Также серьёзная ошибка в значениях case - чат пронумеровал в порядке следования от 0 до 4, однако исходные константы имели иные числовые значения.

Код определённо требует перепроверки и вычитки.

Далее я попросил чат Codium AI подобрать к моему списку опций иконки из коллекции Font Awesome 5 - подобрал (см. третий скриншот)! Я бы взял немного другие иконки, но мне понравился выбор по смыслу:

- "Отправлены по почте" = иконка конверта
- "Отправлены через ЭДО" = иконка загрузки в облако (электронный документооборот)
  • 👍 3
  • 🔥 1
Post #1200 2.14K
IBM готовит инструмент для конвертации COBOL кода в Java с помощью AI: https://devops.com/ibm-previews-generative-ai-tool-for-converting-cobol-to-java/ -

🎨Я видел много примеров запросов к ChatGPT «сконвертируй код из языка A в язык B» и даже сам пробовал конвертировать 1С в PHP 😅

Но только в контексте новости про COBOL я подумал про практическое применение конвертации старого legacy кода на свежие версии. Нам нужно что-то вроде утилиты Rector но на базе ИИ? 🧐 Хотя Rector и так нормально справляется с задачей обновления кодовой базы между версиями PHP, используя чёткую логику. Есть над чем подумать и поэкспериментировать 🔬
DevOps.com IBM Previews Generative AI Tool for Converting COBOL to Java IBM this week announced it will preview a generative artificial intelligence (AI) tool for converting COBOL code running on mainframes into Java. The
  • 👍 5
  • 🤣 1
Post #1199 2.96K
  • 😁 45
  • 👍 1
Post #1198 3.48K
  • 🤣 41
  • 🔥 7
  • 👍 1
Post #1197 3.3K
  • 👍 6
  • 🤪 3
  • 😱 1
Post #1196 2.77K
✅ Low Coupling
✅ High Cohesion

👆знаменитые паттерны GRASP (https://ru.wikipedia.org/wiki/GRASP?wprov=sfti1). Проблема с ними возникает при переводе на русский: «связность», «связанность», «зацепление», «сопряженность», и другие варианты - попробуйте теперь угадать, что из этого Coupling, а что Cohesion?

Допустим, у вас лично есть чёткое понимание правильного перевода. Но есть ли такое же понимание у вашего собеседника? Совпадает ли оно с вашим?

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

О терминах не спорят, о терминах договариваются. Но уже не первый раз замечаю, что конкретно по этим двум терминам устоявшейся общепринятой договорённости нет. Или есть? Проверим голосованием: как вы называете Cohesion на русском?
Wikipedia GRASP GRASP (от англ. General Responsibility Assignment Software Patterns — общие шаблоны распределения ответственностей; также отсылает к англ. grasp — «способность быстрого восприятия, понимание, схватывание») — шаблоны, используемые в объектно-ориентированном…
Post #1195 2.58K
👩‍💻Обнаружил серию обучающих видео по MySQL:
- короткие
- содержательные, без воды
- практичные, для разработчиков
- оторваться невозможно, смотрел как сериал, когда в конце очередной серии хочется смотреть следующую!

https://planetscale.com/learn/courses/mysql-for-developers/introduction/course-introduction
Planetscale MySQL for Developers — PlanetScale This free MySQL course covers everything you need to know to become an expert in MySQL. The course is geared toward application developers, and offers practical guidance to implement schema, indexes, query improvement, and more.
  • 👍 42
  • ❤ 1
Post #1194 1.98K
Немного теории в пятницу вечером от ChatGPT:

Лямбда-куб — это фреймворк для категоризации и описания систем типов на основе трех основных осей расширения простого типизированного лямбда-исчисления. Каждая ось представляет собой различную форму полиморфизма. Рассмотрим каждую ось:
λ→: Простое типизированное лямбда-исчисление. Это базовая система, где функции имеют типы, и полиморфизма нет.
λ2 (или λP): Добавляет полиморфные типы (Система F). Это означает, что у вас могут быть функции, которые являются параметрически полиморфными, т.е. функции, которые работают с любым типом.
λω: Вводит операторы типов, которые позволяют иметь типы, которые принимают типы и возвращают другие типы.
λPω: Сочетает как полиморфные типы, так и операторы типов.
λΠ: Зависимые типы, где типы могут зависеть от значений.
λΠ2: Сочетает зависимые типы с полиморфными типами.
λΠω: Сочетает зависимые типы с операторами типов.
λΠPω: Самая общая система, сочетающая зависимые типы, полиморфные типы и операторы типов.

Теперь давайте посмотрим, где находится PHPStan:
PHPStan — это инструмент статического анализа для PHP. Он расширяет систему типов PHP, предоставляя более тонкие проверки типов, чем сам язык. Однако система типов PHP и, соответственно, PHPStan не охватывает всю выразительность лямбда-куба.
• В PHP есть базовые аннотации типов для параметров функций и возвращаемых типов, что по крайней мере соответствует уровню λ→.
• С введением обобщений (через PHPStan и другие инструменты) PHP может имитировать некоторое поведение λ2.
• В PHP нет поддержки типов высших порядков, поэтому он не затрагивает ось λω.
• PHPStan не предлагает зависимых типов, поэтому ось λΠ не затрагивается.

В итоге, PHPStan расширяет систему типов PHP и касается аспектов λ2 благодаря поддержке обобщений. Тем не менее, он не углубляется глубоко в лямбда-куб. По сравнению с более продвинутыми системами типов, такими как Haskell или Idris, система типов PHP (даже с PHPStan) относительно проста. Тем не менее, PHPStan является ценным инструментом для разработчиков PHP, стремящихся улучшить надежность своего кода.
  • 👍 17
  • 🤯 11
  • ❤ 1
Post #1192 2.67K
⭐️В закладки: explainshell.com — cервис, помогающий разобраться, что значит каждый из аргументов в консольной команде.

Сервис основан на Ubuntu Manpage, спарсено 29761 инструкция. Использовать очень просто:

1) вставляем команду в текстовое поле и нажимаем Enter;

2) изучаем наглядный результат — команда и каждый аргумент описаны в отдельном блоке.

(узнал из канала https://t.me/sergei_predvoditelev)
Explainshell explainshell.com - match command-line arguments to their help text
  • 👍 16
  • 🔥 2
Post #1190 2.26K
В git есть настройка core.autocrlf.

Хорошая статья на Хабре с деталями: https://habr.com/ru/articles/703072/

Если кратко, то значение core.autocrlf=true якобы помогает разработчика на Windows с конвертацией окончания строк.

Я пишу «якобы», т.к. на деле каждый раз когда я сталкиваюсь с тем, что у кого-то на windows установлен флаг true - это приводит к проблемам:
- линтеры начинают ругаться
- фиксеры начинают фиксить все файлы проекта

Если погуглить, можно найти множество рекомендаций на stackoverflow и даже в статье выше в одном из первых комментариев: «на windows ставьте core.autocrlf=true» 🤬 Не делайте так!

Правильно так: всегда строго core.autocrlf=false ✅

Более развёрнутая
аргументация: https://markentier.tech/posts/2021/10/autocrlf-true-considered-harmful/
  • 👍 18
  • 🤔 1
Post #1186 2.39K
В следующей версии Tinkerwell 4 (это REPL хорошо интегрированный с Laravel) появится интеграция с OpenAI - можно будет описать задачу на обычном языке (человеческом) и получить фрагмент кода сгенерированный AI.

На сколько я понял, нужно в настройки Tinkerwell вставить свой OpenAI ключ. Но разработчик также обдумывает вариант дополнительной подписки, тогда свой ключ не понадобится.
  • 👍 8
  • 👎 8
  • 💩 7
Post #1185 2.32K
Олды тут? Прочитал новость про выход свежей версии баг-трекера Trac 1.6 - очень старый баг трекер написанный на Python (в свежей версии добавили поддержку Python 3 😅), и, кажется, это был первый трекер с которым я работал в профессиональной разработке когда-то в начале карьеры. А система контроля версий у нас тогда была CVSNT!

https://t.me/opennews/11950
Telegram opennet news Доступна система управления проектами Trac 1.6 После четырёх лет разработки представлен новый стабильный выпуск системы управления проектами Trac 1.6 (ветка 1.5 была экспериментальной), предоставляющей web-интерфейс для работы с репозиториями Subversion и…
  • 👍 5
  • 🌚 1
Post #1184 2.11K
Стандарты кодирования Symfony (https://symfony.com/doc/current/contributing/code/standards.html) основаны на PSR-12. Иными словами, если код удовлетворяет стандартам Symfony, то он одновременно является и отформатированным по PSR-12. Обратное неверно.

В PhpStorm есть быстрый способ настроить редактор по стандартам кодирования: Settings -> Editor -> Code Style -> PHP -> Set from...

К чему это? Раньше я писал по PSR-12, теперь пишу по Symfony Coding Standards.

P.S. помимо PhpStorm не забудьте настроить и php-cs-fixer
  • 👍 25
  • ❤ 1
  • 👎 1
Post #1183 1.91K
Telegram добавил stories для каналов, однако за это должны проголосовать премиум-пользователи, обновившие клиент до последней версии.

Не факт, что для этого канала это будет актуальный формат, но пусть будет.

Проголосовать можно здесь:
https://t.me/tg_5minphp?boost
Telegram Пятиминутка PHP Проголосуйте за канал, чтобы он получил больше возможностей.
  • 🤯 8
  • 👎 6
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →