Practical Object-Oriented Design I (POOD-I) - это курс, подходящий как для новичков, так и для опытных разработчиков, работающих с объектно-ориентированным программированием.
Формат рассчитан на индивидуальное обучение в удобное время и темпе. Курс включает видеоуроки и практические задания, которые учат мыслить объектами через написание кода. Каждое упражнение требует постепенного улучшения решения в ответ на изменяющиеся требования, что помогает развить гибкость и адаптивность в проектировании.
В рамках курса студенты изучают ключевые принципы объектно-ориентированного проектирования (ООП), позволяющие снижать стоимость разработки нового ПО и упростить поддержку существующих систем. Если вы хотите писать код, с которым приятно работать и который легко поддерживать — или если вы устали от неуправляемых, запутанных приложений — этот курс для вас.
Также курс обучает техникам рефакторинга и интеграции тестирования в процесс разработки. Это помогает ускорить текущую работу и уменьшить количество ошибок в будущем коде.
Посмотреть больше
Это пробный урок. Оформите подписку, чтобы получить доступ ко всем материалам курса. Премиум
Ограничение времени просмотра
Вы можете просматривать пробный урок только 10 минут. Получите полный доступ, чтобы смотреть без ограничений.
G. Watch: Obeying the Liskov Substitution Principle
Урок 16.
00:05:15
H. Watch: Taking Bigger Steps
Урок 17.
00:07:29
I. Watch: Discovering Deeper Abstractions
Урок 18.
00:04:24
J. Watch: Depending on Abstractions
Урок 19.
00:12:44
A. Watch: Selecting the Target Code Smell
Урок 20.
00:12:42
B. Watch: Extracting Classes
Урок 21.
00:03:48
A. Watch: Appreciating Immutability
Урок 22.
00:09:08
B. Watch: Assuming Fast Enough
Урок 23.
00:05:09
A. Watch: Creating BottleNumbers
Урок 24.
00:06:41
B. Watch: Recognizing Liskov Violations
Урок 25.
00:38:47
Watch: All the Little Things
Урок 26.
00:08:06
A. Watch: Consolidating Data Clumps
Урок 27.
00:10:13
A. Watch: Making Sense of Conditionals
Урок 28.
00:14:13
B. Watch: Replacing Conditionals with Polymorphism
Урок 29.
00:15:04
A. Watch: Transitioning Between Types
Урок 30.
00:05:51
B. Watch: Making the Easy Change
Урок 31.
00:04:37
C. Watch: Defending the Domain
Урок 32.
00:04:15
A. Watch: Contrasting the Concrete Factory with Shameless Green
Урок 33.
00:07:52
B. Watch: Fathoming Factories
Урок 34.
00:13:26
C. Watch: Opening the Factory
Урок 35.
00:08:14
D. Watch: Supporting Arbitrary Class Names
Урок 36.
00:05:48
E. Watch: Dispersing the Choosing Logic
Урок 37.
00:10:07
F. Watch: Self-registering Candidates
Урок 38.
00:05:35
G. Watch: Auto-registering Candidates
Урок 39.
00:11:42
A. Watch: Converting Numbers to BottleNumbers
Урок 40.
00:37:58
Watch: Go Ahead, Make A Mess
Урок 41.
00:12:22
A. Watch: Appreciating the Mechanical Process
Урок 42.
00:04:40
B. Watch: Clarifying Responsibilities with Pseudocode
Урок 43.
00:03:17
C. Watch: Extracting the Verse
Урок 44.
00:06:25
D. Watch: Coding by Wishful Thinking
Урок 45.
00:09:18
E. Watch: Inverting Dependencies
Урок 46.
00:09:53
A. Watch: Obeying the Law of Demeter
Урок 47.
00:12:15
B. Watch: Identifying What the Verse Method Wants
Урок 48.
00:09:07
C. Watch: Pushing Object Creation to the Edge
Урок 49.
00:12:23
A. Watch: Choosing Which Units to Test
Урок 50.
00:06:13
B. Watch: Reorganizing Tests
Урок 51.
00:17:59
C. Watch: Seeking Context Independence
Урок 52.
00:15:30
D. Watch: Communicating With the Future
Урок 53.
00:03:39
A. Watch: Finding Shameless Green (up to 1:00)
Урок 54.
00:03:39
C. Watch: Finding Shameless Green (1:00 to end)
Урок 55.
00:11:55
A. Watch: Handling a New Requirement (up to 2:54)
Урок 56.
00:11:55
C. Watch: Handling a New Requirement (2:54 to end)
Урок 57.
00:08:39
A. Watch: Using Inheritance
Урок 58.
00:15:28
A. Watch: Understanding Composition (up to 9:45)
Урок 59.
00:15:28
C. Watch: Understanding Composition (9:45 to 12:17)
Урок 60.
00:15:28
E. Watch: Understanding Composition (12:17 to end)
Урок 61.
00:13:08
A. Watch: Seeking Abstractions (up to 1:05)
Урок 62.
00:13:08
C. Watch: Seeking Abstractions (1:05 to the end)
Урок 63.
00:08:04
A. Watch: Loosening Coupling
Урок 64.
00:05:31
A. Watch: One Final Requirement (up to 1:05)
Урок 65.
00:05:31
C. Watch: One Final Requirement (1:05 to end)
Урок 66.
00:35:54
Watch: Nothing is Something
Автор - Sandi Metz
Sandi Metz
Сэнди Метц - американский программист, преподаватель, автор и консультант с более чем 30-летним опытом разработки программного обеспечения. Она специализируется на объектно-ориентированном программировании, особенно на языке Ruby, и известна своими практическими подходами к созданию гибкого и поддерживаемого кода.
Hello! Thank you rippers and contributors. Just wondering if it's possible to get the text for the lessons (a lot of lessons have no video).
This would make the videos easier to follow (though you can probably refer to the book too).
I recommend using puppeteer-extra to go over each of the lessons, extract the content and save as pdf (using document.body.scrollHeight to determine the page height and a width ~970px). Then combining the pdf pages.
You can extract the a page's content by running this:
```
const content = document.querySelector("#content-inner");
const style = document.querySelectorAll("style")[1];
content.removeAttribute('class');
document.body.textContent = '';
document.body.appendChild(content);
document.body.appendChild(style);
```
Also using the `puppeteer-extra-plugin-stealth` package will help bypass any bot detection.
It's a bit of work! (I've done similar before) Just putting it out there.
CourseHunter Team
mc_cheese
You didn’t download the materials, right? There’s an HTML folder in there.
mc_cheese
CourseHunter Team
I downloaded but didnt look in the code archive assuming it was just codebase stuff. my bad, thank you!!
CourseHunter Team
mc_cheese
Good. You are welcome.
CourseHunter Team
Спасибо всем за участие в краудфандинге! Вы - замечательные! Наш первый краудфандинг успешно стартовал.
Успехов в учебе!
mc_cheese
Ah Hoj Admin. I have a feature request (I know crowdfunding is still a work in progress). It would be cool to "bookmark" a crowdfund so we can receive a notification when the course is greenlit, needs more funds or more importantly, that the course has been uploaded. This is probably already in the roadmap but thought I'd add my interest.
Thank you!
CourseHunter Team
mc_cheese
Hello. First of all, there will be no cases where you are required to pay more than your initially declared contribution, because that is simply not acceptable. Instead, sanctions will be applied to users who fail to contribute. Regarding notifications, they will be available very soon. Thank you for your comment!
mc_cheese
mc_cheese
Ohh.. as a workaround, we can just "track" the author!
obedient.winking893
Too late to join? Maybe it would make sense to allow joining in the Crowdfunding status, to accelerate the process
CourseHunter Team
obedient.winking893
Hey! Really appreciate your interest At this point, though, the contributions have already been divided and a few people have completed their payments. Changing the setup now would make things a bit tricky and unfair for others. Hope that makes sense!
Anonymous
@admin premium users can access this course even they didn't fund it ?
CourseHunter Team
Anonymous
The course will be available to all premium users. Additionally, contributors will have lifetime access, even without a subscription.
mexadon
Anonymous
really? how? I'm a premium user and all I see is JOIN button
CourseHunter Team
В целом взнос выглядит оптимально. Можем запускать сбор, если вы не против.
The contribution amount looks reasonable. We can start the collection if you're okay with that.
133742
CourseHunter Team
I will pay to tomorrow, dont have access to wallet right now.
133742
133742
Paid, actually I paid twice. Once via btwallet.pro, which expired, and via fmt.me. is there a way I can get one payment back (the btwallet.pro)? Thanks!
CourseHunter Team
133742
please mail us about one refund, no problem. info@coursehunter.net
133742
Can premium members themselves start a crowdfunding action for courses as wel? I would like to start a crowdfunding for a course.
CourseHunter Team
133742
At the moment, no - only the administration can start crowdfunding campaigns for courses. In the future, we might allow users to create their own, but for now, we’re just testing the tool.
However, in the Premium chat, there’s a dedicated topic where you can suggest courses you'd like to see crowdfunded.
weathered turncoat
CourseHunter Team
Hi, where can this premium chat be accessed?
CourseHunter Team
weathered turncoat
There is an icon on every page of the website, in the bottom right corner.
Команда внимательно читает ваши комментарии и оперативно на них реагирует. Вы можете спокойно оставлять запросы на обновления или задавать любые вопросы о курсе здесь.
В этом курсе мы познакомим вас с классами, объектами, методами, свойствами и всеми материалами OOП, создав реальное (и эпическое) приложение, в котором мы сражаемся с космическими кораблями.
Этот курс - не просто пересказ теории, а практическое пособие по применению принципов ООП:инкапсуляция;наследование;полиморфизм;для повышения качества вашего кода.Вы узнаете, как использовать чистый ООП с помощью классов. А в следующем курсе поговорим об адаптации для Front-end.Какая польза от этого?Чтобы грамотно интегрировать ООП в фронтенд, необходимо понимать его основы на базовых классахЛюбое применение полиморфизма в ООП - осознанное. С пра
This would make the videos easier to follow (though you can probably refer to the book too).
I recommend using puppeteer-extra to go over each of the lessons, extract the content and save as pdf (using document.body.scrollHeight to determine the page height and a width ~970px). Then combining the pdf pages.
You can extract the a page's content by running this:
```
const content = document.querySelector("#content-inner");
const style = document.querySelectorAll("style")[1];
content.removeAttribute('class');
document.body.textContent = '';
document.body.appendChild(content);
document.body.appendChild(style);
```
Also using the `puppeteer-extra-plugin-stealth` package will help bypass any bot detection.
It's a bit of work! (I've done similar before) Just putting it out there.
Успехов в учебе!
Thank you!
The contribution amount looks reasonable. We can start the collection if you're okay with that.
However, in the Premium chat, there’s a dedicated topic where you can suggest courses you'd like to see crowdfunded.