Веб-приложениям не всегда нужна запись в файловую систему, но Node.js предоставляет для этого обширный интерфейс прикладного программирования (API). Это может понадобиться, если вы ведёте логи отладки, передаёте файлы на сервер или с сервера, или создаёте инструменты командной строки.
https://www.dev-notes.ru/articles/javascript/accessing-the-file-system-in-node-js/
https://www.dev-notes.ru/articles/javascript/accessing-the-file-system-in-node-js/
Заметки разработчика
Как использовать файловую систему в Node.js
Освойте основы модуля файловой системы Node.js, предоставляющего API для записи файлов в файловые системы macOS, Windows и Linux.
👍1
В PHP 8 появились атрибуты, которые являются довольно впечатляющими и мощными. В этой статье мы будем использовать их для включения и выключения маршрутов Laravel, насколько это круто?
https://www.dev-notes.ru/articles/laravel/php-attributes/
https://www.dev-notes.ru/articles/laravel/php-attributes/
Заметки разработчика
PHP атрибуты в Laravel
В PHP 8 появились атрибуты, они довольно впечатляющие и мощные. В этой статье мы используем их для включения и выключения маршрутов Laravel, насколько это круто
👍2
Сценарии Composer — это очень удобный способ определения команд, которые вы часто используете. Например, у нас есть скрипты composer для запуска тестов, проверки стиля кодирования или обновления хелперов IDE.
https://www.dev-notes.ru/articles/php/be-consistent-with-composer-scripts-in-ci/
https://www.dev-notes.ru/articles/php/be-consistent-with-composer-scripts-in-ci/
Заметки разработчика
Будьте последовательны в использовании скриптов Composer в CI
Будьте проще и избавьте себя от лишних проблем со скриптами Composer.
Абстрактные классы не могут быть инстанцированы напрямую, что создаёт проблему при тестировании функциональности, реализованной в самом абстрактном классе. В этой статье я поделюсь своим подходом к решению этой проблемы.
https://www.dev-notes.ru/articles/php/testing-abstract-classes-in-php-using-anonymous-classes/
https://www.dev-notes.ru/articles/php/testing-abstract-classes-in-php-using-anonymous-classes/
Заметки разработчика
Тестирование абстрактных классов PHP с помощью анонимных классов
Абстрактные классы не могут быть инстанцированы напрямую, что создаёт проблему при тестировании функциональности, реализованной в самом абстрактном классе.
👍2
Добро пожаловать в первую часть серии из десяти частей, посвящённой основам TypeScript. В этой первой части мы рассмотрим компилятор TypeScript (
https://www.dev-notes.ru/articles/typescript/typescript-basics-typescript-compiler-tsc-and-tsconfig/
tsc) и файл конфигурации (tsconfig.json).https://www.dev-notes.ru/articles/typescript/typescript-basics-typescript-compiler-tsc-and-tsconfig/
Заметки разработчика
Основы TypeScript: компилятор TypeScript (tsc) и tsconfig.json
Добро пожаловать в первую часть серии, посвящённой основам TypeScript. Мы рассмотрим компилятор TypeScript (tsc) и файл конфигурации (tsconfig.json).
Краткое руководство, показывающее, как перейти от локальной разработки к продакшену с помощью Docker, включая рабочие процессы развёртывания и CI/CD.
Если вы начинаете путь от локальной разработки к продакшену с Docker и не знаете всех необходимых шагов, это руководство для вас.
Мы рассмотрим некоторые тонкости перехода, такие как создание продакшен Docker-файлов и настройка конфигураций. Затем мы поработаем над рабочими процессами развёртывания и закончим CI/CD. К концу мы должны без проблем перенести ваше Docker-приложение в стабильную, живую среду.
https://www.dev-notes.ru/articles/devops/what-you-should-do-before-deploying-docker-to-production/
Если вы начинаете путь от локальной разработки к продакшену с Docker и не знаете всех необходимых шагов, это руководство для вас.
Мы рассмотрим некоторые тонкости перехода, такие как создание продакшен Docker-файлов и настройка конфигураций. Затем мы поработаем над рабочими процессами развёртывания и закончим CI/CD. К концу мы должны без проблем перенести ваше Docker-приложение в стабильную, живую среду.
https://www.dev-notes.ru/articles/devops/what-you-should-do-before-deploying-docker-to-production/
Заметки разработчика
Что нужно сделать перед развёртыванием Docker в продакшене
Краткое руководство, показывающее, как перейти от локальной разработки к продакшену с помощью Docker, включая рабочие процессы развёртывания и CI/CD.
❤2👍1
Добро пожаловать во вторую часть нашей серии статей о TypeScript! В этой части мы проведём сравнение между JavaScript и TypeScript, что поможет вам сделать осознанный выбор при принятии решения о переходе на TypeScript.
https://www.dev-notes.ru/articles/typescript/typescript-basics-javascript-versus-typescript/
https://www.dev-notes.ru/articles/typescript/typescript-basics-javascript-versus-typescript/
Заметки разработчика
Основы TypeScript: JavaScript в сравнении с TypeScript
В этой части мы проведём сравнение между JavaScript и TypeScript, что поможет вам сделать осознанный выбор при принятии решения о переходе на TypeScript.
В PHP есть множество встроенных констант. Некоторые из них полезны при работе с файлами, а некоторые — с целыми числами. Но все они имеют одну общую черту — все они доступны глобально. В этой небольшой статье мы рассмотрим типичные примеры и случаи использования констант в Laravel.
https://www.dev-notes.ru/articles/laravel/five-php-useful-built-in-constants/
https://www.dev-notes.ru/articles/laravel/five-php-useful-built-in-constants/
Заметки разработчика
Пять полезных встроенных PHP констант
В PHP есть множество встроенных констант. Одни из них полезны при работе с файлами, а другие — с целыми числами. Все они доступны глобально.
👍1
Добро пожаловать в третью часть нашего цикла о TypeScript! В этой части мы рассмотрим фундаментальные строительные блоки TypeScript — примитивные и базовые типы.
https://www.dev-notes.ru/articles/typescript/typescript-basics-primitive-and-basic-types/
https://www.dev-notes.ru/articles/typescript/typescript-basics-primitive-and-basic-types/
Заметки разработчика
Основы TypeScript: Примитивы и базовые типы
Добро пожаловать в третью часть цикла о TypeScript! В этой части мы рассмотрим фундаментальные строительные блоки TypeScript — примитивные и базовые типы.
В Laravel появился новый класс Number, предоставляющий несколько новых хелперов для форматирования чисел.
https://www.dev-notes.ru/articles/laravel/number-utility-class/
https://www.dev-notes.ru/articles/laravel/number-utility-class/
Заметки разработчика
Знакомство с утилитарным классом Laravel Number
В Laravel появился новый класс Number, предоставляющий несколько новых хелперов для форматирования чисел.
Добро пожаловать в четвёртую часть цикла статей о TypeScript! В этой части мы рассмотрим концепции неявных и явных типов, а также утверждения типов.
https://www.dev-notes.ru/articles/typescript/typescript-basics-implicit-and-explicit-types-assertions/
https://www.dev-notes.ru/articles/typescript/typescript-basics-implicit-and-explicit-types-assertions/
Заметки разработчика
Основы TypeScript: Неявные и Явные типы, Утверждения типов
В этой статье мы рассмотрим концепции неявных и явных типов, а также утверждения типов.
Добавление второго сервера к вашему приложению может стать отличным способом улучшить его производительность и/или повысить надёжность. Однако при добавлении второго сервера необходимо учитывать несколько моментов.
В этой статье мы обсудим ключевые моменты, которые необходимо учитывать при добавлении дополнительного сервера приложения. В качестве примера мы будем использовать 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.