CPX
Это как npx но для PHP. Этот инструмент позволяет выполнить любую команду из любого пакета Composer, даже если он не установлен в вашем проекте.
Это как npx но для PHP. Этот инструмент позволяет выполнить любую команду из любого пакета Composer, даже если он не установлен в вашем проекте.
GitHub
GitHub - imliam/cpx: Run any command from any composer package, even if it's not installed in your project.
Run any command from any composer package, even if it's not installed in your project. - imliam/cpx
🔥15
Forwarded from Библиотека собеса по PHP | вопросы с собеседований
Что такое TDD?
TDD (Test-Driven Development) — это методология разработки программного обеспечения, в которой разработка программы начинается с написания тестов, которые определяют желаемое поведение программы. Затем код разрабатывается и изменяется таким образом, чтобы эти тесты проходили успешно.
Процесс TDD обычно состоит из трех шагов, известных как «Красный», «Зеленый» и «Рефакторинг»:
Красный (Red): Сначала пишутся тесты для новой функциональности или для исправления ошибок. Поскольку этот этап выполняется до написания реализации, все тесты должны завершаться неудачей (иметь статус «красный»).
Зеленый (Green): Затем пишется минимальное количество кода, необходимое для прохождения тестов. Цель — сделать все тесты прошедшими (иметь статус «зеленый»).
Рефакторинг (Refactor): После того как все тесты прошли успешно, код можно улучшить, переработав его для улучшения структуры, производительности и т. д., сохраняя при этом поведение программы неизменным. Это позволяет улучшать код без риска нарушения его функциональности.
TDD (Test-Driven Development) — это методология разработки программного обеспечения, в которой разработка программы начинается с написания тестов, которые определяют желаемое поведение программы. Затем код разрабатывается и изменяется таким образом, чтобы эти тесты проходили успешно.
Процесс TDD обычно состоит из трех шагов, известных как «Красный», «Зеленый» и «Рефакторинг»:
Красный (Red): Сначала пишутся тесты для новой функциональности или для исправления ошибок. Поскольку этот этап выполняется до написания реализации, все тесты должны завершаться неудачей (иметь статус «красный»).
Зеленый (Green): Затем пишется минимальное количество кода, необходимое для прохождения тестов. Цель — сделать все тесты прошедшими (иметь статус «зеленый»).
Рефакторинг (Refactor): После того как все тесты прошли успешно, код можно улучшить, переработав его для улучшения структуры, производительности и т. д., сохраняя при этом поведение программы неизменным. Это позволяет улучшать код без риска нарушения его функциональности.
🔥10👍5
⚙️ Подпишись на нашу еженедельную email-рассылку, чтобы быть в курсе последних открытий и тенденций в мире бэкенда.
В еженедельных письмах ты найдешь:
● Языки программирования и фреймворки для бэкенда
● Архитектура и проектирование серверных приложений
● Базы данных и управление данными
● Безопасность и защита данных
● Облачные технологии и DevOps
● API и интеграции
● Тестирование и отладка
● Инструменты и утилиты для бэкенд-разработчиков
● Лучшие практики и паттерны проектирования
👉Подписаться👈
В еженедельных письмах ты найдешь:
● Языки программирования и фреймворки для бэкенда
● Архитектура и проектирование серверных приложений
● Базы данных и управление данными
● Безопасность и защита данных
● Облачные технологии и DevOps
● API и интеграции
● Тестирование и отладка
● Инструменты и утилиты для бэкенд-разработчиков
● Лучшие практики и паттерны проектирования
👉Подписаться👈
👾1
Новое в Symfony 7.2
🔸Новый линтер для проверки переводов —
🔸Улучшена работа с составными (compound) ограничениями для валидации. Compound constraint позволяет объединять несколько ограничений в одно, чтобы повторно использовать его в разных частях приложения. Например, можно создать ограничение
🔸Добавлен новый атрибут
🔸Улучшена работа с полем
Когда choice_lazy включен, список значений остается пустым до тех пор, пока они не понадобятся, что позволяет избежать ненужных запросов к базе данных и снижает нагрузку. При необходимости значения подгружаются и кэшируются.
Примеры использования лежат по ссылкам👆
🔸Новый линтер для проверки переводов —
lint:translations
. В отличие от существующей команды lint:xliff
, которая проверяет только XLIFF-файлы, lint:translations анализирует все переводы, независимо от формата. Эта команда полезна для поиска ошибок в синтаксисе ICU MessageFormat, который может быть сложным (например, легко забыть закрывающую фигурную скобку или форму для множественного числа).🔸Улучшена работа с составными (compound) ограничениями для валидации. Compound constraint позволяет объединять несколько ограничений в одно, чтобы повторно использовать его в разных частях приложения. Например, можно создать ограничение
MatchPasswordPolicy
для проверки пароля, включающее минимальную длину, отсутствие компрометации, наличие заглавных букв и другие правила. Это удобно применять к полям, требующим одинаковой проверки, как в классе пользователя User
.🔸Добавлен новый атрибут
#[WhenNot]
, который позволяет исключить сервис из определенных окружений конфигурации. Этот атрибут дополняет существующий #[When]
, который регистрирует сервисы только для указанных окружений, как dev. Новый атрибут упрощает настройку, если нужно исключить сервисы из нескольких окружений (например, из dev и test), без необходимости прописывать #[When]
для каждого окружения.🔸Улучшена работа с полем
EntityType
в формах для повышения производительности при работе с большими наборами данных. Теперь добавлена возможность использовать опцию choice_lazy
, которая включает ленивую загрузку значений с помощью нового LazyChoiceLoader
.Когда choice_lazy включен, список значений остается пустым до тех пор, пока они не понадобятся, что позволяет избежать ненужных запросов к базе данных и снижает нагрузку. При необходимости значения подгружаются и кэшируются.
Примеры использования лежат по ссылкам👆
🔥4👍3
Forwarded from Азбука айтишника
💣 Токсичный разработчик: гений или бомба замедленного действия?
Токсичный разработчик — это специалист, с которым крайне некомфортно работать. Разбираемся в статье — как к нему относиться:
🔗 Ссылка
Токсичный разработчик — это специалист, с которым крайне некомфортно работать. Разбираемся в статье — как к нему относиться:
🔗 Ссылка
🤔7👍2
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🌚2🥰1
Создание HTTP-потоков в PHP с помощью Symfony HTTP Client и Ollama API
HTTP-стриминг позволяет постепенно обрабатывать данные по мере их поступления, что особенно удобно для работы с большими или непрерывными потоками, не дожидаясь завершения всего ответа. Такой подход полезен для получения обновлений в реальном времени и оптимизации работы ресурсов, особенно при работе с API и платформами ИИ, которые передают большие объемы данных.
Чтобы реализовать стриминг данных в PHP с использованием Symfony HTTP Client, нужно:
🔹 Настроить HTTP клиент и задать конечную точку API.
🔹 Отправить запрос с параметрами, указывая модель ИИ и текстовый запрос.
🔹 Проверить статус ответа перед обработкой данных, чтобы убедиться в успешности запроса.
🔹 Использовать возможность Symfony получать ответ порциями, что позволяет обрабатывать каждый фрагмент данных сразу по мере поступления.
Этот метод особенно удобен для потоковых API, где каждый фрагмент содержит данные о модели, времени создания ответа и сгенерированный текст. Таким образом, обработка данных проходит быстрее и эффективнее, что особенно полезно для получения ответов в реальном времени.
HTTP-стриминг позволяет постепенно обрабатывать данные по мере их поступления, что особенно удобно для работы с большими или непрерывными потоками, не дожидаясь завершения всего ответа. Такой подход полезен для получения обновлений в реальном времени и оптимизации работы ресурсов, особенно при работе с API и платформами ИИ, которые передают большие объемы данных.
Чтобы реализовать стриминг данных в PHP с использованием Symfony HTTP Client, нужно:
🔹 Настроить HTTP клиент и задать конечную точку API.
🔹 Отправить запрос с параметрами, указывая модель ИИ и текстовый запрос.
🔹 Проверить статус ответа перед обработкой данных, чтобы убедиться в успешности запроса.
🔹 Использовать возможность Symfony получать ответ порциями, что позволяет обрабатывать каждый фрагмент данных сразу по мере поступления.
Этот метод особенно удобен для потоковых API, где каждый фрагмент содержит данные о модели, времени создания ответа и сгенерированный текст. Таким образом, обработка данных проходит быстрее и эффективнее, что особенно полезно для получения ответов в реальном времени.
2❤5👍1
Привет, друзья! 👋
Мы готовим статью об ИИ-инструментах для программирования в 2024 году и хотим услышать ваше мнение! 🤖💻 Поделитесь своим опытом и помогите нам сделать материал еще полезнее. Самые интересные ответы войдут в статью! 🏆
Мы готовим статью об ИИ-инструментах для программирования в 2024 году и хотим услышать ваше мнение! 🤖💻 Поделитесь своим опытом и помогите нам сделать материал еще полезнее. Самые интересные ответы войдут в статью! 🏆
Какой ИИ-инструмент для программирования вы считаете самым полезным и почему? 🛠️
Anonymous Poll
13%
GitHub Copilot
52%
ChatGPT
6%
Claude
10%
Codeium
5%
Локальные LLM
27%
Не пользуюсь ИИ
5%
Другой (укажите в комментариях)
😁7
Как изменилась ваша продуктивность после начала использования ИИ-инструментов в разработке? ⏱️
Anonymous Poll
13%
Значительно выросла (более чем на 50%)
23%
Умеренно выросла (20-50%)
30%
Незначительно выросла (до 20%)
28%
Не изменилась
6%
Снизилась
👍2👏2👾1
Какой аспект разработки, по вашему мнению, больше всего выигрывает от использования ИИ? 🚀
Anonymous Poll
45%
Автодополнение кода
19%
Генерация кода с нуля
16%
Отладка и поиск ошибок
12%
Оптимизация существующего кода
8%
Другое (поделитесь в комментариях)
Не забудьте оставить комментарий с вашими мыслями об ИИ в программировании! Какие преимущества и недостатки вы видите? Какие инструменты рекомендуете попробовать коллегам? 🤔💬
👍1
Forwarded from Библиотека собеса по PHP | вопросы с собеседований
Что такое план выполнения запроса и как его узнать?
План выполнения запроса (Query Execution Plan) — это детальный анализ того, как база данных будет выполнять запрос, включая порядок обработки данных, используемые индексы, методы соединения и другие оптимизации запроса. Понимание плана выполнения запроса может помочь оптимизировать производительность запросов, выявляя возможные проблемы и улучшая структуру запроса или индексы.
В разных системах управления базами данных (СУБД) есть различные способы получения плана выполнения запроса. Ниже приведены общие методы для некоторых из них:
MySQL / MariaDB:
Используйте ключевое слово EXPLAIN перед запросом SQL.
PostgreSQL:
Используйте ключевое слово EXPLAIN перед запросом SQL.
Для более подробного анализа используйте ключевое слово EXPLAIN ANALYZE.
SQL Server:
Используйте ключевое слово EXPLAIN перед запросом SQL.
Для более подробного анализа используйте команду SET SHOWPLAN_TEXT ON;, а затем выполните запрос.
SQLite:
Используйте ключевое слово EXPLAIN QUERY PLAN перед запросом SQL.
Oracle:
Используйте инструкцию EXPLAIN PLAN FOR.
Полученный план выполнения запроса может быть сложным для понимания, но он предоставляет ценную информацию о том, как база данных обрабатывает ваш запрос, что может помочь в оптимизации его производительности.
План выполнения запроса (Query Execution Plan) — это детальный анализ того, как база данных будет выполнять запрос, включая порядок обработки данных, используемые индексы, методы соединения и другие оптимизации запроса. Понимание плана выполнения запроса может помочь оптимизировать производительность запросов, выявляя возможные проблемы и улучшая структуру запроса или индексы.
В разных системах управления базами данных (СУБД) есть различные способы получения плана выполнения запроса. Ниже приведены общие методы для некоторых из них:
MySQL / MariaDB:
Используйте ключевое слово EXPLAIN перед запросом SQL.
PostgreSQL:
Используйте ключевое слово EXPLAIN перед запросом SQL.
Для более подробного анализа используйте ключевое слово EXPLAIN ANALYZE.
SQL Server:
Используйте ключевое слово EXPLAIN перед запросом SQL.
Для более подробного анализа используйте команду SET SHOWPLAN_TEXT ON;, а затем выполните запрос.
SQLite:
Используйте ключевое слово EXPLAIN QUERY PLAN перед запросом SQL.
Oracle:
Используйте инструкцию EXPLAIN PLAN FOR.
Полученный план выполнения запроса может быть сложным для понимания, но он предоставляет ценную информацию о том, как база данных обрабатывает ваш запрос, что может помочь в оптимизации его производительности.
❤7
Скрытые преимущества модульного PHP: Как создавать масштабируемые приложения
Здесь рассматриваются преимущества модульного подхода в разработке приложений на PHP. Основная идея заключается в том, что создание кода, разбитого на небольшие, независимые и взаимосвязанные модули, делает приложение более масштабируемым и поддерживаемым. Такой подход позволяет улучшить гибкость и упростить процесс добавления новых функций, а также тестирования и устранения багов.
Ключевыми принципами модульной архитектуры являются разделение кода на логические блоки и четкое определение зависимостей между ними. Используя модули, разработчики могут работать над разными частями приложения одновременно, что сокращает время разработки. Помимо этого, модульная структура позволяет легче адаптировать приложение к изменениям бизнес-требований или технологическим обновлениям.
Здесь рассматриваются преимущества модульного подхода в разработке приложений на PHP. Основная идея заключается в том, что создание кода, разбитого на небольшие, независимые и взаимосвязанные модули, делает приложение более масштабируемым и поддерживаемым. Такой подход позволяет улучшить гибкость и упростить процесс добавления новых функций, а также тестирования и устранения багов.
Ключевыми принципами модульной архитектуры являются разделение кода на логические блоки и четкое определение зависимостей между ними. Используя модули, разработчики могут работать над разными частями приложения одновременно, что сокращает время разработки. Помимо этого, модульная структура позволяет легче адаптировать приложение к изменениям бизнес-требований или технологическим обновлениям.
DEV Community
The Hidden Benefits of Modular PHP: How to Build Scalable Applications Like a Pro.
Introduction In an era where digital transformation accelerates rapidly, software...
🥱5
Как Elasticsearch поломал сборки и «обнулил» звёзды в Github
В один прекрасный день репозиторий
В один прекрасный день репозиторий
elasticsearch-php
на гитхабе выдал 404 ошибку. Что было дальше — в статье.Хабр
Как Elasticsearch поломал сборки и «обнулил» звёзды в Github
Казалось бы, майская история с Docker hub должна была научить всех нас уделять больше времени на обеспечение целостности артефактов проекта, но на то мы и люди, чтобы учиться на своих (и чужих)...
😁5👍3🥰1
🔎Пользуетесь ли вы какими-либо иностранными новостными ресурсами по программированию на регулярной основе? Если да, то какими?🔽
🤔4