Forwarded from samdark blog ☕️ (Alexander Makarov) (Alexander Makarov)
🐘 PHP 8.3
Release is tomorrow. Features announcement: https://www.php.net/releases/8.3/en.php
There are no cool features for me personally but I'm really glad that there's a new major version.
Release is tomorrow. Features announcement: https://www.php.net/releases/8.3/en.php
There are no cool features for me personally but I'm really glad that there's a new major version.
www.php.net
PHP 8.3 Released
PHP 8.3 is a major update of the PHP language. It contains many new features, such as explicit typing of class constants, deep-cloning of readonly properties and additions to the randomness functionality. As always it also includes performance improvements…
🔥23👍4
Опубликованы результаты опроса разработчиков от компании JetBrains: The State of Developer Ecosystem 2023.
Ниже краткие выдержки по нескоторым пунктам опроса, которые мне показались интересными.
https://www.jetbrains.com/lp/devecosystem-2023/
Ниже краткие выдержки по нескоторым пунктам опроса, которые мне показались интересными.
https://www.jetbrains.com/lp/devecosystem-2023/
JetBrains: Developer Tools for Professionals and Teams
The State of Developer Ecosystem in 2023 Infographic
Learn about the latest trends in tools, technologies, AI, and programming languages.
❤2
Начнём с самого банального - рейтинга популярности языков. PHP на 11 месте, всё ещё обгоняет Go на один пункт рейтинга.
Однако, обратите внимание на серый столбик: сколько разработчико планируют перейти НА этот язык программирования или начать его использовать?
Больше всего хотят перейти на Go (9%), на TypeScript (5%) и на Python (5%).
На PHP почти никто не хочет переходить - всего 1%.
Однако, обратите внимание на серый столбик: сколько разработчико планируют перейти НА этот язык программирования или начать его использовать?
Больше всего хотят перейти на Go (9%), на TypeScript (5%) и на Python (5%).
На PHP почти никто не хочет переходить - всего 1%.
😢42🤔2😎1
Картинка посложнее - с какого языка и на какой разработчики планируют мигрировать в ближайший год?
Сфокусируемся на показателях PHP.
Те, кто сейчас пишут на PHP, хотят мигрировать на:
1. Go - 12%
2. Rust и Python - оба 9%
3. TypeScript - 8%
А с каких языков разработчики хотели бы мигрировать НА PHP? Нет такой статистики! Даже пункта такого нет в таблице. Видимо, их так мало, что они все попали в Other.
Сфокусируемся на показателях PHP.
Те, кто сейчас пишут на PHP, хотят мигрировать на:
1. Go - 12%
2. Rust и Python - оба 9%
3. TypeScript - 8%
А с каких языков разработчики хотели бы мигрировать НА PHP? Нет такой статистики! Даже пункта такого нет в таблице. Видимо, их так мало, что они все попали в Other.
😭19
Какие AI инструменты популярны?
Я удивлён, что ChatGPT заметно обогнал GitHub Copilot.
Чтобы воспользоваться ChatGPT нужно открыть окно браузера (смена контекста), написать промпт вручную, потом копировать код туда-сюда. А GitHub Copilot просто работает и без переключения контекста - сразу в IDE всё пишет и автодополняет.
Да, Copilot дополняет не так развёрнуто, как полноценный чат с ChatGPT, но всё-таки Copilot ощущается гораздо более практичным в ежедневном использовании.
Кстати, подписывайтесь на мой новый канал https://news.1rj.ru/str/en_5minAI - "5 minutes of AI" (типа "Пятиминутка AI", но на английском)
Я удивлён, что ChatGPT заметно обогнал GitHub Copilot.
Чтобы воспользоваться ChatGPT нужно открыть окно браузера (смена контекста), написать промпт вручную, потом копировать код туда-сюда. А GitHub Copilot просто работает и без переключения контекста - сразу в IDE всё пишет и автодополняет.
Да, Copilot дополняет не так развёрнуто, как полноценный чат с ChatGPT, но всё-таки Copilot ощущается гораздо более практичным в ежедневном использовании.
Кстати, подписывайтесь на мой новый канал https://news.1rj.ru/str/en_5minAI - "5 minutes of AI" (типа "Пятиминутка AI", но на английском)
👍4❤1👎1
Говорят, что большую часть времени мы не пишем код, а читаем код, исследуем код, думаем над задачей.
Вопрос на этой картинке: "На что больше всего уходит времени?" - и самый популярный ответ Writing Code.
Но, честно говоря, формулировка ответа смущает. Возможно, многие из ответивших на этот вопрос подразумевали под "Writing Code" весь процесс - это и исследование чужого кода, и обдумываение, и рефакторинг, и отладку в том числе.
Это был вопрос с множественным выбором. Подозреваю, что многие респонденты сначала отмечали пункт "Writing Code", ментально включая в него всю возможную актвиность по написанию кода, а затем отмечали отдельные более конкретные пункты, например, "Undestanding Code" и "Debugging".
Мне было бы интересно посмотреть на статистику по двум метрикам: "Набираю код в редакторе кода (активно печатаю)" vs "Просматриваю код, перехожу по классам/методам". Наверняка, это можно собрать в PhpStorm автоматизированно из коробки или с помощью какого-нибудь плагина. Такая статистика даст ответ на вопрос: нужна ли и важна ли быстрая скорость печати для эффективной работы программистом? Моё субъективное мнение - быстрая скорость печати нужна и важна! Но хотелось бы увидеть это в цифрах.
Вопрос на этой картинке: "На что больше всего уходит времени?" - и самый популярный ответ Writing Code.
Но, честно говоря, формулировка ответа смущает. Возможно, многие из ответивших на этот вопрос подразумевали под "Writing Code" весь процесс - это и исследование чужого кода, и обдумываение, и рефакторинг, и отладку в том числе.
Это был вопрос с множественным выбором. Подозреваю, что многие респонденты сначала отмечали пункт "Writing Code", ментально включая в него всю возможную актвиность по написанию кода, а затем отмечали отдельные более конкретные пункты, например, "Undestanding Code" и "Debugging".
Мне было бы интересно посмотреть на статистику по двум метрикам: "Набираю код в редакторе кода (активно печатаю)" vs "Просматриваю код, перехожу по классам/методам". Наверняка, это можно собрать в PhpStorm автоматизированно из коробки или с помощью какого-нибудь плагина. Такая статистика даст ответ на вопрос: нужна ли и важна ли быстрая скорость печати для эффективной работы программистом? Моё субъективное мнение - быстрая скорость печати нужна и важна! Но хотелось бы увидеть это в цифрах.
👍9
Возвращаясь к теме AI - что программисты готовы делегировать нейросетям?
В первую очередь всю рутину: комментарии, документацию, тесты, commit messages.
Мой опыт ровно противоположный: я пишу комментарии сам, чтобы передать ту информацию, которая есть только у меня в голове - причины написания этого фрагмента кода, какие-то инсайты связанные с бизенсом и предметной областью, что-то что обсуждалось на встречах и совещаниях и почему мы решили сделать именно так, а не иначе.
А когда комментарий написан (мной, вручную), тогда уже в дело вступает GitHub Copilot, который генерирует более-менее сносный код (но не всегда).
Иными словами: комментарии и любой текст на человеческом языке пишется для других людей. Он будет тем ценнее, чем больше в него вложено личной экспертизы и тех знаний, которые на данном этапе есть только у человека, автора комментария.
Код пишется тоже для людей, которые его потом будут читать, но в меньшей степени, чем комментарии. Написание кода я готов делегировать бездушной машине.
В первую очередь всю рутину: комментарии, документацию, тесты, commit messages.
Не готовы доверить: написание кода, изучение кода.Мой опыт ровно противоположный: я пишу комментарии сам, чтобы передать ту информацию, которая есть только у меня в голове - причины написания этого фрагмента кода, какие-то инсайты связанные с бизенсом и предметной областью, что-то что обсуждалось на встречах и совещаниях и почему мы решили сделать именно так, а не иначе.
А когда комментарий написан (мной, вручную), тогда уже в дело вступает GitHub Copilot, который генерирует более-менее сносный код (но не всегда).
Иными словами: комментарии и любой текст на человеческом языке пишется для других людей. Он будет тем ценнее, чем больше в него вложено личной экспертизы и тех знаний, которые на данном этапе есть только у человека, автора комментария.
Код пишется тоже для людей, которые его потом будут читать, но в меньшей степени, чем комментарии. Написание кода я готов делегировать бездушной машине.
👍9👎9
Завершаю эту серию заметок парой картинок про СУБД.
MySQL расёт в Китае, Корее и Мексике, теряет популярность в остальном мире.
PostgreSQL полностью противоположно - рост по всему миру (особенно РФ, понятно почему), кроме Китая и Кореи.
Что там случилось с MySQL в Азии, почему такая популярность, кто знает?
Относительно языков программирования: PHP программисты плотно сидят на MySQL, а рубисты на PostgreSQL.
В целом, если полистать эту часть опроса про СУДБ - рулит PostgreSQL.
MySQL расёт в Китае, Корее и Мексике, теряет популярность в остальном мире.
PostgreSQL полностью противоположно - рост по всему миру (особенно РФ, понятно почему), кроме Китая и Кореи.
Что там случилось с MySQL в Азии, почему такая популярность, кто знает?
Относительно языков программирования: PHP программисты плотно сидят на MySQL, а рубисты на PostgreSQL.
В целом, если полистать эту часть опроса про СУДБ - рулит PostgreSQL.
🔥8👍4❤1
Какой замечатльный лонгрид про раскалдки клавиатур и, в частности, про раскладку для Moonlander! Не мог пройти мимо и не поделиться ссылкой: https://optozorax.github.io/p/my-keyboard-layout/
optozorax.github.io
Раскладка Ильи Шепрута — Блог optozorax'а
Моя раскладка, история прихода к ней и объяснение каждого дизайнерского решения.
👏4🤮3💩2🤨2❤1
Forwarded from phpinfo();
📺 Запись оффлайн/онлайн митапа сообщества Live PHP, проходившего 23 ноября 2023 года в г. Санкт-Петербург
https://www.youtube.com/watch?v=b1NE20DD2cc
Доклады:
👉 Применение SOLID при разработке на PHP
Эмиль Лимаренко, разработчик
Обновим знания о принципах SOLID на примерах PHP. Подумаем зачем и когда нам это нужно. Разберёмся наконец где заканчивается Dependency Injection и начинается Dependency Inversion.
👉 ИИ за место крыс
Иван Романов, аспирант лаборатории эволюции органов чувств ИЭФБ РАН
Расскажу о пространственной навигации, а именно, об участниках процесса и об использовании ИИ в научных изысканиях посвящённых этой теме.
👉 PHP/Symfony/Doctrine: Создание и mapping сущностей, Enums, ValueObjects, etc
Станислав Ракчаев, [Software Developer]
Рассмотрим подходы "проектирования сущностей", варианты создания. Для чего могут быть полезны ValueObjects, Enums и стоит ли их использовать.
👉 Рефакторинг крупного монолита без архитектуры
Дмитрий Алин, тимлид
Монолит разрабатывался 15 лет, оброс клиентами и является одним из ведущих в своей сфере. Как спланировать, организовать и запустить процессы. Что и как настроть с наименьшим риском для бизнеса.
https://www.youtube.com/watch?v=b1NE20DD2cc
Доклады:
👉 Применение SOLID при разработке на PHP
Эмиль Лимаренко, разработчик
Обновим знания о принципах SOLID на примерах PHP. Подумаем зачем и когда нам это нужно. Разберёмся наконец где заканчивается Dependency Injection и начинается Dependency Inversion.
👉 ИИ за место крыс
Иван Романов, аспирант лаборатории эволюции органов чувств ИЭФБ РАН
Расскажу о пространственной навигации, а именно, об участниках процесса и об использовании ИИ в научных изысканиях посвящённых этой теме.
👉 PHP/Symfony/Doctrine: Создание и mapping сущностей, Enums, ValueObjects, etc
Станислав Ракчаев, [Software Developer]
Рассмотрим подходы "проектирования сущностей", варианты создания. Для чего могут быть полезны ValueObjects, Enums и стоит ли их использовать.
👉 Рефакторинг крупного монолита без архитектуры
Дмитрий Алин, тимлид
Монолит разрабатывался 15 лет, оброс клиентами и является одним из ведущих в своей сфере. Как спланировать, организовать и запустить процессы. Что и как настроть с наименьшим риском для бизнеса.
👍20🔥5🥱3❤1
Как быстро запустить PHPStan из PhpStorm?
(не из консоли, а через интегрированный интерфейс PhpStorm - мы же в IDE работаем в конце концов)
Шаг 1: подключить PHPStan к PhpStorm через Settings -> PHP -> Quality Tools -> PHPStan = ON
Теперь непосредственно в редакторе кода будут подсвечены проблемные места – это отрабатывает новый Inspection, наличие которого можно проверить в Settings -> Editor -> Inspections -> поиск по слову «phpstan» -> PHPStan validation галочка.
Шаг 2: как проверить все файлы в проекте? Меню: Code -> Analize Code -> Run Inspection by Name… (обратие внимание в меню на незапоминаемый хоткей) – далее в поиске набрать название нашего Inspection = «phpstan»
Шаг 3: а можно без длинных меню и сложных хоткеев?
Да, есть несколько вариантов, которые я перепробовал, вот самый быстрый: ⚡
3.1 Settings -> Editor -> Inspections -> создать новый Profile, назвав его, например, «PHPStan Only»
3.2 На Toolbar добавить новую иконку: кликнуть правой кнопкой по Toolbar -> Customize Toolbar… -> кнопка в виде плюса «Add Action…» -> поиском найти действие «Inspect Code…» - таким образом на панели кнопок будет быстрая кнопка эквивалентная меню Code -> Inspect Code…
3.3 Особенность диалога Inspect Code… в том, что он предлагает выбрать профиль, по которому нужно проверить проект, и далее он запоминает выбранный в последний раз профиль! Именно для этого мы создали профиль «PHPStan Only» - выбрав один раз, следующий запуск сведётся до двух кликов. Впрочем, можно и удобный хоткей для вызова этого диалога настроить: Settings -> Keymap -> в поиске набрать «Inspect Code» и назначить хоткей. Этот способ немного удобнее того, что я описал как «Шаг 2» - теперь нам не нужно вводить название инспекции «phpstan», теперь есть профиль и он уже выбран по умолчанию в диалоге «Inspect Code…»
(не из консоли, а через интегрированный интерфейс PhpStorm - мы же в IDE работаем в конце концов)
Шаг 1: подключить PHPStan к PhpStorm через Settings -> PHP -> Quality Tools -> PHPStan = ON
Теперь непосредственно в редакторе кода будут подсвечены проблемные места – это отрабатывает новый Inspection, наличие которого можно проверить в Settings -> Editor -> Inspections -> поиск по слову «phpstan» -> PHPStan validation галочка.
Шаг 2: как проверить все файлы в проекте? Меню: Code -> Analize Code -> Run Inspection by Name… (обратие внимание в меню на незапоминаемый хоткей) – далее в поиске набрать название нашего Inspection = «phpstan»
Шаг 3: а можно без длинных меню и сложных хоткеев?
Да, есть несколько вариантов, которые я перепробовал, вот самый быстрый: ⚡
3.1 Settings -> Editor -> Inspections -> создать новый Profile, назвав его, например, «PHPStan Only»
3.2 На Toolbar добавить новую иконку: кликнуть правой кнопкой по Toolbar -> Customize Toolbar… -> кнопка в виде плюса «Add Action…» -> поиском найти действие «Inspect Code…» - таким образом на панели кнопок будет быстрая кнопка эквивалентная меню Code -> Inspect Code…
3.3 Особенность диалога Inspect Code… в том, что он предлагает выбрать профиль, по которому нужно проверить проект, и далее он запоминает выбранный в последний раз профиль! Именно для этого мы создали профиль «PHPStan Only» - выбрав один раз, следующий запуск сведётся до двух кликов. Впрочем, можно и удобный хоткей для вызова этого диалога настроить: Settings -> Keymap -> в поиске набрать «Inspect Code» и назначить хоткей. Этот способ немного удобнее того, что я описал как «Шаг 2» - теперь нам не нужно вводить название инспекции «phpstan», теперь есть профиль и он уже выбран по умолчанию в диалоге «Inspect Code…»
🔥19👍5👀2👎1
В продолжение предыдущего поста: как узнать, есть ли возможность настроить ту или иную функцию в PhpStorm? А какие варианты вообще бывают, чтобы выбрать наиболее удобный для себя?
Раньше я гуглил. У JetBrains достаточно подробная документация, зачастую находятся нужные ссылки, но дальше нужно вчитываться.
Удача, если конкретно мой вопрос кто-то уже задал на StackOverflow или в YouTrack (багтрекер для всех продуктов JetBrains) - можно найти конкретный рецепт по шагам.
Последние несколько месяцев я задаю подобные вопросы в ChatGPT. Поскольку документация публичная и она проиндексирована в базе знаний ChatGPT, то обычно получаю достаточно сфокусированные ответы на конкретный вопрос.
Вчера попробовал для этих целей непосредственно AI Assistant в PhpStorm. Под капотом он отправляет запросы всё в тот же API OpenAI (по сути в ChatGPT), но теперь это выглядит как "справка по программе здорового человека". У меня есть вопрос к PhpStorm, я его пишу непосредственно в PhpStorm и получаю конкретный ответ.
Выводы: если вы пишете софт и к нему есть подробная документация, которая, будучи проиндексированной, могла бы стать пищей для ума AI, то попробуйте подключить в свой софт "справочный центр" на базе ChatGPT (или аналогов)!
Раньше я гуглил. У JetBrains достаточно подробная документация, зачастую находятся нужные ссылки, но дальше нужно вчитываться.
Удача, если конкретно мой вопрос кто-то уже задал на StackOverflow или в YouTrack (багтрекер для всех продуктов JetBrains) - можно найти конкретный рецепт по шагам.
Последние несколько месяцев я задаю подобные вопросы в ChatGPT. Поскольку документация публичная и она проиндексирована в базе знаний ChatGPT, то обычно получаю достаточно сфокусированные ответы на конкретный вопрос.
Вчера попробовал для этих целей непосредственно AI Assistant в PhpStorm. Под капотом он отправляет запросы всё в тот же API OpenAI (по сути в ChatGPT), но теперь это выглядит как "справка по программе здорового человека". У меня есть вопрос к PhpStorm, я его пишу непосредственно в PhpStorm и получаю конкретный ответ.
Выводы: если вы пишете софт и к нему есть подробная документация, которая, будучи проиндексированной, могла бы стать пищей для ума AI, то попробуйте подключить в свой софт "справочный центр" на базе ChatGPT (или аналогов)!
👍17🔥5👎2❤1
Решил попробовать запустить Qodana на своём проекте 😱🤦😭
(что такое Qodana: https://www.jetbrains.com/ru-ru/qodana/)
(что такое Qodana: https://www.jetbrains.com/ru-ru/qodana/)
🔥17😁4