Введение в транзакции (Владимир Кузнецов)

Поделиться
HTML-код
  • Опубликовано: 2 дек 2019
  • С этого видео мы начинаем новый цикл, посвященный вопросам совместной работы прикладных систем и баз данных. Мы будем обсуждать проблемы, при этом возникающие и различный инструментарий, предоставляемый базами данных для их решения. Мы рассмотрим "феномены" или "аномалии" при работе в конкурентной среде. ACID и BASE транзакции. Уровни изоляции транзакций
    Предыдущий цикл лекций: • Базы данных для програ...
    Курсы GRASP and GoF Design patterns Advanced On-line Course - bit.ly/2Y1Kk30
    Курсы JAVA - bit.ly/2rJXFka
    Курсы C#/.NET - bit.ly/35LbEoG
    Курсы ANDROID С НУЛЯ - bit.ly/34BHvIg
    Курсы Automation QA (Java) - bit.ly/2rICOhg
    Курсы FRONT-END - bit.ly/2OZBZZC
    Курсы UI/UX дизайна - bit.ly/34DHiV7
    Курсы WordPress Developer - bit.ly/2LdgN0Z
    Сайт Foxminded: bit.ly/2R7S2qN
    Foxminded в ФБ: / foxmindedco
    FoxmindEd в Instagram: / foxminded.ua
    Мой Telegram: t.me/nemchinskiyOnBusiness
    Мой блог: www.nemchinsky.me

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

  • @eugenstakhursky9604
    @eugenstakhursky9604 4 года назад +37

    Сергей был прав - на этом канале есть люди которым это интересно, спасибо Владимир! С удовольствием посмотрю продолжение!

  • @dmChanal1
    @dmChanal1 4 года назад +28

    блин, у человека талант классно рассказывать. давайте ему эфир почаще

  • @GreatNorthernWar1700
    @GreatNorthernWar1700 4 года назад +17

    Слишком хороший контент) Даже не верится что он бесплатный)))

  • @pavelkostetskiy7561
    @pavelkostetskiy7561 4 года назад +7

    ого, не ожидал настолько качественного контента прямо с утра) спасибо)

  • @rubik6169
    @rubik6169 4 года назад +27

    Замечательные темы поднимаете!
    Буду с нетерпением ждать продолжения

  • @romantsyupryk3009
    @romantsyupryk3009 4 года назад +3

    Жду вашего следующего видео. Спасибо вам.

  • @user-bf5ii1po1b
    @user-bf5ii1po1b 4 года назад +1

    Благодрю! На редкость четкая и понятная способность говорить о сложном доступно и по существу. Еще! :)

  • @paulbolhar921
    @paulbolhar921 4 года назад

    Жестка, очень вводно. Ждём продолжения)

  • @olehhusiev4271
    @olehhusiev4271 2 года назад +1

    Думаю где ж я его видел :) а, точно, соседний кабинет на военной 2, были времена :)

  • @andreekzz
    @andreekzz 4 года назад

    Нужно больше информации. Чем быстрее тем лучше. Спасибо

  • @legomonsters6888
    @legomonsters6888 4 года назад

    Да, интересно я как раз сотрудник по работе с данными, так что послушаю с удовольствием✌️😉

  • @EshkinKot1980
    @EshkinKot1980 4 года назад

    Сергей, огромное спасибо за ролики с Владимиром. Как-то пропустил появление роликов с ним, но зашел на канал и увидел целый плейлист, сразу настроение стало лучше.

  • @romantsyupryk3009
    @romantsyupryk3009 4 года назад

    Большое вам спасибо.

  • @egos_ua
    @egos_ua 3 года назад

    уже на половине видео неудержался и поставил лайк. Найс, спасибо

  • @thomwhite4565
    @thomwhite4565 4 года назад

    Круто! Надо будет все видосы по бд у вас посмотреть! Благодарю

  • @Pewdew
    @Pewdew 4 года назад +4

    Дядя Сережа, оч интересно, зови дяядю Вову еще!)

  • @user-oq4vx3jr6q
    @user-oq4vx3jr6q 4 года назад

    Сергей обычно говорит "Начнем от Адама и Евы". Так что данный ролик - именно о них :) Ждем продолжения...

  • @vladymyrkuznietsov8815
    @vladymyrkuznietsov8815 4 года назад +13

    Блин, заяц с барабаном... :)

  • @anatolyx1151
    @anatolyx1151 4 года назад

    Мужик, по чаще бы тебя видеть.

  • @sergem2794
    @sergem2794 4 года назад

    Агонь. Ещо!

  • @yaushev_s
    @yaushev_s 4 года назад

    Спасибо!

  • @user-tb7yn5yy3g
    @user-tb7yn5yy3g 4 года назад +1

    Дрель на фоне круто зашла 😁

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  4 года назад

      да этот человек-дрель вообще достал

  • @antonzernov3702
    @antonzernov3702 4 года назад +1

    Потрясающая мотивация делать видео)) бухать с Сергеем)))

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  4 года назад +1

      ага. В прошлый раз мы с вовкой выпили практически по литру. Я - виски, он - текилы... Так что ну его нахер такие пьянки

    • @antonzernov3702
      @antonzernov3702 4 года назад

      Надо же, мне тоже виски нравится, хоть что-то общее с Java разработчиком есть)))

  • @RusFarFaz
    @RusFarFaz 4 года назад

    Владимир, в каком-то из видео вы ответили мне в комментарии и посоветовали книгу Клеппмана "Высоконагруженные системы", сейчас ее читаю, книга просто супер! Какие книги вы еще посоветуете читать? Спасибо

  • @Livesms
    @Livesms 4 года назад +16

    Просьба/совет - если микрофон на столе (не петличка) то меньше стучать по столу ))) А то выходит бух-бух... 4:00

    • @me_000_xXx
      @me_000_xXx 4 года назад +1

      ну или делать бух-бух-бух ритмично и в такт)))

    • @Dmittry
      @Dmittry 4 года назад +2

      Это музыкальное сопровождение. Чтобы ютуб не забанил за авторские права.

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 4 года назад +3

      Учтем в следующий раз :)

  • @Gook7Angel
    @Gook7Angel 3 года назад

    Все круто и стул и перфоратор

  • @ni55an
    @ni55an 4 года назад

    Здесь Владимир бодрее, чем в предыдущих выпусках про БД

  • @mykolachadovych7863
    @mykolachadovych7863 4 года назад

    Спасибо

  • @DimaVort
    @DimaVort 4 года назад

    Уделите пожалуйста в следующих выпусках внимание блокировкам. Их типы и простые наглядные примеры с объяснениями. А также взаимоблокировки. Спасибо.

  • @dsmenov
    @dsmenov 3 года назад

    Сразу видно, что вы в Люксофт работали.
    Слово в слово, это же спрашивают там на собеседовании.

  • @sayhellotoroy
    @sayhellotoroy 4 года назад

    :) посмотрим что из этого выйдет. Речь идет о read commit?

  • @Tiertey
    @Tiertey 4 года назад

    Ну вот почему сразу не рассказать ..., шутка. :) Буду ждать продолжения, очень интересно :)

  • @eugenemorozov9463
    @eugenemorozov9463 4 года назад

    Вспомнилась foxpro со своим Set exclusive on

  • @Aticinsane
    @Aticinsane 4 года назад +2

    Спасибо! Жду продолжение. Пожелания: скрипящий стул очень отвлекает + не хватает петличного микрофона.

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  4 года назад

      микрофон должен скоро приехать. ждем

  • @gods3760
    @gods3760 4 года назад

    Если много инстансов одного приложения, то активный скажем пишет в поле БД что конкретный счет блокирован. Другой инстанс приложения читая из БД видит, что счет блокирован и не обрабатывает операцию,только разрешенные поля при блокировки.Владимир, верно понял суть?

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 4 года назад

      Да, это один из вариантов. В реальности чуть сложнее. Обычно учет ведется по паттерну, известному нынче как Event Sourcing, а в 13 веке - как Double-entry bookkeeping :) Идея в том, что у нас есть счет, как сущность. На нем может быть остаток на начало цикла (дня). И лог (Leger) в котором записываются все транзакции: дебет-кредит. И реальный остаток на счету - он вычисляется, как сумма транзакций, в которых он принимает участие. Беда в том, что когда при проведении нашей операции мы сначала вычисляем остаток и на основе этого принимаем решение - можно ли проводить операцию - кто-то, кто быстрее нас, может провести свою операцию (например, снять все деньги). В результате мы можем уйти в минус. Это очень паскудный "феномен", называется write skew, который пробивает почти все уровни изоляции (об этом - позднее). Как вариант - перед началом операции мы проверяем счет, с которого снимаем, на предмет блокировки. Если все ок - то блочим его для всех других пользователей. По окончании операции - не забываем снимать блок.

    • @gods3760
      @gods3760 4 года назад

      @@vladymyrkuznietsov8815 Спасибо, ждем следующей части)

  • @user-ty7ln9dz3k
    @user-ty7ln9dz3k 4 года назад

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

  • @oleksandrkireiev7628
    @oleksandrkireiev7628 4 года назад +1

    Первый )) Уже смотрю и лайк сходу. Начало по интонации звучит как признание в кругу анонимных алкоголиков - меня зовут ... и я разработчик программного обеспечения )

    • @oleksandrkireiev7628
      @oleksandrkireiev7628 4 года назад

      @@AlekseiKazantcev Чёй-то ?

    • @AlekseiKazantcev
      @AlekseiKazantcev 4 года назад

      @@oleksandrkireiev7628
      Ты не первый кстати, автор видео первый, ти двоечник

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 4 года назад +1

      В прошлом цикле я уже покаялся: ruclips.net/video/MgQO5cRUNM0/видео.html :)

    • @oleksandrkireiev7628
      @oleksandrkireiev7628 4 года назад

      @@vladymyrkuznietsov8815 точно - помню же когда то уже такое видел)

  • @piasteroluywerty5905
    @piasteroluywerty5905 4 года назад

    Ничего не понятно но ОООчень интересно.

  • @Vittallii
    @Vittallii 4 года назад

    как всегда, на самом интрересном месте... когда след. серия?

  • @ms_shifu7047
    @ms_shifu7047 4 года назад

    думал будет опять видос про notepad++ и для чего он нужен, ан нет, уже что-то интересное.

  • @-boiadeiro-
    @-boiadeiro- 4 года назад

    забавный пример)

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

    Здравствуйте всем у меня вопрос.
    Я попалнял тройку на 3 месяца прикладывал тройку экране спрашивает попалнят я прикладываю сбер карту снимают деньги а потом отказ транзакции и я поехал дальше ждала 2 дня деньги не возвращаются. .И начинается футбольный мячик отправляют банк из банка транспортной компании итоге жду до сих пор кто знает куда мне подъехать и позвонить.😶😶‍🌫️

  • @pashaev81
    @pashaev81 4 года назад +3

    Как-то информация, поступающая от человека в майке с надписью "Cheat" воспринимается неоднозначно 😁

    • @stan5214
      @stan5214 4 года назад +1

      На картинке к видео Сергей ☺️

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 4 года назад +1

      А это именно то, что мы делаем: мы продаем то, что у нас есть, типа память, дисковое пространство, процессорное время за то, что нам надо, и пытаемся намухлевать на курсе ;)

  • @MaksUsanin
    @MaksUsanin 3 года назад

    Я уже думал он скажет "Здраствуйте это все еще Сергей Немчинский" ))

  • @HowItWorks
    @HowItWorks 4 года назад

    Как то очень давно хотел устроится в один банк программистом. Пришел на собеседование. Задали ряд вопросов. Ну вроде норм. Потом на последок спросили "Сколько транзакций в день ты выполняешь?". Я ушел и больше никогда не ходил на собеседования в банки.

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  4 года назад

      ахахахаха

    • @tolik8
      @tolik8 3 года назад

      Я юмора не понял... что не так с вопросом? И почему больше не ходил в банки?

  • @alenka_mak
    @alenka_mak 4 года назад +2

    тема интереснейшая. Но изложение и картинки - на троечку :-(

    • @horlonangel
      @horlonangel 4 года назад +1

      Я бы сказал, что и на троечку не тянет...

  • @dixydo
    @dixydo 4 года назад

    Да? Да? Да!

  • @ruslangr4209
    @ruslangr4209 4 года назад +3

    По столу бить не надо

  • @andriihromov2942
    @andriihromov2942 4 года назад +4

    А что бухаете?) Можно третьим буду?

  • @RomaxSinergy
    @RomaxSinergy 4 года назад +1

    *3:28** Смотреть отсюда*

  • @user-yt6et5nw6z
    @user-yt6et5nw6z 4 года назад

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

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 4 года назад

      Следующее будет тоже "разогревочное". А вот начиная с 4-й пойдет технопорно, типа различие 2PL и MVCC :)

  • @user-qg1kh9on9e
    @user-qg1kh9on9e 2 года назад

    Есть ощущение, что автор для храбрости, возможно, таки принял на грудь пару стопочек 🤏😜

  • @MrDexis01
    @MrDexis01 4 года назад

    Можно чуть покороче, а то прям как СантаБарбара)

  • @amr3184
    @amr3184 4 года назад

    1:51 У меня просьба к Владимиру не бейте по столу , не приятно слушать вашу речь при шумах скрипящего стула на котором вы сидите и ДАЖЕ прикосновение рук к столу довольно хорошо слышно и это *БОЛЬШЕ* *ВСЕГО* *БЕСИТ!* 12:41 кто то сверлить начал.
    По поводу баз данных и взаимодействия мастер сервера между бд и клиентом довольно интересная тематика.

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 4 года назад +1

      Стул и меня бесит, в следующий раз попрошу табуретку :) А со столом лажа вышла, да... Микрофон очень стук усилил...

  • @yuriyfedoryshyn5206
    @yuriyfedoryshyn5206 4 года назад

    Дякую! З поверненням!!!

  • @Igor_user
    @Igor_user 4 года назад +2

    5:43 - можем параллельно обработать запрос, 7:04 - не можем параллельно обработать запрос. Так можем или не можем?
    9:27 Владимир Кузнецов начал просто читать с экрана ноута.

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 4 года назад +3

      В первом случае можем, потому что операции над разными счетами не связаны. Во втором - не можем, потому что в этом случае счет один. Можем нарушить констрейнт и снять больше ,чем есть на счету.
      И читать Владимир начал раньше раньше, гораздо раньше чем 9:27 :)

    • @lexaznaurov5205
      @lexaznaurov5205 4 года назад

      пусть хоть всю лекцию читает. где записаться в фанклуб?) 0_0

    • @DimaVort
      @DimaVort 4 года назад

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

  • @user-gw6df6ns7e
    @user-gw6df6ns7e 4 года назад

    Володя как будто после пьянки суровой.

  • @user-vi1hg5ic5d
    @user-vi1hg5ic5d 2 года назад

    На Верку сердючку похож

  • @vladislavkuzmenko4005
    @vladislavkuzmenko4005 4 года назад

    Тема очень интересная, но о простом как-то затянуто и сложно получилось... Еще, уровни изоляции транзакций в ms sql server и postgresql схожи по названию, но у postgresql, например, на serializable криво работает. А также, если Вам надо сделать, например, отчёт Анализ счёта, а у Вас в регистрах бухучета n-десятков миллионов записей, то решение разработать отчёт в приложении будет провально, т.е., проверку того же сальдо по счету клиента надо перекладывать на скуль, как и все громоздкие операции, просто потому, что у скуля это займет секунды или их доли, а Ваша логика приложения будет делать перебор, который займет часы....

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 4 года назад

      Ну полностью serializable сделать сложно, тот же Oracle его не дает (типа, хотите хендлить skew - юзайте блокировки сами, благо Oracle дает такую возможность). Собсно, 2PL c как-бы предикативными локами дает только SQL Server и DB2... Постргесс до 9.1 хендлил serializable как и все базы с MVCC... Только может, чуть меньше этого стеснялся :) И, кстати, именно он сейчас дает SSI - аналог 2PL c предикативными локами только на оптимистичных локах. Его только в 2008 представили... Свежачок :)

    • @vladislavkuzmenko4005
      @vladislavkuzmenko4005 4 года назад

      @@vladymyrkuznietsov8815 Как бы да, только в постгресе старые версии строк будут удаляться по факту признания их ненужными и mvcc в чистом виде мы не получим. Это ясно. И именно по этому serializable работает "криво" в понимании/сравнении с ms sql. Типа мы и умные и красивые. А по факту, мы ни того не другого не достигаем и получаем всякие артефакты... Изначально ремарка была о том, что немного затянуто и сложно, а позже ниточка к способу реализации проверок через логику базы данных со сравнением скорости выполнения данной операции через приложение. Ограничения, которые Вы описали - понятны.

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 4 года назад

      @@vladislavkuzmenko4005 "А по факту, мы ни того не другого не достигаем и получаем всякие артефакты..." Ну почему же не получаем-то? Уровень изоляции Snapshot, который принес MVCC не матчится полностью на serializable из-за write skew. Это можно поправить либо явными локами как предлагает Orecle, либо как это делает тот же MySQL, неявными шаред локами... SSI в постгрессе вполне serializable. Там, правда, иногда ложные срабатывания бывают, но вроде как не так часто, чтобы это стало проблемой...

    • @vladislavkuzmenko4005
      @vladislavkuzmenko4005 4 года назад

      @@vladymyrkuznietsov8815 взяли ms sql. Используем блокировки или контроль версий для конкретной транзакции. Оговорили, настроили бл, погнали работать. Контроль версий не предполагает блокировок как таковых, за исключением операций восстановления. Берём постгрес. Вам необходимо обновить две трети таблицы на миллион записей. Вы открываете транзакцию в ser. В этот момент я обновляю те записи, до которых Вы не дошли. Транзакция у Вас откатывается. А где тут Лок на диапазон ключей?

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 4 года назад

      @@vladislavkuzmenko4005 Хе-хе, так в этом то и идея оптимистической блокировки - мы откатываем транзакцию. И есть огромное количество девов, которые не обрабатывают этот вполне валидный кейс :) Я с Вами согласен, мне тоже как-то понятнее подход sql server, но там дедлок поймать легче легкого :)

  • @user-uc7nw2np4p
    @user-uc7nw2np4p 4 года назад

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

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  4 года назад

      уже исправили :) Купили пушку

  • @horlonangel
    @horlonangel 4 года назад

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

  • @VaeV1ct1s
    @VaeV1ct1s Год назад

    Типичный ютуб. Гуглю уровни изоляции, получаю ЭТО. Какие то мычания, вас невозможно слушать. Пример никакой. Что значит синий прямоугольник слева(90)? То что остаётся в банке на счету магазина? Но тогда почему там 90, если товар стоит 100? ОК, допустим это значит остаток на счёте. Тогда что значчит прямоугольник слева? Опять остаток на счёте? допустим. Тогда почему, после реджекта, нет красного прямоугольника справа? На счету же осталось 50, они не списались. логика напрочь отсутствует

  • @user-wt1tp2ff3h
    @user-wt1tp2ff3h 3 года назад

    Все видео на зулип дергался)))

  • @user-oi6bz6qo2i
    @user-oi6bz6qo2i 4 года назад

    всё хорошо, но тяжело слушать стук по столу

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  4 года назад

      в следующий раз поставлю пушку :)

  • @user-uh2tb1iq4y
    @user-uh2tb1iq4y 4 года назад

    вы будете смеяться но инфографика не совсем информативна.

  • @user-bj7ic1lh9t
    @user-bj7ic1lh9t 3 года назад

    Пол ролика трендёжа ниочём

  • @RTDox
    @RTDox 4 года назад +2

    Почему у тим-лида на видео зубы чёрные? Он мало зарабатывает?

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 4 года назад +3

      пей по 6 чашек кофе в день, и у тебя такие будут ;)

  • @LiffeApp
    @LiffeApp 4 года назад

    Какой то бред. Не смотрите . вода как у Портнягина

  • @dmitryb530
    @dmitryb530 3 года назад

    Почти три минуты трепа не по теме. Никого не волнует кто ты. Волнует что говоришь

  • @Erwin_Anderson
    @Erwin_Anderson 4 года назад

    это очень плохая идея так делить видео.

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 4 года назад

      А какая хорошая?

    • @Erwin_Anderson
      @Erwin_Anderson 4 года назад +2

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

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 4 года назад

      @@Erwin_Anderson Хм... А многие жалуются, что большой кусок труднее смотреть, и если честно, его трудно писать... Возможно, по окончанию курса надо будет собрать все в один длинный ролик.

    • @Erwin_Anderson
      @Erwin_Anderson 4 года назад +1

      ​@@vladymyrkuznietsov8815 Лучше всего плэйлистом, когда видео делят тему на подразделы и проще по ним навигироваться и в поиске они больше запросов по теме охватят. А чтобы видео было короче лучше поменьше левой болтовни и более лаконично, я в начале половину видео пролистал. Это вообще большая проблема всевозможных туторов на русском всегда больше такой болтовни, тупых шуточек, хуже структура повествования, особенно всякие вебинары на 3 часа где инфы на 10 минутный видосик на инглише. У буржуев все четко по делу с инфографикой и примерами.

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 4 года назад

      ​@@Erwin_Anderson Не всем такое заходит. Вот пример ролика без петросянства и одним логическим куском: ruclips.net/video/TQAzmpdwJGA/видео.html
      Я на него потратил времени как на все остальные, вместе взятые. 2 раза переписывал. Как мы можем понять он вообще "не зашел". Хотя он очень актуален. Я могу винить автора и формат. Автора мне менять сложно, проще формат :)

  • @sergeysharov1331
    @sergeysharov1331 4 года назад

    13 минут пустословия. Зря потраченное время.

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  4 года назад +2

      это вводная серия. Не все так хорошо разбираются в предмете, как вы