<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ООП – объектно-ориентированное программирование on kodkod | Вводный курс</title><link>https://intro-kodkod-6.nm-ambition.com/ru/docs/oop/</link><description>Recent content in ООП – объектно-ориентированное программирование on kodkod | Вводный курс</description><generator>Hugo</generator><language>ru</language><copyright>מבואות קודקוד</copyright><atom:link href="https://intro-kodkod-6.nm-ambition.com/ru/docs/oop/index.xml" rel="self" type="application/rss+xml"/><item><title>Классы и объекты: от проблемы к полноценному классу</title><link>https://intro-kodkod-6.nm-ambition.com/ru/docs/oop/01-classes-and-objects/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/ru/docs/oop/01-classes-and-objects/</guid><description>&lt;h2 id="в-этом-уроке"&gt;В этом уроке&lt;/h2&gt;
&lt;p&gt;Урок построен как одна история, в том же порядке, что и в презентации. Мы начинаем с маленькой банковской системы на словарях и функциях, видим, где она ломается, и в каждой главе добавляем один инструмент, который решает одну проблему:&lt;/p&gt;</description></item><item><title>Объекты в работе: состояние, сокрытие данных, свойства и полноценный класс</title><link>https://intro-kodkod-6.nm-ambition.com/ru/docs/oop/02-objects-in-practice/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/ru/docs/oop/02-objects-in-practice/</guid><description>&lt;h2 id="в-этом-уроке"&gt;В этом уроке&lt;/h2&gt;
&lt;p&gt;Урок построен как одна история, в том же порядке, что и в презентации. Каждая глава опирается на предыдущую:&lt;/p&gt;</description></item><item><title>Наследование и super: похожие классы без дублирования кода</title><link>https://intro-kodkod-6.nm-ambition.com/ru/docs/oop/03-inheritance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/ru/docs/oop/03-inheritance/</guid><description>&lt;h2 id="в-этом-уроке"&gt;В этом уроке&lt;/h2&gt;
&lt;p&gt;Урок построен как одна история, в том же порядке, что и в презентации:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Глава 1&lt;/strong&gt; — зачем наследование: один и тот же код дважды и как наследовать вместо копирования&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Глава 2&lt;/strong&gt; — переопределение и &lt;code&gt;super()&lt;/code&gt;: наследование, но не совсем — меняем только часть поведения&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;В конце урока — практика и &lt;strong&gt;мини-проект&lt;/strong&gt;, который связывает обе главы.&lt;/p&gt;</description></item><item><title>Полиморфизм: общий интерфейс, разное поведение</title><link>https://intro-kodkod-6.nm-ambition.com/ru/docs/oop/04-polymorphism/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/ru/docs/oop/04-polymorphism/</guid><description>&lt;h2 id="что-мы-изучим"&gt;Что мы изучим?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Что такое &lt;strong&gt;полиморфизм&lt;/strong&gt; (Polymorphism).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Общий интерфейс&lt;/strong&gt; (Common Interface): тот же метод, разное поведение для каждого типа.&lt;/li&gt;
&lt;li&gt;Почему он &lt;strong&gt;заменяет&lt;/strong&gt; &lt;code&gt;if type == ...&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Утиную типизацию&lt;/strong&gt; (Duck Typing): гибкую версию Python.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="зачем-это-нужно"&gt;Зачем это нужно?&lt;/h2&gt;
&lt;p&gt;Допустим, платёжная система должна списать деньги с клиента, а клиент может платить кредитной картой, через PayPal или банковским переводом. Без полиморфизма:&lt;/p&gt;</description></item><item><title>Единственная ответственность в ООП и композиция против наследования</title><link>https://intro-kodkod-6.nm-ambition.com/ru/docs/oop/05-srp-and-composition/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/ru/docs/oop/05-srp-and-composition/</guid><description>&lt;h2 id="что-мы-изучим"&gt;Что мы изучим?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Принцип единственной ответственности&lt;/strong&gt; (Single Responsibility Principle, SRP) на уровне класса.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Композицию&lt;/strong&gt; (Composition): объект, составленный из других объектов.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Композицию против наследования&lt;/strong&gt;: как выбирать.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="зачем-это-нужно"&gt;Зачем это нужно?&lt;/h2&gt;
&lt;p&gt;В теме чистого кода мы изучили SRP для &lt;strong&gt;функций&lt;/strong&gt;: каждая функция делает одно дело. Ровно тот же принцип действует для &lt;strong&gt;классов&lt;/strong&gt;, и там он ещё важнее, потому что большой класс — это «куча» данных &lt;strong&gt;и&lt;/strong&gt; поведения. Когда каждое изменение (формат чека, способ оплаты, расчёт НДС) трогает один и тот же класс, он становится хрупким, и его страшно менять.&lt;/p&gt;</description></item><item><title>Практика с сопровождением: от словесного требования к структуре классов</title><link>https://intro-kodkod-6.nm-ambition.com/ru/docs/oop/06-from-requirements-to-classes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/ru/docs/oop/06-from-requirements-to-classes/</guid><description>&lt;h2 id="что-мы-изучим"&gt;Что мы изучим?&lt;/h2&gt;
&lt;p&gt;Это урок-&lt;strong&gt;мастерская&lt;/strong&gt;. Мы возьмём одно словесное требование и &lt;strong&gt;вместе&lt;/strong&gt; пройдём весь процесс:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Чтение и разметка.&lt;/li&gt;
&lt;li&gt;Решение о классах.&lt;/li&gt;
&lt;li&gt;Ответственность и данные для каждого класса.&lt;/li&gt;
&lt;li&gt;Отношения между классами.&lt;/li&gt;
&lt;li&gt;Скелет кода.&lt;/li&gt;
&lt;li&gt;Реализация.&lt;/li&gt;
&lt;li&gt;Тестирование и исправление проекта.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="зачем-это-нужно"&gt;Зачем это нужно?&lt;/h2&gt;
&lt;p&gt;В проекте ООП, который вы построите позже, &lt;strong&gt;до написания кода нужен этап проектирования&lt;/strong&gt; (Design). Этот урок — генеральная репетиция: ровно тот же процесс, на другой задаче, под руководством преподавателя.&lt;/p&gt;</description></item></channel></rss>