Чому програмісти ігнорують стандарти ISO? [зачинено]


18

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

Одним із прикладів може бути не використання таблиць країн ISO, а складання власних стенограмів, що нормально для США (США) або Нідерландів (NL), але йде зовсім не так для Великобританії (GB, а не Великобританії) або Іспанії (ES, а не SP) та багато інших країн.

В якості іншого прикладу внутрішні позначення дат. Чому хтось зберігав би дату як 02.02.2014? Зовсім незрозуміло, чи це буде 1 лютого чи 2 січня, тоді як якщо ви використовуєте стандарт ISO, ви просто зберігаєте 2014-02-01 * і це однозначно 1 лютого.

Моє запитання: Коли і навіщо програміст повинен складати власні конструкції, коли є стандарт ISO?

* Зберігайте 2014-02-01 і відформатуйте дату відповідно, показуючи її кінцевому користувачеві.


64
Тому що вони не знають їх або забули про них! Є газильйони стандартів ISO .... Чи знаєте ви всі ISO26262?
Василь Старинкевич,

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

13
Крім того, багато стандартів ISO не так легко знайти (зазвичай вони коштують великих доларів, а знайти останню чернетку не так просто!).
Базиль Старинкевич

64
Чудова річ у стандартах - це те, що на вибір так багато!
Йорг W Міттаг

5
Серед дивних речей , пов'язана програма , які силою НЕ-англійськи на неанглійський користувача локалей , щоб змінити його місцеві загальносистемні правильно настройки в десяткові точки для того , щоб працювати. Не кажучи про програми, які відмовляються працювати або просто виробляють сміття під неанглійськими шаблонами (російською, японською, грецькою), не кажучи вже про системи RTL (іврит, арабська). Я думаю, що це стосується незнання.
JensG

Відповіді:


63

Ніколи не приписуйте злобі те, що адекватно пояснюється дурістю. - Роберт Дж Хенлон .

Те, і відсутність спілкування.

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

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


20
Не допомагає, що багато стандартів ISO дорогі та / або важко отримати ... Навіть якщо ви дуже хочете!
heltonbiker

yyyy-mm-dd ... не дорого
півбіт

11
@halfbit: дорогі покупки, не дорогі обчислювальні ресурси. Серйозно, перегляньте їхній магазин . Ви хочете стандарт з плаваючою комою ? Це буде 178 франків.
user2357112 підтримує Моніку

32

Коли я програмую в Ruby, я завжди ігнорую стандарт ISO Ruby. Чому? Бо це неймовірно обмежує! ISO Ruby - це мінімальний підмножина перетину Ruby 1.8 та Ruby 1.9. Поточна версія Ruby, яка підтримується всіма реалізаціями Ruby (або, принаймні, буде дуже скоро), є Ruby 2.1, і вона має безліч функцій, які спрощують програмування. Програмування в ISO Ruby - це PITA.

Коли я програмую на C #, я також ігнорую ISO C #, що є підмножиною C # 2.0 (і що ще важливіше, бібліотека класів ISO - надзвичайно малий підмножина .NET BCL), і замість цього я програмую на C # 5.0, і я не не обмежую себе використовувати лише ті бібліотеки, які вказані в ISO CLI, натомість я використовую загальний підмножина бібліотек, доступна в .NET 4.5.2 та Mono 3.4.0.

І, роблячи веб-дизайн, я дуже вважаю за краще використовувати HTML5 над ISO HTML (що є невеликим підмножиною HTML 4.01 Strict), знову ж таки, тому що HTML5 набагато більш багатий на функції, ніж обмежений підмножина старовинної версії HTML.

Отже, є вагомі причини ігнорування стандартів ISO.


9
Це залежить від C, C ++, Fortran ... ситуація дуже інша.
Володимир F

1
Це здається менш схожим на "ігнорування" за наміром питання, і більше схоже на "вибір інструменту, який робить те, що вам потрібно". Якщо вам потрібні функції C # 5.0, використовувати ISO C # немає більше сенсу, ніж це було б використовувати ISO C або ISO Fortran; це просто не той інструмент, про який ви просили, і ISO не має еквівалента. Ваш приклад також все ще передбачає дотримання чітко визначених стандартів, тільки не стандартів ISO.
Левшенко

3
@ Левшенко Я не згоден; ОП, здається, вважає, що ви завжди повинні дотримуватися стандартів ISO, періоду. +1 за нахабний контрприклад цього "повинен".
djechlin

3
Все добре і добре, але я думаю, що питання справді стосувалося стандартів ISO для представлення даних, а не стандартів ISO для мов програмування.
Aaronaught

4
Деякі стверджують, що (деякі) Стандарти ISO є прекрасним прикладом
антидіаграму

22

Згідно з вашим прикладом, "GB" - код країни для Сполученого Королівства. Однак "Великобританія" була свого часу стандартним кодом MARC (Бібліотека Конгресу США), хоча я вважаю, що це застаріло. І IANA використовує .ukдомен верхнього рівня для Сполученого Королівства.

Отже, якщо щось не відповідає стандарту ISO, це не означає, що жоден стандарт не використовується; це може просто означати, що використовується інший стандарт. (Як зазначає @ Jörg в коментарі, приємно, що у стандартах є те, що їх можна вибрати.) У такому випадку справді виникає питання, який стандарт буде найбільш відповідним для даної проблемної області, середовища тощо ?

Відповіді на це питання, ймовірно, значною мірою ґрунтуються на думці та швидко перероджуються у "релігійну" дискусію. Але відповідність стандарту ISO не завжди є найкращою відповіддю. Наприклад, якщо частина програмного забезпечення потребує взаємодії з базами даних бібліотеки, стандарти MARC можуть бути більш правильним вибором, ніж ISO. Якщо більшість програмного забезпечення вашої організації робить щось певним чином, ви, можливо, захочете дотримуватися такого підходу, принаймні в короткостроковій перспективі - це "стандарт" вашої організації, зрештою.


Також стандарти змінюються / змінюються. Те, що було вчора, може бути і сьогодні.


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


15

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

Неважко сказати "ей, ти завжди повинен впроваджувати стандарт", але все має вартість. І є кілька вагомих причин, чому програміст може не захотіти впроваджувати стандарт ISO.

  • Замовник може дотримуватися фірмового або не-ISO стандарту. Краще прискорити стандарт, якого очікує клієнт, ніж залишити ненавмисні головні болі для свого наступника, сховавши додаткову реалізацію, окрім того, що хоче клієнт та потрібна ваша мова.
  • Можливо, існує велика кількість існуючих даних, і конверсія чи перерва формату ще не є можливим. Якщо у вас є двадцять років контактів із клієнтами та укладені договори з місцевими датами, вам не обов’язково потрібно змінювати всі ці сотні мільйонів полів на стандартні дати ISO, поки ви не зможете це зробити правильно.
  • Дотримання стандарту може спричинити більшу вартість, ніж надає вигода. Наприклад, якщо ви маєте на увазі записи повністю в межах США, наприклад, п'яти символьний код ISO-3166-2 (US-NY) - це три непотрібні символи над стандартним поштовим індексом США (NY).

1
Окрім гнучких процесів, завжди дешевше включати будь-які особливості - включаючи стандарт ISO - під час фази проектування / специфікації, ніж це відбувається на етапі впровадження / технічного обслуговування, оскільки фаза проектування становить лише 10% роботи. Це лише інверсія закону зменшення прибутку - аналогічно тому, як ідентифікація та виправлення дефекту у виробництві може коштувати до 10 разів дорожче, ніж якщо б воно було виявлено в результаті одиничного випробування або тесту на прийняття. Якщо у вас є тверда причина не використовувати стандарт ISO на всіх , це нормально; якщо ти скажеш, що реалізуєш це пізніше, ти брешеш.
Aaronaught

@Aaronaught: Як ви вважаєте, я повинен уточнити, що під "перетворенням" я мав на увазі конверсію зовнішнього файлу, а не внутрішню переписування?
DougM

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

+1 "... вам не обов'язково потрібно змінити всі ці сотні мільйонів полів ..., поки ви не зробите це правильно". Саме так.
Девід

14

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

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

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

введіть тут опис зображення

Як не дивно, ті, хто нехтує стандартами, використовують стандартні порти USB, купують DVD та BluRays стандартного розміру та керують автомобілями з шинами, які відповідають стандартам.


12
-1 для вашої карикатури на досвідчених програмістів, що не відповідають стандартам ISO.
djechlin

4
@djechlin Фрази в цитатах є буквальними з реальних відповідей на пов'язане питання. Ви навіть можете шукати на сторінці, щоб побачити, що це реальна думка. Також не всі досвідчені програмісти ненавидять стандарти.
Tulains Córdova

2
@djechlin У моїй відповіді є пов'язане запитання, шукайте "див. подібне запитання". Слово "питання" має посилання. Там ви можете шукати точні фрази в лапках.
Tulains Córdova

2
@djechlin посилання є у відповіді, а не в питанні, ось у вас це є: programmers.stackexchange.com/questions/204340/…
Tulains Córdova

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

10

Ну, люди схильні ігнорувати стандарти ISO: наприклад, ви писали

якщо ви використовуєте стандарт ISO, ви просто зберігаєте 20140201 *, і це однозначно 1 лютого.

але повністю відповідає сумісному стандарту ISO8601 - це фактично 2014-02-01 . (див. також xkcd 1179 )


7
Стандарт ISO8601 дозволяє як YYYY-MM-DD, так і YYYYMMDD формати для повного представлення дати календаря.
Пітер Б

1
Дійсно; отже, моє написання "повністю сумісне". 20140201 - це "базовий" формат у стандарті.
Clément

8
ISO дозволяє використовувати базовий та розширений формат, і вони повністю сумісні.
Пітер Б

10
ISO 8601 was published on 06/05/88 and most recently amended on 12/01/04.classic
WernerCD

8

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

Якщо ваші користувачі вже використовують "Великобританію" у своїх існуючих процедурах (1) для позначення "Сполучене Королівство Великобританії та Північної Ірландії", це не обов'язково має сенс використовувати "GB" у своїх структурах даних (особливо якщо ви мається на увазі, що країна не є цілком "ISO" країною, наприклад, відокремлюючи країни Великої Британії або маючи тонкі відмінності з Каналськими островами тощо. Звичайно, у вас може бути відображення презентації між внутрішнім сховищем, але іноді це трохи вище. Ви рідко програмуєте заради програмування, вам часто доводиться адаптуватися до свого оточення.(2)

Ви також повинні пам’ятати, що ці стандарти розвивалися паралельно з програмним забезпеченням. Вам часто доводиться розробляти в контексті інших фрагментів програмного забезпечення, деякі з яких можуть бути недосконало розроблені, на деякі з яких все-таки можуть вплинути застарілі рішення.

Навіть якщо ви дивитесь на внутрішні формати зберігання даних, деякі неясності важко вирішити. Наприклад, наскільки я знаю, Excel використовує десяткове число для позначення часових позначок: воно використовує ціле число як кількість днів з моменту опорної дати, то те, що після десяткової представляє частку за 24 години, щоб дати вам годину. .. Проблема полягає в тому, що це заважає вам брати до уваги часові пояси або перехід на літній час (23 години або 25 годин на день), і Excel перетворить будь-яку дату / час у цей внутрішній формат за замовчуванням. Незалежно від того, хочете ви використати формат ISO чи ні, це не має значення, якщо інша частина програмного забезпечення, з яким вам доведеться працювати, не залишає вам вибору.

(1) Я тут не маю на увазі "процедури програмування".

(2) Не питайте мене, чому люди також не використовують ці стандарти у своєму повсякденному житті. Я маю на увазі YYYYmmdd зрозумілий, dd / mm / YYYY зрозумілий, але замовлення дати середнім, малим, великим порядком деталізації, наприклад, mm / dd / YYYY, це просто не має сенсу :-).


1
Га! Ви знаєте, що не має сенсу? Коми, де мають десяткові знаки! ;)
Darkwater23

@ Darkwater23 Ha, я не заперечую, що в будь-якому випадку це просто конвенція, і це не має сенсу. Просто я завжди виявляв, що мм / дд / рр., Здавалося, не вистачає логіки, чому б не піти на мм-MM-dd-HH-YYYY для часових позначок ;-) Але ей, я згоден, це просто шлях це так, тому ми маємо з цим жити.
Бруно

2
@ Darkwater23 Насправді стандарт ISO використовує дивний символ unicode (це:) для десяткового роздільника на клавіатурах , і я вважав, що звичайні галочки ( ') також стандартизовані для групування цифр (хоча я зараз не можу його знайти)
Izkata

+1 - вказати ще одну причину того, що економія літнього часу - це витрата часу.
ctrl-alt-delor

1
@richard Я не обов язково проти DST в будь-якому випадку, але, безумовно, програмісти повинні прагнути максимально зберігати свої часові позначки з інформацією про часовий пояс. Не рідкість програма, яка в будь-якому разі застосовується в декількох часових поясах (незалежно від DST), і обов'язково залишає вам мало місця для неоднозначності, коли ви зберігаєте часовий штамп, повинен бути частиною початкового дизайну. (Це може бути не завжди застосовно, але, сумніваючись, його завжди варто враховувати.) Звичайно, це складна проблема (наприклад, не тільки +01 година, але місцевість може мати значення також, залежно від використання).
Бруно

8

Чому б я не використовував ISO 3166-1 альфа-2 коди країн ?

Тому що я використовую STANAG 1059 коди країн ... і в цій Великобританії код Великобританії (замість ГБ відповідно до ISO 3166-1).

Як варіант я міг би використовувати FIPS коди країн - знову ж таки Великобританія - код країни для Сполученого Королівства.

Існує багато стандартів (ISO і не-ISO), а іноді певний домен використовує / вимагає стандарт, несумісний зі стандартом ISO.


7

Зберігання 20140201 зовсім не однозначне. Тільки коли ви включаєте знання, які відповідають стандарту ISO, це стає однозначним. Те ж саме стосується і 02.02.2014: коли ви включаєте знання про те, що формат є мм / дд / ггг, це також абсолютно однозначно.

Поки додаток не повинен взаємодіяти з іншим додатком, будь-який добре задокументований стандарт може працювати так само добре.

Існує компроміс між тим, що легко для людей (я схильний використовувати 1-2-2014) та комп’ютерами (хто навіть краще, якщо двійкове представлення замість ISO). Новачки-програмісти, як правило, дотримуються того, що вони легко зрозуміють, більше досвіду програмісти починають бачити переваги комп'ютерно орієнтованого зберігання.


4
Домовились. Я б більше переймався ISO, якби писав заявку на міжнародне споживання. Мої програми для Середньої Америки не потребують накладних витрат або обмежень.
Darkwater23

4
Написавши "Поки додаток не повинен взаємодіяти з іншим додатком", ви дали вагомі підстави використовувати стандарт ISO.
Tulains Córdova

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

6
-1 за умови, що не буде взаємодіяти з іншими програмами. Це суперечить всій галузі програмування.
djechlin

18
@Jeff: Я ніколи не бачив дату, кодовану як YYYYDDMM, з будь-якою метою, крім того, щоб вимагати таке кодування, можливо. Чи ти?
supercat

5

Точка, яку не піднімали досі, - це культурна відповідність міжнародних стандартів.

Розглянемо міжнародний стандарт вимірювань. Представимо їх користувачам у Сполучених Штатах. Я не впевнений, що всі ваші користувачі в США будуть задоволені кілометрами, кілограмами та літрами.

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

Навіть коди країн можуть бути проблематичними: чи Крим зараз отримує власний код країни? Формули в кінцевому підсумку знайдуться (наприклад, "Колишня югославська республіка Македонія"), але вашій заяві може знадобитися певна підтримка, поки не закінчиться дипломатія чи війна.

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

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


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

5

На мій досвід, програмісти не використовують стандартів ISO з різних заявлених причин, наприклад:

  • "Я не знав, що існує стандарт ISO" (перестає бути поважною причиною, як тільки вам кажуть!)
  • "Стандарт недоступний (не можу знайти / дозволити собі копію)" (дійсно ??)
  • "Стандарт є занадто обмежуючим" (зазвичай, якщо стандарт говорить "не", то є вагомі причини. Ігноруйте це на вашу користь і на замовника!)
  • "Стандарт не включає в себе найновішу функціональність / бібліотеку" (жоден стандарт не включає ВСЕ БІБЛІОТЕКУ, яку ви коли-небудь захочете використовувати, щоб дотримуватися стандарту для речей, які він НЕ включає / охоплює, і відповідати стандарту для речей що це не так)
  • "Стандарт занадто громіздкий для впровадження" (сильно завищений привід, але дивіться нижче)

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

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


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

1

ISO має безліч стандартів. Як це робив CCITT / ITU. Деякі з цих стандартів є "амбіційними" стандартами, а інші - мінімально необхідними функціональними можливостями. Не часто зрозуміло, що є.

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

Ось чому мені подобаються IETF RFC. Вони навіть не стають RFC, поки не існують 3 незалежні реалізації RFC.


2
Модель IETF "грубої консенсусу та запущеного коду" була повністю відмовлена, щонайменше, ще в 1995 році. Я в цю епоху був занадто причетним до IETF, і модель "була специфікацією, яку я чхав і навіть не використовував референтну реалізацію. ". Було приємно, коли був встановлений стандарт "запущеного коду", а не придумувати, як реалізувати повністю недоописаний протокол і змусити його працювати з іншими реалізаціями, про які потрібно було здогадуватися стільки, скільки ви робили.
msw

1
Коли я почав використовувати RFC IETF, я використовував ті, розроблені задовго до 1995 року. Характеристики запущеного коду є найкращими. В іншому випадку у вас виявиться занадто багато інженерів-графіків, що базуються зі слонової кістки, мріючи про технічні характеристики, не відповідаючи за те, щоб вони працювали.
Джей Годсе

1

Якщо я будую базу даних Oracle і хочу зберігати дати, я буду використовувати тип даних Oracle DATE. Я не знаю, чи не хвилюється, чи відповідає Oracle стандарту ISO чи ні. Це дійсно випадок моєї відповідності іншому стандарту (Oracle) і не стільки відходу від стандарту ISO. Дивіться @ відповідь Девіда.

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

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


1
Я не знайомий з Oracle, але при використанні SQL Server або MySQL я, звичайно, також використовую відповідні типи даних для зберігання дат. Але коли ви пишете запити з датами, вони обидва добре розпізнають yyyymmdd, де це потрапляє або пропускається, коли ви використовуєте дату локалізації.
Пітер Б

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