TGViewer
Channel Public Channel
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

@phpproglib

Все самое полезное для пхпшника в одном канале.

По рекламе: @tproger_sales_bot

Учиться у нас: clc.to/M561SQ

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Subscribers
10.5K
Photos
1.8K
Videos
31
Links
4.6K

Showing posts older than #5045 · Back to latest

Older Posts 20 shown
Post #5043 2.82K

Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate

💡 Как избавиться от WebSockets и сэкономить $1 млн в год: неожиданные решения для оптимизации

Как снизить расходы на инфраструктуру и повысить эффективность? Оказывается, отказ от WebSockets может сэкономить миллионы. Вместо привычного подхода можно использовать решения, которые не только проще, но и лучше подходят для определённых задач, как, например, асинхронные очереди или SSE.

Знаете ли вы, как выбрать стратегию, которая одновременно сократит затраты и улучшит масштабируемость? Разберитесь в тонкостях оптимизации и найдите способ выжать максимум из вашей системы. 🚀

🔗 Читать статью
🔗 Зеркало
  • 😁 9
  • 👍 3
Post #5042 3.03K
Многие, возможно, уже видели «красные флаги» Яндекса⁠⁠. Помимо кучи неприемлемых требований нас больше всего заинтересовало то, что у GO-разработчика PHP опыт не считается релевантным🤔

Ваше мнение можете писать в комментарии👇
  • 😁 25
  • 😢 15
  • 🌚 5
  • 👍 2
  • 🤔 1
Post #5041 2.85K
❗Вакансии «Библиотеки программиста» — ждем вас в команде!

Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов

Подробности тут

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Ждем ваших откликов 👾
job.proglib.io Вакансии в медиа «Библиотека программиста»‎ Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
  • ❤ 2
Post #5040 2.83K
Как часто, по вашему мнению, следует менять место работы?

Ставьте реакции:

⚡ — раз в год
🔥 — раз в 2-3 года
❤️ — раз в 5-6 лет
🌚 — а можно менять работу?
  • 🔥 114
  • 🌚 96
  • ❤ 38
  • ⚡ 14
  • 🤩 1
Post #5039 3.07K
is_a() против Instanceof

is_a() и instanceof — это одна и та же функция: проверка принадлежности объекта к определенному классу. Однако выполняются они по-разному.

Использование оператора ::class безопасно в обоих случаях.

Использование имени является именем класса для instanceof, в то время как для is_a() оно является именем константы. Это может привести к путанице.
  • 😁 5
  • 👍 4
Post #5038 3.19K
Реализация сценария использования DDD на PHP

Здесь рассматривается подход к реализации сценария использования (Use Case) в рамках Domain-Driven Design (DDD) на PHP. Примером служит класс TaxPersistUseCase, который используется для управления сохранением сущности налога. Подход демонстрирует использование интерфейсов и доменных классов для работы с данными, сохраняя четкое разделение компонентов и следуя принципам DDD.
DEV Community Implementing a DDD Use Case in PHP Implementing a DDD Use Case for in PHP This article explores a Domain-Driven Design (DDD)...
  • 🌚 8
  • 👍 4
Post #5037 3.03K
#memes
  • 😁 39
  • 👍 2
Post #5036 3.04K
Yii Mailer

Пакет предоставляет абстракцию для отправки электронной почты через интерфейсы mailer и message.

Фактическая отправка почты обеспечивается отдельными взаимозаменяемыми пакетами.
GitHub GitHub - yiisoft/mailer: Generic mailer Generic mailer. Contribute to yiisoft/mailer development by creating an account on GitHub.
  • 👏 7
  • 🌚 2
  • ❤ 1
  • 🔥 1
  • 😁 1
Post #5035 2.77K
Какой подарок хотели бы на Новый Год?⬇️⬇️⬇️
Post #5034 2.67K

Forwarded from Библиотека собеса по PHP | вопросы с собеседований

Какие способы оптимизации производительности баз данных знаете?

Существует несколько основных способов оптимизации баз данных:

Индексирование: Убедитесь, что ваша база данных имеет правильные индексы для часто используемых запросов. Индексы позволяют ускорить поиск данных.

Оптимизация запросов: Напишите запросы таким образом, чтобы они были эффективными. Используйте инструкции JOIN, WHERE и GROUP BY там, где это необходимо, чтобы снизить объем возвращаемых данных.

Кэширование: Используйте кэширование результатов запросов там, где это возможно. Например, результаты запросов к базе данных могут быть кэшированы в Redis или Memcached.

Ограничение объема данных: Загружайте только те данные, которые действительно нужны. Используйте LIMIT и OFFSET при запросах, чтобы извлекать только необходимое количество записей.

Оптимизация структуры таблиц: Проведите анализ структуры таблиц и убедитесь, что она оптимально сбалансирована для ваших запросов. Иногда изменение типов данных, уменьшение размера полей или нормализация таблиц может улучшить производительность.

Использование транзакций: Используйте транзакции для группировки нескольких операций в одну единицу работы. Это помогает уменьшить накладные расходы на управление транзакциями и обеспечить целостность данных.

Масштабирование базы данных: При необходимости масштабируйте базу данных горизонтально или вертикально. Горизонтальное масштабирование (шардинг) позволяет распределить данные по нескольким серверам, а вертикальное масштабирование (разделение на таблицы) позволяет распределить данные по разным таблицам или базам данных.

Мониторинг и профилирование: Регулярно отслеживайте производительность запросов и операций базы данных с помощью инструментов мониторинга и профилирования. Это позволяет идентифицировать узкие места и проводить дальнейшую оптимизацию.
  • 👍 8
  • ❤ 1
Post #5032 2.86K
PHP: Современная альтернатива для борьбы с усталостью от JavaScript

За последние годы PHP стал более современным, удобным и производительным. Для разработчиков, уставших от сложности JavaScript-экосистемы, PHP может предложить упрощённый и эффективный подход к разработке веб-приложений.

Проблемы JavaScript-экосистемы
JavaScript стал основой для создания интерактивных веб-приложений, но его экосистема осложнилась. Разработчики сталкиваются с избытком фреймворков (React, Angular, Vue), сложностью инструментов (Webpack, Babel) и частыми изменениями, приводящими к «усталости от JavaScript».

Эволюция PHP
Сегодня PHP значительно отличается от того, каким он был 10 лет назад. Его модернизация затронула основные аспекты разработки:

1. Современный синтаксис
PHP теперь поддерживает строгую типизацию, сокращённые функции (arrow functions) и возможности работы с несколькими типами (union types). Это делает код предсказуемым и понятным.

2. Высокая производительность
Выпуск версий PHP 7 и 8 принёс значительный рост скорости работы и снижение потребления памяти. Технологии вроде JIT-компиляции обеспечивают ещё большее ускорение.

3. Поддержка асинхронного программирования
Библиотеки ReactPHP и Amp позволяют использовать асинхронный подход. Это открыло возможности для создания реальных приложений в реальном времени, таких как чаты или онлайн-игры.

4. Современные фреймворки и инструменты
Laravel и Symfony предлагают удобные и надёжные решения для разработки. Composer упростил управление зависимостями, а инструменты вроде PHPUnit и PHPStan помогают поддерживать высокое качество кода.

5. Улучшенный опыт разработки
Нововведения, такие как оператор null coalescing (??) и конструкции вроде match, делают код чище и проще для поддержки. Ошибки теперь легче отлавливать благодаря улучшенной системе исключений.

Преимущества PHP перед JavaScript
Простота: Создание CRUD-приложений с помощью PHP проще, чем использование сложного стека JavaScript.
Стабильность: PHP сохраняет обратную совместимость, что минимизирует риск поломок кода.
Зрелость для веба: PHP идеально подходит для задач вроде управления контентом (WordPress, Drupal) и создания API.

Многие устаревшие стереотипы о PHP больше не актуальны. Сегодня язык предлагает современный инструментарий, активное сообщество и востребованность на рынке. Разработчики, готовые освоить новые возможности PHP, могут быстро адаптироваться и успешно применять его в работе.

Современный PHP — это не просто инструмент прошлого, а мощное решение для настоящего и будущего веб-разработки.
  • 👍 24
  • 😁 6
  • 😢 1
  • 🌚 1
Post #5031 2.6K
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
  • 👍 2
Post #5030 2.95K
Применение статических анализаторов архитектуры на примере гексагональной архитектуры

Отсутствие четкой структурированной архитектуры проектов — не редкость в ИТ. Одни этим пренебрегают из-за маленького масштаба проекта, другие — из-за сжатых сроков разработки, третьи — из-за отсутствия экспертизы в этом вопросе. Вместе с тем, движение по этому пути — практически всегда история с «отложенными последствиями»: со временем такие проекты становится сложно поддерживать, масштабировать, администрировать и фиксить.

Здесь рассказывается, почему важно структурировано выстраивать архитектуру проектов, а также показано на примере, с помощью каких инструментов можно отслеживать соответствие архитектуры изначальным требованиям.
Хабр Применение статических анализаторов архитектуры на примере гексагональной архитектуры Отсутствие четкой структурированной архитектуры проектов — не редкость в ИТ. Одни этим пренебрегают из-за маленького масштаба проекта, другие — из-за сжатых сроков разработки, третьи — из-за...
  • 👍 3
  • 🔥 1
  • 👏 1
Post #5029 2.91K
Laravel под капотом — немного о макросах

В Laravel разработчики часто сталкиваются с ситуацией, когда нужного метода для работы со строками или коллекциями не оказывается под рукой. Чтобы решить эту проблему, Laravel предлагает удобный инструмент — макросы. Макросы позволяют добавлять кастомные методы к существующим классам фреймворка, что делает его более гибким и расширяемым.
DEV Community Laravel Under The Hood - A Little Bit of Macros Hello 👋 How often have you wished for a method that doesn't exist on collections or string...
  • ❤‍🔥 4
  • 👍 2
  • ⚡ 1
Post #5026 2.99K
#memes
  • 👍 17
  • 😁 8
  • 🥱 7
Post #5025 2.95K
side-effects-detector

Эта библиотека анализирует php-код на предмет побочных эффектов.

Побочные эффекты классифицируются по категориям, чтобы их было легче отфильтровать в зависимости от вашего сценария использования.
GitHub GitHub - staabm/side-effects-detector: Analyzes php-code for side-effects. Analyzes php-code for side-effects. Contribute to staabm/side-effects-detector development by creating an account on GitHub.
  • 👍 2
Post #5023 2.67K
Построение устойчивой и масштабируемой архитектуры

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

Что такое масштабируемость и устойчивость

Масштабируемость позволяет системе выдерживать высокие нагрузки и распределять их без сбоев. Устойчивость означает способность системы к самовосстановлению при сбоях, без потери данных и с минимальным вмешательством разработчиков. Эти качества можно достичь за счёт изоляции процессов: обрабатывая каждую задачу отдельно, можно быстро масштабировать обработку и выполнять только те операции, которые действительно необходимы.

Сообщения как основа архитектуры

Архитектуры, основанные на передаче сообщений, помогают строить системы, устойчивые к сбоям и готовые к масштабированию. Однако такие архитектуры добавляют сложности в разработку, так как требуют значительной настройки и большого объёма шаблонного кода. Без упрощений это может снижать скорость работы над основными задачами и даже вызывать у разработчиков неудовлетворённость.

Ориентация на бизнес-логику

Чтобы облегчить задачу разработчикам и сделать архитектуру полезной в повседневной работе, представлена концепция «Бизнес-ориентированной архитектуры». Её задача — позволить разработчикам сосредоточиться на бизнес-логике, а не на настройке инфраструктуры. Достичь этого помогают три опорных столпа:

1. Устойчивость сообщений — сообщения передаются по каналам, обеспечивая асинхронное выполнение и соблюдение шаблонов, таких как автоматические повторы и обработка ошибок. Это снижает вероятность неправильной настройки системы.

2. Декларативная конфигурация — вместо сложной ручной настройки применяется подход с атрибутами, где каждый метод помечается как обработчик команды. Это упрощает разработку, позволяет избежать ошибок конфигурации и позволяет новым разработчикам работать с системой без глубокого понимания её устройства.

3. Блоки построения — использование готовых решений, таких как агрегаты и проекции, помогает избежать повторяющегося кода, который загружает процесс разработки. Агрегаты позволяют сосредоточиться на бизнес-логике, упрощая процесс обновления и хранения данных, а проекции помогают быстро создавать представления данных.

👉Читать статью с примерами кода(Если не открывается попробуйте включить VPN)
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 →