Еще один #дайджест новостей по PHP за неделю:
🔎 PHPSandbox — это веб-приложение, которое позволяет вам быстро создавать прототипы или делиться проектами PHP без настройки локальной среды.
🔎Вышла версия Filament v3, которая включает в себя множество новых функций, полностью обновленный пользовательский интерфейс, новый веб-сайт, поддержку Livewire 3 и многое другое!
🔎Вышел Symfony 6.2.14. Вот список наиболее важных изменений с момента выпуска 6.2.13
🔎A Week of Symfony #865 (24-30 июля 2023 г.)
🔎 PHPSandbox — это веб-приложение, которое позволяет вам быстро создавать прототипы или делиться проектами PHP без настройки локальной среды.
🔎Вышла версия Filament v3, которая включает в себя множество новых функций, полностью обновленный пользовательский интерфейс, новый веб-сайт, поддержку Livewire 3 и многое другое!
🔎Вышел Symfony 6.2.14. Вот список наиболее важных изменений с момента выпуска 6.2.13
🔎A Week of Symfony #865 (24-30 июля 2023 г.)
👍4🔥2❤1
Чем отличаются модульные тесты от интеграционных?
. Модульные тесты:
- Тестируют отдельные модули или функции программы, обычно на уровне кода.
- Пишутся программистами для проверки корректности работы отдельных компонентов программы.
- Могут быть автоматическими или ручными.
- Могут быть запущены независимо от других компонентов программы.
- Могут использовать заглушки (mocks) или подставные объекты (mock objects) для изоляции тестируемого модуля от зависимостей.
2. Интеграционные тесты:
- Тестируют взаимодействие между различными модулями и компонентами программы.
- Проверяют, что все компоненты взаимодействуют правильно и вместе выполняют заданную функциональность.
- Могут быть автоматическими или ручными.
- Требуют наличия всех зависимостей и окружения, необходимых для запуска тестируемой функциональности.
- Часто выполняются на уровне системы или её компонентов, а не только на уровне кода.
Используя модульные тесты, программисты могут протестировать отдельные части программы без необходимости полного запуска всей системы. Это помогает быстрее находить и исправлять ошибки.
Используя интеграционные тесты, разработчики могут убедиться в том, что все компоненты программы работают правильно вместе и выполняют требуемую функциональность, увеличивая качество программного обеспечения и уверенность в его работе.
#вопросы_с_собеседований
. Модульные тесты:
- Тестируют отдельные модули или функции программы, обычно на уровне кода.
- Пишутся программистами для проверки корректности работы отдельных компонентов программы.
- Могут быть автоматическими или ручными.
- Могут быть запущены независимо от других компонентов программы.
- Могут использовать заглушки (mocks) или подставные объекты (mock objects) для изоляции тестируемого модуля от зависимостей.
2. Интеграционные тесты:
- Тестируют взаимодействие между различными модулями и компонентами программы.
- Проверяют, что все компоненты взаимодействуют правильно и вместе выполняют заданную функциональность.
- Могут быть автоматическими или ручными.
- Требуют наличия всех зависимостей и окружения, необходимых для запуска тестируемой функциональности.
- Часто выполняются на уровне системы или её компонентов, а не только на уровне кода.
Используя модульные тесты, программисты могут протестировать отдельные части программы без необходимости полного запуска всей системы. Это помогает быстрее находить и исправлять ошибки.
Используя интеграционные тесты, разработчики могут убедиться в том, что все компоненты программы работают правильно вместе и выполняют требуемую функциональность, увеличивая качество программного обеспечения и уверенность в его работе.
#вопросы_с_собеседований
👍16❤2🏆1
Эксперимент: Замена Symfony DI на Laravel Container в ECS
Здесь подробно описываются причины, по которым проводится этот эксперимент, а также объясняются ключевые различия между DI контейнерами Symfony и Laravel. Далее определяются задачи, которые надо решить с помощью нового контейнера, и объясняется, как происходит замена контейнера.
В статье автор представляет некоторые проблемы, с которыми столкнулся при замене контейнера, и рассказывает о решениях, которые были найдены для этих проблем. Он также анализирует производительность и преимущества, которые были получены после замены контейнера.
Здесь подробно описываются причины, по которым проводится этот эксперимент, а также объясняются ключевые различия между DI контейнерами Symfony и Laravel. Далее определяются задачи, которые надо решить с помощью нового контейнера, и объясняется, как происходит замена контейнера.
В статье автор представляет некоторые проблемы, с которыми столкнулся при замене контейнера, и рассказывает о решениях, которые были найдены для этих проблем. Он также анализирует производительность и преимущества, которые были получены после замены контейнера.
Tomasvotruba
Experiment: How I replaced Symfony DI with Laravel Container in ECS
This year I've been learning Laravel and quickly adapting to most of my tools. I've made 2 packages - [Punchcard](/blog/introducing-punchcard-object-configs-for-laravel) to handle configs and [Bladestan](/blog/introducing-bladestan-phpstan-analysis-of-blade…
👍7🤔4🍌2❤1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
#проектирование_систем
📝 Наглядная демонстрация распространенных алгоритмов балансировки нагрузки
🔹 Статические алгоритмы
1️⃣ Round Robin, или алгоритм кругового обслуживания, представляет собой перебор по круговому циклу: первый запрос передаётся одному серверу, затем следующий запрос передаётся другому и так до достижения последнего сервера, после чего всё начинается сначала.
📌 Недостаток алгоритма в том, что в нём не учитывается количество активных на данный момент подключений
2️⃣ Sticky Round Robin — вариация алгоритма Round Robin. Если первый запрос Алисы отправляется к сервису А, то и последующие запросы также отправляются к сервису А.
3️⃣ Weighted Round Robin — вариация алгоритма Round Robin. Каждому серверу присваивается весовой коэффициент в соответствии с его производительностью и мощностью.
4️⃣ Хэш — алгоритм, который применяет хэш-функцию к IP-адресу или URL-адресу входящих запросов. Запросы направляются в соответствующие экземпляры на основе результата хэш-функции.
🔹 Динамические алгоритмы
5️⃣ Least connections — алгоритм, при котором новое подключение передается на сервер, на который в данный момент установлено наименьшее число соединений.
6️⃣ Least response time — алгоритм, который учитывает не только количество соединений, но и среднее время. Тогда первым в списке будет сервер с наименьшим количеством подключений и наименьшим временем ответа.
🔗 Источник
🔹 Статические алгоритмы
1️⃣ Round Robin, или алгоритм кругового обслуживания, представляет собой перебор по круговому циклу: первый запрос передаётся одному серверу, затем следующий запрос передаётся другому и так до достижения последнего сервера, после чего всё начинается сначала.
📌 Недостаток алгоритма в том, что в нём не учитывается количество активных на данный момент подключений
2️⃣ Sticky Round Robin — вариация алгоритма Round Robin. Если первый запрос Алисы отправляется к сервису А, то и последующие запросы также отправляются к сервису А.
3️⃣ Weighted Round Robin — вариация алгоритма Round Robin. Каждому серверу присваивается весовой коэффициент в соответствии с его производительностью и мощностью.
4️⃣ Хэш — алгоритм, который применяет хэш-функцию к IP-адресу или URL-адресу входящих запросов. Запросы направляются в соответствующие экземпляры на основе результата хэш-функции.
🔹 Динамические алгоритмы
5️⃣ Least connections — алгоритм, при котором новое подключение передается на сервер, на который в данный момент установлено наименьшее число соединений.
6️⃣ Least response time — алгоритм, который учитывает не только количество соединений, но и среднее время. Тогда первым в списке будет сервер с наименьшим количеством подключений и наименьшим временем ответа.
🔗 Источник
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🔥2
❓25 вопросов, которые стоит задать HR-менеджеру на интервью
В этой статье разберемся, что спросить у работодателя, чтобы получить оффер.
В этой статье разберемся, что спросить у работодателя, чтобы получить оффер.
😁3👍2❤1
8 вредных привычек у разработчиков Laravel
Статья освещает важные проблемы и плохие привычки, с которыми разработчики Laravel могут сталкиваться при написании кода. Автор статьи рассматривает восемь распространенных ошибок и плохих практик, которые разработчики часто допускают при использовании Laravel:
✅Не отделять валидацию от контроллеров
✅Несоблюдение принципа SRP
✅Неиспользование промежуточного ПО
и другие.
Статья освещает важные проблемы и плохие привычки, с которыми разработчики Laravel могут сталкиваться при написании кода. Автор статьи рассматривает восемь распространенных ошибок и плохих практик, которые разработчики часто допускают при использовании Laravel:
✅Не отделять валидацию от контроллеров
✅Несоблюдение принципа SRP
✅Неиспользование промежуточного ПО
и другие.
Codewithdary
8 Bad Habits I See Laravel Developers Make — Code With Dary
This blog post covers 8 common bad habits that Laravel developers often make and how to avoid them. The post covers best practices for writing cleaner, more maintainable, and more performant code, including separating validation logic from controllers, following…
👍6❤2⚡1🔥1
🔎Какой сертификат вы бы посоветовали получить?⬇️⬇️⬇️
🍌3
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
☕️Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека шарписта
Библиотека Go разработчика
Библиотека мобильного разработчика
Библиотека хакера
Библиотека питониста
Библиотека devops’a
Библиотека тестировщика
Библиотека пхпшника
💼Каналы с вакансиями
Вакансии по питону, Django, Flask
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии по C#, .NET, Unity
Вакансии по Go
Вакансии по PHP, Symfony, Laravel
Вакансии по DevOps & SRE
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
☕️Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека шарписта
Библиотека Go разработчика
Библиотека мобильного разработчика
Библиотека хакера
Библиотека питониста
Библиотека devops’a
Библиотека тестировщика
Библиотека пхпшника
💼Каналы с вакансиями
Вакансии по питону, Django, Flask
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии по C#, .NET, Unity
Вакансии по Go
Вакансии по PHP, Symfony, Laravel
Вакансии по DevOps & SRE
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
😁3❤2🍌2🤩1
Почему после PHP 5 идет сразу 7, куда делась 6?
Официально, версия PHP 6 была отменена из-за серьезных проблем и препятствий во время разработки. PHP 6 должен был представлять новую функциональность, включая поддержку Unicode и новый движок для работы с строками. Однако разработка PHP 6 столкнулась с техническими и организационными трудностями, вызванными внесением изменений в код базового ядра, которые затронули большую часть существующих библиотек и приложений.
11 марта 2010 команда разработчиков приняла решение об отмене выпуска PHP 6 в текущем его виде. В результате транк с PHP 6 был перенесён в бранч, а в транке образовалась новая версия — 5.4, в которую разработчики перенесли все наработки из PHP 6, кроме юникода.
Официально, версия PHP 6 была отменена из-за серьезных проблем и препятствий во время разработки. PHP 6 должен был представлять новую функциональность, включая поддержку Unicode и новый движок для работы с строками. Однако разработка PHP 6 столкнулась с техническими и организационными трудностями, вызванными внесением изменений в код базового ядра, которые затронули большую часть существующих библиотек и приложений.
11 марта 2010 команда разработчиков приняла решение об отмене выпуска PHP 6 в текущем его виде. В результате транк с PHP 6 был перенесён в бранч, а в транке образовалась новая версия — 5.4, в которую разработчики перенесли все наработки из PHP 6, кроме юникода.
👍20❤1
✍️«Библиотека программиста» собирает кейсы использования нейросетей
Какие самые необычные задачи вы выполняли с помощью нейросетей? Может быть, вы просили ИИ пройти тестирование по правилам безопасности или писали с его помощью заявление на увольнение?
Заполняйте форму — лучшие истории появятся в нашей подборке по теме.
👉Ссылка тут👈
Какие самые необычные задачи вы выполняли с помощью нейросетей? Может быть, вы просили ИИ пройти тестирование по правилам безопасности или писали с его помощью заявление на увольнение?
Заполняйте форму — лучшие истории появятся в нашей подборке по теме.
👉Ссылка тут👈
❤3
Подготовьтесь к Symfony 6.4 и Symfony 7.0
Здесь подробно описывается как подготовить свои проекты к новым версиям, которые выходят в ноябре 2023 года.
В первую очередь рассказывается про устаревание - При внесении изменений в функцию Symfony сохраняет старое поведение (помечая его как устаревшее) и добавляет поддержку нового поведения, и то, в каких версиях оно будет, а также описывается шаги для подготовки к обновлению своего проекта новую версию
Здесь подробно описывается как подготовить свои проекты к новым версиям, которые выходят в ноябре 2023 года.
В первую очередь рассказывается про устаревание - При внесении изменений в функцию Symfony сохраняет старое поведение (помечая его как устаревшее) и добавляет поддержку нового поведения, и то, в каких версиях оно будет, а также описывается шаги для подготовки к обновлению своего проекта новую версию
Symfony
Prepare Yourself for Symfony 6.4 and Symfony 7.0 (Symfony Blog)
Symfony 6.4 and Symfony 7.0 will be released at the same time at the end of November 2023. This article explains their differences and how to pick the best version for your projects.
❤11🔥5
Гайд 2023 Xdebug в PHPSTORM + Virtual server + Docker для macOS с пробросом портов
Небольшой гайд для новичков
Небольшой гайд для новичков
Хабр
Гайд 2023 Xdebug в PHPSTORM + Virtual server + Docker для macOS с пробросом портов
Гайд для remote подключения. Постарался обьяснить максимально подробно для новичков, так как понимаю как больно прыгать по статьям и теряться в последовательности. Тема актуальная, в силу того, что...
❤7👍6😁6
Как использовать DigitalOcean Spaces с Laravel Voyager
Laravel Voyager - это популярная административная панель для фреймворка Laravel, которая помогает разработчикам быстро создавать и управлять административными интерфейсами для своих веб-приложений.
Статья объясняет, что такое DigitalOcean Spaces и как она может быть использована в приложении Laravel с помощью пакета Laravel Voyager. DigitalOcean Spaces предоставляет объектное хранилище для хранения и управления большим объемом данных, а Laravel Voyager позволяет интегрировать эту функциональность напрямую в административную панель вашего приложения.
Laravel Voyager - это популярная административная панель для фреймворка Laravel, которая помогает разработчикам быстро создавать и управлять административными интерфейсами для своих веб-приложений.
Статья объясняет, что такое DigitalOcean Spaces и как она может быть использована в приложении Laravel с помощью пакета Laravel Voyager. DigitalOcean Spaces предоставляет объектное хранилище для хранения и управления большим объемом данных, а Laravel Voyager позволяет интегрировать эту функциональность напрямую в административную панель вашего приложения.
DEV Community
How to use DigitalOcean Spaces with Laravel Voyager?
Introduction DigitalOcean Spaces is an object storage service that allows you to store and...
❤7👍3
Руководство по тестированию промежуточного ПО в Laravel
Здесь рассказывается о тестировании middleware в Laravel. Middleware в Laravel - это слои обработки запросов, которые выполняются до или после выполнения определенного запроса и предоставляют удобный способ внедрения дополнительной логики в ваше приложение.
В статье описывается, как тестировать middleware в Laravel, используя встроенные возможности фреймворка. Статья начинается с объяснения, что такое middleware и зачем оно нужно, затем дается пример простого middleware, который проверяет наличие заголовка авторизации в запросе.
Здесь рассказывается о тестировании middleware в Laravel. Middleware в Laravel - это слои обработки запросов, которые выполняются до или после выполнения определенного запроса и предоставляют удобный способ внедрения дополнительной логики в ваше приложение.
В статье описывается, как тестировать middleware в Laravel, используя встроенные возможности фреймворка. Статья начинается с объяснения, что такое middleware и зачем оно нужно, затем дается пример простого middleware, который проверяет наличие заголовка авторизации в запросе.
DEV Community
A Guide to Testing Middleware in Laravel
Greetings, fellow developers! 🌟 Today, we're diving into the exciting world of Laravel middleware...
❤11👍8🔥1
Сборка Docker в 6 раз быстрее для проектов Symfony и API Platform
Статья рассказывает о том, как улучшить процесс сборки Docker контейнеров для проектов Symfony и API Platform. Автор объясняет, что стандартный процесс сборки Docker образов может быть медленным и ресурсоемким, особенно для крупных проектов. Он предлагает оптимизировать этот процесс, чтобы снизить время сборки и улучшить производительность.
Статья рассказывает о том, как улучшить процесс сборки Docker контейнеров для проектов Symfony и API Platform. Автор объясняет, что стандартный процесс сборки Docker образов может быть медленным и ресурсоемким, особенно для крупных проектов. Он предлагает оптимизировать этот процесс, чтобы снизить время сборки и улучшить производительность.
Kévin Dunglas - Founder of Les-Tilleuls.coop (worker-owned cooperative). Creator of API Platform, FrankenPHP, Mercure.rocks, Vulcain.rocks and of some Symfony components.
6x faster Docker builds for Symfony and API Platform projects - Kévin Dunglas
Available translations: French At Les-Tilleuls.coop, we're constantly striving to reduce the environmental footprint and hosting costs of the projects we work on (eco-design, GreenOps, and FinOps strategies...). We generally focus on optimizing production…
❤8👍3
Как клонировать проект Laravel с GitHub и запустить его в VS Code
Статья говорит о том, как клонировать проект Laravel с GitHub и запустить его в VS Code. В статье приведены подробные инструкции по установке Laravel, установке Composer, клонированию проекта с GitHub и запуску проекта в VS Code. Кроме того, описаны несколько шагов для настройки базы данных и запуска миграций и тестов.
Статья говорит о том, как клонировать проект Laravel с GitHub и запустить его в VS Code. В статье приведены подробные инструкции по установке Laravel, установке Composer, клонированию проекта с GitHub и запуску проекта в VS Code. Кроме того, описаны несколько шагов для настройки базы данных и запуска миграций и тестов.
DEV Community
How to Clone a Laravel Project from GitHub and Run it in VS Code
Introduction: Cloning a Laravel project from GitHub and setting it up in Visual Studio Code is an...
😁20👍3❤1
Что такое "Позднее статическое связывание"?
Выражается в разнице между вызовом self:: и static::. «Позднее связывание» означает, что static:: будет вычисляться в ходе исполнения и может быть переопределен в классах — наследниках. Подробнее в документации.
#вопросы_с_собеседований
Выражается в разнице между вызовом self:: и static::. «Позднее связывание» означает, что static:: будет вычисляться в ходе исполнения и может быть переопределен в классах — наследниках. Подробнее в документации.
#вопросы_с_собеседований
www.php.net
PHP: Hypertext Preprocessor
PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.
⚡7👍5🍌1
«Как мы поднимаем dev-стэнд(ы) и гоняем полноценные тесты api на каждый коммит»
Автор пишет, что они в API отказались от большого количества unit-тестов в пользу большого количества интеграционных/системных, чтобы тестировать меньшим количеством кода большее количество функций, а также наблюдать за взаимодействием разных частей системы.
На самом деле они просто решили писать тесты не на отдельные классы/методы, а на интерфейс api, которым пользуются клиенты - на сервисы этого API. Тестируя их, убивается два зайца: проверяется логика работы сервисов api + форматирование результата.
Но такое тестирование сопряжено с несколькими проблемами.
Автор пишет, что они в API отказались от большого количества unit-тестов в пользу большого количества интеграционных/системных, чтобы тестировать меньшим количеством кода большее количество функций, а также наблюдать за взаимодействием разных частей системы.
На самом деле они просто решили писать тесты не на отдельные классы/методы, а на интерфейс api, которым пользуются клиенты - на сервисы этого API. Тестируя их, убивается два зайца: проверяется логика работы сервисов api + форматирование результата.
Но такое тестирование сопряжено с несколькими проблемами.
Хабр
Как мы поднимаем dev-стэнд(ы) и гоняем полноценные тесты api на каждый коммит
Мы в API отказались от большого количества unit -тестов в пользу большого количества интеграционных/системных тестов, чтобы: не писать тесты на каждую небольшую функцию системы (которые могут...
❤🔥4🤔4👍1🔥1