Пособие "Архитектура информационных систем"
Написал тут на досуге учебное пособие по своему предмету "Архитектура информационных систем". На редактуре попросили урезать ее на одну главу.
Выкладываю тут необрезанную версию, вдруг кому полезно будет)
https://disk.yandex.ru/i/DH2jjS-etdmG8g
P.S. Полезным в основном может быть список литературы в конце.
P.P.S. Пикабу предлагает разместить в лиге тупых... Наверно потому, что надо было 64 страницы 14 шрифтом писать, а я сделал 12-ым. Ну штош, пусть так
Почему ООП, SOLID, DRY, Clean Code и т.п... Плохие?
Да, заголовок - тотальный кликбейт, но сформулировать его именно так меня заставили обстоятельства.
ВНИМАНИЕ!!! Почитав комментарии я увидел, что путают тёплое с мягким. Вопрос - есть ли математическое или иное другое ОБЪЕКТИВНОЕ сравнение технологий. Грубо говоря код без использования SOLID и код с использованием SOLID отличаются ['параметр':'значение']. Интересует именно ОБЪЕКТИВНОЕ сравнение т.е. то, что можно как-то посчитать или хотя бы булево обработать.
Некоторое время назад мы с одним из коллег обсуждали архитектуры ПО и в процессе обсуждения появился простой, но крайне принципиальный вопрос. Поскольку вопрос был простым мы думали, что найдём ответ за пару минут, но мы с огромным удивлением за несколько дней не смогли найти ответ.
Поскольку вопрос очень даже холиварный, попрошу в комментариях срач не разводить, а высказываться по теме.
Итак, небольшая преамбула.
Все знают, что есть математические оценки сложности алгоритмов (обычно их записывают как O(N)), есть оценки потребляемых ими ресурсов (память, процессор). То есть сравнить два алгоритма можно полностью объективно - грубо сделав таблицу сложность, память, процессор и выбрать то, что нужно.
Но вот насчёт ООП, SOLID, DRY, Clean Code, архитектуры микросервисов и далее по списку объективных оценок найти не удалось.
Из личного 16 летнего опыта разработки могу сказать, что практика выработала ко всем указанным выше элементам отношение крайне неоднозначное. Пара примеров:
Есть программа написанная в классическом процедурном стиле. По ряду причин программа устарела и было принято решение сделать версию 2.0 но уже в ООП. Разница в коде была огромная... И самая главная в том, что ООП версия была больше по объёму, сложнее, работала медленней, с кодом можно работать только из грамотно настроенной IDE. Из плюсов... Если бы это был С++, то плюсы были бы только в нём.
С одной стороны безусловно, что ООП, SOLID, Clean Code делают код визуально красивым, понятным и т.п. Но с другой стороны работать с этим кодом становится гораздо тяжелее. Есть таск, ты за 2 минуты в голове накидал код как это сделать... И 2 дня ищешь куда эти 5-10 строк кода воткнуть, чтобы ничего другого не сломалось. Потому что DRY и кто-то где-то что-то переиспользует. И это что-то где-то можно найти только инструментами IDE.
Второй пример - Clean Arhitecture (о звере можно почитать на Хабре), но принципиально от MVC, MVVM не отличается. Есть приложение которое реализует простой и понятный CRUD-интерфейс к некоторой, но довольно большой (несколько сот таблиц) базе данных. У меня в кейсах подобный проект был, там Flask роутинг и 4 функции всё-в-одном для реализации соответственно добавления, чтения, обновления и удаления записи. При проблеме смотришь в роутинг, идёшь в функцию и правишь. Применение CA сделало из этого простого и понятного интерфейса монстра в котором днями блуждаешь в поисках проблемного места.
Так вот собственно вопрос для обсуждения - есть ли объективные оценки эффективности ООП, SOLID, Clean Code, Clean Arhitecture, DRY, микросервисов и т.п. Или это обычный гуманитарный популизм/тренды и вообще не более чем удовлетворение ЧСВ?
Вопрос имеет так же и второй подтекст - в профильной литературе и постах на эти темы всегда говориться о том, что данные инструменты упрощают разработку, снижают время внесения изменений, уменьшают количество ошибок и вообще няшки. В реальной практике почему-то оказывается, что да, непосредственно внесение изменения занимает очень мало времени, но вот поиск места куда можно безопасно внести это это изменение и ничего не сломать может занимать больше времени, чем переписать функционал с нуля в отдельную самодостаточную функцию.
P.S. Давным давно в далекой галактике видел один узко специализированный продукт в котором почти всё было сделано как анти-паттерны к ООП, SOLID, Clean Code, Clean Arhitecture. И работа с ним была в моей практике наиболее быстрой и комфортной работой с кодом.
Новая цифровая экономика и удар по бигтеху
Денис Басковский, Александр Турский и Андрей Хубутия рассуждают на тему интеграции постплатформ, протокола SOLID и его серверов в существующую систему данных, проблемы, решения, реакция игроков рынка, возможные выгоды, позитивные последствия и многое другое.
Постплатформы – это система хранения информации о человеке и для человека, которая находится на SOLID серверах. Смысл существования постплатформ заключается в построении информационной среды, которая была бы одновременно справедливой, безопасной, инновационной, оптимизированной под запросы современного мира, но притом исключающей монополии, ненужные финансовые надстройки и злоупотребление положением в информационном мире.
SOLID сервера берут на себя функции хранения и раздачи высокоструктурированного машино-читаемого контента, понятного для уже существующих платформ, дающего возможность моментального поиска по миллиардам записей в короткий промежуток времени. Подробнее о плюсах постплатформ и технологии SOLID:
Сейчас – в 2022 году – ни один пользователь интернета не управляет своей информацией в полной мере, не контролирует её сбор, использование, хранение и передачу. Взаимодействие крупных игроков на рынке информации также оставляет желать лучшего. Многомиллионный бизнес крупных платформ расценивает пользователей скорее как источник доходов, нежели как полноправных участников рынка, которым необходимо предложить наилучшие конкурентные условия.
Александр Турский раскрывает неоспоримые преимущества новой цифровой эпохи, своеобразного WEB 3.0, появление которого по социальной и экономической значимости может быть сопоставимо даже с появлением интернета как такового.
Автор: https://baskovsky.ru
Официальный сайт Пост-Платформ: https://postplatforms.org
Наше комьюнити в Телеграмм: https://t.me/turbostate
Ищу музыку из видео
Товарищи!!! Я обезсилил 2 сутки не могу найти название ентого трэка. На видео с момента 16:45 до момента 17:07 играет трэк, кто-то пишет что это из сталкера (База свобода) кто-то упоминает старый фильм кин дза дза, кто-то пишет про игру kerbal spaces program. Но всё это чушь, эта музыка играла и раньше, только вот я никак не могу вспомнить её, подскажите пожалуйста кто знает этот трек

