Telegram Group & Telegram Channel
Отзыв на книгу Gang of Four Design Patterns

Последние годы я читаю фундаментальные книги по программированию. Убежден, что многие мои профессиональные навыки и заслуги складывались из них. Одна из первых таких книг была “паттерны объектно-ориентированного программирования”.

Я часто не понимал, почему Java библиотека написана так, как написана. Не понимал код старших программистов. Как разбивать мой код на сущности и классы. И самое главное — как комбинировать мои классы эффективно. Эффективно — значит решать мою задачу и не перепроектировать классы при внесении изменений:
- не зависеть от конкретных реализаций;
- не зависеть от аппартной или программной платформы;
- уменьшать связанность;
- иметь удобство при изменении классов.

Наибольшее впечатление на меня произвела глава про структурные паттерны: адаптер, декоратор, прокси и мост. Она показала мне, как из классов и объектов выстраиваются более крупные структуры. Например, без этой книги я бы в жизни не спроектировал такой API из java библиотеки:

new DataInputStream(new BufferedInputStream(new FileInputStream("example.txt")));


Самое интересное, что эти паттерны невероятно схожи. Например, взгляните на паттерны Декоратор и Прокси. По большому счету с точки зрения использования наследования и композиции в них вообще нет разницы! Скорее всего, это объясняется тем, что все структурные паттерны основаны на небольшом множестве языковых механизмов структурирования кода и объектов (наследование / композиция).

И я в тот же день внедрил пару паттернов в код для проектирования взаимодействия с AccountManager, о котором писал выше:

val repository = AMRepositoryProxy(
delegate = AMEncryptionDecorator(
delegate = AMRepositoryImpl(
accountManager = AccountManager.get(appContext)
)
),
isEnabled = { isEnabledInternal(appContext) }
)



group-telegram.com/artrblog/31
Create:
Last Update:

Отзыв на книгу Gang of Four Design Patterns

Последние годы я читаю фундаментальные книги по программированию. Убежден, что многие мои профессиональные навыки и заслуги складывались из них. Одна из первых таких книг была “паттерны объектно-ориентированного программирования”.

Я часто не понимал, почему Java библиотека написана так, как написана. Не понимал код старших программистов. Как разбивать мой код на сущности и классы. И самое главное — как комбинировать мои классы эффективно. Эффективно — значит решать мою задачу и не перепроектировать классы при внесении изменений:
- не зависеть от конкретных реализаций;
- не зависеть от аппартной или программной платформы;
- уменьшать связанность;
- иметь удобство при изменении классов.

Наибольшее впечатление на меня произвела глава про структурные паттерны: адаптер, декоратор, прокси и мост. Она показала мне, как из классов и объектов выстраиваются более крупные структуры. Например, без этой книги я бы в жизни не спроектировал такой API из java библиотеки:

new DataInputStream(new BufferedInputStream(new FileInputStream("example.txt")));


Самое интересное, что эти паттерны невероятно схожи. Например, взгляните на паттерны Декоратор и Прокси. По большому счету с точки зрения использования наследования и композиции в них вообще нет разницы! Скорее всего, это объясняется тем, что все структурные паттерны основаны на небольшом множестве языковых механизмов структурирования кода и объектов (наследование / композиция).

И я в тот же день внедрил пару паттернов в код для проектирования взаимодействия с AccountManager, о котором писал выше:

val repository = AMRepositoryProxy(
delegate = AMEncryptionDecorator(
delegate = AMRepositoryImpl(
accountManager = AccountManager.get(appContext)
)
),
isEnabled = { isEnabledInternal(appContext) }
)

BY Engineering notes | Артур Илькаев






Share with your friend now:
group-telegram.com/artrblog/31

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

At its heart, Telegram is little more than a messaging app like WhatsApp or Signal. But it also offers open channels that enable a single user, or a group of users, to communicate with large numbers in a method similar to a Twitter account. This has proven to be both a blessing and a curse for Telegram and its users, since these channels can be used for both good and ill. Right now, as Wired reports, the app is a key way for Ukrainians to receive updates from the government during the invasion. "The inflation fire was already hot and now with war-driven inflation added to the mix, it will grow even hotter, setting off a scramble by the world’s central banks to pull back their stimulus earlier than expected," Chris Rupkey, chief economist at FWDBONDS, wrote in an email. "A spike in inflation rates has preceded economic recessions historically and this time prices have soared to levels that once again pose a threat to growth." False news often spreads via public groups, or chats, with potentially fatal effects. Artem Kliuchnikov and his family fled Ukraine just days before the Russian invasion. The picture was mixed overseas. Hong Kong’s Hang Seng Index fell 1.6%, under pressure from U.S. regulatory scrutiny on New York-listed Chinese companies. Stocks were more buoyant in Europe, where Frankfurt’s DAX surged 1.4%.
from jp


Telegram Engineering notes | Артур Илькаев
FROM American