Как стать автором
Обновить
26.93

ООП *

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

Сначала показывать
Порог рейтинга
Уровень сложности

Основы программирования на примере исходного кода MobX

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров4.7K

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

Читать далее
Всего голосов 14: ↑4 и ↓10-6
Комментарии0

Новости

Мастерим многопоточность: техники и инструменты для Java-разработчиков. Часть 1

Уровень сложностиСредний
Время на прочтение29 мин
Количество просмотров3.9K

Привет, Хабр! Это первая часть обзора по изучению существенных тем Java стека и туториала по их применению. В этой статье вы найдете важные аспекты многопоточности в Java, а также полезные шпаргалки с практическими примерами.

Меня зовут Влад, я Java-разработчик в компании SimbirSoft. Надеюсь, что моя статья будет полезна как начинающим, так и продвинутым Java-специалистам, которые заинтересованы в прокачке своих знаний для успешной подготовки к собеседованиям на боевые проекты.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии6

Основы программирования на примере исходного кода React

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров9.1K

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

Читать далее
Всего голосов 8: ↑8.5 и ↓-0.5+9
Комментарии2

VBA макросы. От бессмыслицы к осмысленному. Интерфейс

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров7K

В первой части, через боль и страдания, мы написала ядро – основную логику макроса.
Сегодня поработаем над пользовательским интерфейсом.

Читать далее
Всего голосов 16: ↑16.5 и ↓-0.5+17
Комментарии8

Истории

Основные принципы разработки (SOLID, KISS и т. д.)

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров10K

В данной работе я сосредоточусь на изучении и сравнении ключевых принципов проектирования и разработки программного обеспечения. Моя цель - проанализировать эти принципы, выявить их достоинства, недостатки и области применения.

В общем вас ждет теория, ещё теория, словесные примеры и даже примеры кода (он на С++, но написан понятно).

А еще это полезно знать на собесах :-)

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии9

VBA макросы. От бессмыслицы к осмысленному. Ядро

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров7.9K

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

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

Чтиво про рефакторинг VBA кода.

Читать далее
Всего голосов 17: ↑18 и ↓-1+19
Комментарии20

Python — Unit of work

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3K

Unit of work или "единица работы" - Поведенческий паттерн, который позволяет определить логическую транзакцию. Эта транзакция нужна, для объединения нескольких "маленьких" операций в одну "большую"(Acid).

Читать далее
Всего голосов 6: ↑4 и ↓2+2
Комментарии23

Как я написал свой первый эзотерический язык программирования

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров6.4K

В данной статье, я рассказываю о том, как написал свой первый эзотерический язык программирования C42.

Читать далее
Всего голосов 19: ↑19.5 и ↓-0.5+20
Комментарии8

Контроллеры на дженериках: пишем кода в 3 раза меньше

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров15K

В рамках наших Java курсов "Из Middle в Senior" (предыдущие посты Миграция Java Spring Boot на Kotlin и «Работа с документами в Java») недавно вышел новый курс Startup: Spring Boot веб-приложение с хостингом и инфраструктурой на основе эволюции нашей платформы онлайн-обучения с 2016г.

В рамках курса есть много подходов, сокращающих количество кода/усилий разработчиков. Один из них: сквозная параметризация от сервисов до репозиториев, позволяющая сокращать количество кода ~3х. Код приведен на Java, но общий подход может быть использован в любом языке с параметризацией. Кому интересно:

Добро пожаловать
Всего голосов 9: ↑6 и ↓3+3
Комментарии22

Основы метаклассов в Python: Простое понимание и примеры

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров10K

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

Читать далее
Всего голосов 13: ↑8 и ↓5+3
Комментарии10

Программирование вне парадигм

Время на прочтение3 мин
Количество просмотров6.9K
Со времени изобретения высокоуровневых языков программирования в отрасли доминируют парадигмы. Именно парадигмы, от императивных до объектно-ориентированных и функциональных – в основном формируют современный дискурс, касающийся языков программирования.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии17

Класс Reverse Mapping на Python

Время на прочтение4 мин
Количество просмотров2.1K

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

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии25

Актуально ли сегодня ООП?

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров58K

Почти каждый день возникают дискуссии с критикой или восхвалением объектно-ориентированного программирования. «Java устарела!», «Java потрясающая!». В этой статье я проведу прагматичное исследование ООП на 2024 год.

Термин объектно-ориентированное программирование придумал Алан Кэй. Кэй был членом команды PARC, которая изобрела графический интерфейс пользователя, сделавший таким полезным современный Интернет, персональные компьютеры, планшеты и смартфоны. Ещё она изобрела некоторые из объектно-ориентированных языков, на которых мы сегодня реализуем эти GUI.

Если отсечь все эмоции, связанные с ООП, то что останется? По-прежнему ли ООП является эффективным инструментом разработки ПО, или оно превратилось в устаревшее увлечение? Профессионалам важно знать ответ на этот вопрос!
Читать дальше →
Всего голосов 105: ↑85 и ↓20+65
Комментарии179

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Dart 3.1 и ретроспектива программирования в функциональном стиле в Dart 3

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров2.5K

Сопоставление шаблонов (pattern matching) и исчерпывающие переключатели (exhaustive switches) объединяются для создания функциональных моделей данных, которые легко сочетаются с объектно-ориентированным ядром Dart. 💪

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии3

Пишем асинхронный парсер и скрапер картинок на Python с графическим интерфейсом

Время на прочтение6 мин
Количество просмотров14K

В этой статье мы создадим desktop-приложение, которое по нашему запросу будет сохранять на нашем диске заданное количество картинок. Так как картинок будет много, мы воспользуемся асинхронностью Python для конкурентной реализации операций ввода-вывода. Посмотрим, чем отличаются библиотеки requests и aiohttp. Также создадим два дополнительных потока приложения, чтобы обойти глобальную блокировку интерпретатора Python.

Читать далее
Всего голосов 10: ↑8 и ↓2+6
Комментарии9

Паттерн Aggregate Outside

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров6.5K

Руслан Гнатовский aka @Number55 в свой статье Когда ни туда, ни сюда, или в поисках оптимальной границы Domain слоя описал известную проблему протекания бизнес-логики из агрегата, в случае если эта логика зависит от данных которые находятся вне агрегата, и предложил несколько решений этой проблемы, каждое из которых не лишено недостатков. Многие из этих недостатков были описаны в статье а также в комментариях поэтому я не буду здесь дублировать эту информацию а попытаюсь предложить решение которое этих недостатков лишено.

Читать далее
Всего голосов 25: ↑25 и ↓0+25
Комментарии17

Книга «Объектно-ориентированный Python, 4-е изд.»

Время на прочтение19 мин
Количество просмотров8.3K
image Привет, Хаброжители!

Глубоко погрузитесь в различные аспекты объектно-ориентированного программирования на Python, паттерны проектирования, приемы манипулирования данными и вопросы тестирования сложных объектно-ориентированных систем. Обсуждение всех понятий подкрепляется примерами, написанными специально для этого издания, и практическими упражнениями в конце каждой главы. Код всех примеров совместим с синтаксисом Python 3.9+ и дополнен аннотациями типов для упрощения изучения.

Стивен и Дасти предлагают вашему вниманию понятный и всесторонний обзор важных концепций ООП, таких как наследование, композиция и полиморфизм, и объясняют их работу на примерах классов и структур данных Python, что заметно облегчает проектирование. В тексте широко используются UML-диаграммы классов, чтобы было проще понять взаимоотношения между классами. Помимо ООП, в книге подробно рассматривается обработка исключений в Python, а также приемы функционального программирования, пересекающиеся с приемами ООП. В издании представлены не одна, а две очень мощные системы автоматического тестирования: unittest и pytest, а в последней главе детально обсуждается экосистема параллельного программирования в Python.

Получите полное представление о том, как применять принципы объектно-ориентированного программирования с использованием синтаксиса Python, и научитесь создавать надежные и устойчивые программы.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии3

Улучшение кода без споров и цитирования известных практик

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров10K

Не секрет, что при формировании новой команды руководители (Team Leader, Tech Leader) сталкиваются с проблемой формирования единого стиля написания программ, так как все члены команды новые, и у каждого из них свой подход к организации кода и выбору используемой практики. Как правило, в большинстве случаев это приводит к длинным диспутам на ревью, которые в итоге перетекают в различные толкования известных практик, таких как SOLID, KISS, DRY, и т.д. Принципы использования этих практик довольно размыты и, при должном упорстве, легко найти парадокс, когда одна из них противоречит другой. Например, рассмотрим Single Responsibility и DRY.

Одна из вариаций определения принципа единой ответственности (Single Responsibility - буква S из аббревиатуры SOLID) гласит, что каждый объект должен иметь одну ответственность, и эта ответственность должна быть полностью инкапсулирована в класс. Принцип DRY (Don’t repeat yourself) предлагает избегать дублирования в коде. Однако, если у нас в коде есть один набор данных (DTO), который может использоваться в разных слоях/сервисах/модулях, какому из этих принципов нам следовать? Безусловно, во многих книгах по программированию разбираются похожие ситуации, как правило, в них говорится, что если речь идет о разных объектах/функциях с одинаковым набором свойств и логики, но принадлежащим разным доменным областям, то дублированием это не является. Но как доказать что эти объекты ДОЛЖНЫ принадлежать разным доменным областям, и, главное, готов (и уверен ли в своих силах) руководитель доказывать это утверждение?

Читать далее
Всего голосов 27: ↑26 и ↓1+25
Комментарии17

Введение в коллекции Java

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров8.4K

Собственно говоря, зачем эта статья и для кого? Для тех, кто только начинают свой путь в изучении Java. В этой статье я не буду сильно углубляться в детали каждой коллекции в отдельности, ведь чтобы начать ими пользоваться достаточно хотя бы на базовом уровне понять, что это такое и с чем это «едят».

Читать далее
Всего голосов 16: ↑8 и ↓80
Комментарии9

Применение ООП на практике

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров17K

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

Читать далее
Всего голосов 16: ↑15 и ↓1+14
Комментарии17
1
23 ...

Вклад авторов