Python Advanced. Продвинутый курс: wiki.merionet.ru/merion-academy/courses/python-advanced-prodvinutyj-kurs/?YT& Мы в VK Видео: vk.com/video/@merion_academy Мы в Дзене: wiki.merionet.ru/merion-academy
@Strqwerty3 ай бұрын
Метод ITS = ITakSoidet всë равно по статистике как был, так и останется единственным широко применяемым методом. Мечтатели.
@wuzi200Z3 ай бұрын
выдал базу.
@Torbjorn-ph7rt2 ай бұрын
То же самое PSIT - Пока Сойдёт И Так
@Strqwerty2 ай бұрын
@@Torbjorn-ph7rt да, точно, надо обязательно дать надежду😀
@sas4082 ай бұрын
Еще принцип EVPP = это временно, потом перепишем
@Banka24Ай бұрын
Но всё же в СНГ пространстве широко используется и более популярен PH - Pohuy Normalno
@N0thingE1seАй бұрын
Как же шикарно у вас сделаны видосы! Текст, визуализация, отсылки к классике мемологии.. Браво!👏
@dolgparagon23 күн бұрын
И юморок завернут шикарно
@prodbyscelleapart3 ай бұрын
SOLIDное видео
@thats_embarrassing_JS3 ай бұрын
SOLID принципы следует использовать в случае, если в каких-то определённых частях приложения потенциально могут быть частые незначительные изменения в связи с новыми требованиями бизнеса. Это может быть, например, создание нового функционала, который похож на уже существующий(добавление нового способа оплаты), или небольшое изменение поведения текущего(пользователь теперь должен ввести новые данные для оплаты). Стоит отметить, что эти принципы НЕ спасают от случаев, когда нужно внести кардинальные изменения, ломающие всю логику приложения. Если проект маленький, его дальнейшая поддержка не планируется или есть какие-то специфические и важные требования(короткий дедлайн, экономия памяти и т.д.), возможно, SOLID лучше пренебречь.
@sonesoul56682 ай бұрын
именно, так и появляется оверинженеринг
@vividbw3 ай бұрын
L вообще не про абстрактные классы. Он про то, что подклассы должны быть способны заменить родителя, не нарушая его контракт. Метод подкласса может ослаблять предусловия родителя и делать более строгими постусловия, а наоборот - нельзя . Например, если метод родителя мог принимать любые числа, то подкласс не должен требовать только положительные, так как это сделает более строгим предусловие. Также нельзя из метода подкласса выбрасывать исключение, если от родительского класса это не ожидалось.
@МаксимОрлов-х9ы2 ай бұрын
Обожаю вас когда в качестве примера приводите код на пайтоне, повторяю его просто смотря ваши ролики - гениально и просто Карл! Гениально и просто!
@mrBars1kChannel3 ай бұрын
Ждём теперь KISS, DRY, YAGNI и другие заклинания
@aqr913 ай бұрын
все эти понятия легкодоступны для понимания, как и солид в целом. Лучше бы объяснили (например сейчас я изучаю) как работает «рантайм» операционок, куда более сложная и интересная тема, потому что достаточно адекватных, сжатых и неблевотных статей я не нашел. А драи, киссы и тому подобное изучается за 3 минуты поиска в интернете.
@sovenok-hacker3 ай бұрын
DRY - не повторяйся
@sovenok-hacker3 ай бұрын
KISS - не переусложняй
@mrBars1kChannel3 ай бұрын
Жесть, душнилы. Я всё это применяю и знаю, просто если уж SOLID решили разобрать и примеры привести, то новичкам и другие принципы написания кода, какими бы они простими ни были, будут полезны, особенно с примерами. Звучит легко, а как применить не совсем ясно и когда это вообще целесообразно. Нужно уметь мыслить с точки зрения совсем новичка, который только пришёл в индустрию. А целевая аудитория канала именно такая. Опытный человек почитал бы статью, документацию или какую-нибудь заумную книгу.
@mrBars1kChannel3 ай бұрын
Просто дать описание понятиям - это ещё не научить этим пользоваться. - "Как мне побеждать в игре?" - "Главный принцип: не получай урон" - "Ой, спасибо, так стало понятнее..."
@AndreyAndrey-nx6uj2 ай бұрын
Очень доходчиво и наглядно. Благодарю
@АртемМосин-э2м3 ай бұрын
Как всегда интересно и вовремя! Прошу, делайте больше образовательных видео!
@xopp3r_s3 ай бұрын
Теперь жду видео про паттерны!
@rayanatlasov89063 ай бұрын
Вы молодцы! Порекомендую вас друзьям, спасибо за понятное объяснение ❤
@mongoose1443 ай бұрын
Так, постойте, т.е. если я создам свою it компанию, то я смогу официально утвердить говнокод как стандарт к которому должны все стремиться?
@-Sergey2 ай бұрын
Да. Но очень желательно при этом задать свои стандарты говнокода. Иначе может получиться, что код не достаточно говнистый будет получаться у некоторых сотрудников.
@макс-х9п9л2 ай бұрын
Ты и без всего этого можешь утвердить свой говнокод, как стандарт. Вопрос только в том, кто ему будет следовать
@mongoose1442 ай бұрын
@@макс-х9п9л корпорация LLC "GOVNOCODE & CO"
@hop1732 ай бұрын
@@-Sergeyтаких выгонят как профнепригодных)
@bondarenko17023 ай бұрын
Спасибо за ролик, оченькласный
@ИльяФоменко-ш2п3 ай бұрын
Спасибо, merionacademy) либо автор сам решил выпустить видео на эта тему, либо прочитал мой комментарий)
@clandast21363 ай бұрын
Хз как можно о S рассказывать без рассказа об акторах. SRP: принцип единственной ответственности каждый программный модуль/класс имеет одну и только одну причину для изменения ( Модуль/класс должен отвечать за одного и только за одного актора. ). Впринципе модуль/класс может делать разные вещи в единном контексте только если причиной для изменения будет единственный актор. Под актором здесь понимается группа, состоящая из одного или нескольких лиц, желающих изменения поведения программного модуля/класса. Авторы не рассказывают об этом и потом новички будут плодить кучу классов. Пусть сами для начала разберутся с SOLID
@DmitryBlack883 ай бұрын
8:30 класс square наследуется от ОЧЕПЯТКИ!!!
@0ladiyaАй бұрын
Ага, а затем на 9:10 в этом же классе нет абстрактного метода get_area().
@alexanderskusnov51192 ай бұрын
Молодцы - реклама [почти] в конце.
@merionacademy2 ай бұрын
Как вы думаете, если исключить рекламу, откуда брать деньги на производство роликов на этом канале? Интересны ваши мысли!
@GexPlayerMD3 ай бұрын
Чистый кот. 😺
@MrGold9113 ай бұрын
Работал когда-то в РУП "БРТПЦ", что на знаке-примере аббревиатур, не очень доступных для быстрого понимания )
@melkiiabziegiz3 ай бұрын
Shape = Figure
@MoLnnn3 ай бұрын
Один из ЛУЧШИХ it кналов на РУССИ, я считаю, что один из лучших в всём мире. Идея для видео - Свяи в БД(o-to-o; m-to-o; m-to-m;)
@poespb3 ай бұрын
SOLID и микросервисы ребята не совместимые. По логике можно сказать, что на базе SOLID сделана идея микросервисов. Ждем ролик про DDD, чтобы, нам легушатам, понять а куда двигаться в этой вашей IT-шечке
@h8cker_3 ай бұрын
Дождался!
@СергейГрин-ш3ъ2 ай бұрын
💥
@thekarenovich2 ай бұрын
Про сравнение GRASP и SOLID 🙏🏼
@harumba3 ай бұрын
Годнота! А можно видео про Бабушку (тьфу, Барбару Лисков). А то Аду Лавлейс все знают...
@ogonichyose2 ай бұрын
Видос классный, душнилам из комментов предлагаю пройти в треды хабра
@sergen52983 ай бұрын
В России разных ИТ-курсов стало больше чем казино в 90-е. )) Видимо очень выгодный бизнес.
@Torbjorn-ph7rt2 ай бұрын
Кто может тот делает, кто не может тот учит, кто не может учить тот руководит. Классика. Ещё говорят, что в периоды упадка реальной экономики расцветает экономика отложенного удовлетворения экономических потребностей, например всякие образовательные курсы итп.
@merionacademy2 ай бұрын
или неожиданный скачок спроса на IT специалистов , которым требуются знания. Спрос - всегда формируют реалии :)
@Winter-Wyvern3 ай бұрын
опачки, новый видосик)
@jcatstreams85502 ай бұрын
Давай про GRASP
@ДаниилШестаков-щ8к2 ай бұрын
8:37 Класс Square у вас унаследован от Shape, а не от Figure
@yuliyao1922 ай бұрын
Привет, классный канал, на 9 минуте небольшая ошибка, наследование от abc не делает класс абстрактным. Попробуйте создать инстанс этого класса, все будет ок. А вот добавление туда декораторов abstractmethod сделает класс абстрактным
@clash_larry2 ай бұрын
давай видео про язык С
@reform38313 ай бұрын
По вашему мнению получается, что в принципе единственной ответственности, вообще не может быть более 1 метода… Несколько я знаю смысл совершенно в другом, а именно что за ответом может обратиться менеджер, директор, финансист. И правильно будет написать несколько классов которые делают отчеты, но для разных направлений. А не просто разделить методы по классам. Этим должно занимать разделение интерфейсов.
@KinoArchuve3 ай бұрын
Я считаю, что нужно создавать отдельные классы для каждого действия допустим для получения данных и для установки в хранилище. Также нужно реализовать паттерн фасад, который управляет доступом к этим классам. Далее, если актеру Бухгалтер нужно получить данные он обращается к фасаду, который в свою очередь провайдит его до класса, выдаеющего эти данные. Если другому актеру, допустим, отдел кадров понадобилось получать как-нибудь данные иначе (Формула изменилась, например), то мы добавляем метод в класс который отвечает за получение данных и также добавляем провайд в класс реализующий фасад и уже этот актор будет взаимодействовать с нужным ему методом. И конечно же к фасаду мы имеем доступ через интерфейсы, для соблюдения полеморфизма) А в видео, по моему личному мнению, есть нарущение SRP, просто потому что Employee, формально, не может посчитать сколько он получит з.п. Если конечно не поразумевался подсчет подсчет оставшихся дянег у клиента
@reform38313 ай бұрын
@@KinoArchuve 1) Хз к чему ваши рассказы про фасад к солиду и моей претензии на SRP. Куча текста не о чем. 2) Как вы собираетесь реализовывать ООП, если вам надо создать объект(Например машину), вы серьезно будете создавать куча классов с машиной и одним методом ? ))) 3) То о чем вы говорите обычно используется для бизнес логики. Привет медиатору которой реализует интерфейс irequest с одним лишь методом handle. 4) И нет как раз таки метод подсчета зарплаты не противоречит, в том же DDD мы описываем ентитям поведение, и вот вы удивитесь в зависимости от сложности объекта и поведений будет много.
@alexey55703 ай бұрын
Даешь чистый код. Да здравствует дядюшка Боб
@ДмитрийАлексеевич-х6и2 ай бұрын
Расскажите, пожалуйста , про Kerberos Голову ломаю, не могу понять Вся надежда на вас 🥹
@МаксимОрлов-х9ы2 ай бұрын
Во 2ом классе метод не переопределен а создан новый. Следовательно 2ой класс не соответствует принципу Барбары и Лисков
@maxschwarzschmied57443 ай бұрын
Использовал бы лучше для примеров Яваскрипт, ну или C# какой-нибудь
@LudoChil3 ай бұрын
Нет никакого Ява скрипта, там буква j это Джей где здесь ты видишь я?
@maxschwarzschmied57443 ай бұрын
@@LudoChil Я из Германии, у нас говорят яваскрипт 🤷♂️
@_fire_strike_23833 ай бұрын
Принципы solid противоречат computer science и оптимизации кода (особенно абстракции и бесконечное дерево наследований). Хоть применение принципов могут быть полезны для чтения кода человеком (хотя лично меня это очень бесит, особенно в багфиксинге, когда ты лазишь по сотням родительских классов, пока не найдешь саму реализацию). Про оптимизацию (особенно в интерпимтируемых языках): огромное количество классов и абстракций увеличивает количество обращений интепретатора (то есть когда мы вызываем метод на энд поинте (последнем классе), интепретатор поэтапно опускается в родительские классы пока не дойдет до самой реализации, а потом также поэтапно поднимает return, тем самым все эти действия замедляют работу программы, тк на каждый такой шаг необходимо как минимум один такт процессора, а в питоне вообще штук десять). А теперь про память: сам solid код очевидно весит больше, и хотя кажется что какая разница 2 килобайта или 5, у нас ведь на компах по 16 гигабайт оперативы, так вот - не забывайте про микроконтроллеры и прочие низкопроизводительные устройства, где каждый байт на счету. Так что из-за вас солидщики у нас лагают игрушки и приходится постоянно обновлять железо.
@KinoArchuve3 ай бұрын
Ну а как поддерживать код в долгую разным разработчикам? Это просто ужасно, когда ты заходишь и видишь, что все в одном файле. А при изменении у тебя валится вся программа и уже тебе, а не компьютеру надо читать все это, чтобы найти ошибку
@_fire_strike_23833 ай бұрын
@@KinoArchuve ну, я же не говорю что надо пользоваться только функциональным программированием, от ооп ни кто не отказывается, да и не обязательно все хранить в одном файле. Я говорю о том что, например в одном классе синглтоне типа "МФУ" можно сделать и методы печати, сканирования, отправка факсом (никто уже ими не пользуется, ну да ладно). То есть все функции (вместе с реализацией) засунуть в один класс, не нужно никаких абстракций и наследований. А если все поля класса называть по нормальному и писать анотации, то все будет и так читабельно-понятно. А если говорить про бесконечные наследования абстракций в разных файлах то это тоже не очень понятно, особенно если тебе надо как-нибудь изменить/дополнить реализацию.
@_fire_strike_23833 ай бұрын
@@KinoArchuveя же не говорю, чтоб все хранить в одном файле, один файл - один смысл или класс. Типа в файле users прописать одноименный класс User со всеми полями и методами с реализацией. А когда тебе надо добавить админ функции, просто добавь миксин Admin с методами админа к этому классу и все. Не надо наследоваться от самого user'a, так будет только сложнее, тк теперь у тебя пользователи будут разными instance и их уже будет сложно сравнивать, складывать или, например, в цикле проходить по пользователям и вызывать админ-метод, и к каждому пользователю писать проверку - зачем это нужно, если саму проверку можно засунуть в миксин. В принципе это будет даже понятнее. А если каждый разработчик будет в своем файле писать релизацию, то как потом все это объединять. А про то что весь код рушиться при изменении какого-то метода, ну так сначала тестируй/дебаж, а уж потом коммить. P.s. Искать (скролить или ctrl + click по методу) реализацию в одном файле намного удобнее, чем ctrl-tab'аться по разным файлам.
@maxlight43212 ай бұрын
Solid это сделка с дьяволом. Ты продаешь оптимизацию и память компьютера за быструю и удобную работу для программистов. Но по сути в 90% случаев люди работают не с игровым движком и не с микроконтроллерами, а перекладывают json’ы, так что оптимизация правда зачастую ненужна
@Torbjorn-ph7rt2 ай бұрын
Так в микроконтроллерах вообще без ООП пишут. Тупо функция main и из неё куча вызовов других функций. если что я про ардуинки и стмы с прошивками на си, за микропитон не скажу, но там вроде тоже из ООП только модули в качестве классов.
@Aleksandr37rus3 ай бұрын
То чувство когда примеры из жизни непонятные, а когда пишешь код проще, я уже в матрице 😅
@hoopengo22893 ай бұрын
8:48 - Shape где)
@orazjanov773 ай бұрын
04:46 речь про инкапсуляцию идёт, а не про абстракцию
@LudoChil3 ай бұрын
Советую диктору произносить английские слова без попытки произнести без акцента - получаетмя полностью наоборот и режет слух. А так видео очень информативно!
@alexanderskusnov51192 ай бұрын
4:41 Два раза повторили Class One.
@4TheGames3 ай бұрын
Абстракция, как услышал не понял о чем речь, мне доступно, инкапсуляция, наследование и полиморфизм😂
@slashfast3 ай бұрын
16 минут годноты
@JenechekDvАй бұрын
Роберт Мартин и его брат Джордж - оба упоротые, но каждый на своём.
@pashkiewich3 ай бұрын
Но ведь это отсылка на Metal Gear Solid
@huanglee4483 ай бұрын
46 cекунд назад ура ура SOLID ДАА БАБУШКА
@PSP-uf5fw3 ай бұрын
ебать, это что за марафон годноты на канале мерион ?
@vael65553 ай бұрын
Принципы созданы, чтобы их нарушать
@MonoramenАй бұрын
Он систематизировал и объединил их, но никак не написал ибо принципы сформулированы были до него.
@torburgmax3 ай бұрын
а точно ооп это про классы, а не про типы?
@mitruslatovous63 ай бұрын
8:38 Почему написано Regtangle?
@tolevich3 ай бұрын
меня больше смущает, что говорят "наследуется от FIgure", а на деле от Shape, который вообще не объявлен
@valeronjack84493 ай бұрын
спасибо
@ЕхНавык3 ай бұрын
А где в веб применяется солид?
@LudoChil3 ай бұрын
На фуллстек проектах конечно же
@bregeakАй бұрын
ДАЁШЬ ЧИСТЫЙ КОД
@sl1pstr1m6 күн бұрын
даешь чистый код
@gyosttsyrenov27673 ай бұрын
Я мечтаю
@KinoArchuve3 ай бұрын
Так это же перезказ книги "Чистая архитектура" только со своими примерами и я не уверен, что все они верные
@ЛераОдеждова-н1и2 ай бұрын
Думаю принцыпы солид придуманы только чтоб спрашивать на собеседовании. Человек на практике достаточно быстро разбирается зачем абстракции. Через 5 рефакторингов понимает как лучше организовывать код. А эта теория - сложная для понимания херня. Которую можно понять только после того как сам на практике к таким же выводам. А потом понял что оказывается у этого есть названия
@CultureOfMan3 ай бұрын
Алеееееее. Мне нужна помощь в разработке сайта. Есть тематический чат у кого , или автор мне поможет?
@merionacademy3 ай бұрын
Пройдите на курс про фронтенд разработке и дело в шляпе 🙂
@CultureOfMan3 ай бұрын
@@merionacademy , мне нужен именно полноценный гайд: дизайн, фронт и бэк на ноде, деплой на хост( админ панель, статистика) есть такой? Может у вас есть чат со специалистами? Этакий форум? 🥺
@Михазагрздин3 ай бұрын
254
@shining_intellegence3 ай бұрын
Солит? Это про кого-то из Питера?
@ilyuwkaaa3 ай бұрын
Ну конечно...
@tihon49793 ай бұрын
С принципом подстановки Барбары Лисков полный провал.
@realmanproject7529Ай бұрын
cleam code
@subdmndline3 ай бұрын
perviy
@roflanEblan3 ай бұрын
изучать солид и ооп с помощью питона...
@Alexander-vi9mg3 ай бұрын
Забыли упомянуть, что отказ от этих принципов может увеличить скорость работы до 20 раз
@harumba3 ай бұрын
😂
@alexandralikin38303 ай бұрын
еба*ь все в програме в процедуре, не вникай чел
@MrShnaiderTV2 ай бұрын
И на столько же замедлить скорость разработки. Достойно🗿
@yfullstackhub27 күн бұрын
Для небольших проектов, естественно, лучше отказаться от подобных вещей. Все эти принципы и архитектурные подходы созданы, чтобы замедлять рост сложности поддержки приложений со временем его роста. Если рост не намечается, то и смысл от всех этих прикольных аббревиатур и подходов пропадает. Всё относительно и зависит от проекта. Увы, нету серебрянной пули
@WounderVaflel3 ай бұрын
SOLID не актуален, если ты функциональщик
@mikep5413 ай бұрын
SRP актуален, т.к. одна ф-ция выполняет своё одно действие. Может ещё кто добавит? Мне было бы тоже интересно.
@mitruslatovous63 ай бұрын
Таймкоды? Нее, нафик... (
@merionacademy3 ай бұрын
Вот мы так же считаем!
@АртурБадалов-ж1цАй бұрын
невозможно нормально смотреть, подача на уровне аутиста, рофл лол кек и тд, лучше бы вместо мемов углубились бы в тему, на кеки чебуреки уходит половина видео , на что я трачу свое время?
@merionacademyАй бұрын
Как думаете, корректно ли сравнивать людей с аутистами по причине того, что важи ожидания не совпали с просматриваемым контентом?
@DrumYum3 ай бұрын
Это слишком спорные и сложные вещи для такого формата, тем более с притянутым за уши Python. Редкое видео, которое не зашло совсем :(
@uipo11223 ай бұрын
кал
@merionacademy3 ай бұрын
орийность черешни 50-56 ккал на 100 г продукта!
@uipo11223 ай бұрын
@@merionacademy от которой мы дрищем жидким поносом уже 30 лет всей индустрией
@merionacademy3 ай бұрын
вам просто чуть поменьше черешни надо употреблять, а еще советуем не смешивать с хинкалями, это гарантировано взрывная сразу же