Почему так труден хороший дизайн UI для некоторых Разработчиков? [закрытый]

Ваш return_new_copy изменяет передаваемый параметр, что, вероятно, нежелательно. Это также переопределяет в неправильном направлении (отдавая приоритет self.attributes)

Я бы написал это следующим образом:

def return_new_copy(self, additional_attributes):
     # python<3.5 if there are only string keys:
     #     attributes = dict(self.attributes, **additional_attributes)
     # python<3.5 if there are non-string keys:
     #     attributes = self.attributes.copy()
     #     attributes.update(additional_attributes)
     # python3.5+
     attributes = {**self.attributes, **additional_attributes}
     return type(self)(attributes)

Несколько тонкостей: - Я обязательно скопировать оба входные атрибуты и атрибуты self - я объединяю дополнительные атрибуты поверх атрибутов self

Если вы ищете что-то, чтобы сделать это автоматически, вы можете проверить namedtuple [115 ]

Например:

>>> C = collections.namedtuple('C', ('a', 'b'))
>>> x = C(1, 2)
>>> x
C(a=1, b=2)
>>> y = x._replace(b=3)
>>> y
C(a=1, b=3)
>>> x
C(a=1, b=2)

206
задан 13 revs, 3 users 100% 6 November 2018 в 15:05
поделиться

64 ответа

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

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

1
ответ дан Stephan Eggermont 23 November 2019 в 04:46
поделиться

Я знаю, что, когда я произвожу дрянной UI, это почти всегда, потому что я также "зонируюсь в" на конкретных частях его.

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

После того, как я проверил его дюжину раз, я нахожусь в настроении, где я знаю точно, что я пытаюсь сделать и точно что я должен сделать, чтобы заставить программу сделать то, что я хочу. Я также и просмотр этой конкретной функциональности части совершенно отдельно, много раз пока это не "сделано". Я быстро уничтожаю прошлую остальную часть app/menus/workflow/whatever, в то время как я тестирую.

пользователь не находится в той же ситуации вообще. Они, не просматривают эту часть программного обеспечения как независимый "блок". Они не всегда делают его много времен, и когда они делают его часто, они, конечно, не делают его ОТДЕЛЬНО часто. Они не "пропускают" остальную часть процесса и фокусируются на этой части путем, разработчик делает.

важно попытаться посмотреть на UI, затем думайте, "что я, как предполагается, делаю с этим?". Если это не ясно, Вы делаете его неправильно. Мы находимся в ситуации, где мы ЗНАЕМ то, что вводит программное обеспечение, хочет, и мы просто выясняем способ получить тот вход. Пользователь находится в ситуации, где они хотят некоторый результат, и они хотят знать то, что они должны сделать это для получения того результата.

1
ответ дан TM. 23 November 2019 в 04:46
поделиться

пользователи думают сверху вниз, в то время как программисты часто думают вверх дном, когда они добираются до шага создания UI.

Мы (программисты) думаем настолько трудно о создании модели данных, которая сделает задание, которое будет содержать необходимые данные и т.д. Мы создаем UI для отображения аккуратно на базовую модель. Так то, что мы часто, мы забываем смотреть на то, как наши пользователи приближаются к той же задаче и не вхождению в их поток и образ мыслей.

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

Это часто - несоответствие к их представлению (и ожидания) задача.

, Как решить его? Я думаю, что один путь состоит в том, чтобы на самом деле спросить (потенциального) пользователя, как они ожидают, что программа будет работать прежде когда-либо показывать что-либо им. Никогда не давайте им подсказки, как мы реализовали бы опцию. Моделируйте UI на бумаге с ними, позвольте им сказать Вам, что они ожидают и нуждаются в любой момент. Никогда ничего не считайте само собой разумеющимся.

пальмовый пилот был разработан более нисходящим способом:

Перед стартовой разработкой Пилота, Hawkins, как говорят, нес блок древесины, размер потенциального пилота, в его кармане в течение недели. ( Из этой статьи )

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

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

Видят, bulletpoint 1 (Устраните опции) и 3 (Underpromise, сверхпоставьте), здесь.

1
ответ дан Arjan Einbu 23 November 2019 в 04:46
поделиться

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

Нижняя строка: Никогда не становитесь слишком удовлетворенными своими прошлыми или настоящими успехами. Научитесь на своих собственных и ошибках других.

1
ответ дан JacobE 23 November 2019 в 04:46
поделиться

Я использую то, что я называю тестом Grandmaw.

  • , Если Ваш дорогой старый Grandmaw не может использовать его, существует проблема.
  • Предположение она знает то, что знает программа о, например, как сделать налоги и пытается использовать, Ускоряются.
1
ответ дан Paul Nathan 23 November 2019 в 04:46
поделиться

Точно так же, как с музыкой: Иногда люди могут быть технически великими музыкантами, но не быть художниками. Мое эмпирическое правило всегда присутствует пользователь только с UI, в котором они нуждаются в то время. Я замечаю много разработчиков бэкэнда, заполняющих экран с каждой опцией, вообразимой, когда они делают UI. В то время как тем умам типа нравится иметь все подробности сначала и медленно игнорировать то, в чем они не нуждаются, который не работает на большинство конечных пользователей.

1
ответ дан User 23 November 2019 в 04:46
поделиться

Хорошая книга, которая обеспечивает много мыслей о пользовательском интерфейсе и его важности, В Начале, была Командная строка Neal Stephenson. Не всем нужен GUI, просто много людей, которые не программируют. Это похоже на различие между Животным миром DisneyWorld и фактическим Amazon.

1
ответ дан J. Polfer 23 November 2019 в 04:46
поделиться

"хороший дизайн ui" на самом деле две проблемы :

  1. получение правильного дизайна
  2. , получающего право дизайна

, оба - тяжелые проблемы. по моему опыту, эти две вещи должны быть исследованы в параллели , относительно не получают ужасные неожиданности поздно в проекте ("почему наш сексуальный drag& отбрасывание ультрамедленного в IE8?? что Вы подразумеваете, что это не является закрепляемым???")

для получения правильного дизайна необходимо будет исследовать книги posibilites., может вести Вас к испытанию вещей, которые имеют большую часть смысла для Вашего cicumstance - опыт еще лучше, конечно. также Вы, absolutly нужна обратная связь от реальные пользователи - как еще Вы узнали бы, что дизайн является уже правильным? ( Вы , конечно, не можете сказать.. продолжайте читать!)

"получение права дизайна" затем является следующей проблемой, поскольку это означает дизайн, Вы нашли соответствующим, должен быть реализован.

это "пользовательский опыт / gui" вещи так твердо, потому что нахождение правильного ответа включает понимание, что люди хотят - который они не могут objectivly говорить Вам, и Вы, с другой стороны, не можете найти из "внешней стороны". это означает (опыт-) вел trial& ошибочный подход является единственным способом пойти.

<час>

, чтобы более ясно ответить на Ваш вопрос:

, почему так труден хороший дизайн ui для некоторых дьяволов

для жестких разработчиков, которые большая проблема, что их понимание того, как программное обеспечение работает, таким образом очень отличающееся от того, как пользователи думают, что это работает (например, URL "www.stackoverflow.com" должен быть записан как "com.stackoverflow.com", если Вы знаете что-нибудь о том, как DNS работает. но попытайтесь продать браузер, который ожидает URL это как этот :)).

как заметка на полях: Я предложил бы, чтобы Вы изучили "дизайн опыта" скорее затем "дизайн пользовательского интерфейса", но это - другая история.

1
ответ дан oberhamsi 23 November 2019 в 04:46
поделиться

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

то, Где разъединение происходит, находится в отказе воображения. Неспособность для нас как человек для размышления обо всех возможностях и комбинации. Уверенный мы пытаемся преодолеть это с "лучшими" методологиями.

единственный способ, которым я нашел, что работы помещают меня в строку огня в получении отзывов пользователей. Таким образом, я УЗНАЮ о проблеме, которую я решаю, не только однажды, но и на продолжающейся основе, поскольку пользователи используют мое программное обеспечение.

Это не легкое решение. Необходимо не только быть хорошим программистом, но также и хороший в X с X являющийся любой проблемой, которую Вы пытаетесь решить. Путем обладания способностью X Вы можете необходимый опыт понять возможности и ограничения. Можно начать объяснять это в коде, приводящем к более полируемому программному обеспечению и в функциях, которые Вы предлагаете и в дизайне UI.

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

1
ответ дан RS Conley 23 November 2019 в 04:46
поделиться

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

проблема, большинство программистов имеет, то, что они не могут посмотреть мимо своих носов и понять то, что делает вещи легче понять и переварить.

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

А большим и простым примером является лифт. Обычно Вы нажимаете кнопки, чтобы открыться/закрыть двери, а также пересечь этажи здания. Вы могли вообразить, имели ли вместо этого Вы кнопки и переключаете Вас, должен был зеркально отразить, чтобы заставить от пола 1 говорить пол 2? Что, если необходимо было двигать панель назад для доступа к трем клавишным переключателям с тремя цветными ключами, необходимо повернуть в определенном порядке добраться до определенного пола?

можно быстро видеть, насколько трудный плохой интерфейс может быть и насколько простой и применимый хороший интерфейс.

0
ответ дан Syntax 23 November 2019 в 04:46
поделиться

Я полагаю, что у всех программистов CS есть способность произвести хорошие применимые проекты, потому что Дизайн Удобства использования требует, чтобы разработчики думали вдоль определенных путей и правил. Принимая во внимание, что разработка хорошего 'привлекательного' дизайна может быть почти невозможна для некоторых программисты. Это не означает, что оба непреклонно связаны. Как способность Mozart записать красивую музыкальную пьесу и не быть очень хорошим в футболе.

0
ответ дан Lee Treveil 23 November 2019 в 04:46
поделиться

На ноте отзывов пользователей Silverback ( http://silverbackapp.com/ ) является большим инструментом, если Вы находитесь на Mac. Я предлагаю создать список вещей сделать (найдите этот фильм, наблюдайте трейлер, найдите этот фильм с этим агентом, купите его, и т.д.), и наличие пользователей находится там и спускается по списку.

самая важная вещь не состоит в том, чтобы сказать им, КАК сделать это, но видеть, как они выполняют задачи (для второй сцены, они просматривают агентом, или они находят сцену в алфавитном порядке?). Можно запустить с нетехнически подкованных людей в компании и затем войти в Craigslist или поразить улицу и заплатить случайным людям для тестирования его.

0
ответ дан Jarin Udom 23 November 2019 в 04:46
поделиться

Я запущу путем высказывания, что у меня есть подобные дефициты к озвученным вопросом. Тем не менее, я думаю единственная причина, которую любой высосал бы при выполнении, что-либо то, потому что:

  • Они не поняли это и никогда не изучали теорию того, как и почему сделать это
  • , Они никогда не практиковали его достаточно для становления экспертом

, Таким образом, мой совет состоит в том, чтобы сначала получить книги и веб-страницы, Вам нужно, которые описывают предмет и изучают их. Много хороших ответов здесь на них, я добавил бы Пальто В Интерфейсе к списку. Также посмотрите на те UIs, которые являются рассмотрены большими как Mac, iPhone и Google.

второй шаг должен только начать создавать UIs. Это звучит легким, но если это не часть Вашей должностной инструкции, Вы, возможно, должны сделать это в свободное время. Свяжитесь с проектом веб-разработки как разработчик UI. Возможно, его Ваш собственный проект или чужой, но получение хорошего в создании веб-страниц могут дать Вам опыт, в котором Вы нуждаетесь и не должны быть к трудно, чтобы сделать.Удачи!

0
ответ дан Andrew Cowenhoven 23 November 2019 в 04:46
поделиться

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

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

основная идея о тестировании удобства пользования состоит в том, что Вы берете кого-то с подобными предпосылками к Вашей целевой аудитории, который hasn’t, замеченный, Ваше программное обеспечение прежде и просит, чтобы они выполнили типичную серию задач. Идеально они должны попытаться говорить вслух, что они думают, чтобы дать Вам больше понимания их мыслительных процессов. Вы затем наблюдаете то, что они делают. Критически, Вы не помогаете им, неважно, как непреодолимый убеждение. Результаты могут быть довольно неожиданными и очень разоблачающими. Тестирование удобства пользования может быть очень необычным с одним путем зеркала, видеокамеры и т.д., но что действительно isn’t необходимый для извлечения большей части пользы. Существует хорошее описание того, как выполнить тесты удобства использования в превосходная книга Krug’s, Don’t заставляют меня думать: разумное руководство по удобству пользования веб-страницами . Большая часть его совета одинаково применима к тестированию настольных приложений.

0
ответ дан Andy Brice 23 November 2019 в 04:46
поделиться

, "Что другие сделали для удаления их дефицитов в этой области?"
— Chris Ballance

  1. Работа с наименьшим количеством computer-savy-end-user можно найти.
    (Новый, это никогда не видело Ваше программное обеспечение).
  2. Получают обратную связь от них о том, что заставляет ее высосать для них.
  3. решают те проблемы, берут его к другому computer-unsavy-user,
  4. Повторение процесс снова..

, Когда достаточно fresh-unsavy-users может использовать Ваш продукт, Вы знаете о выполнении задания.

(Также Ваше программное обеспечение будет, вероятно, много походить на Microsoft, и Вы не будете, вероятно, любить использовать его...)

, Но это не точка! Дело в том, что конечные пользователи могут использовать его и любить использовать его!


Не разработчики!


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

Для помещения его иначе...

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

Тротуар и Студенты

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

Видеомагазины и Netflix

Для предоставления другого примера думайте о новейшей истории видеомагазина: Давным-давно было много видеомагазинов: Видео Уничтожителя Блока, и т.д...., что людям не нравились приблизительно те видеомагазины? Штрафы за просрочку платежа, конечно. , Таким образом, Netflix приехал и удалил штрафы за просрочку платежа, так как это было больше того, что хотел клиент/конечный пользователь.

Теперь Уничтожитель Блока арестовывает для bankrupcy наряду со всеми другими сбор, обугливающий видеомагазины.

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

0
ответ дан 4 revs 23 November 2019 в 04:46
поделиться

Я думаю причина, мы не можем разработать UIs, то, потому что мы - перфекционисты, и просто наклон решает, когда достаточно хороший достаточно хорошо. Я знаю, что лично не могу выдержать разработать UI, потому что я всегда сомневаюсь относительно меня и говорю, "не, это не достаточно хорошо".

0
ответ дан BBetances 23 November 2019 в 04:46
поделиться

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

0
ответ дан HLGEM 23 November 2019 в 04:46
поделиться

Легкий.

Разработчики не являются разработчиками. Они не обучались или попытались узнать о дизайне, итак, почему они должны быть способными к чему-то как дизайн UI? Это - почти то же, что, "почему считает настолько трудным для некоторых разработчиков?"

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

Проектирование и разработка является двумя совершенно различными зверями, но оба требуют фонового знания и практической работы. Если Вы не будете готовы поместить вовремя с одним из этих предметов затем, то Вы просто не будете очень хороши в нем, неважно, как хорошо Вам везла одна из Ваших программ/веб-сайтов во взгляд хорошего.

0
ответ дан Mike B 23 November 2019 в 04:46
поделиться

Я думаю, что часть его - то, потому что дизайн UI и проектирование программы часто имеют конфликтующие цели. Когда я программирую, я часто думаю, "Что самый легкий путь состоит в том, чтобы сделать это?". При разработке UI самый легкий путь является не всегда самым удобным для пользователя. Если Вы делаете обоих, которые у Вас могла бы быть тенденция выбрать самую легкую реализацию, которая негативно влияет на пользовательское дружелюбие.

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

дизайн UI - также не что-то, что является всегда правильным или неправильным. Различные люди оценят UI по-другому. Например, некоторые люди ненавидят новую "Ленту" UI в Office, некоторые люди любят его. Некоторые люди думают, что UI Apple OSX является большим, другие не заботятся о нем и находят трудным использовать. То независимо от того, что UI Вы придумываете Вас, будет иметь людей, которым не нравится он.

0
ответ дан dtc 23 November 2019 в 04:46
поделиться

Почему так труден дизайн UI для некоторых Разработчиков?

Это немного похоже на выяснение, почему баскетбол труден для footballplayers.

0
ответ дан Rik 23 November 2019 в 04:46
поделиться

Когда разработчики думают UI, они обычно думают идеальный виджет, который они могли использовать для этого или этой задачи (виджетом, я имею в виду текстовую область, поле комбинированного списка, так интерактивное поле поиска Ajax...). О UI и более особенно HCI, нужно думать на более низком уровне. Интересно разделить отражение о UI в 4 шага:

  • Задача и модель понятия: это является самым трудным понять в точке зрения разработчика. Необходимо абстрагировать от отражения всю идею, которую Вы могли иметь о будущей платформе, язык, который Вы могли использовать. [ Paterno, 97 ] является ссылкой в этом домене. Вы определяете свои задачи как дерево, где задачи имеют sub задачи. Здесь пример для задачи экспорта.

  • Затем Вы определяете абстрактный UI: это о задачах группы и подзадачах в рабочие области.
  • Бетон UI: можно теперь решить, который используют межагенты. Необходимо теперь думать о платформе (большой экран, КПК, мобильный телефон...). Вот ключ. Ваша модель задачи и абстрактный UI могут быть разложены на множители среди нескольких платформ.
  • И заключительный UI, реализованный на выбранном языке программирования.
0
ответ дан Community 23 November 2019 в 04:46
поделиться

Возможно, потому что некоторый разработчик запускает с DOS и продолжает частично работать над командной строкой ОС.
Или потому что некоторые из нас программное обеспечение записи, , потому что компьютер имеет некоторую нормальную логику , не как человек. :-)

0
ответ дан Avram 23 November 2019 в 04:46
поделиться

Дизайн UI является большим количеством искусства, чем наука и требует понимания Ваших пользователей и способности сочувствовать им.

Это очень отличается от того, чтобы говорить с компьютером весь день.

я не думаю, что люди всегда понимают это.

Вот немного самопроверки: Взгляните на значки шелка FamFamFam . Думайте, о котором значке Вы приняли бы решение представить различные функции в последнем приложении, которое Вы записали. При пребывании больше десяти минут, делая это делает Вас, глаза начинают тускнеть затем, дизайн UI, вероятно, не для Вас.

1
ответ дан 2 revs 23 November 2019 в 04:46
поделиться

Левое полушарие мозга по сравнению с правым полушарием мозга. У некоторых людей нет артистического смысла.

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

я думаю, что всегда возможно улучшиться.

1
ответ дан duffymo 23 November 2019 в 04:46
поделиться

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

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

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

2
ответ дан 2 revs, 2 users 86% 23 November 2019 в 04:46
поделиться

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

2
ответ дан F'x 23 November 2019 в 04:46
поделиться

Создай это для своей мамы.

1
ответ дан 23 November 2019 в 04:46
поделиться

Part of the answer is that UI design is much harder than it looks, just as coding is much harder than it looks to designers. The two worry to very different degrees about very different things, and this, apart from the obvious differences in approach and skills needed, causes them to focus on problems that are invisible to each other.

I've found that it helps to describe my app and how to use it to someone without any visual tools whatsoever. It helps focus on what is actually necessary and important and feeds back what can be comprehended quickly by another person. I can do this even before I have a line of code, so it's very cheap to do and doesn't require any artistic skills. The other advantage is that verbalizing the app gets parts of my brain working that otherwise would remain dormant while coding and I can start to "see" the app work (or not work) as I talk.

1
ответ дан 23 November 2019 в 04:46
поделиться

«Есть ли что-то, что мы можем сделать, чтобы переобучить наш мозг, чтобы он мог более эффективно разрабатывать приятные и полезные уровни представления?»

Да, используйте архитектуру, управляемую интерфейсом. Сначала спроектируйте пользовательский поток на основе ваших бизнес-требований --- затем спроектируйте логику программирования и базы данных на основе вашего пользовательского потока. Если вы структурируете промежуточные уровни и серверную часть как нечто, предназначенное для обслуживания внешнего интерфейса, тогда у вас будет приложение, ориентированное на пользователя.

1
ответ дан 23 November 2019 в 04:46
поделиться

Поскольку обычно они не Разработчики UI. Это - другой навык. Вот именно.

0
ответ дан Klelky 23 November 2019 в 04:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: