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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
Создание отказоустойчивого кода: использование возможностей объектов-значений

Эта статья обсуждает концепцию объектов-значений (value objects) в программировании и почему они являются полезным инструментом для улучшения качества приложения и улучшения читаемости кода.

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

Статья также подчеркивает разницу между объектами-значениями и объектами передачи данных (Data Transfer Objects, DTOs). В отличие от DTO, объекты-значения учитывают бизнес-логику и обеспечивают корректность данных, а не только их типы. Это делает объекты-значения более надежными и предсказуемыми при обработке данных в приложении.
👍81
Forwarded from Библиотека программиста | программирование, кодинг, разработка
Очевидно, что в открытом виде пароли в базе никто уже не хранит. Хранить хеш пароля — не всегда хорошая идея, т. к. его можно восстановить по радужным таблицам.

Решение — добавлять уникальную соль к паролю, что позволит получить уникальный результат хеширования для каждого пароля. И если даже вашу базу взломают, алгоритм формирования пары пароль + соль никто не узнает 🤷‍♂️

📌Как в таком случае проверить пароль?

1️⃣Пользователь вводит пароль.
2️⃣Система извлекает соответствующую соль из БД.
3️⃣Система добавляет соль к паролю и хеширует его. Назовем хешированное значение H1.
4️⃣Система сравнивает H1 и H2, где H2 — это хеш, хранящийся в базе данных. Если они одинаковы, пароль действителен.

👉 Более детально данный вопрос рассмотрен в визуальном руководстве.
🥱17👍112
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍31😁1
Open-source проект для изучения данных вашего подключения к Интернету.

"WebSpeedReport" - это проект с открытым исходным кодом, который использует Speedtest CLI для сбора данных о подключении к интернету и предоставляет пользователю удобный интерфейс для их отображения.

1️⃣ Получение и Хранение Данных

✔️Использует Symfony и MySQL для получения данных от Speedtest CLI и сохранения их в базе данных.
✔️консольный пакет Symfony для выполнения команд Speedtest и обработки данных.

2️⃣ Отображение Данных

✔️Использует PHP для бэкэнда и TailwindCSS для стилизации интерфейса.
✔️Предоставляет простой дашборд с основной информацией и таблицу с результатами тестов.
✔️Пользователи могут просмотреть подробности каждого теста, нажав на "Загрузить больше".
👍62
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🛡️ 8 способов защиты от манипуляций на работе

Столкнулись с эмоциональным давлением на работе? Рассказываем, как действуют манипуляторы, и как обезопасить себя.

🔗 Читать статью
🔗 Зеркало
👍3🥱31😁1
#хочу_спросить

Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
2👾2👍1
Библиотеки и инструменты PHP

Этот впечатляющий список библиотек, инструментов и проверок для PHP предлагает разнообразные решения для различных аспектов разработки, начиная от работы с деньгами и временем, и заканчивая инструментами для тестирования, статического анализа и обеспечения безопасности. Независимо от того, создаете ли вы масштабируемый микросервис, ищете уязвимости в коде или оптимизируете работу CI-пайплайна, этот список имеет все необходимое.
👍81
Что такое денормализация? Для чего она нужна?

Денормализация – это процесс организации реляционной базы данных, при котором избегается нормализация для повышения эффективности чтения данных.

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

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

#вопросы_с_собеседований
👍82
Люди, которые говорят: «PHP небезопасен», - неправы

Несмотря на распространенность PHP, по-прежнему существует множество недопониманий и мифов о безопасности этого языка.

В этой статье разбираются наиболее распространенные заблуждения и убедительные аргументы в пользу того, что PHP остается надежным и безопасным выбором для современных веб-приложений.
👍10👾21😁1
Какой длины должны быть классы — когда «чистый» код на самом деле не так уж и хорош

🔎
Это история о разработчике, который искал новую работу и наткнулся на вакансию компании, которая обещала ценить "чистый код", но с ограничением в 100 строк на класс.

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

Жесткие ограничения могут привести к ухудшению архитектуры программы и отвлечению разработчиков от создания качественных компонентов в пользу удовлетворения формальных требований.
👍6
Какие фронтенд технологии вам нравятся/предпочитаете использовать как PHP-разработчик? (JS-фреймворки, библиотеки и т.д.)
3
Ответьте на 3 вопроса, чтобы получить демо-доступ к курсу «Алгоритмы и структуры данных»

⚡️Получить демо, ответив на 3 вопроса – https://proglib.io/w/979a2896

В бесплатной части вас ждут:

1. Лекция «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов

2. Лекция «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ

3. Практические задания после лекций

4. Ссылки на дополнительные материалы для самостоятельного изучения

Переходите и начинайте учиться уже сегодня!
🥱21👍1🌚1
📝 В статье обсуждаются различные подходы к моделированию операторов MongoDB в PHP для создания агрегационных конвейеров. Цель - найти лучший опыт разработчика при работе с зарезервированными ключевыми словами и сохранении читаемости кода. Рассматриваются несколько методов, включая функции с пространством имен, добавление суффиксов к именам функций, использование статических методов классов и хранение замыканий в переменных.

🌐 Первый метод: Функции в пространстве имен

Статья начинается с функций в пространстве имен, например MongoDB\Operator\eq для оператора $eq, но сталкивается с проблемами зарезервированных ключевых слов в PHP. Чтобы избежать конфликтов, рассматриваются варианты добавления префиксов, суффиксов или использования смайликов в именах функций.

🔠 Второй метод: Статические методы классов

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

🌀 Третий метод: Замыкания в переменных

В заключение идут замыкания, сохраненные в переменных, что позволяет использовать синтаксис, очень похожий на MongoDB, и при этом избегать конфликтов имен.
👍41
💻 20 лучших ноутбуков для программиста в 2023 году

Выбираем самые легкие, автономные и производительные ноутбуки для кодинга.

На карточках перечислили самые производительные. Но для кодинга есть и другие важные параметры — остальные подборки смотрите в нашей статье.
😁13🥱4👍2