Форум программистов, компьютерный форум, киберфорум
ООП и паттерны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
Результаты опроса: используете ли вы ооп
да 238 86.55%
нет 37 13.45%
Голосовавшие: 275. Вы ещё не голосовали в этом опросе

 
 
Рейтинг 4.76/461: Рейтинг темы: голосов - 461, средняя оценка - 4.76
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386

Стоит ли использовать ООП?

09.02.2010, 13:44. Показов 103203. Ответов 793
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Возник такой вопрос: стоит ли использовать ооп. Даже не так, когда использовать ооп?
Иногда (даже чаще всего) легче написать простые функции, а не мутить с классами обектами и методами.
Раздражает инкапсуляция - какой вообще ее смысл? Чтобы получить переменную класса по правилам ооп нужно создавать метод для ее чтения? когда такой подход оправдан - ведь затрачивается куча лишнего времени.
5
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.02.2010, 13:44
Ответы с готовыми решениями:

Стоит ли использовать ООП -- часть вторая
У людей задающих подобные вопросы не все в порядке с пониманием ООП. Например, в параллельной теме человек интересуется: На самом...

Какие РЕАЛЬНО есть причины НЕ использовать ООП?
Появился такой вопрос. Все мы знаем о шумихе вокруг ООП, спорной идее наследования, других невнятных идей которых можно добиться...

Где стоит использовать bootstrap и стоит ли вообще использовать CSS фреймворки?
Здравствуйте. Лично я ужасаюсь ковырять стили, когда к сайту подключен bootstrap и мало понимаю, чем он хорош вообще. В данной теме я бы...

793
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
16.02.2010, 11:13
Студворк — интернет-сервис помощи студентам
Что-то тема затихает..
Желающим - пара ссылок на авторитеты:
Объектная парадигма провалилась
Объектная парадигма не провалилась
0
 Аватар для snake32
3583 / 1713 / 236
Регистрация: 26.02.2009
Сообщений: 8,653
Записей в блоге: 6
24.02.2010, 19:31
Цитата Сообщение от Black Fregat Посмотреть сообщение
Желающим - пара ссылок на авторитеты:
Объектная парадигма провалилась
Интересно, автор этой статьи до написания её хоть разок попытался ли написать свою прогу с использованием ООП? Складывается ощущение что кроме как прочтение теоритических основ по ООП дальше дело затухло - дальше стало влом. Кроме как умершего Липса не смог ничего выучить(ещё неизвестно как там у него с липсом было). Это напоминает мне ситуацию когда человеку настолько лень что-либо сделать, что он начинает отмораживатся и прибумывать нелепые факты, типа объясняющие нежелание изучать что-либо.
будет справедливо заметить, что ООП сегодня находится на «уровне кирпичей»
Ну да, полиморфные кирпичи, которые умеют что-то делать сами - по-моему, это уже не просто кирпичи. А к какому левелу отнесёт автор процедурное программирование? Готовые шалоши из бамбука?
Современные тенденции в ИТ принуждают к единообразному подходу, в рамках которого предполагается, что одна парадигма устроит всех во всех ситуациях. Но, даже стараясь изо всех сил, приверженцы ОО не могут предоставить убедительное итоговое решение, подходящее для всех без исключения.
Не удивительно, что не могут предоставить - это вообще возможно? Удовлетворить всех и вся - утопия.
Вместо статичных типов, точных интерфейсов и математических обоснований, появилась острая необходимость в самоорганизующихся механизмах, способных к самопроверке и различной реакции на ошибки, в управляемых системах, общая сложность которых будет лежать за пределами понимания одной личности
Как же можно управлять системой которая будет лежать за пределами понимания одной личности? Может конечно и можно, но насколько это управление будет эффективным. У меня сразу ассоциации с мартышкой и лимонкой. Но походу система на столько умна, что будет выпрямлять кривые руки программера самостоятельно. Так может сразу уже искусственный интеллект сделаем? И нафиг вообще этой системе человек?

Приведённые факты(если это можно так назвать) о провале ООП больше похоже на мутную воду из-за которой срочно надо исследовать другие направленя и парадигмы, которые даже не перечислены как возможные альтернативы тк автор повидимому даже не представляет куда копать, а всё мечтает о поэзии... Не знаю чем этот чел прославился, но точно не качественным ПО. Может стихи хорошие писал?

PS: Вся статья полный бред и ни одной полезной мысли я так и не увидел.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
24.02.2010, 20:19
Цитата Сообщение от snake32 Посмотреть сообщение
PS: Вся статья полный бред и ни одной полезной мысли я так и не увидел
А в подобных статьях с однобоким взглядом на проблему ты хоть раз в жизни прочёл чего-нибудь стОящего? Я, навскидку, ни разу
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
24.02.2010, 20:23
Эти две "статьи" на самом деле - парные содоклады на каком-то семинаре, призванные подстегнуть народ к дискуссии. Соответственно, краски изрядно сгущены. А смысл процитированной статьи, видимо, в том, что на ООП, как всегда, возлагались несколько бОльшие ожидания, чем вышло на самом деле. И почему-то серебряной пули опять не получилось.
0
 Аватар для snake32
3583 / 1713 / 236
Регистрация: 26.02.2009
Сообщений: 8,653
Записей в блоге: 6
24.02.2010, 21:38
Цитата Сообщение от Evg Посмотреть сообщение
А в подобных статьях с однобоким взглядом на проблему ты хоть раз в жизни прочёл чего-нибудь стОящего?
Это моя первая, и надеюсь единственная однобокая прочитанная статья Читал её во всех направлениях, пытался найти адекватные мысли, но безуспешно....

Цитата Сообщение от Black Fregat Посмотреть сообщение
как всегда, возлагались несколько бОльшие ожидания, чем вышло на самом деле. И почему-то серебряной пули опять не получилось.
Вот никогда не пойму таких людей! Что и на что возлагали? Они то хоть сами себе это представляют? Хотят чтобы - РАЗ! и все проблемы решены. Вроде взрослые дяди, а мыслят как-то по деЦки. Они просто - лагают...
0
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
25.02.2010, 18:57  [ТС]
А тема снова возродилась!!!


Цитата Сообщение от snake32 Посмотреть сообщение
будет справедливо заметить, что ООП сегодня находится на «уровне кирпичей»
По моему - это процедурное программирование - кирпичи. А обьекты можно сравнить с целыми зданиями, со всей необходимой инфраструктурой (лифт, электричество, телевидение и ... канализация).
НО: иногда удобнее использовать кирпичи, чтобы построить что-то маленькое и не заметное.


Цитата Сообщение от snake32 Посмотреть сообщение
Удовлетворить всех и вся - утопия
Вот именно. У каждой парадигмы свои цели.

Цитата Сообщение от snake32 Посмотреть сообщение
Хотят чтобы - РАЗ! и все проблемы решены
Все хотят. Но к сожалению это относиться к области фантастики
1
Day
 Аватар для Day
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
25.02.2010, 21:36
Грустный сегодня день. Поэтому и вспомнился мерзенький анекдотишка.
[Стоит ли использовать ООП
Перекличка в тюрьме.
Иванов! - Я!
Петров! - Я!
Сидоров! - Здесь!
А куда ты, падла, денешься!

Хорошая тема!

Добавлено через 1 час 25 минут
Чего-то хотел сказать, а получилась сказочка. В тему, нет ли - не знаю.



Сказочка

Ребята!
Может кто помнит крутые семедесятые?
Сколько же было всего!
И Фортран (уважаю), и Алгол (был такой академический изыск),
и всякие Симулы, Форты и АПЛ.
Автокод на Автокоде.
Всего не упомнить мне.
Одно перечисление займет кучу мегабайтов.
А конкретно работать ни на одном из этих чудовищ было нельзя.
А какие были операционки! Одна OS-360, не к ночи будь помянута,
чего стоит! Помните JPL? Мне до сих пор в кошмарах снятся его EXTENT-ы.
Но возник ПЛ-1. Монстроидальная вполне штука. Но на нем можно было
РАБОТАТЬ. И память выделять, и к файлам обращаться.
А нашему программистскому племени чего еще нужно? А изящество -
оно только в кино.
Тем временем зрели Ады и Шестьдесят Восьмые Алголы, и еще черте-сколько
вещей, смысл которых был только в том, чтоб утешить гордыню их создателей.
Вавилонское столпотворение - всего лишь шалость юного Бога.
И в этом хаосе вдруг появилась тройка парней. С простыми такими
фамилиями. Один - на Р, другой - на К, а третий - на Т.
Собрались вот на троих, крякнули, а какого мол хрена, говорят.
Надо, чтоб было хорошо, и тебе - Р, и тебе - К, и тебе - Т.
А кому не нравится - пусть обкакаются!
И придумали (на троих-то всегда легче соображается).
Вроде, сначала сказали "А", потом "В", а уж потом "С".
Вот в общем-то и все.
И не стало ни Симул ни ПиЭлей, Ады пошли к себе домой,
68-й сам по себе устарел, а замученный программер вдруг увидел,
что все не так уж и плохо, жизнь-то налаживается.
Есть, есть, и будут Паскали и Бэйсики, но, между нами, я думаю,
что штучки антимонопольного комитета.
Вот тут и хочется сказать "они жили счастливо и умерли в один день",
но жизнь-то продолжается.
И появились новые технологии, на чистом С не очень-то выражаемые,
и снова стали люди строить башню Вавилонскую, И снова смешал языки
их Господь.
Что ж, будем ждать когда опять соберутся ТРОЕ.
2
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
25.02.2010, 23:51
Day, я с историей не очень знаком, но вроде бы сначала появилось некое "C with classes", который был разработан для того, чтобы как-то облегчить техническую сторону жизни, но потом из этого вырос монстр Си++. Бейсик и Паскаль очень хороши для обучения, потому как Си слишком сложен для начинающего и, как детище чистых программистов, имеет слишком много бардака в виде нестрогого синтаксиса и всяких "implementation defined", "unspecified" и "undefined". Во всём остальном в какой-то степени согласен
1
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
26.02.2010, 00:00
Дык, об истории рождения C++ и почему он получился именно таким - подробно написано у Страуструпа в его "The Design and Evolution of C++"....

И здесь, надо сказать, я с Бьярном согласен ("Галантерейщик и кардинал! Это сила!" (с) - Леонид Каневский бесподобен.... :-) ). Есть много языков, с научной точки зрения более стройных и строгих, более "идеологически правильных", но при всех этих достоинствах - чисто академических, мертвых.........
1
 Аватар для polimorf96
9 / 9 / 1
Регистрация: 02.08.2010
Сообщений: 270
01.12.2010, 22:51
Цитата Сообщение от Evg Посмотреть сообщение
Day, я с историей не очень знаком, но вроде бы сначала появилось некое "C with classes", который был разработан для того, чтобы как-то облегчить техническую сторону жизни, но потом из этого вырос монстр Си++. Бейсик и Паскаль очень хороши для обучения, потому как Си слишком сложен для начинающего и, как детище чистых программистов, имеет слишком много бардака в виде нестрогого синтаксиса и всяких "implementation defined", "unspecified" и "undefined". Во всём остальном в какой-то степени согласен
верно снчало было c witch classes (я нагло вмешаюсь в разговор...)
c with classes имеет в отличие от с имеет возможность ООП. Но с++ в отличие от с witch classes имеет множество других возможностей.
Что касается ООП-да да и только да. Я использую ООП на все 100%! Парадигма ООП колосально улучшает абстрактность кода.(проще говоря улучшает читаемость и код более приближён к реальному миру.)
Возможно код с использованием ООП бывает и больше.(бывает и наоборот). Но в любом случае код с использованием ООП намного более читаемый. Тем более если классы засунуть куда-нибудь в отдельный файл то код программы становится довольно маленьким и читаемым.Можно оганичится парадигмой структурного программирования но это будет глупо. Ну ООП можно не применять в программе hello world! (и то лучше с cin & cout которые так же являются объектами).

Главное правильно уметь писать и правильно использовать ООП и тогда программирование на с++ доставит удовольствие.(кого-то сейчас цитировал кого не помню).


с грамотностью у меня не важно сразу извеняюсь за все все ошибки.
1
Griza
17.12.2010, 07:42
Объектно-ориентированный подход - это признак хорошего тона программирования. Уважающий себя программист никогда не забросит ООП, ведь класс - это представления объекта в особенностях его состояния и поведения. Все как в жизни, я считаю)

Механизм виртулизации, позднее связывание - крайне полезная и очень удобная штука!
И паттерны проектирования очень полезны, например, при изменении функциональности модуля без изменении уже написанного кода, или сокрытие всей реализации, оставляя только интерфейсную часть. Это все очень удобные и полезные штуки! Правда с ними надо разобраться.
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
17.12.2010, 09:18
Цитата Сообщение от Griza Посмотреть сообщение
Объектно-ориентированный подход - это признак хорошего тона программирования
Использование ООП там, где он не нужен - признак низкой квалификации
1
 Аватар для snake32
3583 / 1713 / 236
Регистрация: 26.02.2009
Сообщений: 8,653
Записей в блоге: 6
17.12.2010, 17:38
Цитата Сообщение от Evg Посмотреть сообщение
Использование ООП там, где он не нужен - признак низкой квалификации
Тогда возникает вопрос где оно(ООП) действительно не нужно? Понятное дело что приложениям типа хелоуворлд ООП ни к селу ни к городу. Но вот более сложные программы.... хочу пример!
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
17.12.2010, 18:42
Цитата Сообщение от snake32 Посмотреть сообщение
Тогда возникает вопрос где оно(ООП) действительно не нужно? Понятное дело что приложениям типа хелоуворлд ООП ни к селу ни к городу. Но вот более сложные программы.... хочу пример!
Где-то я уже приводил случай, как один товарищ у нас взялся писать задачу о расстановке ферзей на шахматной доске (чтобы ферзи друг друга не били). Сделал класс "доска", сделал абстрактный класс "фигура" с виртуальным методом типа "бьёт ли фигура такую-то клетку". Сделал производный класс "ферзь". После чего сделал какой-то класс, который генерирует комбинацию из 8 позиций. Поскольку всё типа типа абстрактно, то самая первая комбинация, выдаваемая этим классом - это первые 8 полей (идущих в ряд). В итоге программа вместо одной страницы кода превратилась в двадцать страниц гавнокода (несмотря на то, что всё было написано аккуратно и без закосов под индусов). Естественно, программа рожала хотя бы одно решение очень и очень долго (тогда ещё процессоры были 33 мегагерца). Этот пример я очень часто привожу как задачу, которую вовсе не нужно решать абстрактно, а нужно решать очень даже конкретно.

Если брать более реалистичные задачи, то знакомый работает в банке и у них есть какие-то программы, которые обрабатывают текстовые файлы с логами (не то от банкоматов, не то ещё чего-то там). Т.е. есть поток данных на входе, нужно сгенерить поток обработанных данных на выходе. Объектно-ориентированный подход (не путать с объектно-ориентированной реализацией конкретного алгоритма!) тут нафиг не нужен.
0
 Аватар для snake32
3583 / 1713 / 236
Регистрация: 26.02.2009
Сообщений: 8,653
Записей в блоге: 6
17.12.2010, 20:47
Цитата Сообщение от Evg Посмотреть сообщение
Сделал класс "доска"......После чего сделал какой-то класс, который генерирует комбинацию из 8 позиций
Неее.... ну это он явно перегнул палку. А класс ферзь я бы тоже сделал. Мне лично было бы удобнее работать с ферзём как объектом. Легко добавить метод отображения, метод вычисляющий битые клетки, и тп.... хотя если нужно вывести только местоположения ферзей в текстовом виде на консольном окне. То можно обойтись одним массивом положения ферзей и фсё. Но реальные задачи обычно требуют гораздо большего.
Цитата Сообщение от Evg Посмотреть сообщение
Если брать более реалистичные задачи, то знакомый работает в банке и у них есть какие-то программы, которые обрабатывают текстовые файлы с логами (не то от банкоматов, не то ещё чего-то там). Т.е. есть поток данных на входе, нужно сгенерить поток обработанных данных на выходе. Объектно-ориентированный подход (не путать с объектно-ориентированной реализацией конкретного алгоритма!) тут нафиг не нужен.
Согласен, тут удобнее всего использовать старое доброе процедурное программирование. Сам недавно обрабатывал текстовый поток данных - польский формат карт GPS, которые необходимо было тупо занести в БД.
0
Day
 Аватар для Day
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
17.12.2010, 22:33
ИМХО, ООП действительно нужен только там, где есть события, т.е. для организации взаимодействия с пользователем. Вот сидит Объект, долбает по клавишам, мышью шевелит, надо на него Ориентироваться. Ну и параллельная работа нескольких программ или управление производственным процессом, конечно тож. А для обычной расчетной задачи - мне он и на фиг не нужен. Как-нибудь по старинке, нарисую структурки, функции друг дружку вызывать будут, т.е. там, где можно обойтись процедурным программированием - обхожусь. Оно и понятнее как-то, и видна последевательность действий (чуть не оговорился и не сказал "событий").
Но если кому-то понятнее и привычнее в классики играть - да ради Бога! Языки и парадигмы для того и придумуваются, чтоб программист могут свою косноязычность преодолеть. Только не надо рук выкручивать, да за модой гоняться.
1
Заблокирован
18.12.2010, 14:20
Цитата Сообщение от Evg Посмотреть сообщение
Этот пример я очень часто привожу как задачу, которую вовсе не нужно решать абстрактно, а нужно решать очень даже конкретно.
ООП и абстракция — антонимы.

ООП действительно нужен только там, где есть события,
ООП в стиле Smalltalk с Message-passing — еще возможно, пародия на ООП в стиле Simlula — нежизнеспособно.
Тем более, есть другие, куда более подходящие парадигмы и мат.аппараты (https://www.cyberforum.ru/cgi-bin/latex.cgi?\pi-calculus, например).

Только не надо рук выкручивать, да за модой гоняться.
Большинство здесь именно этим и занимаются. На самом-самом примитивном уровне.
1
 Аватар для 0xAX
2451 / 362 / 9
Регистрация: 27.06.2009
Сообщений: 880
18.12.2010, 15:12
Цитата Сообщение от Griza Посмотреть сообщение
Объектно-ориентированный подход - это признак хорошего тона программирования
А если я на erlang пишу я плохой программист?
0
15 / 15 / 5
Регистрация: 19.10.2009
Сообщений: 187
21.01.2011, 01:56
Лучший ответ Сообщение было отмечено как решение

Решение

Вот кстати сейчас читаю "совершенный код" Макконнелла,как раз добрался до главы, где он приводит "разумный причины создания классов". глава 6.4 кому интересно.
3
Комбинатор
 Аватар для DenQ
980 / 252 / 13
Регистрация: 10.03.2010
Сообщений: 3,556
21.01.2011, 19:31
Цитата Сообщение от Evg Посмотреть сообщение
Использование ООП там, где он не нужен - признак низкой квалификации
Получается что все джависты, с позволения сказать, нубы?

Добавлено через 51 секунду
Цитата Сообщение от Metal_666_ Посмотреть сообщение
Вот кстати сейчас читаю "совершенный код" Макконнелла,как раз добрался до главы, где он приводит "разумный причины создания классов". глава 6.4 кому интересно.
Скачал, оглавление мне понравилось. Читать всю не буду, только выборочно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.01.2011, 19:31

Стоит ли учить ООП в одно время с Яп
Добрый день! Начал активно изучать c#. Читаю Шилдта в свободное от учебы время и стараюсь практиковаться и всё выходит пока нормально. Но...

Как использовать ООП в WinAvr
Класс я создал. А вот объект класса создать не получается! Полазив по интернету выяснил что оператор new не поддерживается компилятором! ...

Js class как правильно использовать ООП
Накидал вот такой простенький код, авторизация проходит, data.Access_token существует, но в this.Access_token почему то не сохраняется, не...

Когда следует использовать ООП в РНР?
Когда стоит учить ооп в РНР, если новичок в РНР? Стоит ли писать весь код в стиле ооп ?

WITH AS стоит ли использовать
Использую СУБД Postgresql, есть запрос SELECT * FROM Table1 WHERE Filed1 IN (SELECT Fileld1 FROM Table2 WHERE Fileld2='A' AND...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
280
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru