Рубрика «ооп» - 2

Предисловие

Итак, начнём мы с постановки задачи: мы хотим упростить вызов некой функции, которая является методом класса в отдельном потоке и при этом иметь инструментарий для её остановки / проверки статуса работоспособности / запуска и прочее. Разберём классический вариант класса, который будет содержать такой метод:

Читать полностью »

Десятилетиями нам рассказывают, что есть только два пути: громоздкие иерархии ООП или стерильная бюрократия ECS. Нас заставили поверить в то, что создание игр — это выбор между анархией и диктатурой.

Это ложь. Оба этих пути — ненужные усложнения. Есть прямой и эффективный способ, который мы променяли на модные, но непрактичные примочки. Эта статья — о том, как вернуться к здравому смыслу.

Читать полностью »

Недавно на подкасте Spring АйО мы обсуждали новые свитчи в Джаве - с паттерн-матчингом и деструктуризацией. Я тогда ещё выразил мнение, что всё это неправославно, по-зумерски и отход от принципов ООП.

Не от инкапсуляции, полиморфизма и наследования, а вообще от подхода. Новые свитчи будут провоцировать разработчиков писать код по-новому, а не так, как завещали нам наши далёкие предки. С нарушением традиций, норм и устоев. Как учит Кейси Муратори, если вы понимаете о ком я.

Читать полностью »

Перед прочтением

Многие из нас слышали про лучшие практики в программировании (KISS, DRY, SOLID, паттерны и прочее). У начинавшего разработчика при их изучении встает немой вопрос «а зачем мне все это?». Ответом на вопрос может послужить знаменитая в узких кругах игра «Щи» и статья автора, рассказывающая о процессе разработки. Однако оригинальный пост уже давно утерян в просторах интернета.

Читать полностью »

Привет, коллеги! На связи ботострой на aiogram

Немного предыстории

По своему опыту я привык работать с aiogram — это удобный и отлаженный фреймворк для Telegram-ботов с большим сообществом и обширной документацией. В aiogram удобно организовывать обработку команд, создавать сложные состояния, работать с inline-клавиатурами и встроенными механизмами.

Когда начал знакомиться с мессенджером MAX, я подумал, а почему бы не попробовать написать под него модуль для разработки чат-ботов на PythonЧитать полностью »

SOLID, DRY, KISS, YAGNI и др. принципы разработки, пугающие новичка в IT - 1

Данная статья является более расширенной версией моей научной статьи, на примере разработанного ПО для спортсменов-биатлонистов c абстрактными примерами, соответствующих тематики.

Читать полностью »

Exceptions -> OperationOutcome

В мире php-ходящих есть мнение, что первое, что сказал Иисус Христос придя в этот мир: "исключения - зло".

Причина, по которой появилась эта статья проста и банальна: автору надоело отлавливать тонну кастомных исключений между слоями приложения.

Исключения в php - мощный и гибкий способ отлавливать непредвиденные события, произошедшие при выполнении операции. И самое главное здесь то, что исключения предусмотрены на уровне самого языка.

Конструкция по типу try { .. } catch (Exception $e) { ..$e->getMessage() } знакома каждому 5 человеку в мире и воспринимается как неотъемлемая часть любой логики на php.

Читать полностью »

Полиморфизм, сколько в этом слове красивого и даже таинственного. Происходит оно от греческого πολύμορφος что означает — многообразный.  В программировании это понятие встречается часто и является обыденным для понимания большинством разработчиков. Но так ли обстоят дела на самом деле? 

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

Читать полностью »

Pasted image 20250504062224.png

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

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js