Forwarded from Библиотека программиста | программирование, кодинг, разработка
🎙️ТОП-14 подкастов о карьере в ИТ
Делимся подкастами, которые помогут вам подготовиться к собеседованиям и лучше понять, как устроен процесс найма в ИТ. Ниже — небольшая подборка, остальные читайте в статье.
👉 NEWHR и СОБЕС — два подкаста от Киры Кузьменко, рекрутера с 20-летним опытом
👉 Хочу в айти — подкаст для новичков, в котором не так много выпусков, но они короткие, ёмкие и интересные.
👉 Выхожу с понедельника — подкаст про разные направления в ИТ
👉 Moscow Python — подкаст о карьере, личном опыте и не только
👉 Podlodka Podcast — популярный подкаст с очень разнообразными и интересными темами, связанными с карьерой в ИТ и другими айтишными направлениями
#подкасты
Делимся подкастами, которые помогут вам подготовиться к собеседованиям и лучше понять, как устроен процесс найма в ИТ. Ниже — небольшая подборка, остальные читайте в статье.
👉 NEWHR и СОБЕС — два подкаста от Киры Кузьменко, рекрутера с 20-летним опытом
👉 Хочу в айти — подкаст для новичков, в котором не так много выпусков, но они короткие, ёмкие и интересные.
👉 Выхожу с понедельника — подкаст про разные направления в ИТ
👉 Moscow Python — подкаст о карьере, личном опыте и не только
👉 Podlodka Podcast — популярный подкаст с очень разнообразными и интересными темами, связанными с карьерой в ИТ и другими айтишными направлениями
#подкасты
👍3
А был ли баг? Может бага и не было? Зачем, как и чем тестировать PHP код
В статье рассматриваются основные подходы к тестированию бэкенда на PHP, обсуждаются преимущества и проблемы, связанные с этим процессом. Также о методах обнаружения и устранения багов, инструментах и книгах для более глубокого изучения тестирования. Материал будет полезен как начинающим тестировщикам, так и разработчикам, которые хотят освоить тестирование бэкенда, но не знают с чего начать.
В статье рассматриваются основные подходы к тестированию бэкенда на PHP, обсуждаются преимущества и проблемы, связанные с этим процессом. Также о методах обнаружения и устранения багов, инструментах и книгах для более глубокого изучения тестирования. Материал будет полезен как начинающим тестировщикам, так и разработчикам, которые хотят освоить тестирование бэкенда, но не знают с чего начать.
Хабр
А был ли баг? Может бага и не было? Зачем, как и чем тестировать PHP код
В статье рассмотрим основные подходы к тестированию бэкенда на PHP, обсудим преимущества и проблемы, связанные с этим процессом. Также узнаем о методах обнаружения и устранения багов, инструментах и...
👍4🥱4
Resonance — новый PHP-фреймворк, созданный на основе Swoole
Здесь представлен новый PHP-фреймворк под названием Resonance, который ориентирован на асинхронное программирование и включает в себя функции Fibers, Coroutines и библиотеку Swoole. Фреймворк позволяет создавать модульные приложения, где все компоненты могут легко заменяться, расширяться или модифицироваться. Проект бесплатный и open source, с документацией и исходным кодом доступными на GitHub. Автор приглашает присоединиться к сообществу и оценить проект на GitHub.
Здесь представлен новый PHP-фреймворк под названием Resonance, который ориентирован на асинхронное программирование и включает в себя функции Fibers, Coroutines и библиотеку Swoole. Фреймворк позволяет создавать модульные приложения, где все компоненты могут легко заменяться, расширяться или модифицироваться. Проект бесплатный и open source, с документацией и исходным кодом доступными на GitHub. Автор приглашает присоединиться к сообществу и оценить проект на GitHub.
DEV Community
Resonance: A New Async PHP Framework
New PHP Framework I spent the last year working on the new PHP framework to push this...
👍12❤5👾1
Борьба с Login CSRF
Статья обсуждает уязвимости Cross-Site Request Forgery (CSRF) в веб-приложениях, фокусируясь на менее известном типе — Login CSRF. CSRF эксплуатирует функционал сеансов в браузере, позволяя злоумышленникам выполнять неавторизованные запросы с использованием сеанса пользователя. В традиционной атаке CSRF злоумышленник может манипулировать пользователем для выполнения действий от их имени, таких как изменение пароля или проведение транзакций.
Login CSRF, с другой стороны, включает в себя принуждение аутентифицированного сеанса действовать от имени пользователя, сначала инициируя выход и затем вход с учетными данными злоумышленника. В статье подчеркивается, что несмотря на передовые технологии, такие как флаги безопасности и SameSite в куки, атаки CSRF, включая Login CSRF, по-прежнему представляют угрозу для веб-приложений.
Автор предоставляет рекомендации по защите от Login CSRF в Symfony, фреймворке веб-приложений. Рекомендуемый подход включает в себя включение защиты CSRF в конфигурации аутентификации и внедрение случайного токена в форму входа, который может быть автоматизирован аутентификатором form_login Symfony. Для более старых версий Symfony предлагается использовать csrf_token_generator.
Защита распространяется также на выход, с использованием опции enable_csrf в конфигурации logout. Статья завершается акцентом на важности обеспечения защиты действий входа и выхода от атак CSRF, даже при наличии улучшенных мер безопасности куки.
Статья обсуждает уязвимости Cross-Site Request Forgery (CSRF) в веб-приложениях, фокусируясь на менее известном типе — Login CSRF. CSRF эксплуатирует функционал сеансов в браузере, позволяя злоумышленникам выполнять неавторизованные запросы с использованием сеанса пользователя. В традиционной атаке CSRF злоумышленник может манипулировать пользователем для выполнения действий от их имени, таких как изменение пароля или проведение транзакций.
Login CSRF, с другой стороны, включает в себя принуждение аутентифицированного сеанса действовать от имени пользователя, сначала инициируя выход и затем вход с учетными данными злоумышленника. В статье подчеркивается, что несмотря на передовые технологии, такие как флаги безопасности и SameSite в куки, атаки CSRF, включая Login CSRF, по-прежнему представляют угрозу для веб-приложений.
Автор предоставляет рекомендации по защите от Login CSRF в Symfony, фреймворке веб-приложений. Рекомендуемый подход включает в себя включение защиты CSRF в конфигурации аутентификации и внедрение случайного токена в форму входа, который может быть автоматизирован аутентификатором form_login Symfony. Для более старых версий Symfony предлагается использовать csrf_token_generator.
Защита распространяется также на выход, с использованием опции enable_csrf в конфигурации logout. Статья завершается акцентом на важности обеспечения защиты действий входа и выхода от атак CSRF, даже при наличии улучшенных мер безопасности куки.
Wouter J
Combatting Login CSRF with Symfony
Cross-site Request Forgery (CSRF) is one of the traditional vulnerabilities
that web applications have to deal with. Every web framework - including
Symfony - supports CSRF protection out of the box. A lesser known
vulnerability is Login CSRF, a special kind…
that web applications have to deal with. Every web framework - including
Symfony - supports CSRF protection out of the box. A lesser known
vulnerability is Login CSRF, a special kind…
🥱8👍6❤1
Что такое ACID?
ACID — это аббревиатура, обозначающая четыре основных характеристики транзакций в базах данных: атомарность (Atomicity), согласованность (Consistency), изолированность (Isolation) и долговечность (Durability).
1. Атомарность обеспечивает полную или ничего не делающую выполнение транзакции. Транзакция считается атомарной, если она выполняется как единое целое, и либо все ее операции будут успешно выполнены, либо ни одна.
2. Согласованность гарантирует, что после успешного завершения транзакции база данных находится в согласованном состоянии. Это означает, что интегритет данных должен быть сохранен, а все ограничения и правила, определенные на уровне базы данных, должны быть соблюдены.
3. Изолированность обеспечивает, что каждая транзакция выполняется в изолированной среде, рассматривающей ее как единственную выполняющуюся транзакцию. Это гарантирует, что результаты одной транзакции не будут видны другим транзакциям, пока они не будут успешно завершены.
4. Долговечность означает, что после успешного завершения транзакции, ее изменения должны оставаться постоянными и не должны быть потеряны из-за сбоев в системе или других внешних факторов.
ACID-свойства являются важными для обеспечения надежности и целостности данных в системе, особенно в контексте критически важных приложений, где требуется консистентность данных.
#вопросы_с_собеседований
ACID — это аббревиатура, обозначающая четыре основных характеристики транзакций в базах данных: атомарность (Atomicity), согласованность (Consistency), изолированность (Isolation) и долговечность (Durability).
1. Атомарность обеспечивает полную или ничего не делающую выполнение транзакции. Транзакция считается атомарной, если она выполняется как единое целое, и либо все ее операции будут успешно выполнены, либо ни одна.
2. Согласованность гарантирует, что после успешного завершения транзакции база данных находится в согласованном состоянии. Это означает, что интегритет данных должен быть сохранен, а все ограничения и правила, определенные на уровне базы данных, должны быть соблюдены.
3. Изолированность обеспечивает, что каждая транзакция выполняется в изолированной среде, рассматривающей ее как единственную выполняющуюся транзакцию. Это гарантирует, что результаты одной транзакции не будут видны другим транзакциям, пока они не будут успешно завершены.
4. Долговечность означает, что после успешного завершения транзакции, ее изменения должны оставаться постоянными и не должны быть потеряны из-за сбоев в системе или других внешних факторов.
ACID-свойства являются важными для обеспечения надежности и целостности данных в системе, особенно в контексте критически важных приложений, где требуется консистентность данных.
#вопросы_с_собеседований
👍8🥱5💯1
Декодинг функций пустых значений PHP: когда какие использовать
Эта статья объясняет различия между оператором ! (не), функцией is_null(), isset() и функцией empty() в PHP при проверке наличия пустых значений. Вот краткое изложение ключевых моментов:
1️⃣Оператор ! (не):
Проверяет, является ли значение false.
Считаются «ложными» значениями: false, 0, 0.0, '', массив с нулевым количеством элементов, NULL, объекты SimpleXML из пустых тегов.
Пример: if (!$value) { echo 'Значение считается пустым.'; }
2️⃣Функция is_null():
Проверяет, равна ли переменная NULL.
Возвращает true только если переменная именно NULL, не проверяя другие «пустые» значения.
Пример: if (is_null($value)) { echo 'Значение равно NULL.'; }
3️⃣Функция isset():
Проверяет, установлена ли переменная и не является ли она NULL.
Возвращает true для любого значения, отличного от NULL (включая false, 0, и пустую строку '').
Пример: if (isset($value)) { echo 'Переменная установлена и не равна NULL.'; }
4️⃣Функция empty():
Проверяет, считается ли переменная «пустой».
Считаются «пустыми» значения: '', 0, 0.0, «0», NULL, false, массив с нулевым количеством элементов.
Полезна при проверке наличия переменной и её непустого значения.
Пример: if (empty($value)) { echo 'Значение считается пустым по empty().'; }
Статья также предоставляет примеры использования каждой из функций для лучшего понимания их применения.
Эта статья объясняет различия между оператором ! (не), функцией is_null(), isset() и функцией empty() в PHP при проверке наличия пустых значений. Вот краткое изложение ключевых моментов:
1️⃣Оператор ! (не):
Проверяет, является ли значение false.
Считаются «ложными» значениями: false, 0, 0.0, '', массив с нулевым количеством элементов, NULL, объекты SimpleXML из пустых тегов.
Пример: if (!$value) { echo 'Значение считается пустым.'; }
2️⃣Функция is_null():
Проверяет, равна ли переменная NULL.
Возвращает true только если переменная именно NULL, не проверяя другие «пустые» значения.
Пример: if (is_null($value)) { echo 'Значение равно NULL.'; }
3️⃣Функция isset():
Проверяет, установлена ли переменная и не является ли она NULL.
Возвращает true для любого значения, отличного от NULL (включая false, 0, и пустую строку '').
Пример: if (isset($value)) { echo 'Переменная установлена и не равна NULL.'; }
4️⃣Функция empty():
Проверяет, считается ли переменная «пустой».
Считаются «пустыми» значения: '', 0, 0.0, «0», NULL, false, массив с нулевым количеством элементов.
Полезна при проверке наличия переменной и её непустого значения.
Пример: if (empty($value)) { echo 'Значение считается пустым по empty().'; }
Статья также предоставляет примеры использования каждой из функций для лучшего понимания их применения.
DEV Community
Decoding PHP's Empty Value Functions: When to Use Which
In PHP, checking for empty values is a common operation, and there are several ways to do this....
🔥9👍4🥱2👾1
Построение гибкой, но абстрактной структуры внешней интеграции
В статье описан процесс разработки интеграции Jira в приложение Flare, которое уже имело интеграцию с GitHub. Основное внимание уделяется созданию гибкой и абстрактной структуры, позволяющей легко добавлять новые интеграции в будущем и приводится три примера абстрагирования кода для различных интеграций.
В статье описан процесс разработки интеграции Jira в приложение Flare, которое уже имело интеграцию с GitHub. Основное внимание уделяется созданию гибкой и абстрактной структуры, позволяющей легко добавлять новые интеграции в будущем и приводится три примера абстрагирования кода для различных интеграций.
👍6👾2
8 способов, с помощью которых Laravel поможет вам писать чистый и лаконичный код
В статье рассматриваются восемь методов, которые позволяют писать более компактный и чистый код в Laravel:
1️⃣Фасады (Facades):
Фасады предоставляют «статический» интерфейс к классам, доступным в контейнере служб приложения.
Позволяют обращаться к функционалу Laravel через интуитивно понятный синтаксис, например, Cache::get('foo').
2️⃣Неявное связывание (Implicit Binding):
Позволяет автоматически получать ресурсы из базы данных, указывая модель вместо явного запроса.
Пример: Route::get('/blog/{post}', [PostController::class, 'show']), где $post — это экземпляр модели Post.
3️⃣Автоматическое внедрение зависимостей:
Laravel может автоматически внедрять зависимости, например, объект запроса.
Просто указываем в методе контроллера store(Request $request), и Laravel предоставляет экземпляр запроса.
4️⃣Перенаправление маршрутов (Redirect Routes):
Использование метода Route::redirect('/old', '/new') для перенаправления существующих URL без создания целого контроллера.
5️⃣Просмотр маршрутов (View Routes):
Использование метода Route::view('/about', 'pages.about') для простой регистрации маршрута, возвращающего представление.
6️⃣Коллекции (Collections):
Laravel Collections предоставляют множество полезных методов для работы с массивами более эффективным и последовательным образом.
7️⃣Условный трейт (Conditional Trait):
Использование трейта Conditionable для более компактного и читаемого кода при условных проверках.
8️⃣Бесконечные пакеты первой стороны (Endless First Party Packages):
Использование обширной коллекции официальных и сторонних пакетов Laravel для решения распространенных задач.
В статье рассматриваются восемь методов, которые позволяют писать более компактный и чистый код в Laravel:
1️⃣Фасады (Facades):
Фасады предоставляют «статический» интерфейс к классам, доступным в контейнере служб приложения.
Позволяют обращаться к функционалу Laravel через интуитивно понятный синтаксис, например, Cache::get('foo').
2️⃣Неявное связывание (Implicit Binding):
Позволяет автоматически получать ресурсы из базы данных, указывая модель вместо явного запроса.
Пример: Route::get('/blog/{post}', [PostController::class, 'show']), где $post — это экземпляр модели Post.
3️⃣Автоматическое внедрение зависимостей:
Laravel может автоматически внедрять зависимости, например, объект запроса.
Просто указываем в методе контроллера store(Request $request), и Laravel предоставляет экземпляр запроса.
4️⃣Перенаправление маршрутов (Redirect Routes):
Использование метода Route::redirect('/old', '/new') для перенаправления существующих URL без создания целого контроллера.
5️⃣Просмотр маршрутов (View Routes):
Использование метода Route::view('/about', 'pages.about') для простой регистрации маршрута, возвращающего представление.
6️⃣Коллекции (Collections):
Laravel Collections предоставляют множество полезных методов для работы с массивами более эффективным и последовательным образом.
7️⃣Условный трейт (Conditional Trait):
Использование трейта Conditionable для более компактного и читаемого кода при условных проверках.
8️⃣Бесконечные пакеты первой стороны (Endless First Party Packages):
Использование обширной коллекции официальных и сторонних пакетов Laravel для решения распространенных задач.
❤9😁6🥱1
Forwarded from PHP jobs — вакансии по PHP, Symfony, Laravel
#дайджест #phpdevjob
Вакансии недели для Москвы 👨🏻🏫
Senior PHP разработчик в Торговая компания
Москва. Высоконагруженный маркетплейс.
Подробнее
Программист в Университет искусственного интеллекта
Москва. Образование в сфере AI.
Подробнее
Senior PHP-разработчик в EdgeQ
Москва. Web & Mobile разработка полного цикла.
Подробнее
PHP-разработчик в ЛАБИРИНТ
Москва. Книжный холдинг.
Подробнее
Программист PHP в OOMI
Москва. Комплексный маркетинг, WEB разработка и аутсорсинг.
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
Вакансии недели для Москвы 👨🏻🏫
Senior PHP разработчик в Торговая компания
Москва. Высоконагруженный маркетплейс.
Подробнее
Программист в Университет искусственного интеллекта
Москва. Образование в сфере AI.
Подробнее
Senior PHP-разработчик в EdgeQ
Москва. Web & Mobile разработка полного цикла.
Подробнее
PHP-разработчик в ЛАБИРИНТ
Москва. Книжный холдинг.
Подробнее
Программист PHP в OOMI
Москва. Комплексный маркетинг, WEB разработка и аутсорсинг.
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
hh.ru
Вакансия Senior PHP разработчик в Москве, работа в компании Торговая компания (вакансия в архиве c 23 декабря 2023)
Зарплата: от 400000 ₽ за месяц. Москва. Требуемый опыт: 3–6 лет. Полная занятость. Дата публикации: 23.11.2023.
🤔6❤3
Какое самое лучшее решение вы когда-либо принимали в отношении своей работы/рабочего процесса?⬇️
🥱10❤2👍1
Последнее слово об «unfinalize»
Автор создал запрос на объединение в PHP-CS-Fixer, чтобы предотвратить установку stevebauman/unfinalize вместе с friendsofphp/php-cs-fixer. Это вызвало оживленные обсуждения в сообществе PHP относительно использования ключевого слова «final» в коде. Запрос на объединение был воспринят как полушутка, направленная на предотвращение интеграции инструмента unfinalize с PHP-CS-Fixer.
Драма разгорелась, когда запрос на объединение был принят, и unfinalize был заблокирован в PHP-CS-Fixer. Автор столкнулся с критикой и дизлайками со стороны сообщества, что привело к отмене запроса на объединение. Он аргументировал, что модификация вендорного кода не является стандартом кодирования, и высказал опасения относительно потенциального вреда от разрешения запрещенного наследования.
В статье обсуждаются причины запроса на объединение, включая убеждение в том, что «final by default» — хороший подход, и что unfinalize может быть вредным для пользователей. Автор также рассматривает контраргументы, такие как существование Composer patches и dg/bypass-finals.
Автор создал запрос на объединение в PHP-CS-Fixer, чтобы предотвратить установку stevebauman/unfinalize вместе с friendsofphp/php-cs-fixer. Это вызвало оживленные обсуждения в сообществе PHP относительно использования ключевого слова «final» в коде. Запрос на объединение был воспринят как полушутка, направленная на предотвращение интеграции инструмента unfinalize с PHP-CS-Fixer.
Драма разгорелась, когда запрос на объединение был принят, и unfinalize был заблокирован в PHP-CS-Fixer. Автор столкнулся с критикой и дизлайками со стороны сообщества, что привело к отмене запроса на объединение. Он аргументировал, что модификация вендорного кода не является стандартом кодирования, и высказал опасения относительно потенциального вреда от разрешения запрещенного наследования.
В статье обсуждаются причины запроса на объединение, включая убеждение в том, что «final by default» — хороший подход, и что unfinalize может быть вредным для пользователей. Автор также рассматривает контраргументы, такие как существование Composer patches и dg/bypass-finals.
blog.codito.dev
Final word about `unfinalize`
Recently I’ve created pull request to #PHP-CS-Fixer that aimed to prevent installing stevebauman/unfinalize along with friendsofphp/php-cs-fixer, effectively blocking Fixer to be installed as a dev dependency for that tool. That escalated quickly 😅!
👍10
This media is not supported in the widget
VIEW IN TELEGRAM
🥱18👍8🌚3❤2👏2
Что такое type hinting, как работает, зачем нужен?
Type hinting в PHP — это возможность указывать ожидаемые или допустимые типы данных для параметров функций и функций-обратного вызова (callback). Он используется для определения типов аргументов функций и возвращаемых значений.
Type hinting выполняется при помощи объявления типа данных перед именем параметра функции или функции-обратного вызова.
В данном случае мы указываем, что параметры $a и $b должны быть целочисленного типа (int), а функция должна возвращать тоже целочисленное значение. Если будет передан несоответствующий тип данных, то PHP выдаст ошибку.
Type hinting в PHP имеет следующие преимущества и цели:
1. Увеличение надежности и безопасности кода: Type hinting позволяет контролировать типы данных, которые принимаются и возвращаются функциями, что может помочь предотвратить ошибки типизации и некорректное использование функций.
2. Улучшение понимания кода: Type hinting делает код более читаемым и понятным, особенно при работе в команде. Видя ожидаемые типы данных в объявлениях функций, другие разработчики легко могут понять, какие данные ожидаются для правильного использования функции.
3. Интеграция со средами разработки: Многие среды разработки, такие как PhpStorm, могут использовать информацию о типах данных для предоставления подсказок и автодополнения, что упрощает разработку и ускоряет процесс написания кода.
Однако, следует отметить, что type hinting в PHP не является строгой типизацией. Если передать аргумент, не соответствующий указанному типу, PHP будет пытаться выполнить приведение типов, что может привести к непредсказуемому поведению программы.
#вопросы_с_собеседований
Type hinting в PHP — это возможность указывать ожидаемые или допустимые типы данных для параметров функций и функций-обратного вызова (callback). Он используется для определения типов аргументов функций и возвращаемых значений.
Type hinting выполняется при помощи объявления типа данных перед именем параметра функции или функции-обратного вызова.
В данном случае мы указываем, что параметры $a и $b должны быть целочисленного типа (int), а функция должна возвращать тоже целочисленное значение. Если будет передан несоответствующий тип данных, то PHP выдаст ошибку.
Type hinting в PHP имеет следующие преимущества и цели:
1. Увеличение надежности и безопасности кода: Type hinting позволяет контролировать типы данных, которые принимаются и возвращаются функциями, что может помочь предотвратить ошибки типизации и некорректное использование функций.
2. Улучшение понимания кода: Type hinting делает код более читаемым и понятным, особенно при работе в команде. Видя ожидаемые типы данных в объявлениях функций, другие разработчики легко могут понять, какие данные ожидаются для правильного использования функции.
3. Интеграция со средами разработки: Многие среды разработки, такие как PhpStorm, могут использовать информацию о типах данных для предоставления подсказок и автодополнения, что упрощает разработку и ускоряет процесс написания кода.
Однако, следует отметить, что type hinting в PHP не является строгой типизацией. Если передать аргумент, не соответствующий указанному типу, PHP будет пытаться выполнить приведение типов, что может привести к непредсказуемому поведению программы.
#вопросы_с_собеседований
🥱8👍5
Kubernates и Laravel: Начало работы
Статья предоставляет введение в Kubernetes, охватывая основные концепции и объясняя ключевые компоненты, такие как узлы, кластеры, пулы узлов, поды, наборы реплик, деплойменты, сервисы, ингрессы и пространства имен. Затем описывается конфигурация Pod, ReplicaSet и Deployment в Kubernetes, с акцентом на механизмы меток и селекторов.
Автор также рассматривает создание кластера Kubernetes с использованием DigitalOcean и командной строки kubectl. Управляемые базы данных представляются в качестве решения для обработки состояний в приложениях внутри кластера Kubernetes.
Далее в статье идет речь о развертывании Laravel API в Kubernetes, охватываются темы, такие как ConfigMaps и Secrets для управления переменными окружения. Приводятся подробные шаги по созданию и применению конфигураций деплоймента, а также проверке статуса подов и просмотру журналов.
Затем объясняется развертывание nginx в Kubernetes вместе с настройкой коммуникации между nginx и Laravel API с использованием сервисов типа ClusterIP. Демонстрируется использование команд kubectl для взаимодействия с кластером и тестирования конфигураций.
Статья предоставляет введение в Kubernetes, охватывая основные концепции и объясняя ключевые компоненты, такие как узлы, кластеры, пулы узлов, поды, наборы реплик, деплойменты, сервисы, ингрессы и пространства имен. Затем описывается конфигурация Pod, ReplicaSet и Deployment в Kubernetes, с акцентом на механизмы меток и селекторов.
Автор также рассматривает создание кластера Kubernetes с использованием DigitalOcean и командной строки kubectl. Управляемые базы данных представляются в качестве решения для обработки состояний в приложениях внутри кластера Kubernetes.
Далее в статье идет речь о развертывании Laravel API в Kubernetes, охватываются темы, такие как ConfigMaps и Secrets для управления переменными окружения. Приводятся подробные шаги по созданию и применению конфигураций деплоймента, а также проверке статуса подов и просмотру журналов.
Затем объясняется развертывание nginx в Kubernetes вместе с настройкой коммуникации между nginx и Laravel API с использованием сервисов типа ClusterIP. Демонстрируется использование команд kubectl для взаимодействия с кластером и тестирования конфигураций.
👍7
Из чего состоят карьерные сайты: топ-5 фич и 4 месяца разработки
Здесь рассказывается о растущем спросе на IT-специалистов в России за последние два года и о том, как многие компании начали активно создавать карьерные сайты для эффективного подбора персонала.
Автор описывает свой опыт работы над карьерными сайтами для крупных компаний с активным IT-подбором.
Здесь рассказывается о растущем спросе на IT-специалистов в России за последние два года и о том, как многие компании начали активно создавать карьерные сайты для эффективного подбора персонала.
Автор описывает свой опыт работы над карьерными сайтами для крупных компаний с активным IT-подбором.
Хабр
Из чего состоят карьерные сайты: топ-5 фич и 4 месяца разработки
Всем привет! Меня зовут Данила Соловьев, я заместитель руководителя направления PHP в AGIMA . Недавно мы разработали собственное коробочное решение — это универсальный бэкенд для карьерных сайтов на...
Как часто вы ездите в офис? Сколько раз в неделю?⬇️
🌚13👍2🥱2🤔1
Новые сообщения об ошибках в PHP 8.3
Предстоящая версия PHP 8.3 вводит 38 новых сообщений об ошибках, удаляя при этом 11. Количество уникальных сообщений об ошибках составляет 783, что ставит PHP 8.3 на четвёртое место, обогнав PHP 8.2, но всё ещё уступая PHP 7.4. Сообщения об ошибках обычно накапливаются в пределах основной версии PHP до следующей версии с изменениями, где они удаляются.
Некоторые из новых интересных сообщений об ошибках в PHP 8.3 включают:
1️⃣Устаревшее использование get_class() и get_parent_class() без аргументов. Теперь аргументы обязательны, и рекомендуется использовать $this внутри класса.
2️⃣Ошибка при использовании неподходящего значения для типизированной константы класса.
3️⃣Ограничение возможных типов для констант класса, исключая такие типы, как never, void и callable.
4️⃣Запрет некоторых модификаторов для элементов класса, таких как abstract, static, public, final и т. д.
5️⃣Устаревшее увеличение неалфавитных строк с рекомендацией использовать специализированные функции, такие как str_increment().
6️⃣Введение конкретных сообщений об ошибках для операций декремента с пустыми строками, нечисловыми строками, булевыми и null-типами.
7️⃣Предупреждение о попытке операций инкремента или декремента для булевых значений.
8️⃣Ошибка линтинга для дублирования объявлений статических переменных в замыканиях.
Предстоящая версия PHP 8.3 вводит 38 новых сообщений об ошибках, удаляя при этом 11. Количество уникальных сообщений об ошибках составляет 783, что ставит PHP 8.3 на четвёртое место, обогнав PHP 8.2, но всё ещё уступая PHP 7.4. Сообщения об ошибках обычно накапливаются в пределах основной версии PHP до следующей версии с изменениями, где они удаляются.
Некоторые из новых интересных сообщений об ошибках в PHP 8.3 включают:
1️⃣Устаревшее использование get_class() и get_parent_class() без аргументов. Теперь аргументы обязательны, и рекомендуется использовать $this внутри класса.
2️⃣Ошибка при использовании неподходящего значения для типизированной константы класса.
3️⃣Ограничение возможных типов для констант класса, исключая такие типы, как never, void и callable.
4️⃣Запрет некоторых модификаторов для элементов класса, таких как abstract, static, public, final и т. д.
5️⃣Устаревшее увеличение неалфавитных строк с рекомендацией использовать специализированные функции, такие как str_increment().
6️⃣Введение конкретных сообщений об ошибках для операций декремента с пустыми строками, нечисловыми строками, булевыми и null-типами.
7️⃣Предупреждение о попытке операций инкремента или декремента для булевых значений.
8️⃣Ошибка линтинга для дублирования объявлений статических переменных в замыканиях.
Exakat
New PHP error messages in PHP 8.3 - Exakat
👍10❤2