S0ER – Telegram
10.6K subscribers
333 photos
18 videos
15 files
707 links
Архитектура | Программирование | Профессиональное развитие

Соер.Клуб - https://news.1rj.ru/str/soer_live

По всем вопросам писать на @soerdev
Download Telegram
Есть довольно хороший критерий для оценки степени "монолитности" модульной архитектуры (или "модульный монолит"). Он состоит в том, что в монолитной архитектуре выход из строя одного из модулей приводит к отказу всего приложения. В распределенной же архитектуре отказ происходит только в одной точке. Это относится и к этапу сборки / развертывания приложения или системы. Если развертывание системы не может быть выполнено по частям, или должно прекратиться в случае ошибки развертывания одного из модулей, то это признак монолита.
👍41🔥3
Почему так важно определить является архитектура монолитной или распределенной? Все просто - монолитные архитектуры хорошо растут "вертикально" и плохо "горизонтально", распределенные же архитектуры хорошо растут и "вертикально" и "горизонтально".
Осуществить вертикальный рост всегда проще чем горизонтальный.
👍30
Интересный факт - считается, что хороший программист - это прагматик, который решает только текущие проблемы, одновременно с этим хороший программист должен уметь выбирать оптимальные решения, оптимальность которых можно проверить только "в будущем". Т.е. при выборе решения "хороший программист" таки должен уметь заглядывать на пару шагов в "будущее".
Я считаю, что прагматичность текущих решений - это миф, любой хороший разраб всегда прогнозирует вектор развития. Иначе просто будешь собирать все грабли на проекте.
👍43🔥6
Довольно легко продемонстрировать, что специалисты всегда думают о "будущем", не буду приводить программерский пример, слишком много условий описывать. Но давайте приведу пример при выборе ресурсов. Представьте что вы покупаете сервер для СУБД, объем данных, который требует хранения 100 Гб, у вас стоит выбор взять сервер с объемом диска 100Гб (представим, что его гарантированно хватит под "текущее" состояние) или сервер с объемом диска 200Гб. Вопрос, какой сервер вы возьмете?
Если с 200 Гб, то палец вверх, если ровно решающий "текущие" требования, то палец вниз. ))))
👍193👎19💩1
Кстати, последний пример это эмпирическое правило, которое реально используется при проектировании "правило 50%": максимальное capacity решения должно быть не мене чем в два раза больше среднего. Среднее можно рассматривать как текущее.
👍221😁1
О стратегии наращивании ресурсов. Вопрос о том, что лучше сразу взять больше ресурсов, чем надо, либо наращивать их по мере возникновения необходимости. Как правило, взять сразу обходится дешевле (так как миграция редко бывает zero cost), но брать по мере необходимости - это "отложить" затраты в будущее и тогда можно делать их за счет полученной прибыли.
Я делю так: если ожидается бурный рост проекта (например, у проекта дикий рекламный бюджет), то применяем стратегию "на вырост", т.е. берем сразу с запасом, если рост медленный, то стараемся "откладывать" расширения в будущее.
👍42
Дайте совет - стоит ли регистрироваться с Россграм? Палец вверх - да, остальное - нет.
👎421💩105👍52😁10🤮8🤔7😢4👏3🤩31
Решил попробовать Now - https://nowapp.me/s0er
👍9🔥6
Когда я слышу "ООП - это ошибка" у меня возникают противоречивые чувства. Вот несколько моментов на которые нужно ответить, прежде чем ругать ООП:
1. ООП появилось сильно позже логического и функционального программирования. И появилось оно как раз потому что функциональное программирование "не взлетело". Требовало слишком много вычислительных и умственных ресурсов. Кстати, это до сих пор так. Написать в функциональном стиле программу по прежнему требует довольно много мыслительных усилий. Я остро чувствую разницу когда читаю код в функциональном стиле и ООП.
2. ООП выстрелило не из-за хайпа, все было ровно наоборот - сначала ООП выстрелило, затем появился хайп. И я это тоже наблюдал своими глазами. Я начинал со структурного программирования и на самом деле разделение на структуры и функции неудобно. В реальном мире мы не привыкли разделять данные и их обработку.
3. В реальном мире мы привыкли мыслить категориями объектов - практически все вокруг нас - это объекты. Мы не думаем, скажем, о телефоне как о трех разных сущностях: форме, свойствах, операциями над ним. Для нас свойства порождают те действия, которые можно выполнить над объектом.

Собственно мое глубокое убеждение - убери ООП и вся индсустрия взвоет из-за возросшей сложности разработки. Но у нас модно бороться с мифами. Самый простой способ словить хайп - отменить что-то проверенное временем. Типа "колесо это самая большая ошибка человечества, вместо него надо было изобрести телепорт". Именно так для меня звучит отрицание ООП.

А вы что думаете про ООП? Палец вверх - если согласны, что эта парадигма важна и нужна, все остальное - ООП нужно выкинуть в топку.
👍422🤔12👎101💯1
Хочется сказать пару слов про планирование. Линейные планы (т.е. такие планы, где не ставится под сомнение успешное завершение каждого пункта и порядок пунктов никогда не меняется, как правило такие планы еще и последовательны) можно построить не для всех задач, к сложным задачам, в которых есть большая доля исследовательской работы, не применяются линейные планы, вместо этого лучшее что можно придумать - дерево принятия решений, при этом глубина такого дерева, естественно, не может быть большой.
Поэтому R&D задачи можно решать только короткими итерациями, определяя канву ближайшего развития. Бюджетные организации не очень любят такие штуки, поэтому скидывают такие задачи на подрядчиков (потому что договорные сметы относятся к "линейным" планам).
Если вы занимаетесь R&D, то попытайтесь донести до своего руководства, что невозможно совместить обычное линейное планирование и R&D. Вроде бы очевидная вещь, но буквально только что закончил общаться с ребятами, которые сделали красивые планы, получили под них деньги, и теперь не знают как выполнить планы, потому что все пошло вообще не так как ожидалось, а заказчик хочет получить результат предусмотренный договором.
👍51🔥14
Ребята, а что вы знаете про АйТи в СССР? У меня, например, отец в СССР работал над системами спутниковой связи, разрабатывал наземные станции, разрабатывал оборудование для георазведки, медицинское оборудование, знакомый моего отца делал начинку для спутников, писал софт для лазерных установок и т.д.
Причем работа для инженеров была везде, от Москвы до Владивостока, с реальными практическими кейсами, которые могли использоваться в реальном секторе экономики, а не просто "купи-продай", который сейчас составляет 90% так называемого АйТи.
Расскажите свои истории. Интересно услышать как вы представляете было в СССР с АйТи.
👍121🔥30💩42👎1
В начале мая подведу итоги первого месяца акции "Пишешь код, получаешь сертификат на soer.pro". Пока все пулреквесты касаются проекта gitlog.ru

Напоминаю, что самый активный получит сертифика на уровень PRO.
👍26
На сайте soer.pro опубликова 23 архитектурный стрим, и на YouTube для спонсоров он тоже доступен.
👍208
На вскидку и не поймёшь, что это мой новый Now, а не инста. Появятся сторис и вообще топчик будет.
👍69🤮33👎2🔥1
Йоу, на меня в Now подписался Алексей - автор известного канала Диджитализируй. Круто!
👍72👎10🤮8🔥4
На одном из стримов я уже говорил, что начиная с марта у меня дикая загрузка по консультациям. Многих интересует в чем заключается эта "работа". Большая часть - это анализ технических заданий, выработка ТЭО или ревью уже готовой архитектуры. Почти все из этого - рутинная, условно бумажная (условно, потому что результат в электронном виде) работ. Результатом, как правило, является документ, в котором перечисляется список предложений и замечаний, а так же расчетная часть по основным показателям.
Отмечу, что заметно сложнее стало с выбором технологий и оборудования для реализации АС. Требования поголовно включают импортозамещение и в полной мере данное требование на данный момент не реализуемо. В этой сложности есть своеобразный вызов, который делает работу интереснее, но я по прежнему больше люблю писать код, консультации - это просто способ заработать денег, возвращаться к этой работе на фултайм я не хочу.
На практике использую все те вещи, про которые рассказываю на стримах - декомпозиция, проведение архитектурных границ, распределение обязанностей, выделение абстракций и интерфейсов, управление зависимостями и т.д.

В планах доделать последний отчет, передать ребятам и взять таймаут до сентября. Очень тяжело работать в таком темпе. И тогда появится больше времени на канал и съемку видео, по крайней мере я на это надеюсь.
👍47🔥9💩1
На soer.pro запускаю литературный челендж (прочитать минимум 3 книги за 3 месяца, в списке 9 книг на выбор)

Заходим на soer.pro, идем в "Цели" выбираем вкладка "Общие шаблоны" и щелкаем по "Начать".
👍18🤔5🔥1
Первый участник )
👍26
soer.pro в цифрах за 03.05.22
60 - это количество участников в литературном челендже. Неплохой старт
👍12
Сделал вывод GitHub Issue проекта прямо в платформе soer.pro
Есть вероятность, что эта фича вырастит в микроблог проекта, мне будет удобно писать туда свои мысли, а люди будут видеть куда идет проект.
🔥20👍11
Успеха в челендже.
Вчера спросили зачем это надо? Я через три месяца подведу итоги, посмотрим сколько человек справится. Сейчас что-то около 70 человек начали.
А так, это нужно для себя, для собственного кругозора - инвестиции в собственные знания.
👍28👎1