Програма має інтуїтивно зрозумілий інтерфейс. Артем, ви погоджуєтесь з тим, що інтуїтивний інтерфейс є тільки у соски, всі інші потрібно вивчати? Бути лояльним до помилок користувача

Відвідувачі залишають ваш сайт, так і не ставши передплатниками/лідами/клієнтами?

Можливо, вони просто не можуть зрозуміти, що взагалі відбувається на вашому ресурсі. Тож допоможіть їм розібратися! Зробіть так, щоб скористатися сайтом було просто.

Тут вам і стане в нагоді інтуїтивно зрозумілий дизайн. Впевнений, про нього багато хто чув, але ніхто до ладу не може сказати, що він є.

Однак сьогодні я розкладу по поличках, як зробити ваш сайт комфортним для відвідувачів. Давайте почнемо…

1. Простота – запорука успіху

Чим простіше користуватися вашим сайтом, тим більше коло ваших читачів/передплатників/потенційних клієнтів. А що таке простота? Це коли людина одразу розуміє, куди рухатись, щоб отримати бажане. Ото б у житті було так!

Вам не потрібні суперсучасні навороти інтуїтивно зрозумілий дизайн не помітний. Але при цьому він сам направляє людину туди, куди слідує, щоб вона досягла своєї мети. Якщо це покупка товару – він знайдеться легко та швидко. Якщо це читання статті – зробити це буде зручно та приємно. Кожна нова дія для користувача очевидна, він не витрачає час на роздуми, що робити далі.

Важливу роль тут грає досвід користувача. Уявіть ситуацію: ви прийшли в автосалон машину власної мрії. У фарбах розповіли продавцю, якою вона має бути. І тут він вам каже, що вони мають те, що вам потрібно! Ви в передчутті довгоочікуваного знайомства буквально летитье до своєї «красуні» і… Раптом виявляється, що на жодних її дверцятах немає ручки! Ось так облом! Як потрапити до салону?

Цей приклад показує, яким НЕ має бути дизайн сайту. Він повинен відволікати увагу людини і створювати йому ситуації без очевидного рішення.Здорово, коли відвідувач, не втрачаючи основну думку, пересувається сайтом. Він сфокусований на своєму завданні і дизайн допомагає її виконати. Коли людині потрібно постійно зупинятися і думати, що робити далі, вона відволікається від головної мети. Тому, щоб позбавити себе труднощів, він просто закриє сайт.

Хочете приклад простої та зрозумілої сторінки? Зайдіть до нашої «Лабораторії знань». Тут ніщо не відверне вас від корисних статейадже крім них тут нічого немає. Заблукати просто неможливо.

2. Головна проблема: кому зрозумілий ваш дизайн?

У Мережі багато ресурсів, які дратують відвідувачів. Чому ж не всі роблять веб-сайти з інтуїтивно зрозумілим дизайном? Адже це те, що потрібне людям. Але все не так просто, адже всі користувачі є різними. Що легко і зрозуміло для одного, іншому здасться китайськими ієрогліфами.

Впевнений, що кожна веб-сторінка створюється з добрими намірами. Але найчастіше сайти інтуїтивно зрозумілі лише їх розробників. Чому? Банально, але факт: дизайнери та верстальники не морочаться тим, щоб перевірити, чи зручно «простим» людям користуватися їхнім дітищем.

Їм властиво думати, що це сприймають світ як і, як вони. Але створення по-справжньому інтуїтивно зрозумілого дизайну починається з розуміння користувачів. Тому спочатку визначте, як вони сприймуть ваш сайт.

3. Знання, які є, та знання, які потрібні

Людина приходить на ваш сайт з певним розумінням того, як все має працювати. Це знання, які він уже має. Але в дизайні вашого сайту може бути щось таке, що користувач не розуміє.

Різниця між тим, що є, і тим, що потрібно – це прогалину в знаннях. Якщо він мінімальний і користувач швидко заповнює знання, що відсутні, ваш інтерфейс - інтуїтивно зрозумілий. Але проблема в тому, що вашими відвідувачами можуть бути як досвідчені користувачі, так і люди, які буквально тиждень тому вперше побачили комп'ютер.

Якщо ви працюєте із вузькою цільовою групою, вам буде простіше створити комфортний сайт. Якщо ж у вас широка аудиторія, то створення інтуїтивно зрозумілого дизайну стане завданням зі «зірочкою». У такій ситуації я рекомендую орієнтуватися на «непросунутого» відвідувача.

4. Як використовувати концептуальні моделі

Звучить якось складно? Зараз все поясню:) Якщо людина вперше зайшла на ваш сайт, це ще не означає, що її знання дорівнюють нулю.

Допустимо, ви ніколи нічого не купували онлайн. Але у реальному світі ви це робили тисячі разів. Тому, якщо я всаджу вас за комп'ютер, покажу якийсь магазин і скажу, що тут ви зможете купити все, що вам потрібно, ви швидко розберетеся, як це зробити. Ви скористаєтеся концептуальною моделлю шопінгу офлайн та отримаєте новий досвід.

Ось сторінка популярного інтернет-магазину. Його дизайн сам нагадує вам, що робити, щоб отримати вибраний товар. Коли ви натискаєте кнопку «Купити», потрібна річ виявляється у вас у віртуальному кошику. Ви все робите як у звичайному магазині, тільки при цьому ще можете попивати чай, сидячи біля монітора.

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

Коли ви створюєте сайт, пам'ятайте про те, який досвід вже є у вашого потенційного сайту.Якщо ресурс не відповідає його концептуальної моделі, людина вирішить, що сайтом користуватися складно, і ... піде.

5. Вивчіть вашого відвідувача

Щоб створити інтуїтивно зрозумілий дизайн, важливо з'ясувати, що знають, і що потрібно знати вашим відвідувачам. Є 2 відмінних способуце визначити:

1. Проведіть дослідження. Погляньте, як відвідувачі користуються сайтами у звичних умовах. Так ви отримаєте уявлення про їхні поточні знання. Цей спосіб непростий, але є альтернатива.

2. Віддалене вивчення. Виберіть групу людей, які будуть скористатися сайтом. Дайте їм низку завдань та попросіть прокоментувати, що вони думають про роботу ресурсу. Що і як, на їхню думку, слід зробити? Що їм допомагає, а що заважає? Що відвертає увагу? Тож ви визначите, які знання потрібно отримати потенційному відвідувачу.

Важливо!У кожному випадку ви тільки спостерігаєте, робите висновки і не втручаєтесь. Спробуйте і ви швидко виявите, що не так. До речі, не варто морочитися з величезною кількістю учасників, достатньо лише 10, щоб виявити 90% проблем.

Зроблені висновки допоможуть описати людей, для яких створюватиметься сайт.

6. Формула інтуїтивно зрозумілого дизайну

В ідеалі вона виглядає так: поточні знання = необхідним знанням.

Самі користувачі виділяють 2 умови, за яких дизайн сайту інтуїтивно зрозумілий:

  1. Точка поточних знань та потрібних знаньприблизно збігається. Користувачі легко визначають, що слід робити, щоб досягти мети на сайті.
  2. Точка поточних знань та потрібних знань віддалена один від одного, але дизайн допомагає заповнити пробіл. Відвідувачі навчаються непомітно та природно.

Краще зробити дизайн максимально простим, щоб не потрібно було вчитися або дотримуватися інструкцій. Ідеально ілюструє першу умову пошуковик Google. Його неможливо використати неправильно. Він простий, як і все геніальне.

Виконання другої умови розглянемо на прикладі нашого сайту. Тут немає зайвих деталей, вас не відверне величезний масив, а кнопки та стрілки вказують, куди рухатися і що можна дізнатися.

Тобто при розробці дизайну можна його максимально спростити, щоб наблизити до знань та досвіду, які є у відвідувачів. Або можна надати їм нові знання за допомогою інструкцій. За бажанням можете також об'єднати два ці підходи.

7. Інтуїтивна навігація та пошук

76% покупців кажуть, що для них найважливіше в дизайні сайту – «наскільки легко я можу знайти те, що мені потрібне». Для зручних пошуківпотрібна правильна навігація.

Наприклад, в інтернет-магазині важливе логічне сортування карток товарів. Меню має підказувати, куди рухатись, щоб прийти до пункту призначення. Щоб правильно назвати пункти меню, використовуйте слова-зачепи. Вони підкажуть, що ховається за кожним розділом.

Пам'ятайте! 50% відвідувачів інтернет-магазинів відмовляються від покупки, бо не можуть знайти те, навіщо прийшли. Тому вам не обійтися без пошуку сайту. Магазин Rozetka має величезний асортимент. Але тут є рядок пошуку прямо по центру екрана. Тож не треба довго думати, що робити.

Маленька порада:підключіть пошук по сайту до інструменту. Це підвищить конверсію, адже сам Google підказуватиме людині, що вона може тут знайти.

8. Пам'ятайте: людям комфортніше користуватися сайтами, до яких вони звикли

Є правила, які варто слідувати, щоб дизайн вашого ресурсу був інтуїтивно зрозумілий:

  • Клік по логотипу компанії (який розташований у верхньому лівому кутку) завжди веде на головну сторінку;
  • Остання посилання в горизонтальному менюабо нижня у вертикальному меню – це контакти;
  • У нижній частині дублюється контактна інформація;
  • Всі елементи узгоджені: пункти меню залишаться на тому самому місці, як би ви не переміщалися сайтом;
  • Посилання виділяються і натомість звичайного тексту;
  • Якщо користувачі можуть і повинні скролити вниз, добре видно смугу прокручування;
  • Текст із вирівнюванням по лівому краю легше читати;
  • Розібратися з інтерфейсом допомагають спливаючі повідомлення;
  • Пункти меню названо зрозумілими словами(не варто замість пункту "Контакти" робити кнопку "Інформаційна підтримка").

З будь-якого правила є винятки. Але краще все-таки дотримуватись цих рекомендацій і ретельно обмірковувати будь-які нововведення. Зробіть так, щоб інтерфейс вашого сайту відповідав очікуванням людей.

9. Будьте обережні з редизайном

20% користувачів витрачають 80% своїх прибутків в Інтернеті.Це ті важливі люди, на яких редизайн вплине найсильніше. Вони вже звикли до того, як усе працює. Тому, коли ви переробляєте сайт, ви змінюєте його насамперед для них. А багатьом не подобається, коли щось не так, як завжди.

Пам'ятайте: будь-яка переробка може поглибити прогалину у знаннях. Тому якщо сайт перестане бути інтуїтивно зрозумілим для відвідувачів, може помітно впасти, отже, ви втратите частину прибутку.

Якщо без редизайну не обійтися, робіть іноді невеликі зміни. Це краще за глобальні зміни. Так ви зможете проаналізувати, як реагують люди на кожну новацію. Але якщо ваш сайт мало трафіку саме через дизайн, сміливо робіть капітальний ремонт.

Насамкінець

Ваш сайт має бути інтуїтивно зрозумілим для ваших ключових відвідувачів. Адже це допоможе досягти їхньої лояльності та зростання конверсії. Тому вивчайте поведінку відвідувачів та завжди тестуйте зміни інтерфейсу.

Спробуйте застосувати на практиці ці 9 порад. Ось побачите, зростання конверсії не змусить на себе довго чекати.

Було корисно? Сміливо ставте Лайк! Це покаже, що ви хочете знати більше про дизайн і я найближчим часом підготую новий пост на цю тему.

Існує багато інформації про різних методахпроектування інтерфейсу користувачаВи можете використовувати, створюючи веб-сайт або інтерфейс програми.
Я склав список з 8 характеристик, які вважаю запорукою успішного інтерфейсу користувача.

Доступність

Доступність - найбільш важливий елементдизайну! По суті, вся мета інтерфейсу користувача полягає в тому, щоб дати можливість користувачам взаємодіяти з вашою системою. Якщо людина не зможе зрозуміти, як ваш додаток працює, він буде лише заплутаний і зрештою розчарований. Ось чому, розробляючи інтерфейс вашої програми або веб-сайту, обов'язково подбайте, щоб він був інтуїтивно зрозумілий вашому користувачеві.

Що робить ця кнопка? Наведемо курсор та прочитаємо.

Мінімалізм

Велика завантаженість - ворог гарного користувальницького інтерфейсу. Легко потрапити в пастку надмірної доступності - додаючи все більше і більше елементів, що управляють, ви робите величезну помилку - захаращуєте інтерфейс. Ваш інтерфейс зростає, і користувач буде змушений багато читати, щоб зрозуміти, що, де і для чого розташовується.
Робіть речі зрозумілими, але із мінімальною завантаженістю. Якщо ви можете описати можливості однією пропозицією, замість трьох зробіть це. Коли ви можете підписати елемент одним словом, замість двох зробіть це. Бережіть час ваших користувачів, нехай зручність та мінімалізм вимагають багато часу, але ваші зусилля будуть винагороджені.

Панель регулювання рівня звуку в OS X. Коротко і доступно нічого зайвого.

Впевненість

Багато дизайнерів прагнуть зробити інтерфейси «інтуїтивно зрозумілими». Але що «інтуїтивно» насправді означає? Це означає, що користувачі мають інстинктивно розуміти та осмислювати можливості проекту. Але як ви можете зробити щось інтуїтивно? Ви проектуєте знайомі для себе речі, і те, що вам може здатися очевидним, для користувачів може відштовхувати і викликати складності.
Попросіть ваших родичів і знайомих виконати будь-які дії через ваш інтерфейс, наприклад, замовити товар, якщо ваш інтерфейс передбачає продаж чогось. Спостерігайте за кожною дією користувача, за помилками, які він робить. Таким чином ви зберете ряд недоглядів в інтерфейсі, які ускладнюють взаємодію системи з користувачем. І лише після виправлення проблемних місць, ваш інтерфейс може бути готовим до роботи.

Інтуїтивно зрозумілий інтерфейс GoPlan. Написи на вкладках дають зрозуміти користувачеві вміст розділу.

Чуйність

Чуйність означає кілька речей. Інтерфейс веб-сайту має працювати дуже швидко. Тривале очікування на завантаження сторінки дратує. Подбайте про те, щоб сайт завантажувався якнайшвидше, навіть на повільних інтернет-каналах.
Також чуйність означає деяку постійну форму взаємодії з користувачем. Інтерфейс повинен інформувати користувача про те, що відбувається. Наприклад, ви натискаєте кнопку надсилання повідомлення. Якщо повідомлення надсилається за допомогою AJAX, було б розумно виводити стан відправки, наприклад «Надсилання...», «Повідомлення надіслано» або «Помилка надсилання повідомлення». Коли користувач бачить процес виконання, він почувається спокійніше. Особливо це помітно на повільних Інтернет-каналах.

Під час завантаження Gmail відображається прогрес-бар.

Відповідність контексту

При виборі певних рішеньПри створенні дизайну враховуйте тип вмісту сторінки. Різні сторінкиможуть містити контент різного типу. Адаптуйте кожну сторінку під відповідний контент, створіть елементи управління, які спростять користувачеві роботи з сайтом, і постарайтеся зробити. Але не забувайте про мінімалізм!
Таким чином, попрацювавши з вашими елементами управління, користувач звикне до них і подальша роботаз вашим ресурсів буде для нього «повсякденною» справою.


Елементи керування MS Office різні для кожного типу контенту.

Привабливість

Хоча це може бути дещо спірним моментом, але я вважаю, що гарний інтерфейс має бути привабливим. Привабливий користувачеві інтерфейс робить роботу з ним приємною. Так, ви можете зробити інтерфейс простим у використанні, ефективності та оперативності, і він буде чудово справлятися зі своїм завданням, але якщо ви доповните цей список переваг ще й привабливістю – робота з ним буде чистим задоволенням!
Але складно зробити інтерфейс, який подобатиметься всім. У кожного свої переваги, і що здасться одному красивим, у іншого викликатиме огиду. Проте користувачів можна розділити на деякі соціальні/демографічні групи, серед яких будуть і групи вашої цільової аудиторії. Наприклад, інтерфейс для групи «молоді мами» докорінно відрізнятиметься від «менеджерів із продажу автозапчастин».

Ефективність

Інтерфейс користувача — це інструмент керування. Він надає доступ до різним функціямвашої програми чи веб-сайту. Гарний інтерфейсповинен давати можливість користувачеві з найменшими зусиллями виконати дію, що його цікавить.
Дуже важливо зрозуміти, що користувач найчастіше хоче виконати на певній сторінці. Не потрібно виводити списком усі можливості вашого проекту, найчастіше користувачу цікава лише невелика частинацього списку.
Подбайте про те, щоб користувач зміг моментально знайти найкорисніші та найнеобхідніші функції, це дуже спростить його спілкування з проектом.

Три найчастіше виконуваних дій над фотографіями в Apple Iphoneоб'єднані в загальний список із моментальним доступом.

Поблажливість

Ніхто і ніщо не зовсім. Будьте готові до того, що користувачі будуть робити помилки під час роботи з вашим проектом. Це може відбуватися як з вашої вини, так і з вини користувача. Ви повинні грамотно обробляти все можливі помилки— це буде одним із головних показників якості вашого проекту. Не варто карати користувача – розробіть «поблажливий» інтерфейс.
Ви повинні зберігати дані від випадкових дій користувача. Наприклад, якщо хтось видаляє важливу інформацію, надайте можливість її відновлення. Коли користувач переходить на неіснуючі сторінки, не лякайте його помилками сервера, натомість надайте список альтернативних напрямків, якими він може пройти.
Мені подобається, як зроблена сторінка 404 помилки у Яндекса .

Випадково видалено важлива інформаціяу Gmail. Чи не проблема, можемо скасувати дію!

Висновок

Працюючи над досягненням однієї з цих характеристик, ви можете створити проблеми для досягнення іншої. Наприклад, намагаючись зробити інтерфейс зрозумілішим, ви можете додати багато описів і пояснень, що зрештою зробить інтерфейс ще більш громіздким і незручним. Або урізаючи матеріал для досягнення мінімалізму, може зробити речі незрозумілими пересічному користувачеві. Для досягнення балансу потрібна майстерність і багато часу, і пам'ятайте, що ваші дизайнерські рішення, швидше за все, будуть різними у різних проектах. Що є актуальним для одного, для іншого може бути не допустимо.
Із задоволенням вислухаю ваші коментарі щодо цієї статті.

Словосполучення інтуїтивно -зрозумілий інтерфейс , Що зустрічається практично у всіх нинішніх техзавданнях, на людей технічно грамотних діє як червона ганчірка на бика. Це цілком зрозуміло: під час проПроте, коли ГОСТи були обов'язкові до застосування, подібну нісенітницю вичитати будь-де було неможливо. І природна реакція цих людей – а де ж тоді вимоги до такого «інтуїтивно-зрозумілого» у частині його (користувача) тямущості та інтуїції?! Вирішимо питання інтуїтивно-зрозумілого раз і назавжди Редакція від 20.06.2018.

Що таке інтуїтивно-зрозумілий інтерфейс?

Створено 08.08.2016 16:50:33

Про інтуїтивно-зрозумілий інтерфейс, про який так багато говорили... ні, не більшовики, а юзабілізатори, див. Страшна правда про юзабіліті. Частина I, Страшна правда про юзабіліті. Частина II та Страшна правда про юзабіліті. Десять років по тому. Ось одна з дискусій, що розгорнулася у колі цих, так би мовити, «фахівців», у яких усі руки по вуха в юзабіліті

Отже, йдемо пунктами. Перший і другий справедливо: так, видно, як товариш послідовно намагається осягнути істину в кінцевій її інстанції. Третій пункт поки що пропускаємо. Пункт четвертий – абсолютно згодні! І з п'ятим також. Але!

Подивимося тепер, що говорить ГОСТ 21480-76. . . Загальні ергономічні вимоги:

Під звичною розуміють зв'язок між уявленнями, які у людини з урахуванням минулого досвіду. Наприклад, людина звикла відображати будь-яку, представляючи її розвиток зліва направо. При компонуванні мнемосхеми слід зважати на це звичне уявлення і відображати розвиток зліва направо.

Це з Додатка 1 ГОСТ 21480-76. Відразу дивимося на картинку, а саме пп. 1, 2 та 5. Все збігається? З граничною точністю!

Таким чином, інтуїтивно -зрозумілий інтерфейс - доля людей технічно безграмотних, грамотна публіка назвала б його звично -асоційованим Можна, звичайно, спробувати заперечити... Але хіба інтерфейс не мнемосхема і не зібраний з тих самих елементів мнемосхеми, із застосуванням тих самих і?

Ось і все завдання. Але залишилося одне питання: НАВІЩО в 2010 році була потрібна дискусія (п. 3) про те, що було чітко сформульовано аж у 1976 року ?! А потім, щоб... див. п. 4 на зображенні.

Висновок: сленговий інтуїтивно -зрозумілий інтерфейс за всякими розкіними і норманами є цілком узаконений державою звично -Асоційований інтерфейс . Війна закінчена, дякую всім!

PS. До речі, піктограма з ножем та вилкою є не що інше, як елемент мнемосхеми

PPS. Чому всіх так приваблюють писульки якихось розкіних, норманів та інших безродних та безпородних джонів смітів, коли є, скажімо так, свій Михайло Ломоносов? Низькопоклонництво перед заходом? Чи покоління таке, розбещене америкосами і згнило на корені? (

За свій відносно невеликий досвід роботи (близько 6 років) я досить часто чув фрази досвідчених та початківців програмістів – «Я відчуваю, що це має працювати», «У мене є відчуття, що цей метод працювати не буде», «Давайте зробимо інтуїтивно- зрозумілий інтерфейс» і таке інше. Все це - прояв інтуїції у процесі розробки та програмування.
Про неї і йтиметься далі розмова.

Взято із сайту oprah.com

Спочатку хотілося б визначити саме поняття «інтуїція».

Інтуїція (пізньолат. intuitio - «споглядання», від дієслова intueor - уважно дивлюся) - метод вирішення завдань за допомогою одномоментного підсвідомого висновку, заснований на уяві, емпатії та попередньому досвіді, «чуття», проникливість.

«Вікіпедія»


Інтуїція (від латів. intueri - уважно, уважно дивитися) - розумовий процес, що полягає в практично моментальному знаходженні розв'язання задачі при недостатній усвідомленості логічних зв'язків.

Інтуїція (від лат. intueri - уважно, уважно дивитися) - знання, що виникає без усвідомлення шляхів та умов його отримання, внаслідок чого суб'єкт має його як результат «безпосереднього розсуду»

Основою даних визначень і те, що інтуїція - це спосіб прийняття рішення. Підстав цього способу може бути кілька: це і попередній досвід, і уяву, і ірраціональне «чуття», і т.д.

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

Тому насамперед хотілося б розділити «інтуїтивне» програмування на 2 складові: - оптимістичне та песимістичне

Оптимістичне інтуїтивне програмування

Суть його полягає в оптимістичному чи позитивному впливі інтуїції на процес створення коду. У даному випадкуінтуїція є помічником, « добрим другом», Інструментом у руках розробника.

Інтуїція, заснована на досвіді

Основна ідея тут полягає в тому, що в процесі накопичення досвіду розробки ми складаємо певні стереотипи, асоціації, пов'язані з кодом, які ми здатні визначати без поглиблення в розумовий процес.

Велику кількість прикладів використання такої інтуїції у процесах роботи описав Дмитро Чепель із Acronis у своїй статті на Хабрі. Якщо ви ще не читали, обов'язково прочитайте.

Я хотів би запропонувати вам інший приклад-експеримент. Нижче наведено приклад коду мовою Sidef (я сподіваюся не багато хто з Вас знає його). Спробуйте не надто вникаючи в деталі, здогадатися про що він:

Loop ( var swapped = false ( | i | if ( arr > arr [ i ) ) ( arr = arr swapped = true ) ) * arr.end swapped | | break ) return arr

Можливо, частина з Вас здогадалася про що йдеться, побачивши в коді знайомі частини, можливо, деякі немає. Я спробував провести цей експеримент на невеликій групі своїх знайомих програмістів і результат такий - більше половини (близько 65%) людей змогли за дуже короткий час зрозуміти, про що йдеться.

Я уточнив у них, яким чином вони змогли здогадатися – і найпопулярнішою відповіддю було:
"Ми побачили знайомі шматки коду і відразу припустили що це таке".

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

Саме через це нам здається, що досвідченіші програмісти мають якесь «чуття» щодо проекту або будь-якої мови програмування.

Інтуїція, заснована на логіці

Спробуйте продовжити наступний ряд:
Напевно, Ви ні на секунду не задумалися, скільки буде далі.
Це простий приклад закономірності, яку ми можемо продовжити буквально не замислююсь.

Але якщо взяти для прикладу наступний шматок коду на Python:

Def sum(a, b): ... def mult(a, b): ... def subtract(a, b): ... def divide(a, b): ... def calculate(a, b) , strategy): ... calculate(4, 2, sum) #6 calculate(4, 2, mult) #8 calculate(4, 2, subtract) #2 calculate(4, 2, divide) #??
Навіть не бачачи вихідного коду, ми «інтуїтивно» відчуваємо, яким буде результат виконання останньої функції у списку.

Це відбувається тому, що ми аналізуємо назви функцій, зіставляємо їх із одержуваним результатом і таким чином будуємо деякі закономірності, припущення щодо аналізованого коду. Таким чином, ми підключаємо нашу інтуїцію, підкріплену логікою для читання такого коду.

Тут хотілося б відзначити, що код, який відповідає нашим припущенням, нашої інтуїції, ми зазвичай називаємо «здобочитаним», «зрозумілим» кодом. Це з тим, що ми залучаємо як ресурс нашого мозку, а й нашу інтуїцію, цим спрощуючи читання і розуміння коду.

Інтуїтивно-зрозумілий інтерфейс

І зараз хотілося б перейти до такого виразу, що часто використовується як «інтуїтивно-зрозумілий інтерфейс». Це стосується як і програмного, так і інтерфейсу користувача.
Враховуючи вищевикладені пункти, можна сказати, що інтуїтивно-зрозумілий інтерфейс - це інтерфейс, який відповідає очікуванням користувача, будь то програміст або кінцевий користувач.

Очікування ж ці формуються на основі 2 складових – нашого попереднього досвіду та логічних закономірностей та припущень.

Якщо на всіх сторінках вашого веб-сайту меню було зверху, але на сторінці Зворотнього зв'язкуменю зліва, то кінцевий користувач може збентежитись, оскільки «його інтуїція» підказує йому, що меню має бути зверху.

Але чому ж іноді, коли ми заходимо на якийсь веб-сайт з оригінальним дизайномабо нове мобільний додаток, у нас складається відчуття, що цей сайт виглядає круто чи жахливо?

Інтуїція як ірраціональне

Основою такого судження є те, що часто інтуїція народжується як просто відчуття чогось, непідкріплене будь-якими висновками, логікою чи досвідом.

Такий вид інтуїції є найнебезпечнішим у розробці, але й водночас він є способом швидкого вирішенняскладні проблеми.

Це саме те, що називається «магією» у програмуванні – ми змінюємо значення однієї змінної чи прапора і чудовим чином наш код починає працювати, хоча це рішення було прийнято абсолютно інстинктивно. І саме такий вид інтуїції є справжнім її проявом.

Песимістичне інстинктивне програмування

Але інтуїція може нести негативний характер розробки.

Як згадувалося вище, «ірраціональна» інтуїція є одночасно і паличкою-виручалочкою та небезпечним інструментом у руках програміста.

Спираючись на такі інстинктивні рішення, ми втрачаємо впевненість у написаному нами коді, в якому починає відбуватися магія.

Що важливо, такі рішення формують певний рівень занепокоєння після наступних рішень. Переважання почуттів, відчуттів, ірраціонального при розробці призводить до неможливості обґрунтування всього за допомогою логіки, і як результат – ускладнення розуміння коду, втрати читабельності.

Як висновок

Загалом питання інтуїції під час розробки програмного забезпеченняпіднімається не вперше.
Це пов'язано з тим, що проблема впливу процесів, не пов'язаних з логікою та мисленням, на процес написання коду залишатиметься актуальним, оскільки цим процесом зайнята людина, яка має почуття, забобони, «ірраціональна».

P.S. Для тих, кому цікава тема інтуції в розробці ПЗ, раджу почитати

26 грудня 2016 о 22:23

Інтуїтивне програмування

  • Налагодження
  • Програмування,
  • Досконалий код

За свій відносно невеликий досвід роботи (близько 6 років) я досить часто чув фрази досвідчених та початківців програмістів – «Я відчуваю, що це має працювати», «У мене є відчуття, що цей метод працювати не буде», «Давайте зробимо інтуїтивно- зрозумілий інтерфейс» і таке інше. Все це - прояв інтуїції у процесі розробки та програмування.
Про неї і йтиметься далі розмова.

Взято із сайту oprah.com

Спочатку хотілося б визначити саме поняття «інтуїція».

Інтуїція (пізньолат. intuitio - «споглядання», від дієслова intueor - уважно дивлюся) - метод вирішення завдань за допомогою одномоментного підсвідомого висновку, заснований на уяві, емпатії та попередньому досвіді, «чуття», проникливість.

«Вікіпедія»


Інтуїція (від латів. intueri - уважно, уважно дивитися) - розумовий процес, що полягає в практично моментальному знаходженні розв'язання задачі при недостатній усвідомленості логічних зв'язків.

Інтуїція (від лат. intueri - уважно, уважно дивитися) - знання, що виникає без усвідомлення шляхів та умов його отримання, внаслідок чого суб'єкт має його як результат «безпосереднього розсуду»

Основою даних визначень і те, що інтуїція - це спосіб прийняття рішення. Підстав цього способу може бути кілька: це і попередній досвід, і уяву, і ірраціональне «чуття», і т.д.

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

Тому насамперед хотілося б розділити «інтуїтивне» програмування на 2 складові: - оптимістичне та песимістичне

Оптимістичне інтуїтивне програмування

Суть його полягає в оптимістичному чи позитивному впливі інтуїції на процес створення коду. У разі інтуїція є помічником, «добрим другом», інструментом у руках розробника.

Інтуїція, заснована на досвіді

Основна ідея тут полягає в тому, що в процесі накопичення досвіду розробки ми складаємо певні стереотипи, асоціації, пов'язані з кодом, які ми здатні визначати без поглиблення в розумовий процес.

Велику кількість прикладів використання такої інтуїції у процесах роботи описав Дмитро Чепель із Acronis у своїй. Якщо ви ще не читали, обов'язково прочитайте.

Я хотів би запропонувати вам інший приклад-експеримент. Нижче наведено приклад коду мовою Sidef (я сподіваюся не багато хто з Вас знає його). Спробуйте не надто вникаючи в деталі, здогадатися про що він:

Loop ( var swapped = false ( | i | if ( arr > arr [ i ) ) ( arr = arr swapped = true ) ) * arr.end swapped | | break ) return arr

Можливо, частина з Вас здогадалася про що йдеться, побачивши в коді знайомі частини, можливо, деякі немає. Я спробував провести цей експеримент на невеликій групі своїх знайомих програмістів і результат такий - більше половини (близько 65%) людей змогли за дуже короткий час зрозуміти, про що йдеться.

Я уточнив у них, яким чином вони змогли здогадатися – і найпопулярнішою відповіддю було:
"Ми побачили знайомі шматки коду і відразу припустили що це таке".

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

Саме через це нам здається, що досвідченіші програмісти мають якесь «чуття» щодо проекту або будь-якої мови програмування.

Інтуїція, заснована на логіці

Спробуйте продовжити наступний ряд:
Напевно, Ви ні на секунду не задумалися, скільки буде далі.
Це простий приклад закономірності, яку ми можемо продовжити буквально не замислююсь.

Але якщо взяти для прикладу наступний шматок коду на Python:

Def sum(a, b): ... def mult(a, b): ... def subtract(a, b): ... def divide(a, b): ... def calculate(a, b) , strategy): ... calculate(4, 2, sum) #6 calculate(4, 2, mult) #8 calculate(4, 2, subtract) #2 calculate(4, 2, divide) #??
Навіть не бачачи вихідного коду, ми інтуїтивно відчуваємо, яким буде результат виконання останньої функції в списку.

Це відбувається тому, що ми аналізуємо назви функцій, зіставляємо їх із одержуваним результатом і таким чином будуємо деякі закономірності, припущення щодо аналізованого коду. Таким чином, ми підключаємо нашу інтуїцію, підкріплену логікою для читання такого коду.

Тут хотілося б відзначити, що код, який відповідає нашим припущенням, нашої інтуїції, ми зазвичай називаємо «здобочитаним», «зрозумілим» кодом. Це з тим, що ми залучаємо як ресурс нашого мозку, а й нашу інтуїцію, цим спрощуючи читання і розуміння коду.

Інтуїтивно-зрозумілий інтерфейс

І зараз хотілося б перейти до такого виразу, що часто використовується як «інтуїтивно-зрозумілий інтерфейс». Це стосується як і програмного, так і інтерфейсу користувача.
Враховуючи вищевикладені пункти, можна сказати, що інтуїтивно-зрозумілий інтерфейс - це інтерфейс, який відповідає очікуванням користувача, будь то програміст або кінцевий користувач.

Очікування ж ці формуються на основі 2 складових – нашого попереднього досвіду та логічних закономірностей та припущень.

Якщо на всіх сторінках вашого веб-сайту меню було зверху, але на сторінці Зворотного зв'язку меню зліва, то кінцевий користувач може збентежитись, оскільки «його інтуїція» підказує йому, що меню має бути зверху.

Але чому ж іноді, коли ми заходимо на якийсь веб-сайт з оригінальним дизайном або новим мобільним додатком, у нас складається відчуття, що цей сайт виглядає круто чи жахливо?

Інтуїція як ірраціональне

Основою такого судження є те, що часто інтуїція народжується як просто відчуття чогось, непідкріплене будь-якими висновками, логікою чи досвідом.

Такий вид інтуїції є найнебезпечнішим у розробці, але й водночас є способом швидкого вирішення складних проблем.

Це саме те, що називається «магією» у програмуванні – ми змінюємо значення однієї змінної чи прапора і чудовим чином наш код починає працювати, хоча це рішення було прийнято абсолютно інстинктивно. І саме такий вид інтуїції є справжнім її проявом.

Песимістичне інстинктивне програмування

Але інтуїція може нести негативний характер розробки.

Як згадувалося вище, «ірраціональна» інтуїція є одночасно і паличкою-виручалочкою та небезпечним інструментом у руках програміста.

Спираючись на такі інстинктивні рішення, ми втрачаємо впевненість у написаному нами коді, в якому починає відбуватися магія.

Що важливо, такі рішення формують певний рівень занепокоєння після наступних рішень. Переважання почуттів, відчуттів, ірраціонального при розробці призводить до неможливості обґрунтування всього за допомогою логіки, і як результат – ускладнення розуміння коду, втрати читабельності.

Як висновок

Загалом питання інтуїції під час розробки програмного забезпечення порушується не вперше.
Це пов'язано з тим, що проблема впливу процесів, не пов'язаних з логікою та мисленням, на процес написання коду залишатиметься актуальним, оскільки цим процесом зайнята людина, яка має почуття, забобони, «ірраціональна».

P.S. Для тих, кому цікава тема інтуції в розробці ПЗ, раджу почитати