Архитектура ПО для маленьких и тупых

Поделиться
HTML-код
  • Опубликовано: 12 сен 2024
  • erid: LjN8K8mKw | Разверни кластер облачных баз данных или Managed Kubernetes со 100% кешбэком в Selectel: slc.tl/dyl5v
    ---
    Подпишись на наш Telegram Канал 🖤 t.me/extremecode
    Лицензия Creative Commons Attribution 4.0 на использование трека Hyperfun (исполнитель: Kevin MacLeod): creativecommon...
    Источник: incompetech.com...
    Исполнитель: incompetech.com/

Комментарии • 328

  • @ExtremeCode
    @ExtremeCode  2 месяца назад +4

    Тележка 💙 t.me/extremecode
    Бусти ❤ boosty.to/extremecode
    Канал про стартап 💚 t.me/startup_reports

    • @reshator_m
      @reshator_m 2 месяца назад

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

    • @VladimirNerby
      @VladimirNerby 2 месяца назад

      Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё?

    • @skosski-moski
      @skosski-moski Месяц назад

      да что за хуйня здесь происходит?)

  • @koteelok2014
    @koteelok2014 2 месяца назад +149

    Экстримтсоде, спасибо, что ты есть. Благодаря тебе я раз за разом напоминаю себе, что во мне кроется бесконечный потенциал, способный изменить мир, но вместо этого я стал писать код на JavaScript.

    • @zevsmd
      @zevsmd 2 месяца назад +5

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

    • @evgenii.panaite
      @evgenii.panaite 2 месяца назад

      @@zevsmd онли в онлифанс

    • @AlexAlex-mq6sg
      @AlexAlex-mq6sg 2 месяца назад +2

      ​@@zevsmdтут главное в окно не выйти )

  • @CurS-yp3qw
    @CurS-yp3qw 2 месяца назад +96

    Ясно, у рекламодателей экстрим кода снова появились деньги

    • @MrPokimon4ik
      @MrPokimon4ik 2 месяца назад +1

      накопили

    • @non5309
      @non5309 2 месяца назад

      и ролик пришлось пилить оч. быстро абы как

    • @acidkeat8067
      @acidkeat8067 Месяц назад

      @@MrPokimon4ik кэшбек с макдональдса упал

  • @TheAnvi1
    @TheAnvi1 2 месяца назад +402

    Посмотрел, удаляй

    • @kolosok5465
      @kolosok5465 2 месяца назад +28

      Удалел, посматряй

    • @lizbertarian
      @lizbertarian 2 месяца назад +7

      Посдаляй, умотрел

    • @user-kg1ou2ys3i
      @user-kg1ou2ys3i 2 месяца назад

      Уго

    • @andufalador
      @andufalador 2 месяца назад +4

      Умоляй, постарел

    • @EQ2Errick
      @EQ2Errick 2 месяца назад +2

      повзрослел, выдворяй

  • @al.osinin
    @al.osinin 2 месяца назад +26

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

    • @debastiancebs
      @debastiancebs 2 месяца назад

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

    • @rizzie5917
      @rizzie5917 2 месяца назад

      "делаем как все" и "не боимся нарушать принципы, если их нарушают все"*
      думаю, такой посыл вернее)

    • @alexdp6440
      @alexdp6440 2 месяца назад

      между этими принципами временной промежуток длительностью в 1 свитер с оленями в зеркале... будто ты видео не смотрел

    • @ne4to777
      @ne4to777 2 месяца назад

      Все как раз и не следуют принципам, поэтому нарушать нечего

    • @ArenKhachaturyan
      @ArenKhachaturyan Месяц назад

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

  • @MrMrZetek
    @MrMrZetek 2 месяца назад +23

    Братан, хорош, давай, давай, вперед! Контент в кайф, можно еще? Вообще красавчик! Можно вот этого-вот почаще? Давайте пока.

  • @kolosok5465
    @kolosok5465 2 месяца назад +95

    У нас были 3 праграммиста, которым поручили написать фронт для приложения. Они создали идеальную архитектуру, составили список ВСЕХ компонентов, полностью проработали логику взаимодействий этих компонентов, полностью расписали где какие методы, что получают что отдают и тп. Потратили месяц. И это все без единой строчки кода. На каждый компонент создали задачку в битриксе, получилось 175 задач) Но они не учли, что приложение может расширяться и изменяться, и когда у нас поменялся главный экран и авторизация, они еще на две недели зависли, что бы это тоже правильно расписать. В итоге ПМ на них наорал и выгнал. Остались 175 задачек в битриксе, и 500 бессмысленных чатов с обсуждением архитектуры. В итоге фронт писал я, архитекуту придумывал на ходу. Многое делал интуитивно, справился за месяц, работает все уже 3 года, у нас полностью поменялось api, дизайн и очень много логики, прекрасно расширял и удалял функцонал, и проблем практически не возникало.

    • @user-ps6cz6yp9v
      @user-ps6cz6yp9v 2 месяца назад +1

      Я в одной конторе как-то запилил инструмент для внутреннего пользования, всё что я сделал по архитектуре до разработки, так это схему БД. Делал всё сам, считай fullstack. На бэке был python/flask и весь фронт на jinja шаблонах, плюс расширение для браузера в tampermonkey. Потратил на разработку первой версии около недели. Отдел сразу начал с ней работать. Но нужно было добавлять функционал, плюс в UI нужна была реактивность, а новые данные приходили из трёх источников: с ответом от сервера, из UI, из браузерного расширения. Поэтому решил не изобретать велосипед и просто добавил VUE прям в jinja шаблоны, без всякой сборки фронта, либы загружал из CDN 😁 С этим инструментом уже два отдела работали, коммуницируя между собой через него. Из другого отдела нужно было добавить пару фич, я просто скинул ссылку на репозиторий и один сотрудник, без лишних вопросов реализовал эти фичи, без создания всяких чатов и оно работало. Плюс я расширил функционал для внешних заказчиков. И вот в таком виде этим инструментом, в той конторе, пользуются до сих пор, хотя я там уже не работаю.
      PS Это был мой первый проект. Сейчас я уже так не делаю 😁

    • @PilotInspektor
      @PilotInspektor 2 месяца назад +18

      ну это типикал jira программисты че сказать

    • @cafedead
      @cafedead 2 месяца назад +17

      Походу, это были вкатуны, умеющие проходить собесы...) За месяц ни строчки кода... Это надо уметь.

    • @kadr6424
      @kadr6424 2 месяца назад +28

      А знаешь в чем фича? В том, что написал ты, поддерживал и расширял тоже ты. Попробуй взять нового джуна или даже миддла и дай ему выполнить задачку в соло и ощутишь боль в попе. Либо в своей, когда будешь пытаться понять и расширить поверх задачи коллеги, либо в своей, когда будешь объяснять новоиспеченному принципы на которых архитектуру проекта строил

    • @kolosok5465
      @kolosok5465 2 месяца назад +16

      @@kadr6424 ну я пытался документацию писать, а потом решил, ну это все е х*ям, все равно я один. А если уволят, ну вот пусть сами тогда и разбираются

  • @jprakk
    @jprakk 2 месяца назад +17

    Ай прям хорошо зашло. Накидай ещё на вентилятор 👍

  • @user-xk2lb2ob8p
    @user-xk2lb2ob8p 2 месяца назад +25

    "Преждевременная оптимизация" - этот грех архитектора ввел в оборот еще Мартин Фаулер в своей книге "Архитектура корпоративных приложений".

    • @PilotInspektor
      @PilotInspektor 2 месяца назад +7

      Когда наебнется, тогда подумаем, всё правильно. Сэкономит много сил и времени. А оптимизировать всегда можно успеть)

    • @cludiee138
      @cludiee138 2 месяца назад

      Преждевременная эякyляция только знаю

    • @user-xk2lb2ob8p
      @user-xk2lb2ob8p 2 месяца назад +2

      @@PilotInspektor Да просто ожидания часто не совпадают с реальностью. Архитектор ожидал что на производительность приложения повлияет одно, а в жизни оказывается что оптимизировать надо совсем другое, то о чем архитектор даже и не знал. И оптимизировать надо быстро и жестко. А эта преждевременная оптимизация мешается под ногами и об нее спотыкаются делая оптимизацию реальную.

    • @user-xk2lb2ob8p
      @user-xk2lb2ob8p 2 месяца назад +2

      @@cludiee138 Да, преждевременная оптимизация это как лечить преждевременную эякуляцию покупкой специального презерватива. "Почти бесполезно для него и совершенно бесполезно для неё" (c)

    • @iamdozerq
      @iamdozerq 2 месяца назад

      Там речь шла про ассемблеродрочерство, а не про говнокод.

  • @aleksandr-42
    @aleksandr-42 2 месяца назад +43

    С Соером пивка попил - опа, архитектуру на канальчик подвезли))) ❤

    • @stanmarsh9458
      @stanmarsh9458 2 месяца назад

      Скоро за ассемблер говорить будет)))

    • @ska6391
      @ska6391 2 месяца назад

      Да, так и соевым куколдом таким же станет.
      Хотя….

  • @user-sf1wu5xu7n
    @user-sf1wu5xu7n 2 месяца назад +4

    DRY это не про дублирование кода. Он связан с SRP. Т.е. нельзя дублировать то, что имеет одну причину для изменения. Если код слабо связан, т.е. изменяется по разным причинам, то копипастить не запрещается.

  • @lefrutit228
    @lefrutit228 2 месяца назад +2

    Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?

  • @ShowoffFantasy
    @ShowoffFantasy 2 месяца назад +4

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

    • @user-ry5oh3qt2u
      @user-ry5oh3qt2u 2 месяца назад

      Экстрим цоде просто ещё не прочитал книжку про наследование

    • @Termonna
      @Termonna 2 месяца назад

      @@user-ry5oh3qt2u потом про композицию, агрегацию и ассоциацию узнает -- вообще мозг рванёт

    • @stanislavsh6582
      @stanislavsh6582 2 месяца назад +1

      Наследование - причина 99% проблем в мире ООП.
      Нужна какая-то логика - делай функцию. Дальше - наворачивай функциональные композиции.
      Тестируется проще. Ты не сломаешь половину проекта когда полезешь в базовый класс. Работать с простыми функциями - проще, чем с иерархией.
      Я понимаю, что всем кто знакомится с ООП - кажется, что наследование - прям отличная вещь. Только вот чтобы нормально построить иерархию объектов - надо СНАЧАЛА написать 100 раз то что ты пишешь тут, чтобы знать все подводные камни, как их преодолеть, что надо в базовом классе иметь, что не надо. И только потом - браться за проектирование.
      В большинстве случаев - такого опыта - нихрена ни у кого нет. И получаем, либо ненужные абстракции, либо грабли, расставленные по всей кодовой базе, либо очень интересные сайдэффекты и трудноуловимые баги.

    • @ShowoffFantasy
      @ShowoffFantasy 2 месяца назад

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

  • @user-xk2lb2ob8p
    @user-xk2lb2ob8p 2 месяца назад +5

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

  • @stanislavsh6582
    @stanislavsh6582 2 месяца назад +2

    Про DRY - копипастим.
    Если надо поменять - просто делаем поиск с заменой.

  • @AntiPolarity
    @AntiPolarity 2 месяца назад +25

    Ответ на вопрос про DRY:
    Нужно завязывать все части системы на один кусок кода. Тогда, если понадобится изменение для одной части, то ты просто копируешь этот кусок, делаешь в нём изменение и перекидываешь часть на него.

    • @megaguar
      @megaguar 2 месяца назад +2

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

    • @ArthurKhazbs
      @ArthurKhazbs 2 месяца назад +2

      @@megaguar Изменение для всех разом производится в общей части кода, а индивидуальные изменения - в специфичной части кода. Нужно уметь разделять код на общие и специфичные части.

    • @Rayvenor
      @Rayvenor 2 месяца назад

      @@megaguar для всех разом не может понадобиться. Для всех разом понадобится если во всех копиях есть одинаковый кусок кода. А зачем мы делали копии одного и того же кода. Это ошибка разбиения кода на подпрограммы. Копировать надо уникальные части, одинаковые вынесены в одну подпрограмму.

    • @megaguar
      @megaguar 2 месяца назад +1

      @@ArthurKhazbs я не спорю, а именно спрашиваю - а разве вся эта история с наследованием не есть именно про это - разбиение кода на "общий" и "специфический"? "общий" это и есть верхний слой абстракции изменения в котором будут актуальны для всех подклассов, нет?

    • @megaguar
      @megaguar 2 месяца назад

      @@Rayvenor ну так это и есть вопрос класса-подкласса, наследование и вопрос доп. абстракции, нет?

  • @arcc0t
    @arcc0t 2 месяца назад +5

    Братан, хорош, давай, давай, вперед! Контент в кайф, можно еще? Вообще красавчик!

  • @andrewkoshelev8765
    @andrewkoshelev8765 2 месяца назад +6

    В общем, всё сводится к старому доброму "пиши нормально - нормально будет". )
    По сути получается, что на какой бы ты стул ни сел, оказавшись на развилке принятия решений при проектировании приложения, могут быть как положительные последствия, так и отрицательные. Поэтому в конечном итоге ориентироваться стоит на базовую объектную семантику, возможности, хорошие практики и scope задачи.
    Если заказчик просил только банан - подсвети контекст, и если всё же настаивает, что нужен только банан, - делай только банан. Обезьяна, которая его держит, конечно, первична, но ещё первичнее бабулесы уметь считать и экономить.
    Если между объектами есть что-то общее и таких объектов достаточно много, да ещё и регулярно появляются, - наверное нужен общий класс. Если объект 1 и в горизонте следующих 150 лет новых похожих не планируется, - есть смысл отложить семантику на тех продвинутых существ, которые изобретут этот второй объект.

    • @debastiancebs
      @debastiancebs 2 месяца назад +2

      Как говорится, "Делай как надо, а как не надо - не делай"

    • @BeDb_MeDb
      @BeDb_MeDb 2 месяца назад

      @@debastiancebs Как обычно, сказали за меня)

    • @stanislavsh6582
      @stanislavsh6582 2 месяца назад

      А заказчик может быть недоступен. А предметная область - очень специфичной и ты ничего пока на прод не раскатаешь - не узнаешь, про то что там надо кому.
      Единственное рабочее решение - делаем так, чтобы можно было из банана сделать вертолет, и релизим часто, чтобы фидбек получать как можно скорее.

  • @lifekilled8236
    @lifekilled8236 2 месяца назад +1

    SOLID, KISS и DRY нужны для того, чтобы в программу было легко добавлять фичи независимо от размера прожекта. Можно не упарываться, но сильно нарушать не стоит, чтобы потом не тратить кучу время на долгие рефакторинги (недолгие все равно придется делать). А паттерны нужны скорее для того, чтобы читать чужой код. Когда использован синглтон или наблюдатель, программа будет одинаково понятна и тебе, и твоему другу. После какого-то момента вы легко и интуитивно найдете среди 50000 файлов прожекта нужный и радостно добавите туда свой говнокод. Это же прекрасно

  • @Apofize
    @Apofize 2 месяца назад +4

    Любой индус за пару дней разберет ваш дерьмо код. А пара индусов ... ну вы поняли

  • @debastiancebs
    @debastiancebs 2 месяца назад +6

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

    • @greengrey3003
      @greengrey3003 Месяц назад +1

      Я конечно не спец но вижу проблему схода😂
      Прожект на 50к файлов. Сидишь думаешь так здесь надо поменять кусок кода, меняешь. Через неделю забыл. Через месяц меняешь кусок кода в другом месте, итерируешь n-раз. Через n+1 времени есть кусок кода от которого в теории всё зависит😅 а на практике как повезет. Через пару лет рефакторинга если повезёт разберёшься 😂😂😂

    • @debastiancebs
      @debastiancebs Месяц назад

      @@greengrey3003 на такой случай уместно оставлять комменты в коде, а ещё лучше вести нормальную документацию (честно, не представляю, как можно не потеряться в проекте такого объёма без доки)

  • @Rizomus
    @Rizomus 2 месяца назад +1

    Обезьяна с джунглями - это было тонко))

  • @volodya_dev
    @volodya_dev 13 дней назад

    До слез смеялся, подписался, так ахуенно. Это не цинизм, это как будто смесь недоумения и заебанности. Спасибо тебе, любимчик :**** братишкааааа

  • @M0stwan1eD
    @M0stwan1eD 2 месяца назад +1

    Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще? Давайте, пока.

  • @cyberuzbek
    @cyberuzbek 2 месяца назад +1

    Мне кажется DRY, должен применяться когда помимо самого кода копируется и причина для чего это код необходим. Например есть метод а, который меняет статус заявки на А и метод б, который также меняет статус на А. Однако в первой ситуации это происходит из-за действия альфа, а во второй из-за действия бета. Код одинаковый, но это пока, а когда БП по действию бета вдруг начнут менять, нам не придется один метод делить на два.

  • @jusie
    @jusie 2 месяца назад +1

    Ну, тут всё по делу. Особенно п.2 и последний.
    А насчет загадки - всегда в метод можно прокинуть необязательный колбек, который реализует какую-то особую логику. В итоге и метод слабо меняется, и вся эта редкая логика вынесена куда нужно.

  • @nurbolsarsenbaev2540
    @nurbolsarsenbaev2540 2 месяца назад

    1. Делаем как все
    2. Знать зачем пишем
    3. Забиваем на ненужное
    4. Не проектируем наперед

  • @danielkeehl7450
    @danielkeehl7450 2 месяца назад +1

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

    • @Qnoize
      @Qnoize 2 месяца назад

      с опытом приходит осознание, что это не просто так все придумывалось и понимание где, как, когда и какие принципы надо использовать) ничего все еще впереди понимание приходит с опытом, читай книжки - поймешь)

    • @danielkeehl7450
      @danielkeehl7450 2 месяца назад +1

      @@Qnoize спасибо, но я не новичок в этой сфере, и вышесказанное не из воздуха взял

  • @artursword3288
    @artursword3288 2 месяца назад +2

    опять овно на вентилятор :)))) все эти архитектурные решения рождаются в страданиях, и являются как раз систематизированным унифицированным решением большинства задач оптимизации процесса разработки любого ПО.. большинство нормальных/хороших разработчиков доходят до этого понимания, пусть и не сразу.. естественно, Васе с курсов скилфэктори не сразу дойдёт "зачем" это вообще нужно, если проще тяп ляп и прод :)))) может поэтому архитектор - это довольно высокая ступенька развития программиста-прямоходящего, там Дзен познать нужно сперва, а только потом свои корявые ручонки пихать в архитектуру (ну если только задача это не элементарный лендинг) :))))

    • @user-bh8dk9dc3m
      @user-bh8dk9dc3m 2 месяца назад +1

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

  • @zakatun9491
    @zakatun9491 2 месяца назад +1

    Когда я увидел для маленьких и тупых, то у меня аж слеза навернулась 😢

  • @nagirov
    @nagirov 2 месяца назад

    Братан, ты хорош! Давай ещё, контент годный, но, кажется, я пока слишком далеко и весьма оптимистично смотрю %)

  • @igorsdt
    @igorsdt 2 месяца назад

    Братан хорош, давай давай вперёд. Контент в кайф. Можно ещё? Вообще красавчик!!!

  • @HolyHeimerd
    @HolyHeimerd 2 месяца назад +1

    Про DRY: просто расширить интерфейс и меняй что хочешь

    • @HolyHeimerd
      @HolyHeimerd 2 месяца назад +1

      Буква О из solid

  • @bezborodovanton
    @bezborodovanton 2 месяца назад

    SOLID и DRY - это не про архитектуру (system design), это про декомпозицию кода. Фронтендеры не занимаются архитектурой в принципе, т.к. весь фронтенд - это только один компонент архитектуры приложения.

  • @user-ch7yu6ig5o
    @user-ch7yu6ig5o Месяц назад

    братан, давай еще! Контент в кайф!

  • @loadlost3047
    @loadlost3047 2 месяца назад +1

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

    • @loadlost3047
      @loadlost3047 2 месяца назад +1

      пойду, что ли курсы запилю, как довести себя до исступления и начать чревовещать на питоне

  • @supontable
    @supontable Месяц назад

    Пытаюсь не захлебнуться от пролитой воды.

  • @Qnoize
    @Qnoize 2 месяца назад

    начинал смотреть канал еще зеленым масленком, приятно видеть, что теперь когда я стал Архом и канал решил двигаться со мной)

  • @bgs12
    @bgs12 2 месяца назад +1

    У каждого архитектора есть шкаф со скелетами сошедших с ума разрабов 😅

    • @Qnoize
      @Qnoize 2 месяца назад +1

      ну не у каждого, ладно у каждого опытного)

    • @user-zh6se9iw8o
      @user-zh6se9iw8o 2 месяца назад

      У неопытных архитектура плохая, потому шкаф для скелетов не продуман и они просто так на проходе валяются.

  • @fly-in_glass.
    @fly-in_glass. 2 месяца назад +4

    Я один заметил что extreme code записал новую концовку?

    • @AntiPolarity
      @AntiPolarity 2 месяца назад +4

      та да... уже не торт, в старой концовке была душа, а с новой концовкой вообще смотреть невозможно!

  • @foxyprogramm
    @foxyprogramm 2 месяца назад

    Братан, харош, давай-давай - вперёд! Контент в кайф, можно ещё? Вообще красавчик, ну и подобного вот этого почаще, давайте пока.

  • @wvvwwwvvw
    @wvvwwwvvw 2 месяца назад

    4:57 ФЭЙЧУР БЛЭТТ. очень екстреме соде!

  • @Alex_34187
    @Alex_34187 Месяц назад

    Давайте так - решим что есть нормальные архитекторы и они на это учились много лет и понимают процесс разработки и цели которые перед ними стоят, а есть ребятки которые прыгнули не понимая куда попали и что знают то и вкручивают, главное с умным видом и мощным ощущением что повидали весь мир и знают все.
    Архитекторов сейчас столько и знать нужно столько что с ума сойти можно.
    Enterprise, platform, solution/software, technical architect, data architect, sec. Architect etc.
    Практически всем нужно разбираться и в бизнесе и в технологиях, понимать риск менеджмент, как работать с людьми и убеждать людей.
    По моему опыту - сделать архитектуру это одно, а прийти к ее реализации с полным согласием всех сторон и пониманием тех самых trade-offs всеми участниками ну прям очень сложно. Особенно когда люди вокруг не готовы к любым изменениям, а это сорян прям все😅
    Заходить в архитектуру обязательно нужно с техническим бекграундом и лучше знать обо всем, именно знать - не уметь, так как от этого зависит принятие решений и возможность предложить эти решения.
    Доверяйте свой бизнес профессионалам 😉

  • @vaivadavladimir
    @vaivadavladimir 2 месяца назад

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

  • @Koaalla
    @Koaalla 2 месяца назад

    Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
    =)

  • @go_better
    @go_better 2 месяца назад

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

  • @user-tn1sj9zn9q
    @user-tn1sj9zn9q 2 месяца назад

    Неплохой выпуск получился, давай ещё

  • @user-uz6fb1ek3h
    @user-uz6fb1ek3h Месяц назад

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

  • @АнтонПопов-о6у
    @АнтонПопов-о6у 2 месяца назад

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

  • @max_london
    @max_london 2 месяца назад

    Проникся во все 4 еще на первом году. 4ый год пошел, полет нормальный, схема рабочая👍

  • @hgreender4115
    @hgreender4115 2 месяца назад

    Итог: делай, как все, но по-своему

  • @Добрый_отчим
    @Добрый_отчим 2 месяца назад +1

    Классную архитектуру объяснил,понял. Теперь про отвратительную архитектуру делай

  • @djbob9757
    @djbob9757 2 месяца назад +2

    Ха-ха, фроненд архитектура)) ой сказочники)

    • @Qnoize
      @Qnoize 2 месяца назад +1

      ну фронты тоже хотят быть разработчиками и архитекторами)

  • @waaaghtech9959
    @waaaghtech9959 2 месяца назад +3

    Я ещё не досмотрел, оставь!

  • @igojira835
    @igojira835 2 месяца назад

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

  • @hollow.one.w
    @hollow.one.w 2 месяца назад

    братан вперед, контент в кайф. можно вот этого еще побольше?

  • @petrhelbin8183
    @petrhelbin8183 2 месяца назад

    Братан, хорош,! Давай, давай, вперед! Контент в кайф.

  • @Sprut2020
    @Sprut2020 2 месяца назад +1

    Странно что я тебя смотрео больше года назад но в рекомендации все равно попал) хотя ролик все равно топ

  • @allsanch9544
    @allsanch9544 2 месяца назад

    6:27 начало, не благодарите 🥲

  • @DigTheEpicMan
    @DigTheEpicMan 2 месяца назад

    братан хорош давай давай вперед контент в кайф можно еще вообще красавчик. Можно вот этого вот почаще?

  • @bolthold9075
    @bolthold9075 2 месяца назад

    Ну сказать что SOLID, DRY вовсе не нужны это набросать говна на вентилятор. Скорее опытный разраб почти всегда следует паттернам и солиду, просто не понимает этого(если не читал мартина), антипаттерны и нарушение методологии обычно что-то уникальное и требующее особого подхода, как правило в большинстве задач таких мест от силы 2-3 , как исключения, но в остальном , я бы советовал следовать методологии, проще потом править пару мест, скопировать дублирующийся код и переписать, отнаследовать, но не переписывать методом дробовика абсолютно всё

  • @shion1364
    @shion1364 Месяц назад

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

  • @eclipsium_msk
    @eclipsium_msk 2 месяца назад +2

    Это вы еще адептов DDD не видели :D

    • @Qnoize
      @Qnoize 2 месяца назад

      а что ты против ДДД имеешь?)

    • @eclipsium_msk
      @eclipsium_msk 2 месяца назад

      @@Qnoize Не видел ни разу нормального DDD проекта, а которые видел - настолько переваренный кал, что разберется в нем только сам автор. А другой адепт когда увидит - скажет что это не тру ДДД.

  • @segirotus
    @segirotus Месяц назад

    Братан хорош, контент огонь! Можно ещё и побольше?

  • @smaramna
    @smaramna 2 месяца назад

    У меня некоторые куски моего кода, мигрируют из проекта в проект - без модификаций, на протяжении 5+ лет
    Это к вопросу о необходимости проектировать очень далеко наперёд, один из последних моих проектов был адаптирован под новые требования - практически без изменения логики и архитектуры изначального проекта, потому что эта архитектура так же была спроектирована на половину вечности

  • @NicolayKrasotkin
    @NicolayKrasotkin 2 месяца назад +1

    А видите папочку ФЭЙЧЕР?

  • @user-ib6dk9gz7n
    @user-ib6dk9gz7n 2 месяца назад

    А еще пора медийно отменять наследование, особенно многоуровневое. На все воля интерфейсов (без реализации в самом интерфейсе, а то напридумывывали фич)

  • @prekrati_tv5543
    @prekrati_tv5543 2 месяца назад

    братан ваще в кайф давай давай вперед!

  • @jurafree426
    @jurafree426 2 месяца назад

    Если изменение кода в одном месте ломает части приложения - значит надо было D из SOLID применить - разделить код.

  • @odduck41
    @odduck41 2 месяца назад

    Помню была таска сделать одночлены и многочлены, не пользуясь STL. В общем структура была такая:
    Polynomial
    | List m;
    |
    List powers;
    Где List тоже мой класс. В итоге дебажил 8 долбанных часов, потому что сделал конструктор копирования, но не сделал operator=. В общем перегружать архитектуру это зло

  • @mirnyt3633
    @mirnyt3633 2 месяца назад +1

    Dry соблюдаем ток когда истинное дублирование

  • @Velichkina_a
    @Velichkina_a 2 месяца назад

    Шик, спасибо!
    Я вот сижу и чувствую, что моему пету необходим новый слой. А-то пока ощущение, как от наждачки

  • @kiber-bubl
    @kiber-bubl 2 месяца назад +1

    Видео начинается с 2:06

  • @stanislavsh6582
    @stanislavsh6582 2 месяца назад

    Да. Делаем как все.
    А все - болт клали на нормальный код, им бы лишь бы тасочку закрыть в срок, и пойти домой жену за мягкие места трогать. Либо собрались люди, у которых основной паттерн проектирования: StackOverflow - ctrl+c - ctrl+v.
    В результате - код нетестируемы, код не переиспользуемый, держится только на том, что как раз один седой дед, который после универа устроился работать - помнит досконально это вот чудо, и только он - знает где ж там что вставить, при этом - даже он, чтобы подвинуть кнопку на 2 пикселя - месяц тратит.
    Если сложились хреновые практики, и единственный аргумент их использования - это Я ТАК ВСЕГДА ДЕЛАЛ. То считаю верным - класть на то как делают другие - и делать как правильно.
    Банально - тесты нужны. Код - должен быть переиспользуем. Чтобы ты же сам, потом через год - случайно не сломал его. Чтобы - если ты делал похожую фичу - тебе не нужно было ее с нуля писать.

  • @SaintVes
    @SaintVes 2 месяца назад +1

    В момент когда автор произнёс слово "фичурс" как "фэйчер" я тут-же понял, что я всё понял.

  • @MikhailGolnoshchekov
    @MikhailGolnoshchekov 2 месяца назад

    Братан, можно вот этого вот ещё почаще?

  • @ИльяАрхипов-у1с
    @ИльяАрхипов-у1с 2 месяца назад

    в рекламе, в грузовике с пивом битком набито портвейном три топора, лол)

  • @MrCter
    @MrCter 2 месяца назад

    3:09 хитрый авторитет Аристотель постулировал принцип об избегании апелирования к авторитетам???... 😁

  • @Rostislav27rus
    @Rostislav27rus 2 месяца назад

    Братан хорош давай давай вперед контент в кайф можно еще вообще красавчик можно вот этого вот почаще

  • @inftech8976
    @inftech8976 2 месяца назад

    А как нам не думать наперед, если все таки придется масштабировать проект позже, но при этом когда приходит будущее времени на рефакторинг вообще нету?? Эта какой то курьез, можете дать совет

  • @paulego8169
    @paulego8169 2 месяца назад

    оуоуоу, еще такого же на вентилятор пожалуйста!!!!

    • @user-vu6hn4ul2i
      @user-vu6hn4ul2i 2 месяца назад

      Воу, а мусье знает толк в извращениях 😏

  • @alexperemey6046
    @alexperemey6046 2 месяца назад

    Мне кажется, или между принципом "Делаем как все" и "задаемся вопросом Зачем" фундаментальное противоречие?

    • @Zigfried207
      @Zigfried207 2 месяца назад

      Ну сначала задаешься вопросом "зачем" точнее "а оно мне надо?", когда получен положительный ответ - делаешь это нужное как все)

  • @dependencyinjection6120
    @dependencyinjection6120 2 месяца назад +1

    Думал будет видос про DDD и прочее , а оказалось видос для маслят :(

    • @Qnoize
      @Qnoize 2 месяца назад

      они еще до ДДД не доросли видимо)

  • @rainbowunicorn2946
    @rainbowunicorn2946 2 месяца назад

    ШЕДЕВР!

  • @user-ux8dq1vg8l
    @user-ux8dq1vg8l 2 месяца назад

    когда я спршиваю себя зачем на ум приходит только потому что мне за это плотят

  • @Jastagamerschannel
    @Jastagamerschannel 3 дня назад

    Братан харош давай давай вперед контент в кайф ваще красавчик

  • @lordew9476
    @lordew9476 2 месяца назад

    я смотрю на вас, вы не готовы! вы все не готовы!😂
    (первый видос как раз попал в тему, прямо сейчас ищу как всё спланировать. )

  • @VeynShot
    @VeynShot 2 месяца назад

    Учишь фронтенд-фреймворк, приходишь на работу, а у тебя проект использует забугорную платформу. И пишешь ui и логику тупо в json/csv файлах... На некоторые пункты в проекте, на которые встал вопрос приходит убийственный ответ - "документации как таковой нет"...

  • @user-jd1gm5qy5z
    @user-jd1gm5qy5z 2 месяца назад

    Братан, хорош! Давай-давай! Вперёд! Контент в кайф, можно ещё? Вообще красавчик!

  • @user-pe8jw3tv4d
    @user-pe8jw3tv4d 2 месяца назад

    Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще? 😄 сказано? Сделано!

  • @impappguru
    @impappguru 2 месяца назад

    короче шуруп всему голова, я еще деду это говорил

  • @skylord4248
    @skylord4248 Месяц назад

    Это все конечно очень интересно, но когда уже видос про энвилоуп?

  • @Тотещётанкист-г4и
    @Тотещётанкист-г4и 2 месяца назад

    Делать как все, это создавать серверное приложение только для обхода CORS политики? ну уж нет, спасибо.

  • @zzaer951
    @zzaer951 2 месяца назад

    Братан, контент в кайф. Давай, пили еще

  • @pawsome_covers
    @pawsome_covers 2 месяца назад

    братан хорош, красавчик и вот это вот всё

  • @nezdanchickkun
    @nezdanchickkun 2 месяца назад

    На последний вопрос могу контраргументировать виртуальным методом

  • @stopthewar3313
    @stopthewar3313 2 месяца назад

    Кайф. Аж покодить захотелось.

  • @qwertyqwerty2854
    @qwertyqwerty2854 2 месяца назад

    Нафиг нужен чистый код. Его раскритиковал какой-то чел, перевод которого есть на хабре.

  • @RottenFoil
    @RottenFoil 2 месяца назад

    Во-первых если у тебя 2+2 считается в разных модулях, между которыми ты провел архитектурную границу, то насрать на дублирование, переносимость важнее. Если же почуял жопой, что хорошо бы выделить фичу в отдельный сервис, то все остальные модули зависят от общей абстракции, которую ты можешь точечно подменить через DI, если потребуется.

  • @syryan2741
    @syryan2741 2 месяца назад

    Жизненно 😂