Объектно ориентированное программирование

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 976

  • @BagiM3
    @BagiM3 6 років тому +319

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

    • @ДанилЛевковский-ц8г
      @ДанилЛевковский-ц8г 2 роки тому +11

      Спасибо за совет

    • @misha2993
      @misha2993 Рік тому +2

      Согласен

    • @PanchodasPien
      @PanchodasPien Рік тому

      чертовски верно

    • @denisyusupov6528
      @denisyusupov6528 Рік тому +2

      Согласен, чел. Мне удобнее пихать всё в функции и мне всё равно что там сейчас модно.

    • @vladimirkorshunov7734
      @vladimirkorshunov7734 Рік тому +2

      А я немного дополню вас.
      При выборе подходов и написании кода помните что то что вы пишите, будет потом читаться в том числе и людьми, в том числе и вами. Так что не ленитесь "красиво" оформлять ваш код. (Если ещё и комментарии будут - то вообще супер)
      И старайтесь при выборе подходов и парадигм так же обращать внимание на распространенность своего выбора.
      Пример: круто если вы можете написать игровой движок на brainf#ck, но это будет бесполезно, т.к. кроме вас никто его не поймёт.

  • @Slakimil
    @Slakimil 6 років тому +116

    Как здорово, что ролики Вина смотрят выпускники MIT. А еще они пишут комменты и делятся своими знаниями.

  • @СергейКондранин
    @СергейКондранин 4 роки тому +92

    У нас есть выбор:
    Написать за 100 минут через ООП код, который будет на одну операцию тратить 100 мс времени.
    Либо мы можем написать за 250 минут через функциональное программирование код, который будет на одну операцию тратить 80 мс времени.
    Может, конечно, написать и линейный код, за 400 минут, но он будет на одну операцию тратить всего 60мс времени.
    А можно упороться и написать код через прямое обращение к процессору и памяти, потратив на это 1000 минут, но код будет отрабатываться за 45 мс.

    • @smilk1000
      @smilk1000 2 роки тому +26

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

    • @OMRKiruha
      @OMRKiruha 2 роки тому +17

      А теперь умножь на количество запусков кода и получишь кривые оптимального выбора языка и парадигмы программирования

    • @fatoldhikki4837
      @fatoldhikki4837 Рік тому +1

      @@smilk1000 именно поэтому 1с постоянно в каком-то месте сломана? Тип зпачем писать хорошо, когда за минуты можно понатыкать костылей?

    • @anatoliyv5607
      @anatoliyv5607 Рік тому +1

      ошибок больше без ооп

    • @anatoliyv5607
      @anatoliyv5607 Рік тому +1

      @@fatoldhikki4837 1 с это сплошной костыль сама по себе

  • @GAVVVR
    @GAVVVR 6 років тому +179

    Реклама на UA-cam предлагает курсы по Питону перед просмотром этого видео :D

  • @demiurg999
    @demiurg999 6 років тому +10

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

  • @semptra6196
    @semptra6196 6 років тому +61

    Все, что было сказано относительно производительности, справедливо по отношению к критическим по производительности же приложениям. Что не говори, а писать объектный код (в больших проектах) быстрее и удобнее для программистов, что в сегодняшних реалиях более актуально чем производительность железа. Мы написали неоптимизированную игру на юнити и она тормозит? Окей, завысим требования и проблемы отпадут

    • @ВасилийГолубцов-е8г
      @ВасилийГолубцов-е8г 6 років тому +8

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

    • @sir.Geronis
      @sir.Geronis 6 років тому +5

      Василий Голубцов
      Докупать оборудование вечно нельзя. Дешевле писать сразу код без лишнего оверхеда.

    • @globalpower6967
      @globalpower6967 6 років тому +12

      Евгений Витальевич
      Да что ты, а у ведущих мировых гигантов получается, а ты так и пиши без лишнего оверхеда, ты же ГЕНИЙ, а они глупые и богатые, но это такое, они же все равно не чета такому ГЕНИЮ, работающему за печенюшки.

    • @vpzbavmbiibjpjc
      @vpzbavmbiibjpjc 5 років тому +29

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

    • @Ravarnit
      @Ravarnit Рік тому +1

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

  • @aleksandryushka9571
    @aleksandryushka9571 2 роки тому +3

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

  • @lyubovs2242
    @lyubovs2242 Рік тому

    Спасибо, до технической части ещё рано, но суть наконец-то до меня дошла👍

  • @Ggagulik1997
    @Ggagulik1997 5 років тому +6

    После 15 минуты поставил лайк . это не из того что ты сказал в начале . А за то что ты очень подробно и понятно обясняешь вся суть ооп . я блогодарень тебе за видоси . И ставлю подписку .

  • @musicits_fun
    @musicits_fun 5 років тому +2

    Я пожалуй оставлю эти умные слова здесь: Трудоемкость, MVP, окупаемость, скорость, повышение высокоуровневости языка, недостаток высококвалифицированных кадров, упрощение ...,

  • @ignatcolor
    @ignatcolor 5 років тому +5

    Огромное спасибо за видео! Я ни фига не программист, но посмотрел (послушал) с большим интересом. Звук, видеоряд, подача информации - всё четко! Спасиб!

  • @ВладимирВоробьев-е6о

    Лет 10 назад стек-трейс программ юзающих ООП-библиотеки был глубиной до 15. Это казалось очень много.
    Нынче все стараются использовать Unity Container, и в такой программе стек-терейс глубиной 100-150. При том что программа делает то же самое.

  • @TheUV58
    @TheUV58 3 роки тому +39

    про ООП не согласен - это парадигма более высокого уровня, чем считать биты на асме. С развитием систем, устойчивость к ошибкам (любым и прежде всего архитектурным) начинает преобладать перед производительностью. Тоже самое возможность масштабирования и изменения. Если ты считаешь биты и такты - используй асм. Но попробуй написать на нём например браузер (как просто пример), или более сложный - движок для анреала. Это всё мне напоминает старые-добрые 80-90ее , когда под каждую видеокарту в каждой игре нужно было устанавливать драйвера для именно этой игры и именно этой видеокарты - никаких абстракций, всё оптимально. Но потом появился ДиректХ и драйвера под Уиндовс :) У ООП есть издержки, но зачем сравнивать конструирование космического корабля и особенности производства гаек и болтов - это разный уровень - это связано, но это разный уровень.

    • @princessmary5556
      @princessmary5556 Рік тому

      Какие именно издержки есть у ооп?

    • @kosiak10851
      @kosiak10851 Рік тому

      @@princessmary5556 1) хранение указателя на таблицу виртуальных функций в каждом объекте абстрактного класса - самое очевидное. 2)Полиморфизм рушит предсказания переходов в процессоре.
      Ещё, я бы сказал, передача неявного this во все методы, но на это мне возразят "а как же иначе". Справедливо, в некоторые функции в процедурном стиле всё равно пришлось бы передавать указатель. Но ведь если код в процедурном стиле, то и нет необходимости столько процедур привязывать к объектам, было бы больше глобальных переменных и меньше параметров, передаваемых туда-сюда по вызовам.

  • @nekitsan3837
    @nekitsan3837 6 років тому +7

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

  • @ICxemI
    @ICxemI 6 років тому +3

    Лучшее по ООП на UA-cam, красиво делаешь, Win! Спасибо! Жду новой годноты, а пока пошел прокачивать себя, всем пис V

  • @thank_you_from_UA
    @thank_you_from_UA 3 роки тому +2

    Спасибо большое за твою работу. И столь полезную информацию:)

  • @IgorSukhinin777
    @IgorSukhinin777 6 років тому +15

    Основательный и методичный подход к архитектуре кодига. Я такие почти не встречаю, потому большущий респект автору :)

  • @mantus3427
    @mantus3427 6 років тому +1

    С годами его видосы становятся все лучше и лучше :D

  • @rinatsandyans8258
    @rinatsandyans8258 6 років тому +12

    JIT берёт на себя эти проблемы с КЭШ и размешает всё в куче в следствии чего все данные в нём немного по другому реагируют на разные условия отправки в КЭШ, а также есть разные способы перегрузки данных к слову об оптимизации.

  • @suzanashaula9233
    @suzanashaula9233 6 років тому +2

    отличнейшее видео и мораль про использование ООП хороша! спасибо, это было интересно :)

  • @s0nerik
    @s0nerik 6 років тому +103

    13:10 "Код не должен быть читабельным..." - на этом моменте поставил диз. Доставались мне проекты после программистов с таким майндсетом и сказать ничего положительного о таком опыте не могу.

    • @ФедорАргунов-р3я
      @ФедорАргунов-р3я 6 років тому +1

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

    • @kannsky8812
      @kannsky8812 4 роки тому +1

      Бдя, жиза.

  • @ЕкатеринаБулатова-щ5ф

    Было интересно и полезно. Спасибо

  • @uf8398
    @uf8398 6 років тому +3

    Очень неплохо, по напрягает постоянная мысль о схожести с каном Sorax )
    Всё равно смотреть приятно. Лайк

  • @0cerjoxrst5o1s5n5
    @0cerjoxrst5o1s5n5 Рік тому +1

    Все посмотрел ничего не понял но очень интересно)))
    Пайду след. Видео смотреть с этого канала

  • @aleksandrsolodov2848
    @aleksandrsolodov2848 6 років тому +317

    "Код не должен быть красивым и читаемым" - чувак, чо за хрень? Код пишется для людей в первую очередь, почему-то никто не использует машинный код для создания интерфейсов на WinAPI, даже от этих апи уже как-то убегают.

    • @wndtn
      @wndtn  6 років тому +45

      Зачем ты лайкаешь свой комментарий? Из-за неуверенности в том, что ты говоришь и попытках привлечь единомышленников к твоему мнению, чтобы сработал стадный инстинкт, и люди стали лайкать то, что уже кто-то лайкнул?
      А если серьезно, то все дело в компромиссах:
      - делаешь хуже для cpu, но лучше для человека
      - делаешь хуже для человека, но лучше для cpu
      Мне, например, не нужны языки с синтаксических сахаром. Я бы работал напрямую с ISA, но это слишком непрактично, поэтому я беру Си, мне хватит. От задачи, к задаче.

    • @aleksandrsolodov2848
      @aleksandrsolodov2848 6 років тому +77

      > Зачем ты лайкаешь свой комментарий?
      На случай, если это влияет на ранжирование комментариев. Бывает, что внизу идет сотня комментов без лайков, выше десяток комментов с единицами и наверху самый жир. Это увеличивает вероятность того, что он вообще будет хоть кем-то прочитан. Ну и да, эффект разбитого окна, стадное чувство работает.
      А если этот сахар не замедляет программу? ну мне например очень в матлабе нравится конструкция a=b[1..n,1..m], чтобы не писать развернуто циклы, когда тебе надо просто кусок массива скопировать.
      А если ты не последний программист в этой компании? Ты сам хаешь Дэвида Эберли, за то, что он пишет адово нечитаемый код. До этого были цитаты Торвальдса, Дейкстры и остальных, что ООП это классный способ создать нечитаемую дичь.
      Блин, да увеличение читаемости и *понятности* - это самый классный способ избежать программерских ошибок, которые делают код тормозным или глючным.
      Ну и вспомнил плюс ООП - когда используешь чужой объект, с кучей свойств по дефолту и меняешь только пару из них для своих нужд. Вот как бы это дико выглядело в процедурном стиле.

    • @sir.Geronis
      @sir.Geronis 6 років тому +26

      Код впервую очередь пишется, чтобы программа работала. А не чтобы его читали. Читать тебе в библиотеку.
      Кстати ООП как раз очень не читаемый код. Это спагети в соусе. Хотели уйти от спагети и сделали вечное спагети.
      О чем кстати в видео было показано в примере.
      Разобраться в коде становится сложно. А еще при ООП программа медленней работает.
      Встает вопрос, если плохо читается, медленней работает, то может ООП не так хорош?

    • @alexstavitsky4288
      @alexstavitsky4288 6 років тому +12

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

    • @andreikobyshev6232
      @andreikobyshev6232 6 років тому +74

      Это всё работало тогда, когда код был write-only - один раз написал и забыл, работало годами. Прошивку для какого-нибудь тамагочи/тетриса на сях, или автоматизацию банка на коболе. Сейчас, когда бизнес теснее связан с разработчиками и уже программы подстраиваются под постоянно меняющиеся и развивающиеся бизнес-процессы, а не наоборот, тогда выходит на первое место скорость внесения изменений (послушайте Грефа из сбербанка, он об этом в каждом интервью говорит). А тут без человекочитаемого кода далеко не уедете. Да, остаются ещё области, где write-only код уместен - всякий embedded, который "написал, прошил, забыл". Но там и денег меньше. Поэтому сейчас и рулит много где Python, который создавался с главной мыслью, что "код читают чаще, чем пишут". И ту же Java пытаются заменить на Kotlin/Scala. Блин, да даже контроллеры стиралок уже подключают к интернету и прочий IoT, чтобы прошивки обновлять. А там где обновления и уж тем более срочные патчи - код должен быть красивым и читаемым. Иначе лажанёте где-нибудь и разорвёт вашу стиралку нахрен. А ещё часто бывает, что дорабатывает код не тот, кто его написал. Сами, небось, открывая какую-нибудь библиотеку сишную восклицали "какой криворукий урод её писал? не понятно же ни черта!", и сами же призываете людей быть такими "криворукими уродами".

  • @suvar8667
    @suvar8667 5 років тому +1

    Очень нравится подача.

  • @cover24158
    @cover24158 4 роки тому +15

    Было бы ООП таким говном, никто бы его не использовал, а значит это эффективное говно

  • @danew1666
    @danew1666 6 років тому +1

    Класс. Очень много информации это сильно

  • @vasisafronov
    @vasisafronov 4 роки тому +8

    Не НТВД, а ТНВД - топливный насос высокого давления (из системы питания дизельных двигателей). Но лайк!)))

    • @AnorAlchemist
      @AnorAlchemist 2 роки тому +1

      Не только дизеля. На бензине тоже есть ТНВД (та же GDI от Mitsubishi, к примеру).
      Но мне тоже слух резануло НТВД))

  • @putinstop5940
    @putinstop5940 4 роки тому +1

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

  • @webzen92
    @webzen92 6 років тому +6

    На самом деле я согласен. Я уже давно вижу что ООП во многих задачах слишком избыточно. Например, какой смысл существования синглтона вообще?
    Я миксую ООП и процедурный стиль и вместе они себя хорошо чувствуют если понимать что именно и где именно применять для интуитивного удобства.

  • @radio-stepa
    @radio-stepa 4 роки тому +2

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

  • @mastasableful
    @mastasableful 5 років тому +5

    Я люблю Java. Под джавой подразумеваю не язык, конечно же, а платформу. Занимался профессиональной разработкой на Scala, Java и Kotlin. Лично мое мнение Kotlin лучший ЯП для современной разработки. В свободное время изучаю clojure и считаю самым интересным ЯП (опять же личное мнение). Какое-то время тоже хейтил ООП и считал тупиковой ветвью развититя (хотя по сути так и есть). Но стоит признать, что ООП на данный момент это стандарт в разработке и от этого не уйти ближайшие годы. И уж поверь можно писать очень хороший ООПшный код, все зависит от компании и корпоративных правил, то что 90% разработчиков пишут нечитаемый булшит не говорит за индустрию в целом

  • @artempolischuk3117
    @artempolischuk3117 6 років тому +2

    Отличная идея с сегментацией видео!

  • @nikolaipodonin7425
    @nikolaipodonin7425 6 років тому +105

    Автор, разбирая библиотеку того крутого чувака, и говоря, что всё это можно было написать линейно и процедурно... Можно ли в этом быть уверенным? Во-первых, судя по тому, сколько раз перенаследованы классы, во всей библиотеке таким образом многократно появлялся бы один и тот же код, который просто копировался бы. Во-вторых, кода было бы много, скорее всего, и его также пришлось бы разносить по разным файлам, а принцип этого разнесения, в отличие от подхода ооп, был бы не очевиден. И тебе также пришлось бы проходить по ссылкам и разбираться, что как работает, но с ещё большими сложностями. Разве нет? Или я не понимаю, в чем выигрыш?

    • @mechmaker9346
      @mechmaker9346 5 років тому +1

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

  • @kostiantynjohanlanguedoc3155
    @kostiantynjohanlanguedoc3155 5 років тому +1

    Ваше резюмирование - более чем ЛАЙК

  • @GGGuy
    @GGGuy 5 років тому +38

    Знаете я первый раз в жизни ощутил пот в мозгу.
    Мой мозг пытался понять хоть 30% процентов информации.
    27 лет.
    Человек.

    • @Dark-ic8hb
      @Dark-ic8hb 5 років тому +1

      Когда 14,хд

    • @label5
      @label5 5 років тому +3

      Не переживай. Полгода назад я так-же ничего не понимал, 3 месяца назад и половины не понял. Сейчас скорее всего все понял, но неверно.
      21 год.
      Человек.

    • @Pla7on
      @Pla7on 4 роки тому +2

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

    • @cheekibreeki9315
      @cheekibreeki9315 4 роки тому

      Там понимать нечего.

    • @be4awashere206
      @be4awashere206 3 роки тому

      @@label5 😂😂😂 думаю, практика и опыт , расставят всё по местам.
      36 л.
      Человек ... Всё ещё. И слава Богу!

  • @newGames_0
    @newGames_0 2 роки тому +1

    Спасибо за проценты сверху справа

  • @tj3603
    @tj3603 2 роки тому +16

    Перфекционист детектед 😁 На самом деле все зависит от того, как была поставлена задача.
    Если мы говорим про реальный мир, прогерам дают ограниченное время и ставят задачу написать фичу, которая работает комфортно для пользователя. Если для выполнения этой задачи достаточно приклеить уже работающую и проверенную библиотеку на скотч к продакшн билду - ты делаешь это и двигаешься дальше, потому что бизнесу пофиг на глубокомысленные раскопки в старых фреймворках с целью оптимизации производительности железа на 0,25%, и пользователю пофиг, потому что он не заметит, что прога загрузилась за 0,3мс вместо 0,4мс. Как следствие, заказчик отнесется без понимания к желанию довести код до идеала, ибо это требует слишком много времени и технически не является необходимым для работы фичи.
    Если мы говорим про глубокий внутренний мир программиста, и ты лично хочешь стать супер-гуру который понимает как все работает вплоть до процессов перемещения электронов по шине, ну да, в этом случае имеет смысл так заморачиваться. По сути, это единственный способ прокачать скилл реверс инжинеринга. Единственный минус вот таких разбирательств и оптимизаторств, что рискуешь никогда не добраться до реальной работы и написать хоть что-то свое)

    • @Alonso_Kinn
      @Alonso_Kinn 2 роки тому

      Правильно . По этому были придуманы ЯП : Php , Python.
      Человек не машина и ищет среднее , оптимизированное , упрощённое +)

  • @ЕвгенийМартынюк-е6э

    Спасибо за канал)) за информацию))) благодарим)))

  • @БажевЗалимхан
    @БажевЗалимхан 6 років тому +197

    Смотреть как работает механизм и что в нем происходит - это скилл который надо оттачивать, чтобы на простой ошибке не убить полгода разработки, вставляя костыли в свой код и затем не продолжать поддержку ущербного ПО. Респект и уважуха такому отношению к своему коду!
    5К лайков Люди Дайте этому видосику!

    • @supovar9455
      @supovar9455 6 років тому +1

      хакеры этим и занимаются через взлом (просмотром кода)

    • @petrovich1742
      @petrovich1742 6 років тому +2

      Не дам. Он мой любимый Python обосрал. Я жабу ненавижу и все си-подобные языки программирования за их никчёмные фигурные скобки. Ненавижу фигурные скобки и тех, кто их придумал применять в коде, да ещё и в таком количестве. Python-код на много красивей выглядит, чем всякие жабы. Одно только удручает - хреново с ним в винде работать и *.exe файлы плохо создавать.
      Может тот пикус и умные вещи излагает про концепции программирования, но он явно жабофил и питонофоб. Пайтону не сложней обучиться, чем джаве, а может даже проще. Мне лично ДЖава не интересна. Я лучше Си шарп выучу, чем на жабу даже посмотрю.

    • @МаксКурский-р2в
      @МаксКурский-р2в 5 років тому +7

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

  • @wefleem
    @wefleem 6 років тому +2

    Как всегда все классно!

  • @MrKinein
    @MrKinein 6 років тому +3

    Слышал ли ты о JAI? язык программирования от Jonathan Blow, с минимумом ООП, без Garbage collector, ран тайм типизации. Зато в нем есть возможность более удобно работать с памятью, есть удобная система reflections и многое другое. Джонатан много говорит на тему аналогичную этому видео. Что об этом думаешь?

  • @Galaktikaa
    @Galaktikaa 4 роки тому +1

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

  • @theOffline268
    @theOffline268 6 років тому +33

    Мне кажется вы тут все смешиваете в кучу. Одно дело какой-то лютый 3д-графен рендерить без тормозов на калькуляторе, другое - пару кнопок в вебке запилить. Цели разные

    • @Eraston
      @Eraston 5 років тому +1

      То-то я думаю, у меня каждый сайт при нажатии на кнопку думает ещё пару секунд прежде, чем что-то начать шевелиться

    • @rednil8242
      @rednil8242 4 роки тому

      @@Eraston смени комп, если у тебя сайты по паре секунд думают.

    • @СергейВасильевичДиденко
      @СергейВасильевичДиденко 4 роки тому

      @@aammssaamm а может ещё добавить - это жрёт реклама которую разраб впихивает в код что б бабло грести?))

  • @ChillRuns
    @ChillRuns 6 років тому +2

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

  • @xxxxPomaHxxxx
    @xxxxPomaHxxxx 6 років тому +10

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

    • @tmb0183
      @tmb0183 6 років тому

      ++++

    • @vpzbavmbiibjpjc
      @vpzbavmbiibjpjc 5 років тому +1

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

    • @googleadmin4749
      @googleadmin4749 5 років тому +2

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

    • @СергейВасильевичДиденко
      @СергейВасильевичДиденко 4 роки тому

      @@vpzbavmbiibjpjc согласен., что за ересь когда один запущенный браузер жрёт оперативки столько сколько едят две запущенные одновременно игры такие как армата и етс 2? или я чего то не понимаю?

  • @nikitf7777
    @nikitf7777 Рік тому

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

  • @abdelk.2060
    @abdelk.2060 6 років тому +14

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

  • @maksimhapeyenka2435
    @maksimhapeyenka2435 6 років тому +2

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

  • @CofaYoh
    @CofaYoh 4 роки тому +3

    ООП - это не про производительность, ООП про бизнес-логику, про модель и управление ее сложностью.
    Абстракция НЕ ДОЛЖНА зависеть от реализации!

  • @ОлексійСайтарли
    @ОлексійСайтарли 6 років тому

    Это какой-то рок (но только не в музыке а в программировании). Классно, что еще сказать. )))

  • @OPERATOR_38M
    @OPERATOR_38M 6 років тому +11

    Слоган по жизни: «Нормально делай -нормально будет».
    Да, да ребятишки, так тоже работает.
    Хорошо работает.
    🤓

  • @whekin
    @whekin 6 років тому +2

    Благодарю! Полезная информация, в особенности для тех, кто только начал свой путь с c++/c#/java, коих большенство...

  • @andreypronko1859
    @andreypronko1859 6 років тому +14

    Возможно Никлаус Вирт (ETH) - ваш единомышленник. Я в индустрии программирования со времен памяти на магнитных доменах. Лет 30. И я не смог понять, что именно вас мучает.
    OOP код, который легко читается, и легко расширяется, компилируется в отвратительный медленный и не эффективный машинный код? JAVA - зло? Python - зло? ( часть ролика наводит на мысль, что вы рванулись с опытом энтерпрайз разработчика в gamedev ( т.е. в системы приближенные к системам реального времени, где за каждый чертов уровень абстракции приходится платить быстродействием)? -- программированию игр проще научить 3D художника, без опыта программирования, чем энтерпрайз программиста с опытом. Вот.

    • @bekzhan356
      @bekzhan356 6 років тому

      А почему проще 3д художника? Это из за его мышления, как мыслит художник или из за чего?

    • @ex-format
      @ex-format 6 років тому +1

      @@bekzhan356 эм.. как минимум потому что не придется выбивать старые навыки и вбивать новые..
      Абстракция..
      Что проще, забить гвоздь или вытащить старый?

    • @osamablinkdagger2535
      @osamablinkdagger2535 5 років тому

      @@ex-format подколотить старый гвоздь чтобы держался - проще.

    • @vpzbavmbiibjpjc
      @vpzbavmbiibjpjc 5 років тому

      @@osamablinkdagger2535 в нашем случае нужен совершенно другой по форме и материалу гвоздь. И варианта "подколотить старый" нет.

  • @feeler.2k
    @feeler.2k 6 років тому

    То чувство, когда заглянул в бездну. Здорово.

  • @soroker
    @soroker 5 років тому +5

    Уважаемый Winderton, вы несколько раз за видео высказываете какое-то утверждение, делаете многозначительную паузу, а далее следует, в разных вариациях, мысль "это настолько глупо/просто/несуразно, что я даже не буду это комментировать". В чем тогда смысл вашего видео? Запутать людей или все-таки донести идею и раскрыть ее?
    Я согласен, что C++/Java и прочие подобные языки мало имеют общего с изначальной идеей ООП, но почему вы не упомянули об Erlang и Elixir? И чем вам так не угодил Python, это для меня вообще осталось загадкой?

  • @longpolling8033
    @longpolling8033 6 років тому +1

    Давно ждал именно такой канал после того как пропал Sorax. Спасибо большое за ваш труд)

  • @syensyen9241
    @syensyen9241 5 років тому +12

    Когда я обжегся о Python , я пошел учить С++. С++ оказался сложен, пошел учить Java. Вот Java - сама то для первого языка, видна структура программы которую создаешь и все понятно (по крайне мере для меня). Динамическая типизация Python - для меня оказалось сложновато, в собственной программе можно запутаться. Статическая типизация рулит!!!

    • @Adamsergeevich
      @Adamsergeevich 2 роки тому +4

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

    • @user-fw2xm9np6z
      @user-fw2xm9np6z 2 роки тому +3

      @@Adamsergeevich не по Столярову случайно учишься?

  • @pinkierar_real
    @pinkierar_real 5 років тому +1

    Потрясающе!

  • @ИгорьЦарёв-с3ц
    @ИгорьЦарёв-с3ц 6 років тому +4

    Спасибо за видео, годный контент) влепил жирный лайк

  • @dalvincumter9473
    @dalvincumter9473 5 років тому +2

    Заебись спасибо видертон, никак не могу уснуть, думаю щас получиться ХD

  • @MrVladoCC
    @MrVladoCC 6 років тому +9

    Ни один человек из интерпрайза явы не может сказать что любит ее? Ну да, крайне логично.
    А в интерпрайзе какого языка есть люди, которые могу сказать, что любят свой язык?
    Интерпрайз это тот уровень, где ты уже должен знать все тонкости языка на котором кодишь, а соответственно его сильные и слабые стороны.
    А если ты знаешь сколько дыр есть в твоем языке, то уже не можешь его любить.
    Может конечно есть всякие Kotlin'ы и прочие языки, которые делаются людьми, которые понимают что делают и им не плевать на сообщесво, но даже там я не уверен, что человек, который знает тонкости скажет "О да, обожаю этот язык"

    • @АртП-м7ж
      @АртП-м7ж 5 років тому

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

  • @kaiken9101
    @kaiken9101 Рік тому

    Я который пошел сразу в школу, еще и на год раньше остальных 🙂

  • @lutwiy931
    @lutwiy931 6 років тому +61

    Автор, а чтож ты не приводишь в качестве примера шикарные библиотеки процедурщиков и как вы легко разберетесь в них? Мне вот реально интересно даже посмотреть на ваши попытки.
    А все остальное. Да ООП это мозговой инструмент. При чем инструмент важный, требующий экспертизы, понимания как декомпозировать свой код так, чтобы он был понятен при большом объеме кода. Им надо уметь пользоваться также, как и любым другим инструментом.
    Если вы не умеете пользоваться инструментом - проблема не в инструменте, а в вашем знании и навыках.
    И повторяю - ООП инструмент для декомпозиции большого объема кода. Предложите мне лучше инструменты структуризации? Не думаю.
    Предложенный вариант GTEngine это не пример идеального кода. Совсем. Window наследующий Window2 -> все что нужно знать о качестве этого кода.
    И да - я не говорю, что ООП решает ВСЕ проблемы декомпозиции и панацея, юзайте ее везде. Нет. Наоборот своих разрабов я заставляю думать башкой, а не бездумно наследовать все подряд, объявлять ненужные сущности и пытаться их собрать в машину. Но его знание и понимание очень помогает в общении с другими разработчиками.
    Ваше видео выглялит примерно так - я не знаю польского, поэтому польский ущербный язык. Вот смотрите текст, все эти странные слова и вообще, что это все. Ну так может не в том, что польский плохой язык, а русский хороший?
    PS дабы не было обвинений в мою неопытность - у меня более 8 лет в корпоративной разработке, из них более 4 я тимлид крупных корпоративных проектов с минимум 3 разработчиками в команде.

    • @wndtn
      @wndtn  6 років тому +4

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

    • @lutwiy931
      @lutwiy931 6 років тому +33

      Winderton не его, а его код. Мне прекрасно понятно, почему он так написал его. Просто это не пример хорошего энтерпрайз ООП проекта, вот и все.

    • @asd-nd5pj
      @asd-nd5pj Рік тому

      @@lutwiy931можно с тобой дружить?)

  • @НикитаАнтонов-ш3г
    @НикитаАнтонов-ш3г 6 років тому

    После этого видео, понял что ничего не знаю ещё про Программирование)) после 2 й половины видео ни слова не понимал ))

  • @CarbonatGT
    @CarbonatGT 6 років тому +8

    Это офигенно. У меня нет слов.

  • @AlexeyNeklesa
    @AlexeyNeklesa 6 років тому

    Вот это я наткнулся на твой канал. Подписка и лайк. Супер !!!

  • @aleksandrsadchikov3704
    @aleksandrsadchikov3704 6 років тому +30

    а режиссёрская версия будет?

  • @KirSergeev
    @KirSergeev Рік тому +1

    Основатель и лидер ООП - это Ясер Арафат.

  • @den.di.khampton
    @den.di.khampton 5 років тому +3

    В битве "СИтхов и JAVAев" я на тёмной стороне) Отличное видео.

  • @neztovshowtv
    @neztovshowtv 2 роки тому

    Зрители забывают просто поставить лайк. Поэтому нужно говорить, да.

  • @diasakishev8897
    @diasakishev8897 5 років тому +3

    Прошел год. Пересмотрел. Вроде понял уже четверть.

  • @ulyssescheshirecat4145
    @ulyssescheshirecat4145 11 місяців тому +1

    Все кто хаит ООП, просто - не осиляторы. А про Торвальдса, даже говорить не стоит. Этот "спец" не осилил создать микроядро, как ему советовал Таненбаум.
    Любой язык программирования - это прежде всего инструмент. От инструмента мало зависит, какой будет код. Инструмент предоставляет ту или иную возможность. Качество кода, его читаемость, компактность и прочее будет зависеть от программиста.

  • @basimal-jawahery5688
    @basimal-jawahery5688 5 років тому +32

    Назови пожалуйста число enterprise решений написанных на Си.

  • @livecodingschool8906
    @livecodingschool8906 4 роки тому +1

    Код не должен быть элегантным но ДОЛЖЕН быть читабельным - это возможно единственное условие хорошего кода. Если ваш код быстро работает но никто в нет не может быстро разобраться - такой код плохой, так как для того чтобы написать 10 строчек кода нужно прочитать (просмотреть) сотни

  • @merero7416
    @merero7416 Рік тому +3

    Слишком много слов в видео его можно укоротить в 3 раза и смысл не поменяется

  • @SunnyDrake7
    @SunnyDrake7 6 років тому +1

    Выхлоп компилятра это байт-код(в большинстве случаев, IL и прочее оставим за скобками). И да пишем с нуля в С++ asm функция есть и использовалась в движках.

  • @АттилаШкоба
    @АттилаШкоба 6 років тому +4

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

    • @codingjerk
      @codingjerk Рік тому +1

      Прошло конечно 4 года, но ответ: Intel 64 and IA-32 Architectures Optimization Reference Manual

  • @Lolohaev
    @Lolohaev 6 років тому

    начал программировать несколько недель назад, нифига не понял, но это интересно)

  • @JesusChrist-hb8or
    @JesusChrist-hb8or 6 років тому +3

    И что вы советуете изучать вместо ООП языков программирования для новичков?

  • @КириллАстрамович

    смотрю твои видео как будто ем сгущенку большой ложкой, очень вкусно и долгоиграюще

  • @andrewshukshov2538
    @andrewshukshov2538 6 років тому +196

    Выпал из реальности на 30 минут)

    • @Denitka
      @Denitka 6 років тому +11

      После слов race condition и deadlock. Пришлось пару часов доп литературу читать.

    • @chroma_red
      @chroma_red 5 років тому +2

      И ничего не запомнил...

  • @neverBsad
    @neverBsad 6 років тому

    Все бегом учить функциональное программирование!

  • @karmicdude-
    @karmicdude- 5 років тому +46

    Как много высокомерия в видосах этого парня... хотя есть вещи толковые, но поданы они через призму ЧСВ

  • @SatomiNea
    @SatomiNea Рік тому +2

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

  • @alexdev6403
    @alexdev6403 6 років тому +130

    ООП пытается решить сложность алгоритмов а в видео очень много сравнений с перфомансом, мне кажется это немного нечестное сравнение, сравнивать java с н низкоуровневыми языками.
    Вам не нравится что вы не смогли разобраться C++ програмой и что вам нужно примерно представлять как задача декомпозирована программистом. При этом Вы привели классический пример сравнения ООП с автомобилем, сами сказали что там очень много частей, которые взаимодействуют друг с другом. Так вот мой вопрос, с утройством автомобиля тоже что то не так? Без знаний о деталях невозможно починить автомобиль! Вам придется прочесть документацию по автомобилю и примерно представлять как и что работает чтобы его починить. Так же как и примерно представлять как декомпозирована задача по триангуляции...
    ООП не идеально действительно, каждый программист может одну и туже задачу декомпозировать по разному, у кого то будет просто а кто то решит ее не очень очевидным путем. Мне не нравится что Вы этим видео пропогандируете отречься от ООП и просто плеваться в его сторону. Нету серебряных пуль! Есть гибридный язык Scala, он позволяет использовать ООП и функциональное программирование. Есть другие мультипарадигменные языки.
    ООП кстати это еще и документация к коду.. Вы можете создавать контракты (интерфейсы), по которым будет понятно что делает класс. Как это сделать в чисто функциональном языке?
    В этом выпуске тоже сравнивают ООП, правда в конкексте языка Scala. scalalaz.ru/series-39.html

    • @temamart-k
      @temamart-k 6 років тому +12

      да у него все, что не С, то гавно)

    • @bekzhan356
      @bekzhan356 6 років тому

      А javascrip lisp scheme они тоже как функциональные так и ооп парадгменные яп?

    • @wndtn
      @wndtn  5 років тому +5

      поправочка
      не "не смог разобраться", а "разбираться с этим - это все равно что будучи сантехником, чинить телевизор". Т.е. вы делаете работу, от которой толку для вас как сантехника ноль. Программирование - это не чтение диаграмм, а понимание принципов работы платформы(ЭВМ), и программирования под нее. Тот факт, что гении абстрагировали все до такого, что таким как ты не стоит думать о памяти не значит, что о ней не стоит думать. Слишком уж много вас таких, кто не думал, а теперь люди вынуждены писать на всяких там С++ и Java.

    • @semionmorozov5359
      @semionmorozov5359 5 років тому +16

      Вы правы! Абстрагирование в последнее время зашкаливает и отдаляется от сути - от изначального предназначения алгоритмов для железа. Поэтому и появилось много "программистов", делающих, например сайт на конструкторе wordpress, который в свою очередь написан на php, который в свою очередь написан на C. И поэтому 80% сайтов в интернете такие медленные - результат усложнений на каждом уровне. Зато "программисты" выучив wordpress будут с пеной у рта доказывать, как ты посмел кинуть камень в наш огород и их wordpress самый лучший, а ничего другого не знаем и знать не хотим, нажал кнопки, настроил и у тебя готовый сайт, а лучше ctrl c, ctrl v, классно же оно само по себе как-то работает. Зато о машинном времени никто не задумывается, и закулисами творится полный хаос. Полностью поддерживаю идею упрощения жизни для памяти и железа в целом (которое тоже имеет ряд инженерных недоработок, и не может быть по факту идеальным на 100%, хотя и работает, пока не вылезут эти просчёты в реальный сбой), и чем ближе код к машинному - тем лучше и надежнее это работает (как и задумывалось изначально). Касаемо темы ООП - идея классная, абстрагировать от реального мира - дает массу возможностей для коллективного творчества команды программистов, захотел сделать робота, создал объект робота и задал параметры и методы. Да, будет чуть медленнее работать, чем чистый ассемблер, но появляется полет для творческой фантазии. Поэтому думаю нужен какой-то компромисс между скоростью выполнения программы железом и читабельностью кода, и ПОНИМАТЬ все процессы на каждом уровне и постоянно ОБУЧАТЬСЯ! И если даже писать с помощью ООП, всегда думать о памяти и максимальном упрощении и ускорении кода, в пределах ограничений инструмента. А видео классное! Спасибо огромное за ваш труд! Много полезного и интересного для себя узнал. В ООП новичок, изучаю Python, с программированием познакомился на PHP, MySql (в основном писал процедурное и функциональное) изучаю программирование MK (C), ПЛИС (Verilog).

    • @КонстантинБратищев-з3п
      @КонстантинБратищев-з3п 5 років тому +13

      @@semionmorozov5359 ​дело в том, что современному миру нужно больше программистов (даже не очень квалифицированных), чем людей в состоянии на достаточном уровне изучить C, assembler, принцип работы процессора, памяти и учитывать это всё. А само написание многих программ на том же C нецелесообразно и экономически неэффективно. Если рынку нужен какой-то сайтик на коленке, то проще найти "программиста" на wordpress, чем платить кучу денег хорошему специалисту и ждать хрен знает сколько времени. И совершенно плевать, что в первом случае сайт будет грузиться 1,5 секунды, а во втором 1.

  • @positiv8509
    @positiv8509 4 роки тому

    Очень интересно!

  • @sulfursw9286
    @sulfursw9286 5 років тому +3

    13:10 нуну, желательно чтобы везде были goto и магические константы

  • @psorbe
    @psorbe 6 років тому

    Проценты это хоть и небольшая деталь, но именно эти детали улучшают проект.

  • @cheatack2141
    @cheatack2141 5 років тому +4

    У меня сложилось впечатление, будто благодаря ООП люди захотели избавится от плюсов языка низкого уровня, для облегчения написания кода(p.s. будто они хотят сделать из языков низкого уровня какой-нибудь python, но не хотят терять плюсы си)

  • @makspylypenko4289
    @makspylypenko4289 6 років тому +1

    Красавчик, действительно хорошее видео!

  • @Zabavnoo
    @Zabavnoo 6 років тому +4

    Good job

  • @ssvssv7243
    @ssvssv7243 6 років тому

    окатывается в далеком детстве я пользователя ООП, только этого не осознавал. :)

  • @MrKokokokokokkokokok
    @MrKokokokokokkokokok 6 років тому +19

    Че, пацаны, уникальные? :D

  • @excore1322
    @excore1322 6 років тому +2

    Ну, с 10к просмотров за 2 часа ты прогадал, а так гуд. Очень прошу и жду видос про кэш потому что очень сложно и непонятно + хз где почитать. Спасибо.

  • @andymore2094
    @andymore2094 5 років тому +4

    Охуенный видос. Как говорится :"Нихуя не понял. Но очень интересно". Заставил пульсировать мозг, спасибо)) Подписка, лайк.

  • @ЛИСАиСНЕГОВИКИ
    @ЛИСАиСНЕГОВИКИ 6 років тому +1

    Красавчег! Хороший урок

  • @AlexAlex-rc9di
    @AlexAlex-rc9di 6 років тому +10

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

  • @ekashpersky
    @ekashpersky 6 років тому

    Вступление, прогресс. Сразу видно, зоракса смотрел ;)