Жанр: Учеба

Дизайн пользовательского интерфейса

сторінка №13

), они вызывают обычно максимум про

блем, тем более что их обычно очень много. Понятно, что в таких условиях

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

сравнительно убогими вариантами. С другой стороны, не приходится

мучиться, рисуя полный набор.

Трудность создания таких пиктограмм не позволяет выводить какие либо

жесткие правила (мы не мазохисты), тем не менее, определенная тонкость

есть и здесь. В последнее время Microsoft ввела моду делать пиктограммы на

панели инструментов серыми, включая в них цвет только в моменты, когда

курсор находится над пиктограммами. Конечно, эта мода хороша тем, что

панель инструментов перестает походить на новогоднюю ёлку (особенно

слявятся этим продукты компании Lotus), но, с другой стороны, при этом

снижается разница между отдельными пиктограммами, т. е. снижается раз



WWW.UIBOOK.RU | ВЛАД В. ГОЛОВАЧ | ДИЗАЙН ПИ: ОСТАЛЬНОЕ

борчивость. При старой моде, равнодушно относящейся к цвету, если одна

пиктограмма в ряду содержала много синего цвета, она отличалась от

остальных, не синих. Серая панель инструментов, к сожалению, такого

достоинства не имеет. Так что и старая мода и новая имеют определенные

достоинства: выбирать вам.

Обратите внимание, что этот раздел не заменяет, а дополняет сведения,

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

создателями операционных систем.

Курсоры

Курсоры есть замечательное средство обеспечения обратной связи. Так,

всякий раз, когда пользователь подводит курсор к углу окна, курсор из

меняется, показывая пользователю, что форму окна можно увеличить.

К сожалению, у курсоров есть и обратная сторона: пользователи способны

примириться с некрасивой пиктограммой, поскольку они могут не смот

реть на неё, примириться же с некрасивым курсором они не могут, потому

что они вынуждены смотреть на него всё время, пока он присутствует на

экране.

Поэтому правило использования курсоров звучит следующим образом:

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

сделать это эстетически привлекательно; в остальных случаях о курсорах

даже и не думайте.

Но что вообще входит в понятие "красивого курсора"? Это, по преиму

ществу, все внешние курсоры, неважно, откуда они приходят, из ОС для ПО

или CSS для сайта (набор курсоров в обоих источниках практически

совпадают). Можно, конечно, нарисовать и собственные курсоры, но я не

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

нарисованы, так что вы можете легко нарушить чьи то авторские права.

Если же вы всё таки решитесь рисовать собственные курсоры, старайтесь

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

чтобы активная точка курсора (которая указывает) была возможно ближе к

верхнему левому краю курсора.

Цвет

Пожалуй, ни одна тема не вызывает у дизайнеров такого интереса и вооду

шевления, как цвет. Извечные споры "какой колёр лучше" не утихают и не

утихнут, похоже, никогда. Однако в рамках этой книги нет места для этих

споров, так что мы ограничимся малым.

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

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

типа "этот объект тёмный, значит!" не работают, поскольку требуют от

пользователей длительной тренировки. С другой, стороны, люди хорошо

способны замечать и анализировать взаимосвязи цветов, так, строки в

таблице, окрашенные в разные цвета, подсознательно будут группировать

ся пользователями по цветовому признаку. Обратите внимание, что

работать это будет только при очень ограниченном числе используемых

цветов (как можно догадаться, максимальное число цветов равно объему

кратковременной памяти). Однако на практике, всё, что можно передать

цветом, умещается в одно предложение: для всех красный цвет обозначает

"нельзя" или "осторожно", для многих людей зеленый обозначает "пое

хали" (от умения пользоваться светофором; интересно, что желтый цвет не

работает, хотя должен). Реально актуальна только первая половина пре

дложения, поскольку в нашем деле фраза "для многих людей" часто значит

"ни для кого".

Не используйте кодирование цветом без крайней необходимости, когда

же вы всё таки его используете, добавляйте дополнительные способы

индикации



WWW.UIBOOK.RU | ВЛАД В. ГОЛОВАЧ | ДИЗАЙН ПИ: ОСТАЛЬНОЕ

Во вторых, восприятие цвета индивидуально, при этом порой слишком

сильно. Я не имею в виду дальтоников (хотя и их тоже), просто достаточно

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

"поехали", и, что более важно, с возрастом зрение слабеет, при этом види

мые цвета темнеют и выцветают. Это значит, что нельзя использовать цвет

как единственный индикатор чего либо, обязательно должен быть и другой

признак. Из за этой индивидуальности восприятия цветов происходит

другое правило: позволяйте пользователю самому выбрать цвета, поскольку

цвет, нравящийся одному человеку, возможно, будет вызывать омерзение у

другого (желательно делать это системными средствами).

Звук

Звук, как и цвет, в интерфейсе не есть вещь абсолютно необходимая.

Скажем так, он практически не может делать что либо полезное, помимо
индицирования конца какого либо процесса (благодаря которому пользо

ватель освобождается от необходимости поминутно поглядывать на экран).

Это происходит вовсе не потому, что звук плох, но лишь потому, что очень

незначительное количество компьютеров имеет работающие звуковые

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

щего из компьютера пользователя. Таким образом, звука мы оказываемся

лишены. В то же время и о звуке есть что сказать, хотя и не много.

Система, завершив какую либо длительную операцию, должна пищать

Во первых, восприятие звуков у каждого человека уникально ещё более

чем даже восприятие цвета. Если пользователям полезно давать возможность

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

жестко: обязательно позволяйте пользователю самому выбирать звуки (и уж

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

полноценные звуки есть отнюдь не у каждого компьютера, в особенности

это касается офисных машин: у кого то нет звуковой платы, кому то

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

значит, что издавать писк при окончании операции нужно не с помощью

звуковой платы, а с помощью зуммера, который есть в каждом компьютере.

В третьих, надо всегда помнить, что качественный и приятный фоновый

звук чаще всего не воспринимается пользователями как благо, но зато при

этом звуке субъективно улучшается изображение (процентов на 20). Это и

есть главный аргумент за хороший звук.



WWW.UIBOOK.RU | ВЛАД В. ГОЛОВАЧ | ДИЗАЙН ПИ

Часть iii

Процесс

В этой части описана методология

дизайна интерфейса, обеспечивающая

достаточное качество работы, её

простоту, и, что немаловажно,

соблюдение сроков её выполнения.



WWW.UIBOOK.RU | ВЛАД В. ГОЛОВАЧ | ДИЗАЙН ПИ: ТРИ ШАГА К СОВЕРШЕНСТВУ

Три шага к совершенству

В процессе дизайна интерфейса выделяются три основных этапа, а именно

первоначальное проектирование (часто оказывающееся и окончательным),

создание прототипа и тестирование/модификация прототипа.

Фактически процесс дизайна, чтобы быть успешным и безусловным,

всегда стремится происходить в этой последовательности: проекти

рование, затем создание прототипа, затем тестирование/модификация,

затем опять тестирование/модификация, затем опять тестирование/

модификация, затем опять тестирование/модификация, затем нече

ловеческие крики начальства "Хоре волынку тянуть, шоб через пять минут

усё было!". Т. е. основным этапом оказывается не дизайн, но полировка уже

сделанного дизайна. С другой стороны, при тщательном проектировании

длительного тестирования обычно удается избежать - но, с другой сторо

ны, при этом проектирование становится достаточно длительным, так что

неизвестно еще, что лучше сокращать.

Этап проектирования сам по себе состоит из нескольких составляющих,

причем количество этих составляющих довольно велико. Радует, однако,

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

составляющие (собственно говоря, если выполнять всё таки придется, это

должны делать разные специалисты). Поскольку объем книги ограничен,

здесь описываются только самые необходимые.

При этом важно понимать, что здесь описываются только методы

создания новой системы. Модернизация старой требует совершенно других

методов и усилий, поскольку при этом приходится еще и безболезненно

исправлять имеющиеся недостатки (что чаще всего вообще невозможно по

организационным причинам). Как это ни печально, но в настоящее время

не найдено сколько нибудь универсального метода радикального улучшения

существующих систем. Зачастую вместо полноценного дизайна приходится

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

системе сомнительный шарм молодящегося старика.

В то же время методология проектирования описана в литературе слабо

(основной момент уделяется менеджменту, что в нашей стране не очень

актуально). Объясняется это тем, что общие принципы еще не выработаны

(за исключением отраслевых стандартов военных ведомств, которые

нечасто познавательны и всегда неприемлемы для чтения). В результате все

пользуются самодельными методами работы, в чём, по сути, нет ничего

плохого (трудности появляются при синхронизации работы нескольких

человек). Так что приводимые мной рекомендации преимущественно

базируются на моем личном опыте и пристрастиях. С другой стороны, они

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

придумывать, но брать готовое, что внушает надежду, что мои методы могут

быть использованы кем то кроме меня.

Необходимо также отметить еще и следующее. В процессе проектиро

вания вам понадобится незаслуженно забытые инструменты - а именно

ручка и бумага. Дело в том, что использование компьютера само по себе

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

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

подсознательно стараться сделать работу красиво, а не просто будете фикси

ровать свою мысль. Известно, например, что текстовые процессоры не

принесли ускорения письма - человек, пишущий на компьютере тратит



WWW.UIBOOK.RU | ВЛАД В. ГОЛОВАЧ | ДИЗАЙН ПИ: ТРИ ШАГА К СОВЕРШЕНСТВУ

уйму времени на полировку фраз. Владелец же печатающей машинки

полирует фразы в голове, что гораздо быстрее. Более того, почти

постоянно приходится делать много вариантов одного и того же - так зачем

полировать до блеска вариант, который вы отбросите через пять минут?

Тем более что после получения устраивающего результата всегда можно

перенести его в компьютер. Бумага имеет еще и то преимущество, что её

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

активности. Практика показывает, что вид сколотых скрепкой мятых

исчерканных листов почти всегда производит на руководящий состав

исключительное впечатление (мы то с вами знаем, что внутрь этой пачки

для толщины можно класть всё что угодно).

Множество перевернувших мир идей начали свою жизнь нарисован

ными на салфетке, что не никак не помешало им в дальнейшем. Так что

запаситесь бумагой и вы. Понадобится её немало.

Роль технического

писателя

Первым человеком, которого плохой интерфейс приводит в трепет,

является отнюдь не конечный пользователь, но технический писатель -

если интерфейс понятен, от писателя требуется мало работы, если

непонятен - много. Это делает технических писателей лучшими друзьями

дизайнеров интерфейсов.

Дело в том, что множество систем ни при каких обстоятельствах не

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

интерфейса. Система автоматизации, например, может быть эффективно

использована только в том случае, когда пользователь этой системы

понимает суть автоматизируемых процессов. Обязанность же технического

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

этим пониманием. Это значит, что концепции и суть сложной системы

могут быть безболезненно вынесены из интерфейса в документацию,

освобождая ресурсы дизайнера. С другой стороны, зачастую описание

концепций влияет на их реализацию в системе, особенно в ситуациях, когда

скорость обучения работе с системой является важнейшей составляющей

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

Джеф Раскин, Отец Макинтоша, изначально был начальником отдела

документации. После того, как он обнаружил, что имеющуюся систему

невозможно приемлемо описать, он создал новую, описывающуюся

хорошо. Побочным свойством новой системы, компьютера Макинтош,

было то, что его интерфейс был прост и удобен в работе.

Документация есть часть интерфейса, причем в сложных системах -

большая часть

С практической точки зрения это значит, что технический писатель

почти всегда знает о конструируемой системе не меньше, чем дизайнер,

или, во всяком случае, знает другое. Это делает необходимость комму

никации дизайнера с писателем насущной необходимостью, более того, во

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

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

Проблема этого подхода заключается в том, что роль документации в

нашей стране чрезвычайно недооценена. Создание документации воспри

нимается как сравнительно необязательный процесс, нужный

исключительно для утяжеления коробки с продуктом. От этого докумен

тация почти всегда пишется после того, как система создана, более того,

писателям мало платят. В результате работа технического писателя не

приносит ни денег, ни удовлетворения. Неудивительно, что средний

уровень отечественных техписов, мягко говоря, невысок, что не позволяет

рассчитывать на какую либо помощь от них.

С другой стороны, хорошие технические писатели есть. И если вы нашли

такого, смело считайте, что ваша работа будет легче и получится качествен

ней. А если не нашли - ищите, не покладая рук.




WWW.UIBOOK.RU | ВЛАД В. ГОЛОВАЧ | ДИЗАЙН ПИ: ПЕРВОНАЧАЛЬНОЕ ПРОЕКТИРОВАНИЕ

Первоначальное проектирование

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

ные концепции системы, влияющие абсолютно на все показатели качества

её интерфейса. Как будет описано в главе о тестировании, структурные

проблемы практически не могут быть обнаружены и решены на остальных

этапах (для их обнаружения нужно слишком много везения, а для исправле

ния - денег). Это значит, что чем больше внимания будет уделено проекти

рованию, тем выше будет общее качество.

Собственно проектирование состоит из следующих этапов:

1 определение необходимой функциональности системы

2 создание пользовательских сценариев

3 прилив вдохновения

4 проектирование общей структуры

5 конструирование отдельных блоков

6 создание глоссария

7 сбор и начальная проверка полной схемы системы.

Каждый последующий этап в такой системе зависит от результатов пре

дыдущих этапов. Соответственно, пропуск какого либо этапа (за исключе

нием, разве что, создания глоссария) негативно влияет на результаты всех

последующих этапов.

Определение

необходимой

функциональности

системы

На первом этапе необходимо определить функциональность будущей

системы. Это исключительно важный этап, поскольку именно функцио

нальность будет определять весь интерфейс.

Очень важно сознавать, что практически невозможно убрать из уже

продающейся системы какие либо функции. Программы до сих пор

продаются по функциям (чем больше список функций на коробке с

программой, тем легче её продать, даже если большинство из них либо не

работает, либо не нужно пользователям). Происходит это потому, что

существенную часть тиража программы покупают новые пользователи,

которые ничего не знают про истинное положение вещей. Кроме того,

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

ваются для использования новых функций взамен прежних (при этом еще

и обижаются из за того, что их инвестиции в обучение оказались

выброшенными на ветер). Это значит, что ненужная функция системы

будет кочевать из версии в версию, раздувая размеры программы, снижая

надежность и быстродействие, и, что для нас более важно, портя

интерфейс (при этом и длительность разработки возрастает). Несколько

лучшая ситуация с сайтами - никого пока не удивляет, когда сайт после

редизайна почти не напоминает прежний. Так что оптимальным вариантом

работы почти всегда является проектирование функциональности сразу на

несколько версий вперед.

Итак, определение функциональности. Традиционно требования к

функциональности исходят от отдела продаж или от его аналога. Такие

требования имеют два источника, а именно жалобы имеющихся клиентов и

системы конкурентов. К сожалению, оба эти источника сомнительны.

Всегда может оказаться, что желание клиента получить новую функцию

обусловлено не реальной потребностью в ней, но собственно концепту

альными проблемами системы. Системы же конкурентов страдают как от



WWW.UIBOOK.RU | ВЛАД В. ГОЛОВАЧ | ДИЗАЙН ПИ: ПЕРВОНАЧАЛЬНОЕ ПРОЕКТИРОВАНИЕ

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

значит, что прислушиваться к сторонним требованиям к системе, безус

ловно, следует, но рассматривать эти требования нужно не как директивы,

но как признаки общего неблагополучия.

Я в своё время видел техническое задание к системе каталогизации

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

из сведенного в таблицу списка всех функциональных возможностей всех

конкурентов. В результате система получила огромное количество никому

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

безмерно удлинило срок её разработки.

Не копируйте слепо интерфейс конкурентов. Зачем плодить убожество?

Так как всё таки определить нужную функциональность? Современная

наука выдвинула два основных способа, а именно анализ целей и анализ

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

другом, более того, в процессе определения функциональности желательно

использовать оба.

Анализ целей

пользователей

Идеей, лежащей в основе данного метода, является простое соображение,

гласящее, что людям не нужны инструменты сами по себе, нужны лишь

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

гвозди. Никому не нужен текстовый процессор - нужна возможность с

удобством писать тексты. Никому не нужна программа обработки изобра

жений - нужны уже обработанные изображения.

Это значит, что сами по себе функции никому не нужны и не важны.

Людям нужно средство вообще, делающее возможным выполнять какую

либо работу. Разницу подходов к выбору функциональности в такой системе

удобно проиллюстрировать на примере тостера. Стандартный подход, при

котором функции выбираются фактически произвольно, в лучшем случае

приведет к такому заданию:

"Нужен ящик с узкой прямоугольной дыркой и нагревателем

внутри"

Анализ целей пользователя приведет к другой формулировке:

"Нужен поджаренный хлеб. Похоже, что проще всего

добиться этого созданием ящика с дыркой по форме куска

хлеба и нагревателем внутри. С другой стороны, похоже, что

этот способ не единственный"

Второй вариант при полном развитии этого метода может привести не

только к созданию тостера, но и также и ростера (устройства, в котором

можно поджаривать не только хлеб).

Главное же другое. Ни в коем случае нельзя дать обмануть себя ненужной

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

нальность. Как правило, одного и того же результата можно добиться

несколькими разными способами, при этом важно не только реализовать

какой либо способ, но и выбрать лучший. Анализ целей пользователя как

раз и позволяет избежать ненужной конкретики.

Результатом этого процесса должен являться список целей, например,

для тостера финальный список целей должен выглядеть очень просто:

"Должен поджаривать мелкие предметы, преимущественно

хлеб"

И только.



WWW.UIBOOK.RU | ВЛАД В. ГОЛОВАЧ | ДИЗАЙН ПИ: ПЕРВОНАЧАЛЬНОЕ ПРОЕКТИРОВАНИЕ

После того, как истинные цели пользователей установлены (и доказано,

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

системы), приходит время выбирать конкретный способ реализации

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


Анализ действий

пользователей

Достижение почти всех целей требует от пользователей совершения опре

деленных действий. Разумеется, эти действия могут различаться при раз

ных способах достижения. Например, в "Отелло" одноименный герой

Дездемону задушил, что потребовало от него сугубо определенных

действий. Если бы он героиню зарезал, ему бы понадобилось действовать

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

Все эти действия, разные по сути, привели бы его к одному и тому же

результату, а именно к трагическому финалу с последующим раскаянием.

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

ранные стратегии действий влияют на требования к функциональности.

Возвращаясь к примеру с тостером, можно указать, что помимо возмож

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

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

мыть. С другой стороны, возможно, что тостер можно сделать так, чтобы

он не требовал мойки, в этом случае функция "возможность помыва" ста

новится лишней. Разумеется, взаимодействие человека с тостером очень

просто, здесь можно дойти до всего чисто логическим анализом. В компью

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

этом логический анализ неприемлем.

Рис. 61. Пример явной пользы анализа действий пользователей. На рисунке изобра

жены три способа индикации выделенного объекта в векторных иллюстративных

программах. Помимо собственно индикации, те же самые элементы управления

должны использоваться для изменения формы и размера объектов. Слева элемент

управления, введенный в программах фирмы Corel. В программах Corel большие

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

кие же квадратики в углах треугольника (узловые точки), описывающие форму

объекта, заблокированы. При выборе инструмента редактирования они разблоки

руются и появляется возможность изменять форму объекта. В центре и справа - такой

же элемент управления программы Macromedia Freehand. По умолчанию изменять

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

Проблема в том, что изменять размеры объектов нужно гораздо чаще, нежели

изменять их форму. Поэтому программы Corel в этом аспекте более производительны.

Обнаружить же это можно только путем анализа действий пользователей. Достоинства

подхода Corel прекрасно понимают в Macromedia, но поскольку Freehand программа

уже устоявшаяся, они не могут просто так скопировать стиль конкурента. Поэтому

пришлось ввести новый режим, запускаемый по двойному щелчку на объекте (справа).

Что плохо уже тем, что каждый раз при переходе из режима в режим пользователь

тратит примерно половину секунды.

Единственным выходом является банальное наблюдение за людьми,

выполняющими свою задачу, пользуясь уже имеющимися инструментами, а

именно системами конкурентов (если они есть) и предметами реального

мира (поскольку очень немного новых действий появилось только после

появления компьютеров). Неплохим источником материала для анализа

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

работы - если оказывается, что результат работы практически не зависит



WWW.UIBOOK.RU | ВЛАД В. ГОЛОВАЧ | ДИЗАЙН ПИ: ПЕРВОНАЧАЛЬНОЕ ПРОЕКТИРОВАНИЕ

от используемого инструмента, это значит, что нужна только та функцио

нальность, которая оказала воздействие на результат (т. е. функции, кото

рыми никто не воспользовался, не нужны).

Тут очень важно избежать эгоцентризма. Очень трудно отказаться от

мысли "если это нужно мне, это нужно и многим". Возможно, что и нужно.

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

ция или нет, является наблюдение за пользователями и анализ их действий.

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

зации функции. Анализ действий пользователей как раз и позволяет

определить, какой именно способ следует предпочесть. Поскольку на этом

этапе мы узнаём, какая именно функциональность нужна для каждого

варианта, можно избрать верный путь по правилу "чем меньше действий

требуется от пользователя, тем лучше" (благо компьютер есть, прежде

всего, великое средство автоматизации). Не стоит забывать и про другое

правило: чем меньше функций, тем легче их сделать.

Низкоуровневые

и высокоуровневые

функции

Существует два принципиально разных подхода к определению функцио

нальности системы. При первом подходе система снабжается максималь

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

суммой результатов других функций. При другом подходе все составные

функции (метафункции) из системы изымаются. Ярким представителем

первого подхода является Corel PhotoPaint, не менее ярким представителем

другого - Adobe PhotoShop.

Рис. 62. Окно программы PhotoPaint 9 со всеми интерфейсными элементами, которые

можно вывести одновременно (многое не влезло). Corel.



WWW.UIBOOK.RU | ВЛАД В. ГОЛОВАЧ | ДИЗАЙН ПИ: ПЕРВОНАЧАЛЬНОЕ ПРОЕКТИРОВАНИЕ

Рис. 63. Окно программы PhotoShop 4, со всеми интерфейсными элементами (влезло

всё). В последних версиях PhotoShop появилось несколько новых элементов, так что

сравнение не вполне корректно. Тем не менее, в PhotoShop "интерфейса" всё равно

гораздо меньше. Adobe.

Оба подхода имеют как недостатки, так и достоинства. Подход,

Список сторінок

Поділитися у соцмережах

☏ Замовлення реклами: +3805044-68-872

© Асоціація електронних бібліотек України

☝ Усі матеріали сайту (зокрема статті, зображення, рекламні оголошення тощо) призначені лише для попереднього ознайомлення. Усі права на публікації, представлені на сайті, належать їхнім законним власникам. Просимо Вас не зберігати копії інформації.