Сколько лет опыта по вашему должен иметь мидл?
🥱6👍3
EnumConcern
Это пакет, предназначенный для улучшения использования возможностей Enum с помощью набора удобных методов. Этот пакет включает файл Trait, который позволяет легко обрабатывать Enum.
Это пакет, предназначенный для улучшения использования возможностей Enum с помощью набора удобных методов. Этот пакет включает файл Trait, который позволяет легко обрабатывать Enum.
GitHub
GitHub - emreyarligan/enum-concern: A PHP package for effortless Enumeration handling with Laravel Collections 📦 ✨
A PHP package for effortless Enumeration handling with Laravel Collections 📦 ✨ - emreyarligan/enum-concern
🥱9👍4🌚2❤1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
Подборка лучших статей «Библиотеки программиста» за сентябрь: сохраняй в заметки, чтобы не пропустить #самыйсок
📕 ТОП-9 книг по языку программирования Go в 2023 году: от новичка до профессионала
🐍 Дорожная карта Python-разработчика в 2023 году
🎓💼 ТОП-9 не самых очевидных компаний для стажировки в ИТ
☕🛣️ Дорожная карта Java-разработчика в 2023 году
🦸⚡ 9 способов настройки градиента цели для поддержания мотивации
⚒️ ТОП-27 плагинов для Visual Studio Code в 2023
🔎💼🗺️ Как программисту искать (и найти) работу за границей в 2023 году
🔝 Приоритизация задач по методу MoSCoW: как за 5 минут научиться грамотно расставлять приоритеты
🤖 Создание собственного ИИ-бота на Python за 33 строчки кода
📊 Как я входил в IT? Результаты опроса «Библиотеки программиста»
📕 ТОП-9 книг по языку программирования Go в 2023 году: от новичка до профессионала
🐍 Дорожная карта Python-разработчика в 2023 году
🎓💼 ТОП-9 не самых очевидных компаний для стажировки в ИТ
☕🛣️ Дорожная карта Java-разработчика в 2023 году
🦸⚡ 9 способов настройки градиента цели для поддержания мотивации
⚒️ ТОП-27 плагинов для Visual Studio Code в 2023
🔎💼🗺️ Как программисту искать (и найти) работу за границей в 2023 году
🔝 Приоритизация задач по методу MoSCoW: как за 5 минут научиться грамотно расставлять приоритеты
🤖 Создание собственного ИИ-бота на Python за 33 строчки кода
📊 Как я входил в IT? Результаты опроса «Библиотеки программиста»
🔥2🌚1
Новые каналы по PHP🎉
Готовимся к собеседованиям по PHP и проверяем себя на практических задачках: «Библиотека программиста» запустила два канала специально для PHP-разработчиков и тех, кто хочет ими стать👨🏫
Подписывайтесь:
👉Библиотека собеса по PHP — тут мы готовимся к интервью
👉Библиотека задач по PHP — тут решаем задачи, проходим тесты и изучаем код
Готовимся к собеседованиям по PHP и проверяем себя на практических задачках: «Библиотека программиста» запустила два канала специально для PHP-разработчиков и тех, кто хочет ими стать👨🏫
Подписывайтесь:
👉Библиотека собеса по PHP — тут мы готовимся к интервью
👉Библиотека задач по PHP — тут решаем задачи, проходим тесты и изучаем код
🥱5👍2
В PHP существуют функции parse_ini_string и parse_ini_file, которые используют встроенный парсер PHP для обработки INI-конфигурационных файлов. Этот парсер поддерживает наследование значений из системных переменных окружения и констант PHP, объявленных на момент парсинга текста. С версии PHP 8.3 добавлена поддержка синтаксиса значений по умолчанию для переменных окружения.
Однако, эти возможности могут представлять уязвимость безопасности данных, таких как переменные окружения и константы PHP. Пример такой атаки - предоставление конфигурационного файла, который может заставить сервер раскрыть свои собственные переменные окружения и константы.
PHP предоставляет параметры конфигурации, позволяющие отключить автоматическое преобразование типов, а также подстановку переменных окружения и констант. Путем использования флага INI_SCANNER_RAW в параметрах parse_ini_file и parse_ini_string, можно отключить эту автоматическую обработку и повысить безопасность обработки пользовательских INI-значений. Однако, важно помнить, что без явного указания этого флага функции будут уязвимы к подобным атакам.
Подробнее
Однако, эти возможности могут представлять уязвимость безопасности данных, таких как переменные окружения и константы PHP. Пример такой атаки - предоставление конфигурационного файла, который может заставить сервер раскрыть свои собственные переменные окружения и константы.
PHP предоставляет параметры конфигурации, позволяющие отключить автоматическое преобразование типов, а также подстановку переменных окружения и констант. Путем использования флага INI_SCANNER_RAW в параметрах parse_ini_file и parse_ini_string, можно отключить эту автоматическую обработку и повысить безопасность обработки пользовательских INI-значений. Однако, важно помнить, что без явного указания этого флага функции будут уязвимы к подобным атакам.
Подробнее
PHP.Watch
Security considerations when parsing user-provided INI strings and files
Security considerations when parsing user-provided INI strings and files using `parse_ini_string` and `parse_ini_file` functions.
❤6
Делаем web сервер из старого Android смартфона, без root
Статья описывает процесс превращения старого Android-устройства (в данном случае Xiaomi Mi 4c) в полноценный веб-сервер с использованием программ Termux, Nginx, PHP-FPM и MariaDB. В ходе статьи автор показывает, как установить необходимые компоненты, настроить их взаимодействие и запустить WordPress на устройстве. Важным моментом является возможность управления сервером через SSH и SFTP, что делает процесс управления и разработки удобным.
вот основные шаги, если захотите повторить:
🟠Установка Termux, эмулятора терминала с минимальным Linux окружением, на Android-устройстве.
🟠Установка и настройка OpenSSH для удаленного доступа к устройству.
🟠Установка и настройка Nginx для обслуживания статических веб-страниц и настройка поддержки PHP-FPM для обработки динамических контентных страниц.
🟠Установка MariaDB для работы с базой данных WordPress.
🟠Запуск и настройка WordPress на Android-устройстве.
Статья описывает процесс превращения старого Android-устройства (в данном случае Xiaomi Mi 4c) в полноценный веб-сервер с использованием программ Termux, Nginx, PHP-FPM и MariaDB. В ходе статьи автор показывает, как установить необходимые компоненты, настроить их взаимодействие и запустить WordPress на устройстве. Важным моментом является возможность управления сервером через SSH и SFTP, что делает процесс управления и разработки удобным.
вот основные шаги, если захотите повторить:
🟠Установка Termux, эмулятора терминала с минимальным Linux окружением, на Android-устройстве.
🟠Установка и настройка OpenSSH для удаленного доступа к устройству.
🟠Установка и настройка Nginx для обслуживания статических веб-страниц и настройка поддержки PHP-FPM для обработки динамических контентных страниц.
🟠Установка MariaDB для работы с базой данных WordPress.
🟠Запуск и настройка WordPress на Android-устройстве.
Хабр
Делаем web сервер из старого Android смартфона, без root
Главная идея была в том, чтобы проверить возможно ли из старого Android устройства сделать "полноценный" сервер с nginx, php-fpm, MariaDB и запустить на этом Wordpress. Оказывается можно и при этом с...
👍23😁8
В PHP существует мощный функционал, называемый поздним статическим связыванием (LSB), который позволяет дочерним классам использовать статические свойства и методы родительского класса через ключевое слово "static". Это предоставляет гибкость и динамичность в разработке программного обеспечения.
Здесь рассматривается пример использования позднего статического связывания в веб-приложении с базой данных. В данном примере есть базовый класс "Database", содержащий общие функции для работы с базой данных, и два подкласса "User" и "Product", представляющих объекты в приложении. Позднее статическое связывание позволяет им динамически формировать запросы к базе данных, что делает систему более гибкой и легкой в обслуживании.
Здесь рассматривается пример использования позднего статического связывания в веб-приложении с базой данных. В данном примере есть базовый класс "Database", содержащий общие функции для работы с базой данных, и два подкласса "User" и "Product", представляющих объекты в приложении. Позднее статическое связывание позволяет им динамически формировать запросы к базе данных, что делает систему более гибкой и легкой в обслуживании.
DEV Community
A real life example of using Late Static Binding in PHP.
Introduction: In the world of software development, creating flexible and dynamic systems...
🥱12👍7
Какая разница между MyISAM и InnoDB? В каких случаях и что лучше применять?
MyISAM и InnoDB - это два самых распространенных типа таблиц в MySQL. Отличия между ними заключаются в следующем:
1. Система хранения данных: MyISAM использует таблицы с фиксированной длиной строк, в то время как InnoDB использует таблицы с переменной длиной строк. Это означает, что MyISAM обычно быстрее при выполнении операций чтения, а InnoDB более эффективен при выполнении операций записи.
2. Транзакции и целостность данных: InnoDB поддерживает ACID-транзакции (Atomicity, Consistency, Isolation, Durability - Атомарность, Согласованность, Изолированность, Устойчивость). Это означает, что в случае сбоя данных, InnoDB может откатить все изменения, сохраняя целостность данных. MyISAM не поддерживает транзакции и не обеспечивает такую же уровень целостности данных.
3. Блокировка таблиц: MyISAM блокирует всю таблицу во время выполнения операции записи, в то время как InnoDB блокирует только строки, с которыми происходит операция. Это означает, что InnoDB обычно более подходит для многопользовательских приложений, где множество операций происходит одновременно.
4. Внешние ключи: InnoDB поддерживает внешние ключи (foreign keys), что облегчает поддержку связей между таблицами и обеспечивает целостность данных. MyISAM не поддерживает внешние ключи.
Итак, в каких случаях что лучше использовать:
- Если нагрузка на базу данных состоит главным образом из операций чтения, то MyISAM может быть предпочтительнее из-за его более высокой производительности.
- Если приложение требует поддержку транзакций (например, при обработке платежей или других критически важных операций), или имеется необходимость в внешних ключах для поддержания целостности данных, то InnoDB является более подходящим выбором.
В отличие от MyISAM, InnoDB также более рекомендуется при работе с многопользовательскими приложениями, где одновременно выполняется много операций записи и требуется высокий уровень целостности данных.
#вопросы_с_собеседований
MyISAM и InnoDB - это два самых распространенных типа таблиц в MySQL. Отличия между ними заключаются в следующем:
1. Система хранения данных: MyISAM использует таблицы с фиксированной длиной строк, в то время как InnoDB использует таблицы с переменной длиной строк. Это означает, что MyISAM обычно быстрее при выполнении операций чтения, а InnoDB более эффективен при выполнении операций записи.
2. Транзакции и целостность данных: InnoDB поддерживает ACID-транзакции (Atomicity, Consistency, Isolation, Durability - Атомарность, Согласованность, Изолированность, Устойчивость). Это означает, что в случае сбоя данных, InnoDB может откатить все изменения, сохраняя целостность данных. MyISAM не поддерживает транзакции и не обеспечивает такую же уровень целостности данных.
3. Блокировка таблиц: MyISAM блокирует всю таблицу во время выполнения операции записи, в то время как InnoDB блокирует только строки, с которыми происходит операция. Это означает, что InnoDB обычно более подходит для многопользовательских приложений, где множество операций происходит одновременно.
4. Внешние ключи: InnoDB поддерживает внешние ключи (foreign keys), что облегчает поддержку связей между таблицами и обеспечивает целостность данных. MyISAM не поддерживает внешние ключи.
Итак, в каких случаях что лучше использовать:
- Если нагрузка на базу данных состоит главным образом из операций чтения, то MyISAM может быть предпочтительнее из-за его более высокой производительности.
- Если приложение требует поддержку транзакций (например, при обработке платежей или других критически важных операций), или имеется необходимость в внешних ключах для поддержания целостности данных, то InnoDB является более подходящим выбором.
В отличие от MyISAM, InnoDB также более рекомендуется при работе с многопользовательскими приложениями, где одновременно выполняется много операций записи и требуется высокий уровень целостности данных.
#вопросы_с_собеседований
👍18🥱8
Шаблоны проектирования PHP: Active Record
Active Record - это шаблон проектирования, который включает в себя класс с методами сохранения данных и бизнес-логики. Однако он нарушает принцип единственной ответственности, так как класс сочетает в себе множество обязанностей. Для решения этой проблемы предлагается создать родительский класс, который реализует методы сохранения данных универсальным способом.
✔️Этот подход называется Layer Supertype.
🔎Приведен пример работы с Active Record. В данном примере создается класс Product, который содержит методы для работы с продуктами в базе данных SQLite. Класс имеет статическое свойство conn для хранения соединения с базой данных и переменную data для хранения данных продукта.
Класс Product содержит методы для выполнения различных операций с базой данных, таких как поиск продукта по ID, выборка всех продуктов с возможностью фильтрации, удаление продукта и сохранение (включая добавление и обновление).
Приведенный код также включает примеры тестирования методов:
🟠INSERT
🟠UPDATE
🟠выборка всех продуктов из базы данных.
Active Record - это шаблон проектирования, который включает в себя класс с методами сохранения данных и бизнес-логики. Однако он нарушает принцип единственной ответственности, так как класс сочетает в себе множество обязанностей. Для решения этой проблемы предлагается создать родительский класс, который реализует методы сохранения данных универсальным способом.
✔️Этот подход называется Layer Supertype.
🔎Приведен пример работы с Active Record. В данном примере создается класс Product, который содержит методы для работы с продуктами в базе данных SQLite. Класс имеет статическое свойство conn для хранения соединения с базой данных и переменную data для хранения данных продукта.
Класс Product содержит методы для выполнения различных операций с базой данных, таких как поиск продукта по ID, выборка всех продуктов с возможностью фильтрации, удаление продукта и сохранение (включая добавление и обновление).
Приведенный код также включает примеры тестирования методов:
🟠INSERT
🟠UPDATE
🟠выборка всех продуктов из базы данных.
DEV Community
PHP Design Patterns: Active Record
What is Active Record? Active Record is a design pattern that features a class that has...
🥱7👍5
Forwarded from Библиотека программиста | программирование, кодинг, разработка
👨🎓Подборка бесплатных инструментов, курсов и ресурсов для освоения SQL и баз данных
✏️ Полный курс по базам данных НИУ ВШЭ, СПБПУ и центра CS, который познакомит с методами структурированного хранения данных, основами SQL, принципами использования баз данных в приложениях и многим другим
✏️ SQLBolt — серия интерактивных уроков и упражнений для изучения SQL прямо в браузере
✏️ PostgreSQL Tutorial — исчерпывающее пособие по PostgreSQL
✏️ The Internals of PostgreSQL — полезный ресурс для изучения внутреннего устройства PostgreSQL
✏️ DB-Engines — коллекция полезной информации о реляционных СУБД и NoSQL
✏️ SQLZoo — подборка учебных пособий как для новичков, так и для профи
✏️ SQL Tutorial — видеогайд по SQL от FreeCodeCamp
✏️ PopSQL — инструмент для совместного изучения SQL и выполнения SQL-запросов
✏️ Полный курс по базам данных НИУ ВШЭ, СПБПУ и центра CS, который познакомит с методами структурированного хранения данных, основами SQL, принципами использования баз данных в приложениях и многим другим
✏️ SQLBolt — серия интерактивных уроков и упражнений для изучения SQL прямо в браузере
✏️ PostgreSQL Tutorial — исчерпывающее пособие по PostgreSQL
✏️ The Internals of PostgreSQL — полезный ресурс для изучения внутреннего устройства PostgreSQL
✏️ DB-Engines — коллекция полезной информации о реляционных СУБД и NoSQL
✏️ SQLZoo — подборка учебных пособий как для новичков, так и для профи
✏️ SQL Tutorial — видеогайд по SQL от FreeCodeCamp
✏️ PopSQL — инструмент для совместного изучения SQL и выполнения SQL-запросов
👍9🔥2
Совет по безопасности: увеличьте количество проходов bcrypt
Статья обсуждает важность безопасности в веб-разработке, фокусируясь на механизме хеширования паролей. Она подчеркивает увеличение вычислительной мощности компьютеров и необходимость постоянного обновления методов хеширования для защиты от брутфорс-атак.
Здесь рассматриваются изменения, внесенные в Laravel, включая увеличение количества проходов bcrypt с 10 до 12. Это увеличение замедляет процесс хеширования, обеспечивая более высокий уровень безопасности.
Статья обсуждает важность безопасности в веб-разработке, фокусируясь на механизме хеширования паролей. Она подчеркивает увеличение вычислительной мощности компьютеров и необходимость постоянного обновления методов хеширования для защиты от брутфорс-атак.
Здесь рассматриваются изменения, внесенные в Laravel, включая увеличение количества проходов bcrypt с 10 до 12. Это увеличение замедляет процесс хеширования, обеспечивая более высокий уровень безопасности.
Хабр
Совет по безопасности: увеличьте количество проходов bcrypt
Приветствую! На этой неделе мы отправимся в интересный и сложный мир механизм хэширования паролей, и рассмотрим очень простое изменение, которое Вы должны сделать в своих приложениях для повышения...
👍2
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍2😁1
Использование Hashid с Laravel (вместо UUID)
Статья обсуждает различные методы создания идентификаторов в базах данных, сосредотачиваясь на сравнении увеличиваемых целочисленных идентификаторов с уникальными строковыми идентификаторами (UUIDs) и методом Hashid.
Автор исследует преимущества и недостатки каждого метода и предоставляет решение в виде использования Hashid - метода для генерации коротких и уникальных строковых идентификаторов из чисел.
В статье также рассматривается реализация Hashid в Laravel-приложении
Статья обсуждает различные методы создания идентификаторов в базах данных, сосредотачиваясь на сравнении увеличиваемых целочисленных идентификаторов с уникальными строковыми идентификаторами (UUIDs) и методом Hashid.
Автор исследует преимущества и недостатки каждого метода и предоставляет решение в виде использования Hashid - метода для генерации коротких и уникальных строковых идентификаторов из чисел.
В статье также рассматривается реализация Hashid в Laravel-приложении
👍4👾3🥱1
Forwarded from PHP jobs — вакансии по PHP, Symfony, Laravel
#дайджест #phpdevjob
Вакансии недели для джунов 👨🏻🏫
PHP-разработчик в NeoFamily
Санкт-Петербург. Онлайн-школа по подготовке к ЕГЭ.
Подробнее
PHP-программист в ЛЕКО
Тверь. Разработка крупных интернет-проектов.
Подробнее
Программист PHP в SRLab
Севастополь. Разработка индивидуальных решений для бизнеса.
Подробнее
Junior PHP-программист в Скобеев и Партнеры
Тамбов. ИТ-услуги и эталонный сервис.
Подробнее
Программист PHP в ИНТАСК
Воронеж. Разработка ПО для электронной торговли.
Подробнее
Понравились вакансии?
👍 — да
👎 — нет
Вакансии недели для джунов 👨🏻🏫
PHP-разработчик в NeoFamily
Санкт-Петербург. Онлайн-школа по подготовке к ЕГЭ.
Подробнее
PHP-программист в ЛЕКО
Тверь. Разработка крупных интернет-проектов.
Подробнее
Программист PHP в SRLab
Севастополь. Разработка индивидуальных решений для бизнеса.
Подробнее
Junior PHP-программист в Скобеев и Партнеры
Тамбов. ИТ-услуги и эталонный сервис.
Подробнее
Программист PHP в ИНТАСК
Воронеж. Разработка ПО для электронной торговли.
Подробнее
Понравились вакансии?
👍 — да
👎 — нет
spb.hh.ru
Вакансия PHP-разработчик в Санкт-Петербурге, работа в компании NeoFamily (вакансия в архиве c 12 октября 2023)
Зарплата: не указана. Санкт-Петербург. Требуемый опыт: 1–3 года. Полная занятость. Дата публикации: 10.10.2023.
🥱8👍2
#хочу_спросить
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
😁3👍2
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
🐘PHP
Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека шарписта
Библиотека мобильного разработчика
Библиотека хакера
Библиотека devops’a
Библиотека тестировщика
💼Каналы с вакансиями
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
Вакансии по DevOps & SRE
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook
🔸Instagram
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
🐘PHP
Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека шарписта
Библиотека мобильного разработчика
Библиотека хакера
Библиотека devops’a
Библиотека тестировщика
💼Каналы с вакансиями
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
Вакансии по DevOps & SRE
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🥱2❤1👍1🌚1
Перевод сущностей в EasyAdmin с помощью DoctrineBehaviors
В данной статье рассматривается способ перевода сущностей в EasyAdmin. Создается сущность "Article", где можно перевести заголовок, слаг и содержание на несколько языков, а также добавить возможность фильтрации по переводимым полям.
В данной статье рассматривается способ перевода сущностей в EasyAdmin. Создается сущность "Article", где можно перевести заголовок, слаг и содержание на несколько языков, а также добавить возможность фильтрации по переводимым полям.
DEV Community
Translating entities in EasyAdmin with DoctrineBehaviors
In this article we will look at how to translate entities in EasyAdmin. We will create an "Article"...
👍3
Какие процессы происходят, когда пользователь вводит в браузере URL?
Когда пользователь вводит URL в браузере, происходит следующая последовательность процессов:
1. Парсинг URL: Браузер анализирует введенный URL, чтобы выделить протокол, доменное имя и путь к ресурсу.
2. DNS-поиск: Браузер отправляет запрос к DNS-серверу для получения IP-адреса, связанного с доменным именем. DNS-сервер возвращает IP-адрес браузеру.
3. Установка TCP-соединения: Браузер устанавливает TCP-соединение с веб-сервером, используя полученный IP-адрес и порт (обычно порт 80 для HTTP или порт 443 для HTTPS).
4. Отправка HTTP-запроса: Браузер отправляет HTTP-запрос на сервер, включая метод запроса (GET, POST и т.д.), заголовки и URI (Uniform Resource Identifier), который содержит запрошенный ресурс.
5. Обработка и выполнение запроса на сервере: Веб-сервер получает HTTP-запрос, выполняет обработку и обращается к соответствующему приложению или файлу. На этом этапе сервер может также взаимодействовать с базой данных или другими серверами для получения данных, необходимых для формирования ответа.
6. Подготовка HTTP-ответа: Сервер формирует HTTP-ответ, включающий статус запроса, заголовки и содержимое. Код состояния (например, 200 для успешного запроса) указывает на результат обработки запроса.
7. Передача HTTP-ответа: Сформированный HTTP-ответ передается обратно по TCP-соединению на браузер клиента.
8. Обработка HTTP-ответа: Браузер получает HTTP-ответ, анализирует статус запроса и заголовки. Если запрос был успешным, браузер начинает загружать и отображать содержимое ответа (HTML, CSS, JavaScript, изображения и т.д.).
9. Рендеринг и отображение: Браузер обрабатывает полученное содержимое, выполняет интерпретацию HTML, применяет стили CSS, обрабатывает скрипты JavaScript и, в конечном итоге, отображает запрошенную веб-страницу на экране пользователя
#вопросы_с_собеседований
Когда пользователь вводит URL в браузере, происходит следующая последовательность процессов:
1. Парсинг URL: Браузер анализирует введенный URL, чтобы выделить протокол, доменное имя и путь к ресурсу.
2. DNS-поиск: Браузер отправляет запрос к DNS-серверу для получения IP-адреса, связанного с доменным именем. DNS-сервер возвращает IP-адрес браузеру.
3. Установка TCP-соединения: Браузер устанавливает TCP-соединение с веб-сервером, используя полученный IP-адрес и порт (обычно порт 80 для HTTP или порт 443 для HTTPS).
4. Отправка HTTP-запроса: Браузер отправляет HTTP-запрос на сервер, включая метод запроса (GET, POST и т.д.), заголовки и URI (Uniform Resource Identifier), который содержит запрошенный ресурс.
5. Обработка и выполнение запроса на сервере: Веб-сервер получает HTTP-запрос, выполняет обработку и обращается к соответствующему приложению или файлу. На этом этапе сервер может также взаимодействовать с базой данных или другими серверами для получения данных, необходимых для формирования ответа.
6. Подготовка HTTP-ответа: Сервер формирует HTTP-ответ, включающий статус запроса, заголовки и содержимое. Код состояния (например, 200 для успешного запроса) указывает на результат обработки запроса.
7. Передача HTTP-ответа: Сформированный HTTP-ответ передается обратно по TCP-соединению на браузер клиента.
8. Обработка HTTP-ответа: Браузер получает HTTP-ответ, анализирует статус запроса и заголовки. Если запрос был успешным, браузер начинает загружать и отображать содержимое ответа (HTML, CSS, JavaScript, изображения и т.д.).
9. Рендеринг и отображение: Браузер обрабатывает полученное содержимое, выполняет интерпретацию HTML, применяет стили CSS, обрабатывает скрипты JavaScript и, в конечном итоге, отображает запрошенную веб-страницу на экране пользователя
#вопросы_с_собеседований
👍25🥱5🔥1
Решение проблем масштабирования PHP
Команда разработчиков столкнулась с проблемой памяти при экспорте данных в Excel файлы в PHP-проекте. Проблема заключалась в том, что каждый фоновый задача открывала файл, добавляла порцию записей и закрывала файл, что приводило к увеличению потребления памяти.
После многих неудачных попыток решить проблему в PHP, команда решила переписать этот процесс на языке программирования Rust.
Rust был выбран из-за своей эффективности в управлении памятью, поддержки параллельности и безопасности в работе с потоками.
После преодоления кривого обучения команда смогла успешно реализовать новую систему экспорта, которая управляет памятью более эффективно и обеспечивает высокую производительность при обработке больших объемов данных. Для связи между PHP и Rust используется Redis и HTTP-вебхуки.
Команда разработчиков столкнулась с проблемой памяти при экспорте данных в Excel файлы в PHP-проекте. Проблема заключалась в том, что каждый фоновый задача открывала файл, добавляла порцию записей и закрывала файл, что приводило к увеличению потребления памяти.
После многих неудачных попыток решить проблему в PHP, команда решила переписать этот процесс на языке программирования Rust.
Rust был выбран из-за своей эффективности в управлении памятью, поддержки параллельности и безопасности в работе с потоками.
После преодоления кривого обучения команда смогла успешно реализовать новую систему экспорта, которая управляет памятью более эффективно и обеспечивает высокую производительность при обработке больших объемов данных. Для связи между PHP и Rust используется Redis и HTTP-вебхуки.
Eloquent Architecture
Solving PHP Scaling Issues
We have an export feature that can build an Excel file over the course of many background jobs. Worked beautifully for years. Man, those were the days.
👍7🥱1