Ага, гусиным пером и от руки, как писали лучшие авторы: Пушкин, Толстой, Достоевский. Почему бы не использовать современные возможности для достижения выразительности. Жирный шрифт не только упрощает чтение по горизонтали, но и заостряет внимание на важных с точки зрения деталях, которые могут быть упущены или посчитаны незначительными чтецом. В разговоре мы используем интонацию, паузы, жесты, почему стоит от этого отказаться при печати статей?
Проблема не в том, что вы используете выделение — просто не следует им злоупотреблять. Также следует разнообразить его — кроме полужирного начертания есть и курсивное.
Если уж серьезно к делу подходить, то каждое начертание для своей цели. Например, названия элементов интерфейса всегда выделяются жирным, а примеры текстовых сообщений — жирным курсивом.
Интересно, будет ли актуальна тема про использование ГОСТов в IT-среде (и вообще разбором, какой ГОСТ для чего) с обзором программ для составления документации?
Я с удовольствием поговорю и о берестяных грамотах, но читатели могут не оценить такой темы на Хабре :)
ГОСТ может и не вчерашний, но действующий. Если вам доведется работать над серьезным проектом в государственной сфере или в другой ответственной сфере (энергетика, транспорт и так далее), от вас скорее всего потребут документацию, соответствующую именно ЕСПД (ГОСТ серии 19). Так что тема ничуть не устарела, хоть ГОСТ и не менялся 30 лет.
Не говоря уж о том, что ГОСТ позволяет очень гибко менять и структуру документов и их оформление в зависимости от задачи, решаемой в данный момент.
Почему не работает? ДАМ предложил разработать российский аналог WoW… Скорее всего, это будет гос.контракт. И там, скорее всего, в требованиях как раз-таки будет пункт про соответствие документации ГОСТ 19-й серии.
Вообще, ГОСТ — не так страшно и «бородато». Попробую в статье про это рассказать :)
П.С. а где 19, там и до 34-й серии недалеко. Хотя отличаются не сильно: 19 — программы, 34 — автоматизированные системы. Думаю, что тут будет ближе даже 34-я серия.
Это все замечательно, если есть кому занимать и кто замотивирован это поддерживать :)
Но, с точки зрения обоснованности тратить время и ресурсы на документацию, планирование и архитектурная проработка должны уменьшать ошибки и проблемы во всем проекте. Но с этой точки зрения прототип конечного результата намного эффективнее.
В результате, на своих проектах, я создавал прототип ( корявый, все в заглушках, но функциональный ) без документации в команде из 2-3 человек, которые полностью владели всеми деталями проекта, и уже после того как по прототипу одобрялось все важное — писалась дока и так далее.
Твой случай как раз из «срезания углов»:
1) геймдизайнер вместо написания документации умеет программировать.
2) команда в 2-3 человека уже существует до запуска проекта в производство.
3) минимальный жизненный цикл (прототип) — экстремально простой и короткий.
В моем случае ни один из этих пунктов не выполнялся.
Поясни пожалуйста, что ты подразумеваешь под «одобрением всего важного»?
Лучше на конкретных примерах, если не сложно.
К сожалению, тезис
«Чем легче найти нужный пункт в документации и изменить его, не затрагивая остальное – тем лучше»
противоположен другому тезису:
«Многократные повторения. (Избегать ссылок по документу)».
Не раз сталкивался с тем, что при внесении очередного минорного изменения становится лень прочёсывать весь документ и копировать правки по всему тексту.
Не смешно и не конструктивно. Если вы так делаете — значит, ваша документация плохо организована.
Вот способы сказать разными словами об одном и том же: «уникальное значение», «не должно повторяться», «используется как первичный ключ», «является потенциальным ключом», «встречается только один раз» и т. д. Перебирать в Ctrl+F все возможные синонимы ключевого слова — это крайне непродуктивно.
А моя документация — это не сад камней, а скорее обломки дома после урагана. Слишком мало ресурсов на нее выделено (все-таки это стартап) и слишком быстро растет энтропия в процессе разработки.
Именно поэтому я и написал эту статью — как бороться с энтропией и что такое красивая документация.
На мой взгляд выход как раз тех правилах, которые я выработал по названиям объектов.
Уже на этапе планирования можно выработать стратегию имен сущностей, пока все имена находятся рядом в одном списке, а не разбросаны по разным документам.
Я специально подчеркнул, что одна и та-же сущность должна иметь постоянное название по русски и по английски. (очень часто путаница возникает при переводе)
Английские имена для кода, вообще не меняются и не склоняются — это одно из требований кода. По ним вполне удобно искать все упоминания в тексте.
Я тоже вот захотел спросить «Как Вам удаётся совмещать требования этих двух пунктов».
Вы хотите сказать, что каждый раз упоминая объект по русскому наименованию, вы рядом упоминаете его по английскому несклоняемому имени? И наверно держите в документе ещё и словарик / алфавитный указатель?
Если объект нагруженный, то его упоминания могут быть во множестве и в огромном количестве разных контекстов. Когда один из контекстов поменялся, прочёсывать все его упоминания даже с фиксированным именем может стать напряжным.
Если честно, даже не думал ни доводить до абсурда, ни даже наезжать на Вас. Просто имею аналогичные представления о качестве текста и соответственно аналогичную проблему. И пока её не решил для себя. Думал, мож Вы что-то придумали или узнали…
Когда становится понятно что объект достаточно нагруженный — ему выделяют оттдельный документ-файл. В этот файл дописываются все ссылки на другие документы-контексты.
Высокая нагруженность одного класса — это явный признак плохой декомпозиции и будущее проблемное место в коде. Обязательно ведутся дополнительные исследования предметной области, чтобы прояснить этот сложным момент.
Никаких особых словариков не ведется. В роли словариков выступают списки классов.
Актуальность связи между классами-документами не отслеживается. Вместо этого выработанные правила/требования применяются при случайной ревизии отдельного документа, чтобы оценить его полноту. Если указанны не все связи — документ определенно не полон.
Хорошая политика именований позволяет сделать навигацию между классами интуитивно понятной.
3 варианта названий одного класса как раз и помогают нащупывать правильную стратегию именований. Это бывает не просто.
Как создать ТЗ для программиста