Code Monkey home page Code Monkey logo

you-don-t-know-oop's Introduction

Знаете ли вы ООП?

Тема объектно-ориентированного программирования на протяжении многих лет (десятилетий?) является предметом жарких споров. Хорошо порывшись в интернете, можно найти десятки разных толкований, многие из которых утверждают взаимоисключающие вещи. Даже если вы попробуете задать вопрос "что такое ооп" десяти разным разработчикам, то, скорее всего, получите 10 разных ответов. Да, местами они будут похожи, но никто не даст формальных определений и в деталях все будет отличаться. Иногда, от людей уставших спорить, можно услышать "ООП у каждого свое", что в какой-то степени является правдой.

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

Каждый год на популярных сайтах появляются статьи в стиле "вот что такое настоящее ооп" и рядом с ними "почему ооп не работает" или "я не понимаю ооп". Погуглите: "why oop is bad".

Попробуйте критически взглянуть на эту ситуацию. Как такое возможно? Почему настолько ужасная ситуация сложилась именно вокруг ООП? Почему никто не разоблачает автоматное, реактивное или функциональное программирование?

В этой книге я постараюсь максимально полно ответить на все вопросы, развенчать мифы, отделить мух от котлет, подвести формальную базу под интуитивные (и не очень) понятия. На протяжении всего повествования, я буду приводить примеры на совершенно разных языках: ruby, java, erlang, JavaScript, smalltalk, haskell, clojure и других. Основным языком повествования, при этом, я, все же, выбрал JavaScript в силу его широчайшей распространенности с одной стороны и удобством представления изучаемых концепций с другой.

Структура книги

Первая часть

Чем ооп не является

Вторая часть

Вперед в прошлое

Третья часть

Чем ООП является

Четвертая часть

Паттерны

На кого рассчитана книга

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

Авторский опыт

С 2007 года, я успел поработать в компаниях начиная от кровавого энтерпрайза и заканчивая небольшими стартапами, попутно, не раз, меняя стек разработки. За это время прошел путь от разработчик до технического директора, основал и развил несколько филиалов компаний, очно вырастил сотню разработчиков в рамках созданного центра обучения, создал и закрыл несколько аутсорс компаний и, в конце концов, вместе с Рахимом создал новый хекслет.

Во многом именно хекслет стал толчком к написанию этой книги.

Дисклеймер

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

Общение по книге происходит здесь: http://slack-ru.hexlet.io в канале #computer_science

you-don-t-know-oop's People

Contributors

axrn avatar azat-io avatar gitbook-bot avatar mokevnin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

you-don-t-know-oop's Issues

Будет ли закончена книга?

Доброго времени суток. Вижу что некоторые пункты не дописаны, очень хотелось бы увидеть законченный вариант. Чем можно вам помочь, что бы вы закончили?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.