Одной из горячих тем в кибербезопасности в последнее время стали SOCи (Security Operations Center), которые не очень удачно переводят на русский язык как «центры мониторинга безопасности», умаляя тем самым одну из важных функций SOC, связанную с реагированием на инциденты ИБ. Но сегодня мне не хотелось бы вдаваться в терминологические споры, а вкратце рассказать об одном из проектов, который был реализован в нашем внутреннем SOCе — системе управления индикаторами компрометации (IoC) GOSINT. На самом деле служба ИБ Cisco не использует термин «Security Operations Center», заменяя его более приземленным CSIRT (Cisco Security Incident Response Team). Так вот GOSINT — это один из многочисленных наших проектов open source, который предназначен для сбора и унификации структурированной и неструктурированной информации об угрозах (threat intelligence). Я уже рассказывал о том, как мы мониторим безопасность нашей внутренней инфраструктуры, теперь пришел черед рассказать о том, что помогает нам это делать наиболее эффективно.
Рубрика «ioc» - 2
Иерархическое внедрение зависимостей в React и MobX State Tree в качестве доменной модели
2018-12-12 в 7:15, admin, рубрики: angular, DDD, dependency injection, di, inversion of control, ioc, javascript, mobx, mobx-state-tree, React, react-ioc, ReactJS, TypeScript, Проектирование и рефакторинг
Довелось мне как-то после нескольких проектов на React поработать над приложением под Angular 2. Прямо скажем, не впечатлило. Но один момент запомнился — управление логикой и состоянием приложения с помощью Dependency Injection. И я задался вопросом, удобно ли управлять состоянием в React используя DDD, многослойную архитектуру, и внедрение зависимостей?
Если интересно, как это сделать, а главное, зачем — добро пожаловать под кат!
Реализация Spring Framework API с нуля. Пошаговое руководство для начинающих. Часть 1
2018-08-30 в 12:44, admin, рубрики: annotations, container, di, ioc, java, java core, reflection, Spring Core, Программирование
Spring Framework является одним из самых сложных фремворков для понимания и изучения. Большинство разработчиков изучают его медленно, через практические задачи и гугл. Этот подход не эффективен, так как не даёт полной картины и при этом требует больших затрат.
Я хотел бы предложить вам принципиально новый подход к изучению Спринга. Он заключается в том, что человек проходит через серию специально подготовленных туториалов и самостоятельно реализует функционал спринга. Особенность этого подхода в том, что он, помимо 100%-го понимания изучаемых аспектов Spring даёт ещё большой прирост в Java Core (Annotations, Reflection, Files, Generics).
Статья подарит вам незабываемые ощущения и позволит почувствовать себя разработчиком Pivotal. Шаг за шагом, вы сделаете ваши классы бинами и организуете их жизненный цикл (такой же, как и в реальном спринге). Классы, которые вы будете реализовывать — BeanFactory, Component, Service, BeanPostProcessor, BeanNameAware, BeanFactoryAware, InitializingBean, PostConstruct, PreDestroy, DisposableBean, ApplicationContext, ApplicationListener, ContextClosedEvent.
Читать полностью »
Инверсия управления в iOS
2018-04-24 в 10:36, admin, рубрики: dependency injection, ioc, iOS, iOS разработка, swift, Блог компании REDMADROBOT, разработка под iOS
Евгений Ёлчев rsi, iOS-тимлид KODE
В последнее время я все чаще слышу о DI. Им интересуются мои студенты в Geek University, его упоминают в чатах. Хотя паттерн далеко не молод, многие не совсем верно его понимают.
Часто под DI подразумевают фреймворк, например, typhoon или swinject. В статье подробно разберем принципы реализации DI, а также принцип IoC. Если интересно, прошу под кат.
Внедрение зависимостей в .Net Марка Симана 2 — Внедрение конструктора, время жизни
2017-12-11 в 8:19, admin, рубрики: .net, asp.net mvc, dependency injection, ioc, ioc/di, mvc, внедрение зависимостей, ооп, паттерны, паттерны проектирования, Программирование, Проектирование и рефакторинг, Профессиональная литератураЗависимости между слоями приложения | Внедрение конструктора, время жизни
Продолжаем борьбу за слабую связанность. В предыдущей заметке мы рассмотрели зависимости между слоями приложения, прейдем к меньшим формам.
Агрегация, внедрение конструктора
Объекты/классы системы, как и слои, взаимодействуют друг с другом. Между классами тоже есть зависимости.
Например, в листинге 1 MyService использует MyDataContext (EF) – имеет зависимость MyDataContext.
class MyService
{
public void DoSomething()
{
using(var dbCtx = new MyDataContext())
{
// используем dbCtx
}
}
}
Листинг 1. Сильная зависимость MyService от MyDataContext
IoC контейнер на javascript в 90 строк
2017-12-07 в 15:04, admin, рубрики: dependency injection, ioc, ioc контейнеры, javascriptНа прошлой неделе, я получил удовольствие, рассказывая ученикам пятого класса о том, что такое программирование и алгоритмы. За 45 минут сложно рассказать много о такой широкой теме, моей целью было заинтересовать в игровой форме. Тема урока была выбрана «Программирование: как создаются игры».
Вашему вниманию представляется игра, реализованная для этого урока с использованием инверсии зависимости и IoC-контейнера:

Игра DiggerZ, исходный код.
Сразу предупреждаю, про контейнеры я детям не рассказывал.
Читать полностью »
Используем IoC-контейнер Laravel на полную мощность
2017-07-01 в 11:52, admin, рубрики: dependency injection, ioc, laravel, phpLaravel имеет мощный IoC-контейнер, но, к сожалению, официальная документация Laravel не описывает все его возможности. Я решил изучить его и задокументировать для собственного использования.
Примеры в данной статье основаны на Laravel 5.4.26, другие версии могут отличаться.
Введение в Dependency Injection
Я не буду объяснять, что такое DI и IoC в этой статье — если вы не знакомы с этими принципами, вы можете прочитать статью "What is Dependency Injection?" от Fabien Potencier (создателя фреймворка Symfony).Читать полностью »
История оптимизации одного IoC контейнера
2017-06-25 в 9:59, admin, рубрики: .net, BenchmarkDotNet, C#, dependency injection, ioc, ПрограммированиеВ этой заметке мне хотелось бы поделиться информацией о небольшом, но, на мой взгляд, весьма и весьма полезном проекте, в котором Stefán Jökull Sigurðarson добавляет все известные ему IoC контейнеры, которые мигрировали на .NET Core, и с использованием BenchmarkDotNet проводит замеры instance resolving performance. Не упустил возможности поучавствовать в этом соревновании и я со своим маленьким проектом FsContainer.

Несколько аргументов против Dependency Injection и Inversion of Control
2017-04-01 в 8:09, admin, рубрики: dependency injection, di, inversion of control, ioc, Анализ и проектирование систем, Программирование, теория заговора, техподдержка, управление проектамиПомнится, во времена .NET 1.1 и 2.0 можно было часто увидеть пророчества майкрософтовских евангелистов, мол, скоро любая домохозяйка сможет создавать сайты и писать программы. Большинство программистов посмеялось, но, как выяснилось, кто-то отнёсся к этому серьёзно. Во всяком случае, это объясняет, почему шаблоны проектирования IoC/DI получили второе дыхание в 2000-х, причём даже внутри самой MS (желаю Вам никогда в жизни не столкнуться с SCSF).

С точки зрения теории разработки ПО лично мне гораздо чаще приходилось читать или слышать хвалебные статьи и отзывы об IoC/DI, но, как всегда, критика тоже есть. Можно ознакомиться, например, здесь (англ.), здесь (англ.), тут (хабр), ещё (англ.). В частности в вину ставится нарушение принципа инкапсуляции в ООП.
Читать полностью »
Архитектура Enterprise на Yii2. Абстракция, инверсия зависимости, инкапсуляция бизнес-логики и управление изменчивостью
2017-03-12 в 17:55, admin, рубрики: DiC, enterprise, ioc, php, yii, yii2, бекенд, ооп, Программирование, фреймворки
Большинство сайтов в вебе работают исключительно с простой информацией: страница, статья, категория статей. При генерации HTML, на стороне сервера происходят некоторые простые процессы: подключение к базе, получение статьи по ID, привязка к статье комментариев и т.д.
Однако, с развитием Интернета и бизнеса в нем, на сайте нередко начинают происходить сложные бизнес-процессы, для которых никакие CMS не предназначаны.
Пример бизнес-процессов:
- Применить промокод
- Отменить заказ
- Рассчитать размер вознаграждения продавцу
Разработчики сайтов, как правило, не видят никаких таких процессов более высокого уровня и продолжают работать на низком уровне как знают: с таблицами БД и прочими примитивами. Все это размазано тонким слоем по всей системе: в контроллере, в модели, в футере сайта. Рано или поздно, система становится такой большой, что уже не помещается в разум одного разработчика-создателя и проект начинает рассыпаться.Читать полностью »

