Який приємний спосіб описати процес "Idiot Proofing" програмного забезпечення [закрито]


13

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

Нещодавно я написав графік розробки, і один із пунктів отримав назву "Idiot proof UI". Люди, над якими я будую це програмне забезпечення, жартома прикріплювали правопорушення до цього терміну, але я бачу, де цей термін насправді змусить людей засмутити.

Який приємний спосіб сказати це?


23
Зателефонуйте, ID-10T Proofing
Jarrod Nettles

2
Лол, я зрозумів, 1337, коли я гуглив ID-10T. Мені не
виходить

13
Це запитання нагадує мені одну з моїх улюблених цитат: "Сьогодні програмування - це гонка між інженерами, які прагнуть створювати більші і якісні програми, захищені від ідіотів, і Всесвітом, який намагається створити більших і кращих ідіотів. Поки Всесвіт перемагає. " ~ Rich Cook
KallDrexx

3
як щодо базової техніки?
jk.

4
"Нічого не можна зробити дурним, бо дурні так прокляті".
M.Sameer

Відповіді:


27

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

Крім того, якщо це має бути дискретний пункт (я знаю, як деякі організації думають про планування), "Ідентифікаційний інтерфейс, що підтверджує ідіотизм", слід змінити на "Бібліотека перевірки вхідних даних" і перемістити на передній план.


2
+1. Якщо ви намагаєтесь додати будь-яку перевірку вводу після факту, ви вже майже втратили. Краще, щоб стати специфікою в специфікації, "програмне забезпечення повинно вишукано обробляти недійсні дані де завгодно". Як саме «витончено» поводитись з невірним входом, дуже залежить від того, що робить програмне забезпечення в конкретний момент. Для дуже простих інтерфейсів (думаю, можливо, банкомат), можливо, навіть неможливо зробити недійсні введення неможливими .
CVn

14
+1. Ідіот-доказ не є завданням. Ідіот-доказ - наслідок хорошого дизайну.
S.Lott

4
Ідіот-доказ - це тривалий процес - адже Всесвіт продовжує виготовляти все більш геніальних ідіотів
Стівен А. Лоу

Хоча це може здатися невірним і зайвим, врахуйте, що і дизайнери інтерфейсів, і бета-тестери знали креслення та загальний дизайн програмного забезпечення, і, можливо, просто не усвідомлюють (не помічають), що насправді те, що здається їм абсолютно очевидним повністю збиває з пантелику звичайний користувач. "Тестування та налагодження дизайнерських рішень інтерфейсу користувача" - це те, що можна назвати. Перевірка введення - це одне, що дозволяє користувачеві зрозуміти, що слід вводити, де інше.
СФ.

Для всіх респондентів: ... що б ви не робили, ви завжди щось забудете. Програмне забезпечення настільки складне, що мати команду, яка робить все "ідеальною" на першому знімку, майже недосяжна. Ось чому тестування необхідне. Щоб виявити вади та упущення, або навіть речі, про які ніхто не думав. Такий "ідентичний інтерфейс із підтвердженням ідіотства" - саме те, що потрібно.
dagnelies

10

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


3
Ви мали мене на "перевірку введення користувачем". Доказ ідіоту - це непрофесійний термін незалежно від того, де він використовується.
Роберт Харві

2
Що б ви не робили, не пишіть це письмово.
JeffO

6

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

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

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


BTW, ось старий талісман Metrowerks Арнольд, хлопець, який допомагав нам програмістам Mac затвердіти і пограбувати наш код за допомогою печі для термічної обробки, кузні, а також ковадла та маленького кувалди:


загартовування загалом відноситься до відмовостійкості основного обладнання - або стійкості до гамма-променів ;-) стійкість може означати багато чого
Стівен А. Лоу,

@Steven: Ну так. Але це стосується спілкування з тим, що, мабуть, нетехнічна аудиторія, і питання справді полягає в тому, як "розкрутити" завдання, щоб воно було приємним для цих людей.
Боб Мерфі

що має сенс; нетехнічна аудиторія, ймовірно, бачила телевізійну рекламу для «загартованих» ноутбуків. Тож вони подумають, що нормально скинути програмне забезпечення на 3 фути на бетон ;-)
Стівен А. Лоу

@Steven: Так, і якщо вони побачили найновіший рекламний ПК для ноутбуків Toshiba, вони також зрозуміють, що якщо вони не дадуть вам часу та ресурсів для загартування програмного забезпечення, це призведе до апокаліпсису зомбі. Б ^)
Боб Мерфі

4

Оборонне програмування

Це те, чого мене вчили. Ще тоді, коли нам довелося вибивати наші шматочки з дерева.

Якщо ви хочете бути ПК, називайте це "передчуттям" програмування.


4

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

Хоча більшість інших евфемізмів, яких я читав, також застосовуються.


3

Як щодо системи "Відмовостійкість" чи інтерфейсу користувача?


3

"Ідіотське підтвердження" має складатися з обох

  • спроектувати інтерфейс користувача таким чином, щоб він був зручним для користувачів і змушує користувача вводити дані так, як очікують програмісти, і

  • тестування інтерфейсу користувача, щоб визначити, чи можна порушити інтерфейс, ввівши несподівані значення даних.

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


Ви не відповіли на поставлене запитання.
Роберт Харві

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

Гаразд, це має сенс.
Роберт Харві

2

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

Перевірка вводу - це процес, коли ви знешкоджуєте та підтверджуєте дані користувачів, щоб усунути протизаконні / безглузді значення. Це завжди слід робити з будь-якою інформацією, що надходить за межі вашої програми, щоб уникнути очевидних, а також захистити себе від атак (наприклад, нападів ін'єкції sql).

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

Наприклад, примусово rmвідхилити команду rm -rf /та закрити варіанти не має нічого спільного з валідацією чи правильністю. Це цілком дійсна команда. На жаль, це команда, яка могла і може видалити всі ваші дані з усіх ваших дисків в Unix / Linux. Ідіот, що підтверджує це, відхилив би цю команду і запропонував rm -rf --i-really-mean-this /, або якщо він буде в інтерактивному режимі, користувач вводить позитивний відповідь після попередження.

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

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

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


1

"Перевірка обгрунтованості" працює досить добре досить часто ...


3
Для мене "перевірка обґрунтованості" означає приблизно те саме, що і "стверджувати": переконатися в правильності внутрішнього стану. Насправді те саме, що і перевірка зовнішнього входу.
Мейсон Уілер

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


1

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


1

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

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


1

Позолочення - це ввічливий (і дуже позитивний звук) термін, який я використовую, коли кажу про вдосконалення інтерфейсу для кінцевих користувачів будь-яким способом (GUI чи іншим).

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

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

багато інших термінів, пов'язаних із цим процесом (часто в кінці циклу), звучать таким чином:

  • Має на увазі користувачів (часто управління ;-) - німі
  • важко досягти
  • має чисту вартість

Пов'язуючи золото з процесом (метал зазвичай прирівнюється до "вартості", а не "вартості"), я бачив, як процес змінився від витрат на інвестиції в менталітет деяких менеджерів.

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


Я бачу, як цей термін працює для вашої аудиторії. Для більшості менеджерів позолочення було б першим вирішенням проекту. Іншими словами, не потрібні деталі.
Гілберт Ле Блан

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

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

З мого досвіду, золочення , як правило , використовуються для опису програмного забезпечення , навантаженого зайвими функціями , тобто як синонім віруси .
Марк Бут

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

1

Найчастіше використовують у відношенні виробничих процесів, але я думаю, що справді добре підійде Poka-Yoke :

"[пока йо-ке] - японський термін, що означає" невдача "або" захист від помилок "

Спочатку його називали бака-ярмом, але оскільки це означає "дурень" (або "ідіот-захист"), ім'я було змінено на більш м'яке пока-ярмо.

У більш широкому розумінні, термін може позначати будь-яке обмеження, що формує поведінку, розроблене в продукт, щоб запобігти неправильній роботі користувачем ".


1

Поширеним терміном у більших магазинах є також забезпечення якості (QA) .

Це загальний, розпливчастий за призначенням термін, який ви можете формувати у своєму конкретному значенні протягом циклу випуску.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.