Що це означає, коли якась технологія є "стандартом"?


16

Я почав вивчати Java EE 7 і часто зустрічаю цей термін "стандарт", і не розумію, що це означає.

Так, наприклад, ось цитата з цієї книги:

На відміну від SOAP та стеку WS- *, які покладаються на стандарти W3C, REST не має стандартів і є лише стилем архітектури з принципами дизайну. Програми REST значною мірою покладаються на багато інших стандартів: HTTP, URI, URL ...

Я маю деяке уявлення про те, що це може означати, але я не впевнений.

Найкраще пояснення, яке я натрапив - це визначення звідси .


7
Прочитайте вікі-сторінки на технічний стандарт . Але це насправді може бути казковим словом . Стандарти - це, як правило, специфікації: тому C ++ 11 і Posix є стандартами.
Базиль Старинкевич

Це означає, що той, хто штовхає, намагається переконати вас купити (в) це.
bmargulies

Відповіді:


21

Термін "стандарти" в програмуванні часто позначає технологію / документ, якими керується група чи громада. Члени цієї групи часто поділяють загальні вкладені цілі, є активними користувачами цієї технології та хочуть забезпечити продовження технології.

У програмуванні багато "речей", які мають спільноту, яка ними керує. Ці члени можуть варіюватися від програмістів до корпоративного представництва (наприклад, Apple, Microsoft, IBM і т.д. тощо)

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

Ось список учасників.

http://www.w3.org/Consortium/Member/List

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

Такі компанії, як IBM, Microsoft та інші опублікували документацію про те, як реалізувати REST. Можна сказати, що існує "загальний спосіб" впровадження REST. Ви можете вибрати авторитетне джерело, яке описує реалізацію REST, і вимагати дотримання цього посилання. Використання авторитетних джерел - це один із способів вирішення проблем сумісності у веб-браузерах.


4
Я також додав би RFC до списку місць пошуку стандартів, оскільки напр. HTTP, про який згадував

2
@Snowman Майте на увазі, що не всі RFC є стандартними ; Я вважаю , що більшість є НЕ . Крім того, як ви бачите вгорі вашої пов’язаної сторінки, RFC 2616 є застарілим RFC 7230-7235, про який слід посилатися. Між іншим, це лише "Пропонований стандарт", а не "Інтернет-стандарт" (обидва є стандартними, але останні вважаються набагато більш зрілими і навряд чи можуть змінитися).
Боб

@Snowman: Ваш коментар насправді ілюструє найважливіше: стандарт - це коли люди згодні, що це стандарт. Якщо ви переглянете сторінку RRF, ви побачите, що існує сотні RFC, але насправді лише 78 стандартів. І HTTP, про який ви згадали, насправді не є стандартом! Це "просто" запит на коментарі, тобто деяка ідея, яку хтось мав, яку він хоче обговорити. Те, що робить HTTP стандартом, полягає не в тому, що якийсь орган управління публікує його (тому що відповідний керівний орган насправді не називає це «стандартом»), а тому, що люди ставляться до нього як до єдиного.
Йорг W Міттаг

@ JörgWMittag Я завжди приймав стандарт, який є документом, опублікованим з авторитетного джерела, в якому говориться про те, як щось має бути . Проблема полягає в тому, що люди можуть не погодитися з тим, що є авторитетним джерелом, а інші зловживають своїми авторитетними повноваженнями (тобто Microsoft і Apple - хороші приклади). Вони обидва часто ігнорують або намагаються нав'язати стандарти. Стандарти часто можуть бути чимось потужним корпорацією, яке не стосується їх.
Реакційний

1
@Mathew "Я завжди приймав стандарт, який є документом, опублікованим з авторитетного джерела, в якому йдеться про те, як щось має бути". - Я погоджуюся з цим пропозицією у вашому коментарі, але у вашій відповіді на даний момент сказано, що термін «стандарт» стосується самої технології. (Наприклад, Java - це стандарт, специфікація Java EE 7 - це не стандарт.) У попередній версії було сказано , що такі організації , як Oracle або W3C, означають "стандарт". Вашу відповідь потрібно оновити, щоб сказати, що ви тут маєте на увазі. Написана так, як є, ваша відповідь містить дезінформацію. :(
doppelgreener

10

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

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

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

Деякі приклади стандартів для згаданих вами технологій (та інших):

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

Тим часом HTTP є одним із численних прикладів стандартного переміщення між групами: спочатку Мережевою робочою групою, потім робочою групою HTTP, хоча обидві групи були частиною IETF. Інші технології перейшли між компаніями, такими як HTML (знову ж таки), версія 2 якої є автором IETF в RFC1866 .

Чому існують стандарти?

Вони існують, щоб дати нам гарантію того, як все буде працювати.

Специфікація HTML5 повідомляє мені, як різні браузери будуть обробляти та відображати розмітку HTML5, яку я записую, припускаючи, що вони правильно реалізують стандарт (що історично було проблемою). Стандарт C ++ 11 розповість мені про те, які різні C ++ 11 коди, які я пишу, робитимуть чи не робитимуть.

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

Наприклад, автори Microsoft C #. Ви можете завантажити C # Language Specification 5.0 для себе. Цей документ є обіцянням, що C # код, який ви пишете, повинен вести себе так, як це описано в специфікації, у будь-якому компіляторі, який фактично реалізує специфікацію правильно.

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

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

Що повертає нас до визначення слова "стандарт" :

прийнятий або затверджений приклад того, проти чого судять чи вимірюють інші - Словник Коллінза

Визнаний показник порівняння за кількісною чи якісною цінністю; критерій. - Медичний словник американської спадщини® Стедмана

тобто те, з чим ви порівнюєте свої речі, щоб переконатися, що ви отримаєте те, що очікуєте.


1
Існує також стандарт для C #, .NET, CLR та C ++ / CLR, опублікований ECMA, який потім швидко простежується до ISO. ISO також має стандарт для HTML, ISO HTML 1.0 - це підмножина W3C HTML 4.01 Strict.
Jörg W Mittag

4

Технологічний стандарт - це специфікація, згідно з якою очікується, що дві реалізації одного і того ж стандарту будуть сумісними або взаємозамінними. Приклади: USB, Bluetooth, Java EE7, HTTP.

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

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


1

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

А de jure standard- специфікація, опублікована стандартним комітетом. Деякі стандартні комітети: ISO, ECMA, DIN, ANSI і W3C.

Деякі приклади de jure standards- формат паперу формату A4 (стандарт ISO 219), мова c # (ECMA-334) тощо.

Термін «де-юре» вживається рідко, а «стандарт де-юре» часто називають еталоном.

Фактично стандарт - це звичай, конвенція, продукт або система, яка досягла домінуючого становища шляхом прийняття громадськістю чи ринкових сил "

(джерело: wikipedia - я не міг би краще написати це)

Фактично стандарт не обов'язково відповідає будь-якій формальній специфікації.

Як писав Гудмундур Орн у цій відповіді , формат DOC Microsoft Office був фактично стандартом. Він мав домінуюче становище, і зазвичай передбачалося, що люди можуть читати документи MS Word.

JSON - кумедний звір, оскільки він починався як фактичний стандарт. Однак відтоді вони були офіційно оформлені як ECMA-404 , тож він зараз є "де-юре стандартом".

Однак це також є переважаючим форматом для обміну даними з API на основі HTTP (наскільки мені відомо), таким чином, це також є «фактичним стандартом» для цієї мети.


-4

Для юридичної відповідальності за товар дефект класифікується як дизайн, виготовлення або документація. Дизайн не є несправним, якщо він базується на стандарті, незалежно від того, чи є цей стандарт несправним. Стандарт, який застосовується, - це місце, коли продукт був створений. Стандарт може бути опублікованим стандартом (ISO) або прийнятим галузевим стандартом, який не публікується асоціацією стандартів. Тож TCP / IP з усіма притаманними йому дефектами, такими як підробка, є стандартом, і якщо ви створюєте таку технологію, як VOIP, і нічого не робите, щоб захистити користувача від відомих проблем з базовою технологією, тоді ви можете безпечно продовжувати хаос. Або я можу помилятися і маю тут дефект документації ...


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