Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга

Чек-лист для проектирования API

За 5 лет, что я проектирую API, вывела для себя шесть базовых принципов, которых стараюсь придерживаться:

  1. Проектировать для потребителя

    • Ориентироваться на потребности клиентов API, а не на простоту реализации или устройство базы данных. Об этом, кстати, подробно написано в отличной книге Лоре Арно “Проектирование веб-API”.

    • Учитывать интересы всех клиентов. Не забывать, что могут появиться новые клиенты.

    • Сложную логику реализовывать на сервере. Искать баланс между универсальностью API и нагрузкой на клиента, исходя из реалий проекта.

  2. Проектировать понятные API-схемы

    • Наименования и структуры должны быть максимально прозрачными, ясными и лаконичными.

    • Избегать обобщающих наименований, типа “flag”. Описывать в названии, какой бизнес-смысл несет этот параметр или метод. Например, флаг с признаком пустой упаковки можно назвать “isEmpty”.

    • Человек при прочтении схемы должен без дополнительной документации понять, зачем нужен этот API и что он делает.

    • Отдавать адекватные текстовые коды ошибок, из которых будет однозначно понятно, что поправить в запросе для успешного его выполнения. Например, отдавать не 400 BAD_REQUEST, а 400 PRODUCT_NOT_FOUND.

  3. Принять конвенции и придерживаться их

    • Использовать везде либо snake_case, либо camelCase, либо kebab-case, не менять правила от метода к методу.

    • Стандартизировать формат ошибок - во всех методах отдавать их в одинаковой структуре.

    • Если это HTTP, то зафиксировать, в каких случаях какие коды ответов будут возвращаться. Например, иногда возвращается всегда 200, а потребители ориентируются только на тело ответа.

    • Договориться о формате версионирования API.

    • Стандартизировать типы данных: формат дат, UUID и пр.

  4. Думать о безопасности, производительности и надежности

    • Использовать аутентификацию, авторизацию и ACL. Разграничивать доступ на уровне конкретных методов и даже параметров.

    • Оценивать количество запросов и объем ответов.

    • Индексировать БД по тем полям, по которым собираются выборки данных для API.

    • Использовать асинхронное взаимодействие, если задача на сервере выполняется ощутимое количество времени.

    • Делать обратную совместимость везде, где это возможно.

  5. Документировать

    • Сначала писать документацию, а только потом разрабатывать. Такой подход минимизирует количество ошибок и проблем с API.

    • Помечать изменения тегами задач и, при необходимости, цветом.

    • Описывать логику работы методов/топиков/очередей. При необходимости добавлять диаграммы последовательности и маппинги данных.

  6. Мониторить и анализировать

    • Понимать, какие методы как часто вызываются и как быстро работают. Как быстро обрабатываются сообщения в очередях и топиках, какое их количество и размеры. Это важно для принятия решений о дальнейших доработках API.

    • Смотреть в консоли разработчика на проде, как быстро отрабатывают те или иные запросы и т.д.

    • По возможности настраивать системы мониторинга и алертинга. Это помогает прогнозировать рост нагрузки и отслеживать эффективность системы.

У каждого API‑проектировщика со временем появляется свой набор правил. Было бы интересно сравнить — добавляйте свои пункты в комментариях.

Другие мои материалы можно почитать в телеграм-канале breakfront.

Теги:
0
Комментарии0

ВЫШЛА КНИЖКА САЙМОНА ПРИНСА

Как обещал, сообщаю о выходе в издательстве "Бомбора" на русском языке (в моем переводе) монографии Саймона Принса, которую я неоднократно упоминал в своих публикациях. Оригинал называется "Understanding Deep Learning (2023)", перевод вышел под заглавием "Машинное обучение. От основ до продвинутых моделей (2025)".

Судя по тому, что на Литрес книга передана 19 мая 2025 года, из типографии вышла совсем недавно.

Вот ссылка на страничку издательства, на которой есть ссылки на все места, где ее можно купить.

В "электронных библиотеках" книжки пока не вижу, когда украдут увижу - сообщу дополнительно.

Буду признателен за любые отклики на книгу, в том числе за указания на ошибки перевода, просмотры, опечатки и все в этом роде.

Вот она
Вот она
Теги:
+4
Комментарии2

Приглашаем на бесплатный вебинар «Принципы построения архитектуры фронтенд-приложений».

Разберём, что собой представляет архитектура приложений, а также какие задачи она решает и какие ограничения накладывает на разработку. Также детально обсудим три ключевых принципа для фронтенда, включая методологии Solid и Grasp, которые помогут вам создать более эффективные и масштабируемые проекты.

📅 Дата: 05.06.2025

Время: 17:00-19:00 (Мск)

Содержание:

✔️ Архитектура

✔️ Solid

✔️ Grasp

👨‍🎓 Спикер: Щербаков Александр — эксперт в области фронтенд-разработки.

✍️ Записаться на вебинар

Теги:
0
Комментарии0

IMPulse - менеджмент инцидентов. Интеграция с Google Calendar, вложенные цепочки эскалации.

Предыдущие публикации:
https://habr.com/ru/articles/865208/
https://habr.com/ru/posts/889768/

Мы продолжаем развивать нашу систему менеджмента инцидентов. И рады представить интеграцию с Google Calendar, благодаря которой вы сможете гибко настраивать график дежурств и цепочки эскалации для этих дежурств.

Помимо интеграции с Google Calendar, мы реализовали вложенные цепочки эскалации. Теперь в chain можно добавить другой chain (nested), благодаря чему размер конфигурационного файла уменьшится.

Мы хотим создать достаточно гибкую, но не перегруженную систему цепочек эскалации, чтобы на проектах разной величины вы могли использовать IMPulse так как вам удобно. Для этого в комментариях расскажите, какой самый сложный кейс уведомлений / эскалации вам необходимо было реализовать. Например: во вторник нужно дёргать Антона, через 5 минут Олега, а по средам - только дёргать Геннадия, в остальное время, если severity == 'critical', звонить Грише.
Будем рады почитать самые сложные варианты и предложить наше универсальное решение для них.

Остаёмся на связи в нашем Telegram канале - там можно общаться / задавать вопросы.

Теги:
+2
Комментарии0

Устройство компилятора (кратко) на LLVM
Компилятор - инструмент конвертации исходного кода, написанного на высокоуровневом языке программирования в машинный код, который может исполнять компьютер.

Компилятор делится на 3 этапа:

  • FRONTEND - анализирует текст исходного кода и преобразует его в IR.

  • MIDDLE - анализирует и оптимизирует этот сгенерированный код IR.

  • BACKEND - преобразует IR в машинный код.

Сам компилятор, и собственно язык программирования состоит из нескольких частей.

Lexer - лексер

Лексер сканирует и превращает сырой текст в токены. То есть сам исходный код разбиваеты на набор токенов (такие как литералы, идентификаторы, ключевые слова, операторы, разделители)
Лексер читает исходный код символ за символом и идентифицирует последовательности символов, соответствующие определённым правилам языка.

Парсинг

Парсинг немного сложнее чем лексический анализ. Существует множество паресров и парсеров-генераторов.

Парсеры в компиляторах обычно принимают входные данные в форме токенов и строят определенное дерево - AST или дерево парсинга.

Обычно компиляторы строятся из множества маленьких компонентов, которые берут входные данные, меняют их или преобразуют их в различные выходные данные. Это одна из причин, по которым функциональные языки хорошо подходят для создания компиляторов. Другие причины — прекрасное сопоставление с эталоном и довольно обширные стандартные библиотеки. Прикольный факт: первая реализация компилятора Rust была на Ocaml.

Советую держать эти компоненты как можно более простыми и автономными — модульность сильно облегчит процесс. По-моему, то же можно сказать и о многих других аспектах разработки ПО.

AST

AST - абстрактное синтаксическое дерево. Это структурированное представление исходного кода программы в виде дерева, где каждый узел дерева представляет собой синтаксическую конструк языка программирования. Это дерево предоставляет абстракцию, которая позволяет анализировать и манипулировать программным кодом на высоком уровне.

IR

Эта часть занимается созданием [[1.2 IR]]. Через примитивы LLVM мы можем сгенерировать промежуточное представление. Каждому типу в AST дается метод, называемый codegen, который всегда возвращает объект значение LLVM, используемый для представления одного регистра присваивания (single assignment register), который является переменной для компилятора, которая может быть назначена только один раз. Интересно, что в этих примитивах IR то, что в отличии от ассемблера, они не зависят от какой-либо конкретной архитектуры машины, и это значительно упрощает работу для разработчиков языков, которым больше не нужно сопоставлять вывод в набор инструкций процессора. Теперь, когда фронтенд может генерировать IR, инструмент LLVM Optimizer используется для анализа и оптимизации сгенерированного кода. Он выполняет несколько проходов по IR и выполняет такие действия как устранение мертвого кода и скалярная замена агрегатов, и, наконец, это приводит нас к бекенду, где мы пишем модуль, который принимает IR в качестве входных данных, который выдает объектный код, который может работать на любой архитектуре.

Теги:
+3
Комментарии0

Alfa Analyze IT Meetup #4

19 июня наше SA-сообщество проведёт четвёртый Alfa Analyze IT Meetup — поговорим о том, как оценивать навыки по матрицам компетенций, принимать решения о повышении и адаптироваться к изменениям от ИИ.

Вы поймёте, как тимлиды ищут таланты внутри команд и выстраивают карьерные треки, а также получите готовые инструменты для оценки и развития аналитиков.

В программе:

  • процесс ассессмента для аналитиков в Альфа-Банке,

  • выстраивание и развитие матрицы компетенций системного аналитика Газпромбанк.Тех в эпоху цифровой трансформации,

  • развитие системных аналитиков в X5 Tech: от внутреннего поиска до повышения с опорой на матрицу компетенций,

  • архитектура DWH в Яндекс Go: технологии, подходы, матрица компетенций.

Присоединяйтесь онлайн и офлайн — зарегистрироваться можно по ссылке.

Где: Офис Альфа-Банка по адресу Москва, Андропова пр-т., 18 к.3, в трёх минутах пешком от метро «Технопарк».

Теги:
+3
Комментарии0

BI-система помогает аптечным сетям управлять продажами быстро и эффективно

Если вы хотите оперативно принимать решения, опираясь на точные данные, приглашаем вас на вебинар-демонстрацию решения по BI-аналитике специально для аптечных сетей.

  • Дата: 24 июня

  • Время: 12:00 мск

  • Бонус для участников: скидка 10% на проведение предпроектного обследования

С помощью BI-аналитики можно собирать и визуализировать ключевые показатели работы аптечной сети: от продаж до эффективности персонала. Вы получите полную картину в виде понятных графиков и диаграмм. А главное, сможете быстро скорректировать стратегию работы, особенно во время сезонных пиковых нагрузок.

Этим инструментом уже пользуются некоторые аптеки. В одном из недавних кейсов рассказывала, как крупная сеть, включающая более 250 точек, получила возможность анализировать остатки и продажи. Например, система показывает, как долго товары лежат без движения, а также предрассчитывает, на сколько хватит запасов. 

На вебинаре руководитель проектного отдела Анна Светличная расскажет:

  • какое решение поможет управлять аптечной сетью на основе данных,

  • почему бизнес-аналитика становится стандартом в аптечном ритейле,

  • как с помощью BI можно находить точки роста и управлять показателями в реальном времени.

Также проведем демонстрацию продукта на примере данных аптечных сетей и ответим на ваши вопросы.

Регистрируйтесь по ссылке

Теги:
0
Комментарии0

Открытый проект Cursor Free VIP позволяет получить бесплатный доступ к нейросети Сursor Pro для исследовательских целей. Решение я активирует бесконечный триал с откатом данных.

Теги:
0
Комментарии0

Новое средневековье.

Современная интернет-культура, получившая мощнейшую поддержку от LLM, воспроизводит схоластическую парадигму мышления: преобразования текста от считающихся авторитетными источников без опоры на реальный мир. Научная парадигма, опирающаяся на эксперимент, почти полностью забыта массами.

Известно, что когда Аристотель написал, что у мухи 8 ног, то почти полторы тысячи лет это утверждение воспроизводилось со ссылками на авторитет, и никому в голову не приходило пересчитать (ну он там вроде на самом деле писал про подёнок с 4 ногами и 4 крыльями, но кому какое дело). Сейчас эти времена вернулись, любой ребёнок спросит: “Алиса, сколько ног у мухи?” вместо натурного эксперимента.

Мёртвое знание, не полученное в результате эмпирического опыта, транслирует себя через механические машины и их живые придатки, повинующиеся прочитанным на экране указаниям. Ирония в том, что указаниями они являются только в представлении живого исполнителя, а по своей природе это просто цепочки символов с определёнными статистическими характеристиками случайного распределения.

Пруфов не будет.

Теги:
+17
Комментарии6

Несмотря на кадровый голод в IT занято огромное количество лишних людей деятельность которых в общем-то бесполезна. А все что бесполезно как известно приносит только вред. Возьмем к примеру новомодную отрасль UI/UX которая по задумке должна улучшать пользовательский опыт - так называемый "экспириенс". На планете существует целый зоопарк разных форматов дат: 1 ноября 2000, 01.11.2000 и т.д и т.п. Это мелочь, но и в мелочах можно тот самый "экспириенс" взять да и улучшить. И он был повсеместно "улучшен" до формата "3 года назад". Как правило без какой либо возможности вернуть нормальную дату.

Теперь просто хочется простереть руки к небу и крикнуть за что это мне?

Самое печальное в этой ситуации, что исправить ничего нельзя. Этот самый "экспириенс" внедряется крупными корпорациями у которых достаточно ресурса чтобы содержать огромное количество людей не занятых ни какой полезной деятельностью и было бы лучше если бы они вообще ничего не делали. Как в нейросетях лишние веса приносят только вред, так и в индустрии, лишние отрасли приносят пользователям только вред.

Теги:
+5
Комментарии10

Опыт использования Claude для написания готового приложения

Ну вот и я сподобился - написал приложение полностью на Claude.

Приложение на SwiftUI, не enterprise, но достаточно сложное, из категории Favorite.

Начал на Claude Sonnet 3.7, потом вышел 4, закончил на нем.

Всего 1156 строк кода и без ошибок!

Естественно было несколько итераций. Причём практически все - это уточнение промта.

Кода он наворотил много, по мне так можно было и проще. Но он уж развернулся по полной - структуры, классы, вью, перечисления, состояния, published, state и т.д. и т.п.

Как оно там внутри вертится крутится даже не смотрел. Главное - работает и этого достаточно.

В общем, впечатлён. Не ожидал. Предполагал, что будут ошибки, заторы, что придётся с ними разбираться. Ан нет, все зашло без глюков, с первого раза.

Теги:
-3
Комментарии15

PlantUML | Шаблон для описания таблиц БД

Делюсь с Вами разработанным мною шаблоном, для описания таблицы БД в PlantUML, c элементами автоматизации, описание которых указанно в комментариях.

Всем привет!
Делюсь с Вами разработанным мною шаблоном, для описания таблицы БД в PlantUML, c элементами автоматизации, описание которых указанно в комментариях.

Протестировать можете тут, а сам код шаблона указан ниже:

 ' Шаблон описания таблицы БД (в PlantUML)
@startuml

skinparam {
' Параметры для управления нижним колонтитулом
    FooterFontColor #blue
    FooterFontSize 12
' Параметры для управления легендой
    LegendBackgroundColor #lightblue
    LegendBorderThickness 0
}

' Переменные для ускорения описания таблицы
' - PRIMARY KEY можно указывать как: "$PK"
    !$PK="  <size:11><#DarkKhaki:key:></size> (PK)  "
' - FOREIGN KEY можно указывать как: "$FK"
    !$FK="  <size:11><#DeepPink:key:></size> (FK)  "
' - NOT NULL (N-N) можно указывать как: "$NN"
    !$NN="  <#LightGreen> **N-N**  "
' - NULL можно указывать как: "$N"
    !$N = "  <#LightCoral> **NULL**  "


' Переменные для ускорения добавления информации о таблице
' - Наименование таблицы БД (латинское)  
    !$table_name="Наимнование_таблицы_БД"
' - Краткое описание таблицы (на русском) 
    !$description="Краткое описание таблицы (на русском)"
' - Ссылка на описание таблицы (на русском)
    !$doc_url="Ссылка"

' Контакты, отображаемые в нижнем колонтитуле
    !$autor ="Зимин Антон"
    !$email ="antzim_in@ya.ru"
    !$telegram="antzim_in"

' Заголовок документа, формируется автоматически из заполненных выше параметров (при необходимости можно удалить)
    title $table_name | $description

' Легенда (может быть заполнена любыми необходимыми данными)
' - "right" говорит о том, что легенда будет расположена справа 
legend right
**Легенда:**
| Версия документа: | 1.0.0 |
end legend



' Описание таблицы
' - заголовок таблицы, с кликабельной ссылкой (если выгружать в SVG) формируется автоматически
class "[[$doc_url $table_name]] ($description)" as $table_name << (T,#FF5722) >>{

|=   PK,FK  |=   Поле   |=   Тип   |=   Обязательность   |=   Значение\n по умолчанию   |=   Описание   |
| $PK | id | serial | $NN | | Идентификатор записи в таблице |
| $FK | subscriber_id | integer | $NN | | Идентификатор записи в таблице subscriber |
|     | electronic_address | varchar(255) | $N | | Электронный адрес \n клиента |
|     | created_at | timestampz | $NN | now() | Дата и время создания записи в БД |
|     | updated_at | timestampz | $NN | now() | Дата и время обновления записи в БД |
}

' Нижний колонтитул (формируется автоматически из введенных параметров)
footer © $autor | tg: [[https://t.me/$telegram @$telegram]] | email: $email
@enduml

Буду рад Вашим комментариям, отзывам, а если еще и поднимите карму то буду крайне благодарен.

Всем спасибо.
----

Пообщаться со мной можно в telegram: @antzim_in
P.S. Также, если Вам интересно, я веду telegram канал @sa_chulan и буду очень рад Вашей подписке.

Теги:
+2
Комментарии2

Команда исследователей из Palisade Research опубликовала отчёт о возможностях современных ИИ в области наступательной кибербезопасности. Впервые системы искусственного интеллекта были допущены к полноценному участию в хакерских соревнованиях Capture The Flag — и не просто справились, а вошли в число лучших.

В соревновании «AI vs Humans» автономные агенты на базе ИИ попали в топ-5% лучших участников, а на масштабном конкурсе Cyber Apocalypse показали результат в топ-10%, конкурируя с десятками тысяч профессиональных игроков.

Главная идея исследования — протестировать, насколько эффективно можно использовать метод «elicitation» (максимальное раскрытие потенциала ИИ) за счёт краудсорсинга, то есть через открытые соревнования. Вместо того чтобы полагаться на закрытые тесты в лабораториях, Palisade позволила внешним командам и энтузиастам самостоятельно настраивать и запускать ИИ в условиях настоящих CTF‑турниров.

Результаты оказались неожиданными. Некоторые ИИ-агенты смогли решить 19 из 20 задач, не уступая топовым человеческим командам по скорости. Особенно хорошо ИИ справлялись с задачами по криптографии и реверс‑инжинирингу. На турнире Cyber Apocalypse, где участвовало более 8000 команд, ИИ смогли решать те задачи, которые занимают у опытного игрока около часа. Это соответствует оценкам других исследователей: современные языковые модели уже уверенно справляются с техническими задачами продолжительностью до 60 минут.

Теги:
+4
Комментарии3

Ближайшие события

От визитных книг до Facebook: кто и как продавал ваши данные последние 100 лет

Юрист по информационной безопасности ГК InfoWatch Илья Башкиров написал статью об истории оборота и регулирования персональных данных.

Из статьи вы узнаете, как торговали персональными данными до цифровой эры, как нацисты использовали их для геноцида, и как визитные книги и телефония заложили основу для таргетирования рекламы.

Теги:
0
Комментарии0

Представлен дашборд для поиска в интернете данных по запросам ИБ CyberOSINT от геолокации до поисковых запросов в браузере пользователей, компаний по следам в интернете. Решенеи на базе конструктора Google Dork парсит информацию в открытых каналах.

Теги:
0
Комментарии0

Заметки на полях: промысловый выпас YouTube.

В борьбе с youtube, когда он уже у вас показывает, но всё ещё не хочет формировать подходящие подборки, весьма критично следующее:

1) Не открывать какое-либо спорное или неуместное, по вашему мнению, содержимое, под своей основной учетной записью, в вашем основном браузере, а если прислали ссылку, мол глянь, это должен быть, или "приватный режим", в любимом, или вообще отдельный браузер (без учетной записи, или с другой учеткой youtube).

2) Увидев ненужное - не стесняться применять самый полезный совет, какой только можно, для этой ситуации, придумать: нажимать "не рекомендовать видео с этого канала", или "неинтересно", ну и чистить историю просмотров (у youtube есть своя, если войти, под своими учетными данными), по возможности, от случайно попавших туда неуместных, по вашему мнению, видео.

3) Понравившиеся видео выгодно собирать в плейлисты. Даже, если эти списки никто никогда не посмотрит, их проанализирует рекомендательный движок youtube.

Работает, к сожалению, не с первого дня. Требует некоторых усилий, на протяжении приличного времени. Точных данных, на 2025 год, у меня нет, но есть подозрения, что это не полгода, как в 2018-2019, а два-три месяца.

В мобильных приложениях не пробовал.

(хабы указал практически наугад. тяжело выбрать нужное.)

Теги:
+1
Комментарии2

ИБ-ДАЙДЖЕСТ INFOWATCH

Массовая утечка данных школьников в Японии

Злоумышленники украли конфиденциальные данные школьников у издателей выпускных альбомов — они могут быть использованы для мошеннических схем и создания дипфейков.

Новые приоритеты кибербезопасности АСУ ТП

В условиях растущей геополитической напряженности и все более изощренных угроз приоритеты кибербезопасности АСУ ТП должны быть нацелены на проактивное управление рисками.

Утечка через вирус-вымогатель у энергетиков

Канадская компания Nova Scotia Power подтвердила утечку данных потребителей — уведомления об инциденте получили примерно 280 тыс. человек.

В Сеть слили данные 184 мл пользователей

Исследователь безопасности обнаружил в открытом доступе базу с данными пользователей многих интернет-платформ, в том числе сайтов Google, Microsoft, Apple, Facebook, Instagram и Snapchat.

Adidas сообщил об утечке ПДн

Инцидент ИБ произошел на стороне поставщика услуг по обслуживанию клиентов, и это уже не первая утечка в компании в этом месяце.

Хакеры взломали Coca-Cola

Группировка Everest заявила о похищении внутренней информации компании, а злоумышленники из Gehenna сообщили о взломе базы данных Salesforce британского подразделения по производству тары в Западной Европе и Азиатско-Тихоокеанском регионе.

Теги:
0
Комментарии0

Использование MVC-фабрики в плагинах Joomla 5

Обычно, концепция Model‑View‑Controller используется в компонентах Joomla, но я хочу поделиться опытом её применения в плагинах.

Для чего это надо? — Сделать код более простым и понятным.

Задача плагина Joomla — подписываться на события и выполнять определенные действия. Но не стоит размещать весь код в классе плагина, лучше разделить его на несколько классов. Особенно, если для ваших задач Joomla предлагает готовые родительские классы.

Почему я предлагаю использовать MVC-фабрику? - Она не только создаёт экземплр класса, но и устанавливает основные зависимости из DI контейнера.

Например, плагин должен ответить на AJAX-запрос и вернуть массив данных. Для этого надо написать свой класс модели, наследующий Joomla\CMS\MVC\Model\ListModel.

Как это сделать? - Примерно так же как и в компонентах.

Классу плагина подключаем трейт Joomla\CMS\MVC\Factory\MVCFactoryAwareTrait.

В файле provider.php плагина регистрируем сервис-провайдер MVC-фабрики и передаём ему пространство имён плагина.

$container->registerServiceProvider(new MVCFactory('Joomla\\Plugin\\RadicalMart\\WishboxCdek'));

Устанавливаем плагину экземпляр фабрики, полученный из контенера.

$plugin->setMVCFactory($container->get(MVCFactoryInterface::class));

В src папке плагина, создаём папку Administrator, в ней папку Model и в ней файл с классом модели. То есть классы моделей будут расположены по пути Root\plugins\radicalmart\wishboxcdek\src\Administrator\Model.

Обратите внимание на папку Administrator, метод создания моделей обязательно требует либо Site либо Administrator в namespace.

namespace Joomla\Plugin\RadicalMart\WishboxCdek\Administrator\Model;

Ещё в класс модели надо установить свойство option:

protected $option = 'com_radicalmart';

Теперь мы можем получать экземпляр модели плагина Orders , следующим образом:

/** @var OrdersModel $ordersModel */
$ordersModel = $app->bootPlugin('wishboxcdek', 'radicalmart')
	->getMVCFactory()
	->createModel('Orders', 'Administrator');

В своём плагине я наследовал класс модели от BaseDatabaseModel, для работы с другими классами может потребоваться переопределение каких-либо свойств и методов.

Теги:
+1
Комментарии0

Эксперт InfoWatch о безопасности детей в сети

Накануне Международного дня защиты детей эксперт по информационной безопасности ГК InfoWatch, доцент НИУ ВШЭ Денис Денисов выступил на пресс-конференции «Цифровая безопасность детей: новые тренды, меры противодействия и психологические аспекты».

Он рассказал про актуальные киберугрозы, направленные на детей, сценарии поведения злоумышленников и меры противодействия им. Родителям важно погрузиться в эту тематику, поскольку «цифровой разрыв» между поколениями стремительно растет. Злоумышленники активнее используют нейросети и дипфейки в своей работе, а охват их активности постоянно увеличивается.

Подробнее об этом читайте в материале ICT Online.

Теги:
+1
Комментарии0

Хакеры обожают нас 👨‍💻

Ура! Мы получили «Приз хакерских симпатий» на международном форуме Positive Hack Days. Это высокая оценка со стороны киберсообщества.

Платформа Standoff Bug Bounty подвела итоги за три года работы. Это почти 25 тысяч исследователей кибербезопасности из 60 стран мира.

Почему нас любят?

✅ Быстро реагируем на отчеты багхантеров
✅ Сразу выплачиваем вознаграждения
✅ Общаемся открыто и friendly

И скромно напоминаем, что внешние исследователи могут заработать с нами до 500 000 ₽.

Проверить нашу защиту на уязвимости →

Теги:
+11
Комментарии0