Добавление второго сервера к вашему приложению может стать отличным способом улучшить его производительность и/или повысить надёжность. Однако при добавлении второго сервера необходимо учитывать несколько моментов.
В этой статье мы обсудим ключевые моменты, которые необходимо учитывать при добавлении дополнительного сервера приложения. В качестве примера мы будем использовать Laravel, размещённый в Laravel Forge, но эти концепции могут быть применены к любому типу приложений, не ограничиваясь языком PHP.
https://www.dev-notes.ru/articles/laravel/adding-a-second-server-to-your-app/
В этой статье мы обсудим ключевые моменты, которые необходимо учитывать при добавлении дополнительного сервера приложения. В качестве примера мы будем использовать Laravel, размещённый в Laravel Forge, но эти концепции могут быть применены к любому типу приложений, не ограничиваясь языком PHP.
https://www.dev-notes.ru/articles/laravel/adding-a-second-server-to-your-app/
Заметки разработчика
Семь советов по добавлению второго сервера приложения
Добавление второго сервера к вашему приложению может стать отличным способом улучшить его производительность и/или надёжность. Однако есть несколько нюансов.
Добро пожаловать в пятую часть нашей серии статей о TypeScript! В этой части мы переключим наше внимание на создание пользовательских типов, перечислений и интерфейсов. Эти мощные конструкции позволяют создавать выразительные и чётко определённые структуры кода.
https://www.dev-notes.ru/articles/typescript/typescript-basics-creating-types-enums-and-interfaces/
https://www.dev-notes.ru/articles/typescript/typescript-basics-creating-types-enums-and-interfaces/
Заметки разработчика
Основы TypeScript: Создание типов, перечислений и интерфейсов
В этой части мы переключим внимание на создание пользовательских типов, перечислений и интерфейсов. Они позволяют создавать чётко определённые структуры кода.
PHP включает несколько очень удобных функций, ориентированных на безопасность, но вы должны знать, как правильно их использовать, иначе рискуете оставить значительную уязвимость, ожидающую своего применения!
https://www.dev-notes.ru/articles/php/security-tip-is-strip_tags-secure/
https://www.dev-notes.ru/articles/php/security-tip-is-strip_tags-secure/
Заметки разработчика
Совет по безопасности: Безопасна ли функция strip_tags()
PHP включает несколько очень удобных функций, ориентированных на безопасность, но вы должны знать, как правильно их использовать.
Добро пожаловать в шестую часть нашей серии статей о TypeScript! В этой части мы рассмотрим объединение типов, литеральные типы и размеченное объединение типов, обеспечивающие точность и выразительность в определении типов.
https://www.dev-notes.ru/articles/typescript/typescript-basics-union-literal-and-tagged-types/
https://www.dev-notes.ru/articles/typescript/typescript-basics-union-literal-and-tagged-types/
Заметки разработчика
Основы TypeScript: Объединение, Литеральные и Размеченные типы
В этой части мы рассмотрим объединение типов, литеральные типы и размеченное объединение типов, обеспечивающие точность и выразительность в определении типов.
При использовании кэширования обещание значительного повышения производительности должно быть сопоставлено с его стоимостью, связанной со сложностью и инфраструктурой. Давайте обсудим доступные варианты, чтобы вы могли использовать наилучшую реализацию для любой ситуации.
Я считаю кэширование одним из обоюдоострых мечей в разработке PHP-приложений.
С одной стороны, стратегии кэширования могут обеспечить значительный прирост производительности. С другой стороны, этот прирост может быть достигнут за счёт увеличения сложности кодовой базы или инфраструктуры. Кроме того, всегда существует угроза того, что кэширование предоставляет устаревшие данные.
Когда мы думаем о соотношении риска и вознаграждения, говоря о кэшировании, я рекомендую тщательно подходить к выбору, чтобы обеспечить положительный результат. Правильный выбор кэширования зависит от вашей инфраструктуры, вашего набора навыков и того, что делает ваше приложение.
Чтобы узнать больше об успешном решении кэширования для вашего приложения, давайте рассмотрим широкий спектр слоёв кэширования, доступных в экосистеме Laravel.
https://www.dev-notes.ru/articles/laravel/overview-of-caching-strategies/
Я считаю кэширование одним из обоюдоострых мечей в разработке PHP-приложений.
С одной стороны, стратегии кэширования могут обеспечить значительный прирост производительности. С другой стороны, этот прирост может быть достигнут за счёт увеличения сложности кодовой базы или инфраструктуры. Кроме того, всегда существует угроза того, что кэширование предоставляет устаревшие данные.
Когда мы думаем о соотношении риска и вознаграждения, говоря о кэшировании, я рекомендую тщательно подходить к выбору, чтобы обеспечить положительный результат. Правильный выбор кэширования зависит от вашей инфраструктуры, вашего набора навыков и того, что делает ваше приложение.
Чтобы узнать больше об успешном решении кэширования для вашего приложения, давайте рассмотрим широкий спектр слоёв кэширования, доступных в экосистеме Laravel.
https://www.dev-notes.ru/articles/laravel/overview-of-caching-strategies/
Заметки разработчика
Стратегии кэширования в Laravel
Обзор лучших способов добавления кэширования в "медленные" места приложения
👍1
Добро пожаловать в седьмую часть цикла статей о TypeScript! В этой части мы сосредоточимся на типизации функций и сигнатур, обеспечивающих функциональность и безопасность типов вашего кода.
https://www.dev-notes.ru/articles/typescript/typescript-basics-typing-functions-and-signatures/
https://www.dev-notes.ru/articles/typescript/typescript-basics-typing-functions-and-signatures/
Заметки разработчика
Основы TypeScript: Типизация функций и сигнатур
В этой части мы сосредоточимся на типизации функций и сигнатур, обеспечивающих функциональность и безопасность типов вашего кода."
👍2
Я работаю с Eloquent уже более пяти лет, и пришло время поделиться своим очередным багажом трюков. Вы гарантированно узнаете что-то новое!
В прошлой статье мы рассмотрели широкий спектр "неортодоксальных" вариантов, которые можно использовать в сочетании с моделями Eloquent. Однако та статья была лишь верхушкой айсберга. В этой статье я хотел бы рассказать о нескольких других рекомендациях и трюках, которые могут быть немного более эзотерическими, но, тем не менее, все ещё удобными, чем те, что были представлены в первой статье. Например, вы когда-нибудь задумывались об использовании фабрик моделей вне сидеров или тестов? Нет? Тогда я уверен, что вы ещё узнаете что-то новое, так что обязательно дочитайте до конца!
https://www.dev-notes.ru/articles/eloquent/unorthodox-eloquent-2/
В прошлой статье мы рассмотрели широкий спектр "неортодоксальных" вариантов, которые можно использовать в сочетании с моделями Eloquent. Однако та статья была лишь верхушкой айсберга. В этой статье я хотел бы рассказать о нескольких других рекомендациях и трюках, которые могут быть немного более эзотерическими, но, тем не менее, все ещё удобными, чем те, что были представлены в первой статье. Например, вы когда-нибудь задумывались об использовании фабрик моделей вне сидеров или тестов? Нет? Тогда я уверен, что вы ещё узнаете что-то новое, так что обязательно дочитайте до конца!
https://www.dev-notes.ru/articles/eloquent/unorthodox-eloquent-2/
Заметки разработчика
Неортодоксальный Eloquent II
Я работаю с Eloquent уже более пяти лет, и пришло время поделиться своим очередным багажом трюков. Вы гарантированно узнаете что-то новое!
👍1
Добро пожаловать в восьмую часть нашей серии статей о TypeScript! В этой части мы познакомимся с динамичным ландшафтом типов TypeScript, изучим типы
https://www.dev-notes.ru/articles/typescript/typescript-basics-any-void-never-null-strict-null-checks/
any, void, never, null и значение строгой проверки null.https://www.dev-notes.ru/articles/typescript/typescript-basics-any-void-never-null-strict-null-checks/
Заметки разработчика
Основы TypeScript: Any, Void, Never, Null, Строгие проверки Null
В этой статье мы познакомимся с динамичным ландшафтом типов TypeScript, изучим типы any, void, never, null и значение строгой проверки null.
Обработка исключений — важнейший аспект разработки веб-приложений, гарантирующий, что ваше приложение сможет изящно справиться с неожиданными ошибками и предоставить пользователям содержательные ответы. Laravel поставляется с надёжной системой обработки исключений, которая позволит вам эффективно справляться с ошибками. В этой статье мы рассмотрим основы обработки исключений в Laravel, а также ключевые концепции.
https://www.dev-notes.ru/articles/laravel/understanding-exception-handling-in-laravel/
https://www.dev-notes.ru/articles/laravel/understanding-exception-handling-in-laravel/
Заметки разработчика
Понимание обработки исключений в Laravel
Laravel поставляется с надёжной системой обработки исключений. В этой статье мы рассмотрим основы обработки исключений в Laravel, а также ключевые концепции.
Расширение Sodium в PHP 8.4 теперь поддерживает шифры аутентифицированного шифрования AEGIS-128L и AEGIS256. Они значительно быстрее, чем AES-GCM и CHACHA20-POLY1305. В этой статье мы сравним их и объясним, как безопасно шифровать и расшифровывать данные с помощью AEGIS-128L и AEGIS256 на PHP.
https://www.dev-notes.ru/articles/php/php-aegis-encryption/
https://www.dev-notes.ru/articles/php/php-aegis-encryption/
Заметки разработчика
Шифрование AEGIS с расширением PHP Sodium
Расширение Sodium в PHP 8.4 теперь поддерживает шифры аутентифицированного шифрования AEGIS-128L и AEGIS256.
AEGIS — это семейство алгоритмов аутентифицированного шифрования на основе AES, которое быстрее, чем AES-GCM. Расширение Sodium в PHP 8.4 поддерживает алгоритмы шифрования AEGIS-128L и AEGIS256, если расширение Sodium скомпилировано с libsodium 1.0.19 или более поздней версии.
https://www.dev-notes.ru/articles/php/php-8-4-sodium-aegis-encryption-support/
https://www.dev-notes.ru/articles/php/php-8-4-sodium-aegis-encryption-support/
Заметки разработчика
PHP 8.4: Sodium: Поддержка AEGIS-128L и AEGIS256
PHP 8.4 Sodium поддерживает алгоритмы шифрования AEGIS-128L и AEGIS256, если расширение Sodium скомпилировано с libsodium 1.0.19 или более поздней версии.
Добро пожаловать в девятую часть нашей серии статей о TypeScript! В этой части мы углубимся в практику объектно-ориентированного программирования (ООП), уделив особое внимание классам и наследованию.
https://www.dev-notes.ru/articles/typescript/typescript-basics-oop-practices-classes-and-inheritance/
https://www.dev-notes.ru/articles/typescript/typescript-basics-oop-practices-classes-and-inheritance/
Заметки разработчика
Основы TypeScript: ООП практика, классы и наследование
В этой статье мы углубимся в практику объектно-ориентированного программирования (ООП), уделив особое внимание классам и наследованию.
Многие разработчики предпочитают использовать TypeScript из-за его функций проверки типов. Однако это требует дополнительного шага транспонирования, который может быть хлопотным и отнимающим время. В этой статье мы расскажем, как использовать JSDoc, чтобы получить все те же элементы контроля, но писать на обычном JavaScript, что позволяет сократить время разработки и улучшить документацию!
https://www.dev-notes.ru/articles/javascript/jsdoc-a-solid-alternative-to-typescript/
https://www.dev-notes.ru/articles/javascript/jsdoc-a-solid-alternative-to-typescript/
Заметки разработчика
JSDoc: Надёжная альтернатива TypeScript
Мы расскажем, как использовать JSDoc, чтобы получить те же элементы контроля, что и с TypeScript, но в обычном JavaScript!
Добро пожаловать в десятую и заключительную часть нашей серии статей о TypeScript! В этой части мы исследуем тонкости работы с сеттерами/геттерами, protected, private/public и static.
https://www.dev-notes.ru/articles/typescript/typescript-basics-set-get-protected-private-public-static-members/
https://www.dev-notes.ru/articles/typescript/typescript-basics-set-get-protected-private-public-static-members/
Заметки разработчика
Основы TypeScript: Сетеры/Гетеры, protected, private/public/static
В этой части мы исследуем тонкости работы с сеттерами/геттерами, protected, private/public и static.
SSH3 — это полный пересмотр протокола SSH, накладывающий его семантику на механизмы HTTP. В двух словах, SSH3 использует QUIC+TLS1.3 для создания безопасного канала и механизмы HTTP Authorization для аутентификации пользователей.
https://www.dev-notes.ru/articles/devops/ssh3-faster-and-rich-secure-shell-using-http3/
https://www.dev-notes.ru/articles/devops/ssh3-faster-and-rich-secure-shell-using-http3/
Заметки разработчика
SSH3: более быстрый и безопасный шелл с использованием HTTP/3
SSH3 — это полный пересмотр протокола SSH, накладывающий его семантику на механизмы HTTP.
В мире программирования поддержание чистоты и надёжности кода имеет большое значение. Паттерн Value Objects способен значительно улучшить качество вашего кода, сделав его более надёжным и удобным для сопровождения.
https://www.dev-notes.ru/articles/php/value-objects-in-php-8-building-a-better-code/
https://www.dev-notes.ru/articles/php/value-objects-in-php-8-building-a-better-code/
Заметки разработчика
Value Objects в PHP 8: Создание лучшего кода
Паттерн Value Objects способен значительно улучшить качество вашего кода, сделав его более надёжным и удобным для сопровождения.
👍3
В предыдущей статье мы рассмотрели возможности Value Objects в повышении качества кода, надёжности системы и минимизации необходимости обширной валидации. Теперь давайте погрузимся глубже, чтобы улучшить понимание и использование этого важнейшего инструмента.
https://www.dev-notes.ru/articles/php/advanced-value-objects-in-php-8/
https://www.dev-notes.ru/articles/php/advanced-value-objects-in-php-8/
Заметки разработчика
Продвинутые Value Objects в PHP 8
Погрузимся глубже в Value Objects, чтобы улучшить понимание и использование этого важнейшего инструмента.
👍2
Вы наверняка слышали, что полагаться на то, что ключи массива сохраняют определённый порядок, опасно. В спецификации JSON эти пары ключ/значение даже определяются как "неупорядоченные". Но, возможно, на практике вы никогда не сталкивались с ситуацией, когда порядок изменялся по сравнению с тем, что вы ожидали.
https://www.dev-notes.ru/articles/eloquent/dont-rely-on-key-ordering-of-mysql-json-values/
https://www.dev-notes.ru/articles/eloquent/dont-rely-on-key-ordering-of-mysql-json-values/
Заметки разработчика
Не полагайтесь на порядок ключей в значениях MySQL JSON
Вы наверняка слышали, что полагаться на то, что ключи массива сохраняют определённый порядок, опасно. Такое поведение застало меня врасплох.
👍1
Знаете ли вы разницу между
https://www.dev-notes.ru/articles/laravel/security-tip-escape-output-with-e/
e(), htmlspecialchars() и htmlentities()? Можно ли просто использовать e() для всего?https://www.dev-notes.ru/articles/laravel/security-tip-escape-output-with-e/
Заметки разработчика
Совет по безопасности: Экранирование с e(), htmlspecialchars() и htmlentities()
Знаете ли вы разницу между e(), htmlspecialchars() и htmlentities()? Можно ли просто использовать e() для всего?
👍1
Не раз и не два мы сталкивались с печально известным исключением 'Token Mismatch' в Laravel. Но, бедняга просто заботится о вас, пытаясь защитить от зла 😈, давайте посмотрим...
https://www.dev-notes.ru/articles/laravel/laravel-core-csrf/
https://www.dev-notes.ru/articles/laravel/laravel-core-csrf/
Заметки разработчика
Laravel под капотом: CSRF
Каждый сталкивался с печально известным исключением 'Token Mismatch' в Laravel. Но, бедняга просто заботится о вас, пытаясь защитить от зла, давайте посмотрим.
👍2