- PVSM.RU - https://www.pvsm.ru -
Речь пойдет, о технических стандартах, т.е. протоколах, спецификациях, паттернах, конвенциях, интерфейсах, форматах данных, нотациях и других отраслевых и особенно внутренних нормах, которые мы используем или изобретаем при разработке программных систем. Очевидных вещей я не буду повторять, каждый знает, что стандарты — это хорошо и правильно, что они способствуют унификации и, следовательно, совместимости систем и их модулей. Надеюсь, мои обобщения опыта, в форме «заметок для себя», будут полезными и нетривиальными.
Пояснения: в технике мы имеем дело с многоуровневыми системами, и зафиксировав правилами один уровень (уменьшив степень свободы или ликвидировав свободу на этом уровне), мы сразу увеличиваем разнообразие и получаем дополнительную свободу на том уровне, который непосредственно опирается на зафиксированный. Например, появление массы разнообразных и взаимозаменяемых периферийных устройств, было обусловлено введением таких стандартов, как RS-232, ISA, PCI, RJ45, SCSI, USB и т.д., а POSIX и WinAPI предопределили появление великого множества ПО.
Полезные выводы:
Пояснения: Можно создать стабильный слой на нестабильной (неупорядоченной) основе, но его сутью должна стать грубая обработка и упрощение. Это аналогично тому, что в городе, где твердое покрытие дороги, есть разнообразие обуви, а по бездорожью и грязюке — только самое простое и грубое, только сапоги подходят. Пример из ИТ: на базе веб стандартов образовалось разнообразие сайтов самого разного оформления, структуры, функционала и навигации. И объединить их смогли только поисковые системы, которые грубо анализируют все как текст, отбрасывая разнообразие в функциях и дизайне. Большие потоки неструктурированных данных могут быть переварены только бессхемными, документно-ориентированными СУБД и файловыми хранилищами, которые обрабатывают все грубо, крупными кусками, не вдаваясь в подробности.
Пояснения: невозможно придумать идеальный стандарт, но всегда хочется к этому стремиться. В результате, зафиксировав спецификацию в текущем уровне своего понимания, мы всегда боремся с мыслью, что мы что-то не учли и можно сделать лучше. Кажется, что выпустив такой стандарт мы размениваемся, так и не достигнув желаемого.
Полезные выводы:
Пояснения: существует распространенное заблуждение, что нормы, стандарты и законы основаны на научном методе и обоснованы. Хоть на самом деле, любые нормы есть результатом чьего-то произвола, очень часто основанном на корысти определенных заинтересованных сторон. Чтобы понять, что это произвол, всегда можно задать к норме такие вопросы:
Например, почему где-то принят порядок битов (или байтов) от старшего к младшему или от младшего к старшему? Эта задача — чистейший спор «тупоконечников» (big-endian) и «остроконечников» (little-endian), на английском порядок битов и байтов так же и называется. Почему взята скобка квадратная, а не круглая, угловая или фигурная? Конечно, можно сказать, что это исторически сложилось, но изначально же был произвол. Можно сказать, что для принятия именно такого решения были взяты «вот эти вот» параметры и критерии и на основе их анализа мы пришли к оптимальному решению. Но, почему именно эти параметры и критерии рассматривались, а не какие-то другие, ни кто не ответит, потому, что инженерная мысль есть рационализация интуитивных прозрений, а обосновать можно все.
Пояснения: из исторических аналогий мы знаем, что каждый правитель древности знал, что эффективнее вводить законы, чем воевать. Наполеон боролся с Британией введением глобальной системы мер и весов и укрепил свою страну продуманной системой законодательства. Чингисхан наладил стандарты скоростного курьерского сообщения между отдаленными частями империи, Великобритания смогли создать почтовую службу с подобной скоростью и надежностью доставки только в XIX веке. ИТ-шных примеров войны стандартов я даже не буду приводить. Стандарт — самое эффективное средство борьбы с конкуренцией в ИТ.
Полезные выводы: очевидны.
Пояснения: кроме положительных аспектов стандартизации, не стоит забывать и об отрицательных. Введение любых канонических правил всегда приводит к тому, что коллектив, или вся отрасль, уже не ставит вопросов «почему?», «как?», «можно ли иначе?». Это позволяет сосредоточиться на решении других задач, для чего, собственно, и необходимо введение норм. Но это же приводит и к шаблонности
В завершение добавлю слова Гёте, которые мне почему-то кажутся близкими к теме:
Природа с красоты своей
Покрова снять не позволяет,
И ты машинами не выудишь у ней,
Чего твой дух не угадает.
Автор: MarcusAurelius
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/spetsifikatsii/48231
Ссылки в тексте:
[1] мышления: http://www.braintools.ru
[2] Источник: http://habrahabr.ru/post/201888/
Нажмите здесь для печати.