Все мы читали про объектно-ориентированное программирование и проектирование абстрактных типов данных, но мало кто из нас использует их по назначению. И бизнес-логику проектировать и тестировать получается не у всех. Почему-то вместо красивого кода образуется переплетение вызовов, и загромождаются контроллеры.
Вместе мы научимся раскладывать весь этот код по местам. Потренируемся в объектно-ориентированной декомпозиции для грамотного проектирования сущностей по обязанностям. Научимся сочинять ко всему этому быстрые, удобные и надёжные юнит-тесты.
Как производить отделение UI от бизнес-логики, чтобы не было протечек слоёв в MVC. Научимся создавать агрегаты для сущностей предметной области для соблюдения инварианта. Какие проверки поместить в сущность, а какие — в сервисный слой. Как производить валидацию и использовать исключения.
—
Нашли ошибку в видео? Пишите нам на support@ontico.ru
Моя история карьеры программиста. Кратко, в рамках знакомства.
Учеба, образование и первая работа программистом.
— Ваше участие очень важно для развития моего канала. Самое мало, что вы можете сделать это поддержать канал любым доступным вам способом: лайк, комментарий, подписка. Меня это мотивирует на продолжение работы, а вам ничего не стоит.
Если вы хотите меня отблагодарить донатом и поддержать развитие канала: money.yandex.ru/to/4100184436534
В комментариях можно указать тему или идею для нового видео, которую вы бы хотели увидеть на канале. Естественно, мнение тех, кто меня поддерживает финансово я буду учитывать в первую очередь.
Я расскажу о том, как получить невероятно сложные и красивые фракталы, как замоделировать молнию, рост плесени и броуновское движение, а также расскажу, по каким правилам растут папоротники. Уверяю: это перевернёт ваше представление о природе!
Для построения множества Жюлиа понадобится небольшая формула над комплексными числами! Вместо того, чтобы сразу разбирать полную формулу, я предлагаю сначала занулить константу C.
Понятно, что если точки находятся внутри единичного круга, то они должны притянуться к центру. Точки, которые находятся вне единичной окружности будут отдалятся от нуля.
Точки, находящиеся на границе окружности, будут оставаться на границе.
Нас интересуют только такие точки плоскости, которые не уходят на бесконечность. Понятно, что для данной формулы множество таких точек – это круг радиуса 1.
А что теперь будет, если в формулу добавить очень маленькую константу C и постепенно увеличивать её по модулю. Если немного подождать, то мы увидим уже знакомое нам множество Мандельброта. При некоторых параметрах фрактал разделяется на небольшие островки, которые то образуются, то опять комбинируются в единое целое.
Увеличивая границу этого множества, мы будем видеть все больше и больше мелких деталей. Каждая отдельная часть содержит бесконечное множество вариаций исходного фрактала.
Одна компактная формула способна породить целую вселенную с бесконечно сложными циклонами, причудливыми иглами, острыми вилами, полувилами, супервилами, тайфунами, небоскребами, океанами, долинами морских коньков и долинами слонов.
Вместо второй степени можно выбрать любую: третью, четвёртую, пятую, восьмую и даже дробную.
Фракталы можно строить в трехмерном, четырёхмерном или даже в пятисотмерном пространстве.
Для более высоких размерностей используют уже не комплексные числа, а, например, кватернионы. Это не пары чисел, а группы по 4 числа.
Каждый трехмерный фрактал, полученный той или иной формулой, – это сечение четырёхмерного множества. Для алгебры октав или Клиффорда эта область математики на данный момент изучена мало.
Во многих областях физики можно встретить фракталы. Один из самых известных примеров – движение Броуновской частицы. Если подождать достаточно долго, то можно увидеть, что траектория движения броуновской частицы самоподобна.
На этом фрактальность не заканчивается. Представьте теперь, что частицы движутся и могут прилипать к статичной затравочной частице в центре. Сначала мы с некоторого радиуса с произвольной стороны выпускаем частицу. Если она оказалась рядом с затравочной, то она к ней прилипнет. После этого мы опять выпускаем частицу и ждем её прилипания.
Постепенно налипает все больше и больше частиц. Образуется структура, называемая кластером.
Частицы, двигаясь по фрактальным траекториям, прилипают друг к другу и образуют фрактальный кластер.
Можно ввести вероятность прилипания и сделать её тем выше, чем больше соседей вокруг.
Забавная структура, да ещё и очень похожа на то, что мы наблюдаем в реальном эксперименте при химической агрегации DLA кластеров.
Коронный разряд — очень красивое явление, которое тоже является фракталом! С помощью уравнения Лапласа можно смоделировать распространение молнии.
При изменении свойств среды, в которой распространяется молния, изменяется ветвистость структуры.
Возьмем три любые точки на плоскости. Теперь нужно выбрать произвольную точку и много раз делать простую процедуру. Выберем одну из трех зафиксированных нами точек и сместимся в её сторону на половину расстояния до неё.
Так мы будем делать снова и снова. Получившаяся фигура называется треугольником Серпинского: это один из самых популярных фракталов.
То есть мы случайно смещались в сторону одной из вершин треугольника и получили такой фантастический результат.
Это работает не только с треугольником.
Можно задать другое правило: en.wikipedia.org/wiki/Barnsley_fern
Если запрограммировать это правило, то получится папоротник Барнсли. Каждое из этих четырех правил отвечает за рост его отдельных частей.
Достаточно четырёх преобразований для хранения всех возможных комбинаций папоротников.
Поэтому фракталы уже давно применяют в компьютерной графике для генерации миров в играх. Они получаются очень интересными и разнообразными.
Вот такая интересная бывает математика.
Огромная благодарность всем моим спонсорам на patreon!
Помогаем в Telegram: @MikTrain (https://teleg.run/miktrain)
====ОПИСАНИЕ ВЕБИНАРА====
Несмотря на то, что Mikrotik – это сильный инструмент для защиты сети, сам Mikrotik требует настройки, чтобы так же не оказаться взломанным.
На вебинаре мы разберем:
— Почему не хватает firewall для защиты mikrotik
— Почему не хватает защиты в /ip services
— Как использовать службу neighbor
— Как использовать tool mac server
— Общие рекомендации по защите
— Почему у нас не взломали ни одного роутера
— Как и когда правильно обновлять
Знания полученные на вебинаре помогут надежно защитить Ваш Mikrotik от сетевых атак, которые нередко направлены именно на маршрутизаторы.
Консультации и помощь по MikroTik в нашем Telegram-канале: teleg.run/miktrain
Мы думаем, что знаем о водке все. Но на самом деле мы находимся в плену у множества мифов, которые мешают нам правильно выбирать и употреблять этот алкогольный напиток. Авторы фильма срывают покровы и раскрывают глаза.
___________________________________
Смотрите любимые фильмы и передачи: www.youtube.com/tvcenter twitter.com/tvcrussia www.facebook.com/tvcenter
Как мы думаем? Почему в словах нет понимания? Можно ли научиться понимать, что происходит на самом деле? Почему так важен новый опыт для нашего мозга и как заставить его думать по-новому?
Андрей Владимирович Курпатов — президент Высшей школы методологии и основатель интеллектуального кластера «Игры Разума», автор более сотни научных работ, двенадцати монографий и более трёх десятков популярных книг по психотерапии, философии и методологии, изданных совокупным тиражом больше 5 миллионов экземпляров, один из самых читаемых колумнистов «Сноба» snob.ru/profile/28843/blog