{"id":21236865,"url":"https://github.com/mokevnin/you-don-t-know-oop","last_synced_at":"2025-10-16T11:21:04.240Z","repository":{"id":138208837,"uuid":"86457982","full_name":"mokevnin/you-don-t-know-oop","owner":"mokevnin","description":"Знаете ли вы ооп?","archived":false,"fork":false,"pushed_at":"2022-10-25T23:21:57.000Z","size":25,"stargazers_count":209,"open_issues_count":2,"forks_count":19,"subscribers_count":45,"default_branch":"master","last_synced_at":"2025-03-15T03:14:30.761Z","etag":null,"topics":["oop","polymorphism"],"latest_commit_sha":null,"homepage":"https://mokevnin.gitbooks.io/you-don-t-know-oop/content/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mokevnin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-28T12:35:35.000Z","updated_at":"2025-02-22T17:42:44.000Z","dependencies_parsed_at":"2023-07-25T06:15:34.269Z","dependency_job_id":null,"html_url":"https://github.com/mokevnin/you-don-t-know-oop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mokevnin/you-don-t-know-oop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mokevnin%2Fyou-don-t-know-oop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mokevnin%2Fyou-don-t-know-oop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mokevnin%2Fyou-don-t-know-oop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mokevnin%2Fyou-don-t-know-oop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mokevnin","download_url":"https://codeload.github.com/mokevnin/you-don-t-know-oop/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mokevnin%2Fyou-don-t-know-oop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279183096,"owners_count":26121324,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-16T02:00:06.019Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["oop","polymorphism"],"created_at":"2024-11-21T00:14:29.599Z","updated_at":"2025-10-16T11:21:04.220Z","avatar_url":"https://github.com/mokevnin.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Знаете ли вы ООП?\n\nТема объектно-ориентированного программирования на протяжении многих лет \\(десятилетий?\\) является предметом жарких споров. Хорошо порывшись в интернете, можно найти десятки разных толкований, многие из которых утверждают взаимоисключающие вещи. Даже если вы попробуете задать вопрос \"что такое ооп\" десяти разным разработчикам, то, скорее всего, получите 10 разных ответов. Да, местами они будут похожи, но никто не даст формальных определений и в деталях все будет отличаться. Иногда, от людей уставших спорить, можно услышать \"ООП у каждого свое\", что в какой-то степени является правдой.\n\nНа неокрепшие умы такая ситуация влияет крайне отрицательно. Думаю не ошибусь если скажу что большинство людей, которые только начинают учить программирование на высокоуровневых языках, узнают про ооп раньше, чем запускают свою первую программу. Дальше в игру вступает сломанный телефон и в головах образуется каша.\n\nКаждый год на популярных сайтах появляются статьи в стиле \"вот что такое настоящее ооп\" и рядом с ними \"почему ооп не работает\" или \"я не понимаю ооп\". Погуглите: \"why oop is bad\".\n\nПопробуйте критически взглянуть на эту ситуацию. Как такое возможно? Почему настолько ужасная ситуация сложилась именно вокруг ООП? Почему никто не разоблачает автоматное, реактивное или функциональное программирование?\n\nВ этой книге я постараюсь максимально полно ответить на все вопросы, развенчать мифы, отделить мух от котлет, подвести формальную базу под интуитивные (и не очень) понятия. На протяжении всего повествования, я буду приводить примеры на совершенно разных языках: ruby, java, erlang, JavaScript, smalltalk, haskell, clojure и других. Основным языком повествования, при этом, я, все же, выбрал JavaScript в силу его широчайшей распространенности с одной стороны и удобством представления изучаемых концепций с другой.\n\n### Структура книги\n\n#### Первая часть\n\nЧем ооп не является\n\n#### Вторая часть\n\nВперед в прошлое\n\n#### Третья часть\n\nЧем ООП является\n\n#### Четвертая часть\n\nПаттерны\n\n### На кого рассчитана книга\n\nКнига рассчитана на тех кто уже, так или иначе, знаком с фразой \"полиморфизм, наследование, инкапсуляция\". Особенно она полезна тем кто уже активно программирует и хочет систематизировать свои знания. Новичкам я советую смотреть по ситуации. Там где имеет смысл, я буду кратко раскрывать понятия или давать соответствующие ссылки для самостоятельной подготовки к уровню материала.\n\n### Авторский опыт\n\nС 2007 года, я успел поработать в компаниях начиная от кровавого энтерпрайза и заканчивая небольшими стартапами, попутно, не раз, меняя стек разработки. За это время прошел путь от разработчик до технического директора, основал и развил несколько филиалов компаний, очно вырастил сотню разработчиков в рамках созданного центра обучения, создал и закрыл несколько аутсорс компаний и, в конце концов, вместе с Рахимом создал новый хекслет.\n\nВо многом именно хекслет стал толчком к написанию этой книги.\n\n### Дисклеймер\n\nТо что вы видите прямо сейчас - это черновик. Подразумевается итеративное развитие контента, поэтому в начале будет больше похож на сборник рандомных мыслей. Прошу понять и простить. Конструктивный фидбек (подкрепленный доказательной базой из компьютерных наук) всячески приветствуется. \n\nОбщение по книге происходит здесь: http://slack-ru.hexlet.io в канале #computer_science\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmokevnin%2Fyou-don-t-know-oop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmokevnin%2Fyou-don-t-know-oop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmokevnin%2Fyou-don-t-know-oop/lists"}