Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11.3K subscribers
1.33K photos
21 videos
26 files
4.02K links
Все самое полезное для пхпшника в одном канале.

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

Учиться у нас: https://proglib.io/w/bca892d6

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
Привет, друзья! 👋

Мы готовим статью о том, как эффективно изучать программирование, и хотим услышать ваше мнение! 🤓💻 Поделитесь своим опытом, и самые полезные советы войдут в нашу публикацию.
3
⚒️ Фундаментальные основы Redis: на заметку разработчику

👉 Источник
3🥱1
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования

🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
👍2
Построение устойчивой и масштабируемой архитектуры

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

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

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

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

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

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

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

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

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

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

👉Читать статью с примерами кода(Если не открывается попробуйте включить VPN)
💬Итак, когда есть анонимный класс, который дал анонимный объект, можно ли деанонимизировать его и использовать в другом месте кода?

Благодаря class_alias() и $object::class это возможно!
12👾10👍2
side-effects-detector

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

Побочные эффекты классифицируются по категориям, чтобы их было легче отфильтровать в зависимости от вашего сценария использования.
👍2
Laravel под капотом — немного о макросах

В Laravel разработчики часто сталкиваются с ситуацией, когда нужного метода для работы со строками или коллекциями не оказывается под рукой. Чтобы решить эту проблему, Laravel предлагает удобный инструмент — макросы. Макросы позволяют добавлять кастомные методы к существующим классам фреймворка, что делает его более гибким и расширяемым.
❤‍🔥4👍21
Применение статических анализаторов архитектуры на примере гексагональной архитектуры

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

Здесь рассказывается, почему важно структурировано выстраивать архитектуру проектов, а также показано на примере, с помощью каких инструментов можно отслеживать соответствие архитектуры изначальным требованиям.
👍3🔥1👏1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍2
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
Какие способы оптимизации производительности баз данных знаете?

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

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

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

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

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

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

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

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

Мониторинг и профилирование: Регулярно отслеживайте производительность запросов и операций базы данных с помощью инструментов мониторинга и профилирования. Это позволяет идентифицировать узкие места и проводить дальнейшую оптимизацию.
👍81
Какой подарок хотели бы на Новый Год?⬇️⬇️⬇️
Yii Mailer

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

Фактическая отправка почты обеспечивается отдельными взаимозаменяемыми пакетами.
👏7🌚21🔥1😁1
Реализация сценария использования DDD на PHP

Здесь рассматривается подход к реализации сценария использования (Use Case) в рамках Domain-Driven Design (DDD) на PHP. Примером служит класс TaxPersistUseCase, который используется для управления сохранением сущности налога. Подход демонстрирует использование интерфейсов и доменных классов для работы с данными, сохраняя четкое разделение компонентов и следуя принципам DDD.
🌚8👍4
is_a() против Instanceof

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

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

Использование имени является именем класса для instanceof, в то время как для is_a() оно является именем константы. Это может привести к путанице.
😁5👍4