Путаница в понимании стандартов c ++

Как читать чужой код? Часть 1. Общие вопросы. Доработка чужого кода. Code review

Во всех вакансиях есть требование — умение читать чужой код. Но ни на одних курсах специально этому не учат.
Чтобы устранить это противоречие, пишу данную статью. Рассмотрю случаи, в которых нам необходимо разбирать чужой код, поймём, чей код мы пытаемся разобрать, зачем и, главное, как. В статье описан личный опыт длиною в 18 лет начиная с версии платформы 7.7. Статья будет большой, набираемся терпения). Статья содержит в себе описание сценариев разбора кода, т.е. набор шагов. В статье не получится показать это на практике. Для этого планирую сделать онлайн или оффлайн курс, где на примерах будет показан разбор незнакомого кода. Статья разбита на 4 публикации для удобства изучения.

BB71, BB91

Шимано намутила воду, добавив в название своих кареток аббревиатуры ВВ71 и ВВ91. На самом деле, это не является стандартами PressFit, это просто конкретные модели кареток для стандарта BB86/92 (см. ).

Каретка Shimano SM-BB91-41 является улучшенной версией SM-BB71-41 (можно сказать, что первая — это Deor, а вторая — уже SLX). Они полностью взаимозаменяемы, т.к. принадлежат одному стандарту BB86/BB92.

Каретки BB71-41A и ВВ71-41B имеют одни и те же чашки, но отличаются длиной герметизирующей трубки между ними. Первая — для МТБ, вторая более короткая — для шоссе.

Вот неплохой чертеж ВВ71, на нем кое-чего не хватает, но в целом выполнен довольно подробно:

Тут можно посмотреть на эту каретку вживую. Особенно интересно, как она выглядит после значительного пробега.

Надоело мне все это писать, все есть в этой пдф-ке.

Альтернативы новому маршрутизатору

Если ваша проблема больше связана с покрытием и у вас есть одна проблемная комната, где вы хотите улучшить Wi-Fi, или конкретное устройство, которому требуется более быстрое подключение, вам может не понадобиться покупать новый маршрутизатор. Попробуйте один из этих вариантов. У каждого из них есть свои собственные технические проблемы и потенциальные проблемы. Даже при успешном развертывании они и близко не сравнятся по удобству с хорошей быстрой системой, но все они намного дешевле.

Ретрансляторы Wi-Fi

Вы можете использовать ретрансляторы Wi-Fi, чтобы распространить Wi-Fi от одного маршрутизатора немного дальше и потенциально усилить сигнал в мертвой зоне. Эти устройства являются хорошим решением для некоторых людей, но они могут быть неэффективными, подверженными помехам и часто создавать вторичную сеть с именем, отличным от вашего обычного Wi-Fi.

Адаптеры для линий Электропередач

Продаваемые парами адаптеры для линий электропередачи пропускают интернет-сигнал через вашу электропроводку. Вы подключаете один из них к розетке рядом с вашим маршрутизатором и подключаете его с помощью кабеля Ethernet, в то время как другой сетевой адаптер подключается к розетке в комнате, где вам нужен более быстрый доступ в Интернет. Они могут быть хорошим решением, если у вас есть консоль или смарт-телевизор в гостиной в задней части дома, но ваш маршрутизатор находится, например, в прихожей. К сожалению, эффективность в значительной степени зависит от вашей электропроводки.

MoCA (Multimedia over Coax Alliance)

Если в вашем доме уже установлены коаксиальные кабели (возможно, для кабельного телевидения), вы можете использовать их для создания надежной проводной сети, которая обеспечивает высокую скорость и низкую задержку по сравнению с Wi-Fi. Вы можете приобрести маршрутизаторы, сетевые адаптеры или удлинители Wi-Fi, поддерживающие стандарт MoCA. Как и сетевые адаптеры, это может быть отличным способом передачи интернет-сигнала на смарт-телевизор, игровую консоль или настольный компьютер, на которые не поступает сильный сигнал Wi-Fi.

Точки доступа

Если вы не возражаете против сложных задач и у вас есть запасной старый маршрутизатор, вы можете рассмотреть возможность его настройки в качестве точки доступа или использования в качестве расширителя Wi-Fi. Это может быть особенно эффективно, если вы можете подключить его к своему основному маршрутизатору с помощью кабеля, но настройка может оказаться сложной.

Соглашения по именованию

Соглашения по именованию переменных в python немного туманны, поэтому их список никогда не будет полным — тем не менее, ниже мы приводим список рекомендаций, действующих на данный момент. Новые модули и пакеты должны быть написаны согласно этим стандартам, но если в какой-либо уже существующей библиотеке эти правила нарушаются, предпочтительнее писать в едином с ней стиле.

Главный принцип

Имена, которые видны пользователю как часть общественного API должны следовать конвенциям, которые отражают использование, а не реализацию.

Описание: Стили имен

Существует много разных стилей. Поможем вам распознать, какой стиль именования используется, независимо от того, для чего он используется.

Обычно различают следующие стили:

  • b (одиночная маленькая буква)
  • B (одиночная заглавная буква)
  • lowercase (слово в нижнем регистре)
  • lower_case_with_underscores (слова из маленьких букв с подчеркиваниями)
  • UPPERCASE (заглавные буквы)
  • UPPERCASE_WITH_UNDERSCORES (слова из заглавных букв с подчеркиваниями)
  • CapitalizedWords (слова с заглавными буквами, или CapWords, или CamelCase). Замечание: когда вы используете аббревиатуры в таком стиле, пишите все буквы аббревиатуры заглавными — HTTPServerError лучше, чем HttpServerError.
  • mixedCase (отличается от CapitalizedWords тем, что первое слово начинается с маленькой буквы)
  • Capitalized_Words_With_Underscores (слова с заглавными буквами и подчеркиваниями — уродливо!)

Ещё существует стиль, в котором имена, принадлежащие одной логической группе, имеют один короткий префикс. Этот стиль редко используется в python, но мы упоминаем его для полноты. Например, функция os.stat() возвращает кортеж, имена в котором традиционно имеют вид st_mode, st_size, st_mtime и так далее. (Так сделано, чтобы подчеркнуть соответствие этих полей структуре системных вызовов POSIX, что помогает знакомым с ней программистам).

В библиотеке X11 используется префикс Х для всех public-функций. В python этот стиль считается излишним, потому что перед полями и именами методов стоит имя объекта, а перед именами функций стоит имя модуля.

В дополнение к этому, используются следующие специальные формы записи имен с добавлением символа подчеркивания в начало или конец имени:

  • _single_leading_underscore: слабый индикатор того, что имя используется для внутренних нужд. Например, from M import * не будет импортировать объекты, чьи имена начинаются с символа подчеркивания.

  • single_trailing_underscore_: используется по соглашению для избежания конфликтов с ключевыми словами языка python, например:

    Tkinter.Toplevel(master, class_='ClassName')
  • __double_leading_underscore: изменяет имя атрибута класса, то есть в классе FooBar поле __boo становится _FooBar__boo.

  • __double_leading_and_trailing_underscore__ (двойное подчеркивание в начале и в конце имени): магические методы или атрибуты, которые находятся в пространствах имен, управляемых пользователем. Например, __init__, __import__ или __file__. Не изобретайте такие имена, используйте их только так, как написано в документации.

Уровни стандартов

  • Промышленные стандарты (из других языков). На них наткнетесь в интернетах и в книгах. Люто рекомендую прочитать Совершенный код и Чистый код
  • Стандарты 1С https://its.1c.ru/db/v8std. Доступ открыт и бесплатен.
  • Внутренние стандарты Компании. Сюда обычно входят правила префиксации. Правила доработки конфигурации на поддержке для упрощения обновления. Правила идентификации изменений — от любимых // Здесь был Уася по задаче 000666 до правила текста оформления коммита.
  • Личное. Я это называю почерком, когда автора кода легко определить по стилю, но при этом негатива это не вызывает. У меня это “дышащий стиль” с кучей пробелов и отступов, правилами именования, похожими на венгерскую нотацию и другими шаблонами.

Чем выше уровень, тем ближе к разработчику. Но если уровни конфликтуют между собой — нужно быть уверенным на 146% в целесообразности. Нужно четко понимать что стоит за нижестоящим стандартом и почему переопределен.

Пример хорошего переопределения — префиксация имен у объектов при доработке конфигурации на поддержке. Стандарт 1С запрещает спец. префиксы. Но префиксы помогают при определении принадлежности объекта.

Пример плохого переопределения — идентификаторы изменений прям в коде с сохранением старого кода.

Какая Скорость Вам Нужна?

Есть много вещей, которые следует учитывать, когда вы пытаетесь решить, насколько быстрым должен быть ваш маршрутизатор. Максимальная скорость вашего интернета определяется вашим провайдером. Скорость интернета указана в Мбит/с (мегабит в секунду). Согласно Speedtest компании Ookla, средняя глобальная скорость фиксированной широкополосной связи составляет 64 Мбит/с для загрузок и 27 Мбит/с для загрузок. Большинство интернет—провайдеров укажут определенную скорость или предоставят вам диапазон — например, загрузка 300 Мбит / с и загрузка 30 Мбит / с, — но то, что вы на самом деле получаете, часто ниже максимальной (особенно скорость загрузки), и она должна быть разделена между всеми вашими подключенными устройствами.

Вы можете проверить, какую скорость загрузки вы получаете, запустив тест скорости в своем браузере. Просто введите “тест скорости” в Google, чтобы найти несколько вариантов. Чтобы получить приблизительное представление о том, как Мбит / с преобразуется в использование Интернета, мы можем обратиться к руководству FCC по скорости широкополосного доступа, в котором говорится, что вам нужно 3-4 Мбит / с для потоковой передачи видео стандартной четкости, 5-8 Мбит / с для HD и 25 Мбит / с для одного потока 4K. Вообще говоря, если в доме несколько человек, транслирующих видео в формате 4K с подключенными несколькими гаджетами, вам потребуется не менее 200 Мбит / с, если не больше. Если у вас подключено всего несколько устройств и вы в основном просто просматриваете веб-страницы, просматривая видео то тут, то там, вас вполне устроит скорость 50 или 100 Мбит/с.

Если ваше интернет-соединение достигает максимальной скорости 100 Мбит / с, то любое устройство в вашем доме, подключающееся к Интернету, будет ограничено этой скоростью, даже если маршрутизатор поддерживает гораздо более высокие скорости

Также важно отметить, что производители маршрутизаторов печатают на коробке теоретические максимумы и результаты лабораторных испытаний. Заявленная скорость — это комбинированный максимум, а не скорость, которую вы можете ожидать достичь с помощью одного подключенного устройства

В реальных условиях вы всегда будете получать более низкую скорость.

Ознакомьтесь с приложением

В то время как старые маршрутизаторы, как правило, имеют базовые настройки, доступ к которым вы можете получить, только введя IP-адрес в свой браузер и войдя в систему, многие новые маршрутизаторы и сетевые системы предлагают приложения, к которым вы можете получить доступ со своего телефона. Стоит взглянуть на интерфейс, чтобы убедиться, что в нем есть все нужные вам функции. Мы рекомендуем ознакомиться с нашими обзорами и отзывами пользователей, чтобы получить представление о том, насколько хорошо это работает, и выявить любые потенциальные проблемы.

Новейшие системы mesh могут похвастаться доступными приложениями, которые сразу показывают все подключенные устройства. Вы можете найти возможность приостанавливать работу в Интернете и создавать расписания, а также возможность упорядочивать устройства по профилям. Многие из них также включают родительский контроль, чтобы вы могли блокировать различные типы потенциально конфиденциального контента и блокировать определенные веб-сайты или вносить их в белый список. Некоторые компании взимают дополнительную плату за эти льготы, так что будьте начеку. Например, вам нужна подписка Eero Secure (3 доллара в месяц или 30 долларов в год), чтобы разблокировать родительский контроль в вашей системе Eero mesh.

Рассмотрите предлагаемые дополнительные функции безопасности. Многие маршрутизаторы поставляются в комплекте со встроенной защитой, которая будет отслеживать вашу сеть в режиме реального времени для обнаружения вредоносных программ, вирусов и других вторжений и блокировать их доступ к вашим устройствам. Некоторые из них могут автоматически блокировать вредоносные веб-сайты, программы-вымогатели, рекламное ПО и попытки фишинга и даже сканировать устройства в вашей сети, чтобы выявить потенциальные проблемы с безопасностью. Но для этих функций безопасности часто требуется подписка. Например, Netgear Armor, работающий на базе Bitdefender, обеспечивает комплексную защиту и стоит 100 долларов в год.

В каком объеме нужна документация?

Чем проще, тем лучше, при условии, что мы выполняем главную цель создания документа – объяснить читающему, как выполняется работа. То есть цель любого документа – точно и недвусмысленно описать деятельность. Однако простые тексты легче воспринимаются и запоминаются, поэтому любая документация это компромисс между простотой усвоения и достаточным количеством информации для описания работы.

Управление документацией похоже на уход за вещами. У некоторых одежда валяется кучками на полу, у некоторых аккуратно сложена в шкафу на определенных полках. Неряха теряет в личной жизни свое время, а в бизнесе — деньги и время фирмы.

Отсутствие необходимой документации или неправильное её использование приводят к ошибкам и потерям в работе организации.

Существуют различные типы и виды документации, я попробую в простой форме рассказать о них.

Терминологическая путаница

Терминологическая путаница, кстати, существует не только в области Интернета. Вследствие быстрого проникновения маркетинговых знаний в отечественную практику многие специалисты получают образование в различных, в том числе зарубежных, центрах. Адекватного перевода многих искусственных иностранных слов у нас просто нет, либо сразу не могут найти. Либо каждый переводчик придумывает свой аналог. Результаты бывают просто анекдотичными.

Имеется некоторая терминологическая путаница относительно полученных аэродинамическим способом нетканых материалов.

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

Хауэлл отмечает терминологическую путаницу, которая до последнего времени господствовала в применении названия терраса и погружающаяся антиклиналь, особенно в некоторых Восточных штатах ( США), где слишком злоупотребляли первым из названных терминов явно в ущерб второму.

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

Для того чтобы не возникло терминологической путаницы, несущую сигнала цветности, в отличие от несущей сигнала яркости, называют поднесущей.

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

В литературе по верификации логических программ имеется некоторая терминологическая путаница, что может вызвать недоразумение у тех, кто не знаком с происходившими в процессе развития этой теории изменениями в определениях. В подходе Кларка и Тернлунда принимается стандартное понятие частичной правильности, однако, пытаясь достичь согласованности с понятиями из области доказательства правильности традиционных программ, в качестве дополнительного требования для определения полной правильности они выбирают завершаемость.

И дело здесь, конечно, не просто в терминологической путанице.

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

В экономической науке, как ни в какой другой, существует терминологическая путаница, приводящая не только к непониманию экономических школ различных государств, но и к междисциплинарной путанице, к противоречиям в основных определениях научных школ разных городов, вузов. Реальное производство, производственный капитал, первичное производство — этими терминами обозначается производственная инфраструктура воспроизводственного процесса.

Назначение формулы не было проанализировано должным образом, что приводило в дальнейшем к постоянной терминологической путанице. Трудно все время держать в уме, что цена запасов в недрах, умноженная на запасы, вовсе не является денежной оценкой месторождения.

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

К сожалению, подобное положение сохранилось до настоящего времени; более того, даже в нормативных документах происходит терминологическая путаница.

Обозначая предмет договора мены как товар ( в отличие от имущества как предмета купли-продажи), законодатель порождает терминологическую путаницу. Ведь товар-понятие более широкое, нежели имущество. Товарами являются не только вещи или права, но также и работы, услуги. Значит ли это, что предмет договора мены шире, чем купли-продажи.

Комментарии

Комментарии, противоречащие коду, хуже, чем отсутствие комментариев. Всегда исправляйте комментарии, если меняете код!

Комментарии должны являться законченными предложениями. Если комментарий — фраза или предложение, первое слово должно быть написано с большой буквы, если только это не имя переменной, которая начинается с маленькой буквы (никогда не изменяйте регистр переменной!).

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

Ставьте два пробела после точки в конце предложения.

Программисты, которые не говорят на английском языке, пожалуйста, пишите комментарии на английском, если только вы не уверены на 120%, что ваш код никогда не будут читать люди, не знающие вашего родного языка.

Блоки комментариев

Блок комментариев обычно объясняет код (весь, или только некоторую часть), идущий после блока, и должен иметь тот же отступ, что и сам код. Каждая строчка такого блока должна начинаться с символа # и одного пробела после него (если только сам текст комментария не имеет отступа).

Абзацы внутри блока комментариев разделяются строкой, состоящей из одного символа #.

«Встрочные» комментарии

Старайтесь реже использовать подобные комментарии.

Такой комментарий находится в той же строке, что и инструкция. «Встрочные» комментарии должны отделяться по крайней мере двумя пробелами от инструкции. Они должны начинаться с символа # и одного пробела.

Комментарии в строке с кодом не нужны и только отвлекают от чтения, если они объясняют очевидное. Не пишите вот так:

x = x + 1                 # Increment x

Впрочем, такие комментарии иногда полезны:

x = x + 1                 # Компенсация границы

Расстановка сил

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

Даже когда консенсус в первом приближении достигнут, стандартные процессы не в силах заставить кого-либо что-либо реализовать, даже участников рабочей группы! Добровольные стандарты (преобладающие в компьютерном мире) — не предписания. Разработчики реализаций внедряют стандарты, поскольку клиенты требуют интероперабельности для защиты от рыночного произвола крупных игроков.

Это так важно, что можно повторять и повторять: факт появления чего-либо в веб-стандарте никого не обязывает к реализации, даже тех, кто реализовал предыдущую версию. Это вытекает из фундаментальных взаимоотношений между браузерами, разработчиками и пользователями

Разработчики браузеров контролируют свои бинарники до бита, потому что необходимость угодить конечным пользователям для них превыше всего. Никак иначе безопасных, заслуживающих доверия браузеров не сделать. , что window.open() создает новый контекст просмотра, но на практике браузеры блокируют попапы. .

Предотвращать злоупотребление — это одно, но, может быть, с новыми функциями всё иначе? Браузер может добавить десятки проприетарных возможностей, но если разработчики не примут их на вооружение, пользователям от них не будет толку. Частый критерий пригодности новинки для разработчиков — ее интероперабельность, под которой подразумевается «охвачу ли я всех нужных мне пользователей, если моему приложению потребуется эта функция?». Это значит, что разработчики часто отказываются использовать новинки, если те еще не появились во всех важных для них движках.

И наоборот, неподдерживающие браузеры видят в малоиспользуемых функциях скорее затраты, а не потенциальную выгоду. Это особенно так, когда альтернатива — улучшить производительность существующей функции. Для разработчиков браузера верный способ заслужить похвалу — улучшить работу существующего контента, и тем самым напрямую помочь пользователям, выбравшим ваш браузер. Другими словами, менеджеры интуитивно предпочитают заведомо беспроигрышные улучшения своих продуктов, а не умозрительные нововведения, от которых конкуренты могут выиграть не меньше (а то и больше). Просветленные мудрецы, думающие обо всей экосистеме — редкость, хотя несколько их недавно осчастливили веб своим присутствием.

Наконец, хотя это и немаловажно, дефицит солидарности становится угрозой для всей отрасли. Разработчики браузеров не зарабатывают на жизнь созданием сайтов, так что внутренних стимулов улучшать ситуацию у них тоже нет

Отсюда тянутся корни многих эпических битв в веб-стандартах за продвижение «очевидно» недостающей функции.

Этот статус-кво трудно переломить. У каждого игрока есть весомые (если пустить их в ход) причины не реализовывать новинки. Каждый из них может стопорить прогресс, пока не окажется последним (или предпоследним, если игроков в экосистеме 4 и больше), кто ее еще не реализовал. До этого момента не видно и жалоб разработчиков, и очень легко нагнетать страхи и сомнения по поводу еще не прижившейся новинки, при этом не собираясь ее реализовывать (этакое «тихое вето»). И более того, зарубать идеи, удачность которых не очевидна и которым не хватает движущей силы — одна из задач ОРС и формальных рабочих групп.

На вид эта ситуация, пожалуй, безнадежна. Медленный прогресс многих важных, но слишком уж затянувшихся улучшений (отзывчивые изображения, CSS-переменные, ES6-классы, промисы и , веб-компоненты, потоки и т.д.) поневоле заставит любого вменяемого наблюдателя задуматься. Стоит ли и пытаться?

Огромное положительное влияние, меняющее всю веб-платформу, вселяет в меня веру, что ответ будет «Да». Во второй части я поделюсь подробностями о том, как команда Chrome научилась по-новому думать о разработке функциональности и стандартов и как это поможет ускорить прогресс всему веб-сообществу.

Сердечные благодарности Эндрю Беттсу, Брюсу Лоусону и Марико Косаке  за вычитку черновиков и исправление многих из моих бесчисленных ошибок.

Приоритизация устройств

Качество обслуживания (QoS) — недооцененная функция, на которую стоит обратить внимание, особенно если у вас занятая семья, в которой несколько человек пользуются Интернетом. Представьте, что видеовызов на работу прерывается или прерывается из-за того, что ваш ребенок начинает транслировать Netflix

Возможно, фильм, который вы смотрите, начинает буферизоваться, когда ваш сосед по комнате начинает загружать обновление игры.

С помощью QoS вы можете расставлять приоритеты устройств, а иногда и служб или действий. Вы можете указать, что ваш рабочий компьютер является приоритетным устройством, например, обеспечив ему максимальную пропускную способность, чтобы снизить риск заикания вызовов. Некоторые маршрутизаторы позволяют вам расставлять приоритеты в таких действиях, как игры, чтобы свести к минимуму задержку и обеспечить максимально плавное взаимодействие.

Виды документации

Стандарты организации (предприятия) – обычно это большие документы, описывающие важные виды деятельности, крупные процессы. Они являются основой документации системы качества. В идеале, вся собранная в них информация должна полностью описать, как работает организация.

Примеры таких стандартов – стандарт по претензионной работе, стандарт «производство», стандарт по управлению поставками, стандарт по складской деятельности и т.п.

Обратите внимание, что управление качеством сфокусировано на процессах, а не на подразделениях, поэтому стандарт обычно описывает процесс, в котором могут взаимодействовать несколько подразделений. Регламенты – документы, описывающие конкретный процесс

Обычно они меньшего размера, чем стандарты, и узко сфокусированы на процессе. Исторически сложилось так, что регламент был привязан к производству, поэтому они и называются часто «технологическими регламентами», «банковскими регламентами» и т.п

Регламенты – документы, описывающие конкретный процесс. Обычно они меньшего размера, чем стандарты, и узко сфокусированы на процессе. Исторически сложилось так, что регламент был привязан к производству, поэтому они и называются часто «технологическими регламентами», «банковскими регламентами» и т.п.

Часто происходит путаница и однотипные документы в одних организациях именуются стандартами, в других регламентами. Я не вижу особого смысла в установлении четких критериев, как называть тот или иной документ. Поэтому, для простоты, большой документ (больше процессов) называю стандартом, документ поменьше размером и по своей природе привязанный к производству – регламентом.

Инструкции – обычно это документ меньшего размера, чем стандарт / регламент. Инструкция описывает конкретную операцию (маленький процесс).

Существуют несколько типов инструкций

  • должностные, описывающие ответственность, обязанности и права сотрудника
  • по эксплуатации оборудования, описывающие как использовать единицу оборудования (прибор)
  • рабочие/технологические, описывающие как выполнять конкретную операцию

Почти все предыдущие формы документов описывают процессы. Существуют другие виды документов организации, которые не фокусируются на процессах.

Положения о подразделениях – документы, похожие на должностные инструкции, но описывающие права, обязанности и взаимодействие подразделений. Задача такого документа – четко разъяснить читающему, какие процессы находятся в зоне ответственности подразделения, какими правами подразделение обладает и как взаимодействует с другими подразделениями.

Записи (журналы, отчеты, протоколы, рабочие тетради) – носители информации, документы, в которых хранится информация об различных операциях в организации.

Основное отличие записей от стандартов, инструкций и регламентов – записи описывают конкретные результаты деятельности, в то время как инструкции, регламенты, стандарты описывают, как должна выполняться деятельность.

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

Все описанные выше документы представляют собой элементы системы документации.

Как и любая другая система, система документации требует инструкцию по применению. Такой документ обычно называется руководство по качеству. В нем коротко описываются основные процессы документации и документы, в которых содержится более подробное описание системы процессов в организации.

Теория стандартов

На практике всё работает совсем не так, да и не должно так работать  проектирование функциональности. Наоборот, новинки и модификации поступают в организации по разработке стандартов («ОРС») от разработчиков и создателей браузеров в виде продуманных предложений

Важно отделять проектирование от создания стандарта. Проектирование — процесс попыток решить проблему с помощью новой функциональности

Стандартизация — процесс документирования консенсуса.

Процесс разработки функциональности — это увлекательное исследование без плана и системы, и начинается оно там, где есть доверие и надежда. Для него нужно, чтобы те, у кого проблемы (веб-разработчики), и те, кто может их решить (разработчики браузеров), обсуждали всё больше и больше вопросов. Глубокое изучение пространства возможных решений — отбрасывая по пути негодные идеи десятками — это главное. Добиться согласия насчет постановки задачи — уже немалый труд. Формальные процессы стандартизации этим не занимаются.

Из-за скучных причин типа прав интеллектуальной собственности, антимонопольных законов и особенностей управления в ОРС, официальные рабочие группы (напр. в W3C) .  Некоторым ОРС нужны «признаки жизни» от потенциальных реализаторов (), чтобы продвинуться дальше в своих рабочих процессах. У IETF для этого есть знаменитая формулировка «работающий код и приблизительный консенсус». Если делать всё правильно, то сначала надо предложить ясную постановка задачи и потенциальные решения, по ним должно быть хотя бы частичное согласие, и только ближе к концу процесса проектирования в дело вступают формальные стандарты.

Короче говоря: ОРС и их формальные рабочие группы на ранних стадиях проектирования функциональности ни при чем.

Они не могут сказать, решает ли  предложенный вариант важную проблему, и хорошо ли он ее решает. Задача ОРС — утверждать форму спецификации и консенсус по поводу отдельных слов в ее тексте. Рабочие группы и ОРС не оценивают, подходит ли функция для своей задачи или нет.

Если проект прошел утверждение в комиссии, это почти ничего не говорит о его качестве. Многие достойнейшие и рассудительнейшие люди как один впадают в ярость, когда от этих процессов ждут предсказания будущего, а не документирования консенсуса. Без разработчиков, которые могут попробовать функцию в деле и дать обратную связь, рабочие группы быстро скатываются в неактуальность. Ну а кто укажет им, что они неправы? Там же работают эксперты, в конце концов!

Лучше всего воспринимать ОРС как усилители: они получают сырой входной сигнал, фильтруют его, чтобы он не разнес колонки и барабанные перепонки, если включить полную громкость, а затем с помощью своих процессов передают его. Откуда сигнал берется, этим процессам неизвестно.

Могу заверить, что такие истории не затерялись, но притягательного в них мало. Есть причины, по которым участники не рассказывают о них — надоевшие темы, фантомные боли от проигранных в шаге от победы споров и профессиональные обязательства перед другой стороной. Смелые документалисты иногда пытаются, но всё-таки драмы про стандарты — не самая захватывающая разновидность сюжета.

Когда о прошлом не рассказывают и опытом неудач не делятся, новичкам становится сложнее сориентироваться. Идее, будто «прогресс исходит из организаций по стандартам», противопоставить толком нечего, и ни одна ОРС не собирается отказывать новым членам. Некому сказать разработчикам, чтобы они не искали у ОРС готовых ответов. Царит путаница.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: