dzz: Dizzy の冬 (Default)
[personal profile] dzz
И никогда, вы слышите, никогда не доверяйте web-разработчикам проектирование архитектуры промышленных систем!

Задачка - относительно простая система управления видеоконтентом для андроидных экранчиков. Архитектура - 6 виртуальных серверов на реальных IP (2 базы, бэк, storage, фронт, nginx-маршрутизатор) + CI/CD с гитлабом для всего этого великолепия. Декомпозиция по учебнику :)

Товарищ уволился три месяца назад, проект передали в мой отдел.

Сейчас понадобилось собрать standalone-машинку для мелкого пилота. Два человека охреневают от мощи архитектурного решения уже третий день, постепенно впихивая весь этот сон разума в одну операционку :)

Мораль: не переусложняйте.

P.S. Автор хотел написать систему, масштабируемую на 100500 клиентов. Но само приложение разработано так, что каждому клиенту нужен свой экземпляр системы. Sic.

RE: !

Date: 2023-01-26 04:24 pm (UTC)
From: [identity profile] parakhod.livejournal.com

Ну мы-то по другую сторону "железного занавеса" сидим, от нас ничего не уходит.
По счастью нам и самим уходить ниоткуда не приходится, потому что никуда и не приходили (у нас нет on-premises инсталляций нашей платформы восточнее Саксонии).

Ну а нынешняя страсть к контейнерам и микросервизации везде где надо и не надо — это беда, да. Вторая, как по мне — неожиданное признание функционального программирования как спасения ото всех бед и анафема ооп (я и сам не сторонник марксизма в программировании, но это уж слишком, классы сами по себе — не зло, зло программисты на жабе и шарпах что плодят их без меры).

RE: !

Date: 2023-01-27 04:52 am (UTC)
vitus_wagner: My photo 2005 (white)
From: [personal profile] vitus_wagner

Классы — не зло. Классы — отсутствие добра (как Дьявол — отсутствие Бога).


Классы и экземпляры это слишком общая абстракция.


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


Вот, например реляционная алгебра.


Беда в том, что для того чтобы придумать хорошую абстракцию нужен гений уровня Кодда или Кнута. (впрочем, если абстракция должна работать не во всем мировм IT, то может и кто попроще сойдет навроде Пола Грэма. Но вот гений который придумал бы хорошую абстракцию для пользовательского интерфейса, хотя бы для распространенных частных случаев, до сих пор не нашелся).


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

Re: !

Date: 2023-01-27 06:38 am (UTC)
From: [identity profile] dzz.livejournal.com
Классы — это просто инструмент, достаточно удачный для широкого использования. Другое дело, что во всём следует соблюдать меру.

Re: !

Date: 2023-01-27 06:40 am (UTC)
vitus_wagner: My photo 2005 (white)
From: [personal profile] vitus_wagner

На мой взгляд, классы крайне неудачный инструмент для ШИРОКОГО пользования. Он дает ощутимые преимущества только при правильном ОО-дизайне. Что, конечно, проще чем придумать целый новый раздел математики, но тем не менее.


RE: Re: !

Date: 2023-01-27 08:35 am (UTC)
From: [identity profile] dzz.livejournal.com

Строго говоря, ЛЮБАЯ технология даёт преимущества только при грамотном её использовании :)

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

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


December 2025

S M T W T F S
  12 3456
7 8 9 10 11 1213
14151617181920
21222324252627
28 29 3031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 31st, 2025 10:30 pm
Powered by Dreamwidth Studios