😎 Покупайте сейчас — учитесь, когда удобно!
До 1 апреля мы снизили цены на все наши курсы, чтобы вы могли сформировать свой карьерный трек и например подготовится и поступить в ШАД.
👀 Советуем обратить внимание на наши самые популярные курсы:
– Математика для Data Science
– Алгоритмы и структуры данных
🔥 Все цены на сайте уже включают скидку 35%, поэтому не упустите возможность зайти на курс по самой выгодной цене.
📚А если вы не уверенны, подойдет ли вам курс, то вы можете оставить заявку на вводные занятия. И наш менеджер пришлет вам всю необходимую информацию, где вы познакомитесь с преподавателями и форматом обучения — https://proglib.io/w/47905349
До 1 апреля мы снизили цены на все наши курсы, чтобы вы могли сформировать свой карьерный трек и например подготовится и поступить в ШАД.
👀 Советуем обратить внимание на наши самые популярные курсы:
– Математика для Data Science
– Алгоритмы и структуры данных
🔥 Все цены на сайте уже включают скидку 35%, поэтому не упустите возможность зайти на курс по самой выгодной цене.
📚А если вы не уверенны, подойдет ли вам курс, то вы можете оставить заявку на вводные занятия. И наш менеджер пришлет вам всю необходимую информацию, где вы познакомитесь с преподавателями и форматом обучения — https://proglib.io/w/47905349
❤1
Как интегрировать компонентную архитектуру в Symfony?
Здесь рассказывается о важности эффективного взаимодействия между front-end и back-end разработчиками в проектах, а также о том, как применение компонентной архитектуры может помочь в этом.
В начале подчеркивается, что неправильное понимание пользовательской истории (User Story) может привести к потере до трёх дней разработки из-за недопонимания. Также отмечается, что использование разных языков программирования может требовать создания API для облегчения коммуникации, что также является затратным процессом.
Основной акцент делается на причинах, по которым front-end разработчики могут быть неохотны работать с Twig (шаблонизатор для Symfony), что может привести к разрыву в коммуникации между front-end и back-end разработчиками.
Далее рассматривается компонентная архитектура, которая является фундаментальной для многих современных фронтенд-фреймворков, таких как Svelte, React и Vue.
Она определяется четырьмя основными принципами:
Композиция: Страница больше не является просто страницей, а скорее коллекцией маленьких, многократно используемых компонентов. Компоненты можно собирать для формирования страницы.
Независимость: Чтобы компонент можно было бесконечно использовать, он не должен зависеть от контекста. Он должен функционировать идентично, когда размещен на другой странице.
Свойства: Компонент должен оставаться независимым, но мы можем настраивать его в зависимости от контекста, используя свойства.
Состояния: Компонент может иметь несколько состояний, например, активное, загружающееся и отключенное. Состояния позволяют изменять внешний вид компонента в зависимости от его текущего состояния.
Также приводятся примеры того, как использовать архитектуру компонентов с помощью Symfony и шаблонизатора Twig. Она объясняет, как создавать компоненты, как использовать свойства для настройки компонентов и как комбинировать компоненты для создания более сложных интерфейсов. Также упоминаются способы управления состояниями компонентов с помощью библиотек Stimulus и LiveComponents.
Здесь рассказывается о важности эффективного взаимодействия между front-end и back-end разработчиками в проектах, а также о том, как применение компонентной архитектуры может помочь в этом.
В начале подчеркивается, что неправильное понимание пользовательской истории (User Story) может привести к потере до трёх дней разработки из-за недопонимания. Также отмечается, что использование разных языков программирования может требовать создания API для облегчения коммуникации, что также является затратным процессом.
Основной акцент делается на причинах, по которым front-end разработчики могут быть неохотны работать с Twig (шаблонизатор для Symfony), что может привести к разрыву в коммуникации между front-end и back-end разработчиками.
Далее рассматривается компонентная архитектура, которая является фундаментальной для многих современных фронтенд-фреймворков, таких как Svelte, React и Vue.
Она определяется четырьмя основными принципами:
Композиция: Страница больше не является просто страницей, а скорее коллекцией маленьких, многократно используемых компонентов. Компоненты можно собирать для формирования страницы.
Независимость: Чтобы компонент можно было бесконечно использовать, он не должен зависеть от контекста. Он должен функционировать идентично, когда размещен на другой странице.
Свойства: Компонент должен оставаться независимым, но мы можем настраивать его в зависимости от контекста, используя свойства.
Состояния: Компонент может иметь несколько состояний, например, активное, загружающееся и отключенное. Состояния позволяют изменять внешний вид компонента в зависимости от его текущего состояния.
Также приводятся примеры того, как использовать архитектуру компонентов с помощью Symfony и шаблонизатора Twig. Она объясняет, как создавать компоненты, как использовать свойства для настройки компонентов и как комбинировать компоненты для создания более сложных интерфейсов. Также упоминаются способы управления состояниями компонентов с помощью библиотек Stimulus и LiveComponents.
DEV Community
How to integrate Component Architecture into Symfony?
Miscommunication in our projects is costly. A single misunderstood User Story can result in 3 days of...
🔥4👍2❤1
💸👨💻 Тебе повезло, ты богатый айтишник
Как показали результаты нашего исследования, даже с профильным образованием найти первую работу в ИТ бывает нелегко. Большинству свитчеров первый оффер дается еще сложнее: огромный объем необходимых знаний и навыков нужно получить как можно быстрее.
Многие учатся (самостоятельно или на курсах) без отрыва от основной работы. Самые отчаянные вайтишники бросают работу и начинают учиться, живя на скромные сбережения. Герой этой истории, фронтендер Олег, начинал именно так. Под катом — его история.
👉 Читать статью
👉 Зеркало
Как показали результаты нашего исследования, даже с профильным образованием найти первую работу в ИТ бывает нелегко. Большинству свитчеров первый оффер дается еще сложнее: огромный объем необходимых знаний и навыков нужно получить как можно быстрее.
Многие учатся (самостоятельно или на курсах) без отрыва от основной работы. Самые отчаянные вайтишники бросают работу и начинают учиться, живя на скромные сбережения. Герой этой истории, фронтендер Олег, начинал именно так. Под катом — его история.
👉 Читать статью
👉 Зеркало
😁5🌚3
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
💪 Что не так с MVP: как создать конкурентоспособный продукт
Традиционная концепция MVP нуждается в пересмотре — авторы предлагают альтернативный подход, основанный на тесном взаимодействии с целевой аудиторией и непрерывных итерациях для создания действительно ценного продукта.
👉 Читать статью
👉 Зеркало
Традиционная концепция MVP нуждается в пересмотре — авторы предлагают альтернативный подход, основанный на тесном взаимодействии с целевой аудиторией и непрерывных итерациях для создания действительно ценного продукта.
👉 Читать статью
👉 Зеркало
🔥4
Forwarded from Библиотека программиста | программирование, кодинг, разработка
📈 По просьбе подписчиков «Библиотеки программиста» мы провели опрос и выяснили, что у большинства айтишников зарплата в 2023 году выросла.
⚡️ Как выглядит доход среднего айтишника и какие факторы окажут влияние на динамику ИТ-зарплат в 2024 году — расскажем в статье на VC.
👉 Читать
P. S. Свои предложения для исследований пишите в комменты👇
⚡️ Как выглядит доход среднего айтишника и какие факторы окажут влияние на динамику ИТ-зарплат в 2024 году — расскажем в статье на VC.
👉 Читать
P. S. Свои предложения для исследований пишите в комменты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🌚2
Что такое вариативная функция или spread-оператор?
Вариативная функция — это функция, которая может принимать переменное количество аргументов. Это означает, что ее можно вызывать с различным числом аргументов. В PHP вариативные функции объявляются с помощью оператора ... (также известного как spread-оператор) перед именем аргумента.
Например, вариативная функция может быть объявлена следующим образом(фото 1)
Spread-оператор, также представленный символом ..., выполняет обратную операцию — он распаковывает массив и передает его элементы как аргументы в функцию. Он может использоваться для передачи переменного количества аргументов в функцию или для объединения массивов.
Например, spread-оператор можно использовать следующим образом(фото 2)
В этом примере массив $numbers распаковывается с помощью spread-оператора и его элементы передаются в вариативную функцию sum в качестве отдельных аргументов.
#вопросы_с_собеседований
Вариативная функция — это функция, которая может принимать переменное количество аргументов. Это означает, что ее можно вызывать с различным числом аргументов. В PHP вариативные функции объявляются с помощью оператора ... (также известного как spread-оператор) перед именем аргумента.
Например, вариативная функция может быть объявлена следующим образом(фото 1)
Spread-оператор, также представленный символом ..., выполняет обратную операцию — он распаковывает массив и передает его элементы как аргументы в функцию. Он может использоваться для передачи переменного количества аргументов в функцию или для объединения массивов.
Например, spread-оператор можно использовать следующим образом(фото 2)
В этом примере массив $numbers распаковывается с помощью spread-оператора и его элементы передаются в вариативную функцию sum в качестве отдельных аргументов.
#вопросы_с_собеседований
👍8❤2
Сделайте свое приложение быстрее с PHP 8.3
PHP 8.3 представляет собой значительный этап в развитии PHP, предлагая как прямые, так и косвенные улучшения, которые могут революционизировать производительность веб-приложений. Давайте подробнее рассмотрим новые функции и оптимизации PHP 8.3 и исследуем, как их можно использовать для ускорения работы ваших приложений.
🚀Прямые улучшения производительности:
PHP 8.3 вводит оптимизации, направленные на повышение эффективности выполнения во время работы. Компилятор Just-In-Time (JIT) был улучшен для более эффективной работы, что приводит к более быстрому выполнению сценариев, особенно для ресурсоемких задач. Кроме того, улучшения в обработке операторов и сборке мусора способствуют снижению времени выполнения и более эффективному использованию памяти.
Более того, оптимизации для обработки массивов и улучшения в механизмах предварительной загрузки позволяют добиться более быстрых времен ответа за счет снижения накладных расходов на компиляцию сценариев.
💡Косвенные увеличения производительности:
Помимо прямых оптимизаций, PHP 8.3 вносит улучшения синтаксиса, методов и увеличивает безопасность типов, что косвенно влияет на производительность. Эти улучшения оптимизируют разработку, сокращают производственные ошибки и позволяют более быстро выпускать обновления, в конечном итоге повышая эффективность приложения.
🔧Использование новых функций для более быстрой разработки:
Использование новых функций, таких как типизированные константы классов, динамическое извлечение констант классов и элементов Enum, улучшенное обработка ошибок, расширенная поддержка типов и упрощенная проверка JSON, может значительно повысить скорость разработки и надежность кода.
📈Общие улучшения производительности PHP:
Помимо функций PHP 8.3, оптимизация стратегий кэширования, переход на HTTP/2 и оптимизация запросов к базе данных и кода являются рекомендуемыми практиками для повышения общей производительности приложения. Инструменты, такие как мониторинг производительности приложений (APM), обеспечивают мониторинг в реальном времени и подробный анализ трассировки, помогая выявлять и устранять узкие места в производительности.
PHP 8.3 представляет собой значительный этап в развитии PHP, предлагая как прямые, так и косвенные улучшения, которые могут революционизировать производительность веб-приложений. Давайте подробнее рассмотрим новые функции и оптимизации PHP 8.3 и исследуем, как их можно использовать для ускорения работы ваших приложений.
🚀Прямые улучшения производительности:
PHP 8.3 вводит оптимизации, направленные на повышение эффективности выполнения во время работы. Компилятор Just-In-Time (JIT) был улучшен для более эффективной работы, что приводит к более быстрому выполнению сценариев, особенно для ресурсоемких задач. Кроме того, улучшения в обработке операторов и сборке мусора способствуют снижению времени выполнения и более эффективному использованию памяти.
Более того, оптимизации для обработки массивов и улучшения в механизмах предварительной загрузки позволяют добиться более быстрых времен ответа за счет снижения накладных расходов на компиляцию сценариев.
💡Косвенные увеличения производительности:
Помимо прямых оптимизаций, PHP 8.3 вносит улучшения синтаксиса, методов и увеличивает безопасность типов, что косвенно влияет на производительность. Эти улучшения оптимизируют разработку, сокращают производственные ошибки и позволяют более быстро выпускать обновления, в конечном итоге повышая эффективность приложения.
🔧Использование новых функций для более быстрой разработки:
Использование новых функций, таких как типизированные константы классов, динамическое извлечение констант классов и элементов Enum, улучшенное обработка ошибок, расширенная поддержка типов и упрощенная проверка JSON, может значительно повысить скорость разработки и надежность кода.
📈Общие улучшения производительности PHP:
Помимо функций PHP 8.3, оптимизация стратегий кэширования, переход на HTTP/2 и оптимизация запросов к базе данных и кода являются рекомендуемыми практиками для повышения общей производительности приложения. Инструменты, такие как мониторинг производительности приложений (APM), обеспечивают мониторинг в реальном времени и подробный анализ трассировки, помогая выявлять и устранять узкие места в производительности.
👍10
Forwarded from Библиотека нейросетей | ChatGPT, Midjourney, DeepSeek, Sora
Умение быстро находить решения сложных задач — один из самых важных навыков разработчика. Но найти по-настоящему полезную информацию в лавинообразном потоке SEO-оптимизированного контента бывает нелегко. На помощь придут ИИ-поисковики: они могут отыскать ответ на самый размытый запрос, а при необходимости — сгенерируют собственное решение.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰4👏1
Превращение событий PostgreSQL в события Laravel
Здесь рассказывается, как можно преобразовать события, возникающие в PostgreSQL, в события Laravel.
Здесь рассказывается, как можно преобразовать события, возникающие в PostgreSQL, в события Laravel.
Хабр
Превращение событий PostgreSQL в события Laravel
Краткая аннотация В прошлый раз я описал, как можно поставить задачу (Job) в очередь Laravel из хранимой процедуры или триггера PostgreSQL. В этой статье я расскажу, как можно преобразовать события,...
👍4
💬 Чем вы в основном занимаетесь после работы в свободное от работы время?
❤️ — смотрю сериалы/фильмы, читаю книги, сижу в соцсетях
👍 — занимаюсь домашними делами: убираюсь, готовлю, провожу время с детьми
🥰 — работаю над пет-проектами
🔥 — занимаюсь спортом/хобби
🤔 — а я вообще не уверен, что у меня свободное время
👇 Пишите в комментариях собственные варианты
#интерактив
❤️ — смотрю сериалы/фильмы, читаю книги, сижу в соцсетях
👍 — занимаюсь домашними делами: убираюсь, готовлю, провожу время с детьми
🥰 — работаю над пет-проектами
🔥 — занимаюсь спортом/хобби
🤔 — а я вообще не уверен, что у меня свободное время
👇 Пишите в комментариях собственные варианты
#интерактив
❤61🤔53👍35🔥30🥰18
Audio
🎸💯 «Идущий к реке» — rock edition
Что если бы знаменитый монолог был песней? Гадать больше не надо — на помощь приходят нейросети!
👉 О том, какая именно нейросеть помогла нам это сделать, читайте в нашем новом канале — Библиотека нейрозвука
Подписывайтесь, там много интересного!
Что если бы знаменитый монолог был песней? Гадать больше не надо — на помощь приходят нейросети!
Подписывайтесь, там много интересного!
Please open Telegram to view this post
VIEW IN TELEGRAM
👏6🌚3⚡1💯1👾1
Какова цель ключевого слова «use» в пространствах имен PHP?
Псевдонимы пространств имен или классов: Позволяет задать более короткие и удобные имена для длинных пространств имен или классов. Это делает код более читаемым и кратким.
Импорт констант: Позволяет импортировать константы, определенные в пространстве имен, с помощью use:
Импорт функций (начиная с PHP 8): В PHP 8 и выше вы также можете импортировать функции из пространства имен в текущее пространство имен, используя use function.
Импорт констант (начиная с PHP 8): Аналогично, в PHP 8 и выше вы можете импортировать константы из пространства имен в текущее пространство имен с помощью use const.
Используя use, вы можете сделать свой код более чистым и поддерживаемым, уменьшая необходимость повторного использования полностью квалифицированных имен в вашем коде
#вопросы_с_собеседований
Псевдонимы пространств имен или классов: Позволяет задать более короткие и удобные имена для длинных пространств имен или классов. Это делает код более читаемым и кратким.
Импорт констант: Позволяет импортировать константы, определенные в пространстве имен, с помощью use:
Импорт функций (начиная с PHP 8): В PHP 8 и выше вы также можете импортировать функции из пространства имен в текущее пространство имен, используя use function.
Импорт констант (начиная с PHP 8): Аналогично, в PHP 8 и выше вы можете импортировать константы из пространства имен в текущее пространство имен с помощью use const.
Используя use, вы можете сделать свой код более чистым и поддерживаемым, уменьшая необходимость повторного использования полностью квалифицированных имен в вашем коде
#вопросы_с_собеседований
❤13👍2🥱1
Советы по оптимизации интеграционных тестов
Интеграционные тесты очень важны для обеспечения уверенности в функциональности системы, даже несмотря на их медленную скорость по сравнению с юнит-тестами. Автор подчеркивает необходимость достижения баланса между эффективностью времени и уверенностью в кодовой базе, рекомендуя практические советы для улучшения эффективности интеграционных тестов.
Ниже перечислены основные советы из статьи:
✔️Оптимизация опкеша: Настройте опкеш для PHP для улучшения производительности при запуске тестов.
✔️Оптимизация автозагрузчика Composer: Используйте флаги при установке зависимостей через Composer для оптимизации автозагрузчика.
✔️Использование транзакций: Используйте транзакции базы данных для очистки базы данных после каждого тестового случая.
✔️Использование кеша Doctrine: Используйте статический кеш для улучшения производительности в связке с Doctrine.
✔️Использование tmpfs для базы данных в Docker: Определите tmpfs для хранения базы данных в оперативной памяти для ускорения выполнения тестов в контейнере Docker.
✔️Использование дампа базы данных вместо миграций: Вместо запуска миграций каждый раз перед тестами, используйте предварительно созданный дамп базы данных.
✔️Очистка памяти, используемой свойствами: Очищайте память, используемую свойствами после каждого тестового случая для предотвращения утечек памяти.
✔️Сборка приложения с использованием продуктовых настроек: Соберите приложение с использованием настроек, соответствующих продакшену.
✔️Использование pcov вместо xdebug для создания отчетов о покрытии кода: Отключите xdebug и используйте pcov для ускорения генерации отчетов о покрытии кода.
✔️Использование Paratest для параллельного выполнения тестов: Если ваши тесты независимы, используйте инструмент для параллельного выполнения тестов Paratest.
✔️Ускорение построения образа Docker: Сосредоточьтесь на уменьшении размера образа Docker для ускорения процесса его скачивания.
✔️Использование актуальной версии PHP: Обновляйте PHP до последней версии для исправления ошибок и улучшения производительности.
✔️Настройка тайм-аутов: Установите жесткий тайм-аут для автоматического завершения теста, если он занимает слишком много времени.
✔️Мониторинг: Отслеживайте использование памяти и время выполнения каждого теста для выявления потенциальных проблем.
Интеграционные тесты очень важны для обеспечения уверенности в функциональности системы, даже несмотря на их медленную скорость по сравнению с юнит-тестами. Автор подчеркивает необходимость достижения баланса между эффективностью времени и уверенностью в кодовой базе, рекомендуя практические советы для улучшения эффективности интеграционных тестов.
Ниже перечислены основные советы из статьи:
✔️Оптимизация опкеша: Настройте опкеш для PHP для улучшения производительности при запуске тестов.
✔️Оптимизация автозагрузчика Composer: Используйте флаги при установке зависимостей через Composer для оптимизации автозагрузчика.
✔️Использование транзакций: Используйте транзакции базы данных для очистки базы данных после каждого тестового случая.
✔️Использование кеша Doctrine: Используйте статический кеш для улучшения производительности в связке с Doctrine.
✔️Использование tmpfs для базы данных в Docker: Определите tmpfs для хранения базы данных в оперативной памяти для ускорения выполнения тестов в контейнере Docker.
✔️Использование дампа базы данных вместо миграций: Вместо запуска миграций каждый раз перед тестами, используйте предварительно созданный дамп базы данных.
✔️Очистка памяти, используемой свойствами: Очищайте память, используемую свойствами после каждого тестового случая для предотвращения утечек памяти.
✔️Сборка приложения с использованием продуктовых настроек: Соберите приложение с использованием настроек, соответствующих продакшену.
✔️Использование pcov вместо xdebug для создания отчетов о покрытии кода: Отключите xdebug и используйте pcov для ускорения генерации отчетов о покрытии кода.
✔️Использование Paratest для параллельного выполнения тестов: Если ваши тесты независимы, используйте инструмент для параллельного выполнения тестов Paratest.
✔️Ускорение построения образа Docker: Сосредоточьтесь на уменьшении размера образа Docker для ускорения процесса его скачивания.
✔️Использование актуальной версии PHP: Обновляйте PHP до последней версии для исправления ошибок и улучшения производительности.
✔️Настройка тайм-аутов: Установите жесткий тайм-аут для автоматического завершения теста, если он занимает слишком много времени.
✔️Мониторинг: Отслеживайте использование памяти и время выполнения каждого теста для выявления потенциальных проблем.
Kamil Ruczyński
Tips for optimizing integration tests
While unit tests are known for their speed compared to integration tests, the latter offer heightened confidence in the system’s functionality. Thus, avoiding integration tests is not advisable; instead, it’s crucial to strike a balance by writing tests at…
🔥5👍4