PHP 8.1: то же самое, но по-другому
Этот код много лет работал на PHP 7.4. На PHP 8.1 — упал.
Сам код не трогали. Поменялась только версия языка.
PHP 8 стал строже относиться к тому, что раньше прощал🤨 Таких мест накопилось немало: работа с null, арифметика с нечислами, вызов методов на пустоте.
Статические анализаторы (PHPStan, Psalm) на максимальных настройках подсветят проблемные места ещё до того, как прод упадёт.
А в этом конкретном кейсе — что именно сломалось?
Ваш вариант в опросе👇
#ИграКвиззИф
<?php
$data = json_decode($jsonString);
echo $data->user->name;
Этот код много лет работал на PHP 7.4. На PHP 8.1 — упал.
Сам код не трогали. Поменялась только версия языка.
PHP 8 стал строже относиться к тому, что раньше прощал
А в этом конкретном кейсе — что именно сломалось?
Ваш вариант в опросе
#ИграКвиззИф
Please open Telegram to view this post
VIEW IN TELEGRAM
🙉5❤🔥2👍2🤝1
🐘 На PHP 7.4 — работает
💥 На PHP 8.1 — fatal error
Что изменилось?
💥 На PHP 8.1 — fatal error
Что изменилось?
Anonymous Quiz
52%
изменилось поведение при обращении к свойству null
22%
json_decode теперь возвращает null чаще
13%
сломалась кодировка
13%
PHP решил стать строже
🔥5👍2🤩2🤯1👌1
Знаете это чувство, когда система будто задумывается перед каждым вашим действием?
Кнопка нажата — и пошла секунда, вторая, третья... Знакомо? Чаще всего проблема не в железе и не в сети. А в том, что происходит за кулисами каждого вашего клика.
В новой статье разобрали главного «тихого тормоза» любой платформы — проверку прав доступа. Почему система каждый раз перепроверяет, можно ли вам нажать эту кнопку? И главное — как сделать так, чтобы безопасность не убивала скорость.
👉 Читать полностью https://ifrigate.ru/blog/pochemu-prava-dostupa-tormozyat-vashu-sistemu-i-kak-eto-ispravit
#ОбъясняетИФ
Кнопка нажата — и пошла секунда, вторая, третья... Знакомо? Чаще всего проблема не в железе и не в сети. А в том, что происходит за кулисами каждого вашего клика.
В новой статье разобрали главного «тихого тормоза» любой платформы — проверку прав доступа. Почему система каждый раз перепроверяет, можно ли вам нажать эту кнопку? И главное — как сделать так, чтобы безопасность не убивала скорость.
#ОбъясняетИФ
Please open Telegram to view this post
VIEW IN TELEGRAM
IFRIGATE.RU
Почему права доступа тормозят вашу систему и как это исправить - Блог Интернет-Фрегат
Когда мы говорим о безопасности в платформенных решениях, первое, о чём вспоминают разработчики — проверка прав доступа. Это механизм, который определяет, может ли пользователь выполнить конкретное действие.
Зачем это нужно и от чего защищает:
Разграничение…
Зачем это нужно и от чего защищает:
Разграничение…
🔥8👍4🎉2
Территория требует документов: почему без ГИСЭДО уже не справиться
В государственном управлении и крупных территориально распределённых компаниях документы давно перестали быть просто текстом. Земельный участок, объект строительства, зона ответственности — всё это привязка к местности, без которой документ теряет половину смысла.
Здесь и возникает потребность в ГИСЭДО — системах, где электронный документооборот и геоинформатика работают как единое целое. Это не про «добавить карту в интерфейс». Это про то, чтобы каждый входящий документ автоматически ложился на карту, показывая не только содержание, но и контекст: где находится объект, кто за него отвечает, какие риски рядом.
Актуальность таких решений растёт потому, что территориальные данные перестали быть вспомогательными.
Решения о строительстве, экологическом мониторинге, транспортном планировании принимаются на основе того, что можно увидеть на карте. И если карта живёт отдельно, а документы отдельно — эффективность неизбежно падает.
Мы уже писали о возможностях картографических решений и упоминали анализ пространственных данных. ГИСЭДО — это как раз тот случай, когда этот анализ становится встроенным в повседневную работу. Документы привязываются к координатам, задачи назначаются исполнителям с учётом их геолокации, отчёты формируются не просто в цифрах, а с пониманием «где и в каком контексте».
В итоге система, где карта и документы существуют отдельно, уступает место новой логике: каждый документ знает своё место.
Больше интересных статей по теме ГИС: https://ifrigate.ru/blog-category/gis
#ОбъясняетИФ
В государственном управлении и крупных территориально распределённых компаниях документы давно перестали быть просто текстом. Земельный участок, объект строительства, зона ответственности — всё это привязка к местности, без которой документ теряет половину смысла.
Здесь и возникает потребность в ГИСЭДО — системах, где электронный документооборот и геоинформатика работают как единое целое. Это не про «добавить карту в интерфейс». Это про то, чтобы каждый входящий документ автоматически ложился на карту, показывая не только содержание, но и контекст: где находится объект, кто за него отвечает, какие риски рядом.
Актуальность таких решений растёт потому, что территориальные данные перестали быть вспомогательными.
Решения о строительстве, экологическом мониторинге, транспортном планировании принимаются на основе того, что можно увидеть на карте. И если карта живёт отдельно, а документы отдельно — эффективность неизбежно падает.
Мы уже писали о возможностях картографических решений и упоминали анализ пространственных данных. ГИСЭДО — это как раз тот случай, когда этот анализ становится встроенным в повседневную работу. Документы привязываются к координатам, задачи назначаются исполнителям с учётом их геолокации, отчёты формируются не просто в цифрах, а с пониманием «где и в каком контексте».
В итоге система, где карта и документы существуют отдельно, уступает место новой логике: каждый документ знает своё место.
Больше интересных статей по теме ГИС: https://ifrigate.ru/blog-category/gis
#ОбъясняетИФ
🔥5👍4🤝2
Гадание на кофейной гуще😬
Карты говорят: «Будет интересно».
Кофейная гуща: «Смотри в опрос».
Астрологи объявили неделю неожиданных TypeError😄
Что в консоли? Гадаем вместе👇
#ИграКвиззИф
from typing import List
def process(items: List[int]) -> int:
return sum(items)
# раскидываем карты
data = ["1", "2", "3"]
result = process(data)
Карты говорят: «Будет интересно».
Кофейная гуща: «Смотри в опрос».
Астрологи объявили неделю неожиданных TypeError
Что в консоли? Гадаем вместе
#ИграКвиззИф
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3💯3❤2
Что выведется?
Anonymous Quiz
12%
6
12%
123
59%
TypeError: unsupported operand type(s) for +
18%
ничего, упало раньше
😁6🔥3💘2
С появлением генеративных моделей процесс разработки изменился до неузнаваемости. Скорость выросла в разы. Но вместе с ней вырос объём кода, который требует более внимательного анализа. Потому что если не анализировать — байты превращаются в баги. И нейросеть может бесконечно гонять по кругу, предлагая дурацкие «улучшения», которые только уводят в сторону.
В новой статье разобрали:
🔵 к чему приводит массовый вайбкодинг;
🔵 реальный пример: API на PHP, который работал, пока не выяснилось, что он дырявый;
🔵 что происходит с кодовой базой, собранной из фрагментов без анализа;
🔵 как профессиональные команды используют ИИ.
Читать в блоге: http://ifrigate.ru/blog/vibecoding-kogda-kod-pishetsya-po-nastroeniyu
В новой статье разобрали:
Читать в блоге: http://ifrigate.ru/blog/vibecoding-kogda-kod-pishetsya-po-nastroeniyu
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥5🤝1
Карта как конструктор: какие технологии оживляют пространственные данные
В разработке геоинформационных систем используется целый спектр технологий, которые позволяют обрабатывать, анализировать и визуализировать пространственные данные. Среди них можно выделить системы управления базами данных (СУБД), языки программирования, такие как Python и JavaScript, а также специализированные ГИС-платформы.
• Один из рабочих инструментов — картографический сервер, который позволяет собирать приложения, используя различные форматы данных. Он поддерживает множество типов подложек, включая отечественные решения. Это даёт возможность не привязываться к одному поставщику, а комбинировать источники в зависимости от задач — например, взять детальную городскую карту у одних, спутниковые снимки у других и актуальные дорожные данные у третьих.
• Веб-технологии здесь уже не просто про «интерактивность», а про архитектуру распределённых систем, когда часть расчётов идёт на сервере, часть — на клиенте, а данные подтягиваются из разных мест в реальном времени.
В итоге современная ГИС — это не столько про карту, сколько про интеграцию. Базы данных встречаются с кодом, подложки разных поставщиков работают как единый механизм, а бизнес получает не красивую визуализацию, а рабочий инструмент для принятия решений.
Больше интересных статей по теме ГИС: https://ifrigate.ru/blog-category/gis
#ОбъясняетИФ
В разработке геоинформационных систем используется целый спектр технологий, которые позволяют обрабатывать, анализировать и визуализировать пространственные данные. Среди них можно выделить системы управления базами данных (СУБД), языки программирования, такие как Python и JavaScript, а также специализированные ГИС-платформы.
• Один из рабочих инструментов — картографический сервер, который позволяет собирать приложения, используя различные форматы данных. Он поддерживает множество типов подложек, включая отечественные решения. Это даёт возможность не привязываться к одному поставщику, а комбинировать источники в зависимости от задач — например, взять детальную городскую карту у одних, спутниковые снимки у других и актуальные дорожные данные у третьих.
• Веб-технологии здесь уже не просто про «интерактивность», а про архитектуру распределённых систем, когда часть расчётов идёт на сервере, часть — на клиенте, а данные подтягиваются из разных мест в реальном времени.
В итоге современная ГИС — это не столько про карту, сколько про интеграцию. Базы данных встречаются с кодом, подложки разных поставщиков работают как единый механизм, а бизнес получает не красивую визуализацию, а рабочий инструмент для принятия решений.
Больше интересных статей по теме ГИС: https://ifrigate.ru/blog-category/gis
#ОбъясняетИФ
🔥6❤2👍2
Forwarded from Интернет-Фрегат про IF>=XX^ и еще…
«Интернет-Фрегат» расширяет команду!
Мы усиливаем состав и приглашаем специалистов, которые хотят развиваться в IT и работать над реальными продуктами.
Сейчас мы особенно ждем:
— Опытный PHP-разработчик (Senior)
— PHP-разработчик (Middle / растущий Junior)
— Менеджер по продажам программных решений
Другие актуальные вакансии компании всегда доступны на нашем кадровом сайте.
Мы предлагаем:
• Работу над крупными проектами и собственными IT-продуктами.
• Сильное окружение и обмен опытом внутри команды.
• Офисный, гибридный или дистанционный формат работы (в зависимости от вакансии).
Оставляйте свое резюме на сайте, нашей почте resume@ifrigate.ru, пишите в Telegram @ifrigate или в MAX
#вакансияИФ #ИнтернетФрегат #вакансия #вакансии
Мы усиливаем состав и приглашаем специалистов, которые хотят развиваться в IT и работать над реальными продуктами.
Сейчас мы особенно ждем:
— Опытный PHP-разработчик (Senior)
— PHP-разработчик (Middle / растущий Junior)
— Менеджер по продажам программных решений
Другие актуальные вакансии компании всегда доступны на нашем кадровом сайте.
Мы предлагаем:
• Работу над крупными проектами и собственными IT-продуктами.
• Сильное окружение и обмен опытом внутри команды.
• Офисный, гибридный или дистанционный формат работы (в зависимости от вакансии).
Оставляйте свое резюме на сайте, нашей почте resume@ifrigate.ru, пишите в Telegram @ifrigate или в MAX
#вакансияИФ #ИнтернетФрегат #вакансия #вакансии
🔥8💯2❤1
Сегодня — интервью с Максимом, сотрудником Интернет-Фрегат, который пришёл к нам на практику и остался в команде.
💻 Производственная практика от колледжа стала для Максима настоящим погружением в реальные проекты: с вызовами, новыми знаниями и постоянным ростом. Поддержка команды и вовлечённость в процессы помогли быстро адаптироваться и почувствовать уверенность в своих силах.
Именно возможность расти, разбираться в задачах и быть частью команды стала причиной остаться в компании и продолжить свой профессиональный путь вместе с нами.
Мы уверены, что такой формат — это отличный старт в ИТ: возможность получить первый опыт, поработать в команде, проявить инициативу и заложить основу профессионального роста. Это путь для тех, кто готов включаться в работу, брать ответственность за результат и развиваться вместе с командой — таких студентов мы всегда рады видеть в Интернет-Фрегат.
#ИнтервьюИФ
Именно возможность расти, разбираться в задачах и быть частью команды стала причиной остаться в компании и продолжить свой профессиональный путь вместе с нами.
Мы уверены, что такой формат — это отличный старт в ИТ: возможность получить первый опыт, поработать в команде, проявить инициативу и заложить основу профессионального роста. Это путь для тех, кто готов включаться в работу, брать ответственность за результат и развиваться вместе с командой — таких студентов мы всегда рады видеть в Интернет-Фрегат.
#ИнтервьюИФ
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤3👏2
TypeScript: компилятор молчит, продакшн падает
TS компилируется
В рантайме
TypeScript проверку прошёл, код вроде корректный. Но в рантайме обнаруживается, что обещанного поля нет.
TypeScript работает только на этапе разработки. В рантайме это просто JavaScript, которому всё равно, что там было в интерфейсе. JSON.parse вернул объект без name, и TS это пропустил.
Валидация данных на входе (zod, io-ts) или гарды типов вручную. TS доверяет, но проверять всё равно надо.
А в этом кейсе — кто виноват? Голосуйте в опросе👇
#ИграКвиззИф
interface User {
id: number;
name: string;
}
const user: User = JSON.parse('{"id": 42}');TS компилируется
В рантайме
user.name undefinedTypeScript проверку прошёл, код вроде корректный. Но в рантайме обнаруживается, что обещанного поля нет.
TypeScript работает только на этапе разработки. В рантайме это просто JavaScript, которому всё равно, что там было в интерфейсе. JSON.parse вернул объект без name, и TS это пропустил.
А в этом кейсе — кто виноват? Голосуйте в опросе
#ИграКвиззИф
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6💘2💯1
Тестирование как инструмент устойчивости продукта
В разработке любого продукта есть момент, который часто остаётся за кадром: этап, когда кто-то задаёт вопросы, на которые не всегда есть готовые ответы.
🔷 «А что будет, если пользователь сделает наоборот?»
🔷 «А если данные придут с ошибкой?»
🔷 «А если этим начнут пользоваться не так, как мы планировали?»
Эти вопросы — не формальность, а часть повседневной работы тестировщиков.
Тестирование — это работа с неопределённостью. Не с тем, как система должна работать в идеале, а с тем, как она поведёт себя в реальной жизни — с её отклонениями, нестандартными сценариями и человеческим фактором.
По сути, качество продукта формируется на каждом этапе. Тестировщики помогают уточнять границы системы, выявлять слабые места и делать архитектуру более устойчивой ещё до того, как проблемы проявятся на практике.
Именно поэтому тестирование — это не просто проверка, а непрерывный процесс, который делает продукт надёжным, стабильным и готовым к реальной жизни.
#ОбъясняетИФ
В разработке любого продукта есть момент, который часто остаётся за кадром: этап, когда кто-то задаёт вопросы, на которые не всегда есть готовые ответы.
Эти вопросы — не формальность, а часть повседневной работы тестировщиков.
Тестирование — это работа с неопределённостью. Не с тем, как система должна работать в идеале, а с тем, как она поведёт себя в реальной жизни — с её отклонениями, нестандартными сценариями и человеческим фактором.
По сути, качество продукта формируется на каждом этапе. Тестировщики помогают уточнять границы системы, выявлять слабые места и делать архитектуру более устойчивой ещё до того, как проблемы проявятся на практике.
Именно поэтому тестирование — это не просто проверка, а непрерывный процесс, который делает продукт надёжным, стабильным и готовым к реальной жизни.
#ОбъясняетИФ
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤2👍2