Технология Wiki
Технология Wiki
Чтобы создать веб-сайт (хранилище информации) с легко обновляемыми страницами, воспользуйтесь технологией Wiki. Строго говоря, Wiki — это концепция, а не конкретный программный пакет. Есть много программных пакетов, предлагающих пользователю функциональность Wiki. Есть и оригинальное приложение Wiki (в переводе с гавайского — «быстрый»), но также есть TWiki, KwikiKwiki, PHPWiki и т. д. Просто замечательно, что многие разработчики создают программные системы, которыми вы можете пользоваться.
? Я не применял технологию Wiki из-за глупого названия. Я думал: «Ни за что не буду пользоваться системой с таким дурацким названием, даже если она превращает свинец в золото». Я даже не пытался выяснить, что это такое. Три года спустя, начав работать с Wiki-приложением, которое установил другой сотрудник, я обнаружил, что моя производительность заметно повысилась. Как же я пожалел, что так долго игнорировал Wiki!
Так что же такое Wiki? Это веб-сайт, на котором любой посетитель может редактировать любую страницу, а установка ссылок на страницы чрезвычайно проста.
Не безумие ли это? В смысле, если любой посетитель может редактировать любую страницу, как быть с вандализмом? Кто-то может зайти на него, все удалить, занести в систему неверную информацию и т. д. Это будет катастрофа!
Не беспокойтесь, есть функциональные возможности, полностью исключающие подобные проблемы. Давайте сначала рассмотрим положительные стороны:
• Легко добавлять новые страницы. Любой посетитель может добавлять новые страницы. Если младший системный администратор заключит контракт с новым производителем, он легко добавит страницу, касающуюся этого производителя, разместит на ней первичную контактную информацию и т. д.
• Wiki-сайты централизованны и доступны. Любой пользователь может получить доступ к ним с помощью веб-броузера (если все его элементы управления на месте). На клиентской стороне не нужно никакого специального программного обеспечения.
• Каждый может внести свой вклад. Любой посетитель сайта может отредактировать любую страницу, если заметит опечатку или владеет дополнительной информацией. Документ может появиться на свет в виде небольшого маркированного списка, потом кто-нибудь добавит в него новые пункты, а затем кто-то еще превратит документ в полноценное описание процедуры.
• Wiki-страницы отражают текущую ситуацию. Когда добавляются новые страницы, снимается одна из самых больших проблем, связанных с документированием, состоящая в том, что документы нередко устаревают до момента опубликования. Wiki — это набор страниц, которые может немедленно обновить тот, кто обнаружил устаревшую информацию.
Проблема с использованием хранилищ документов обычно заключается в наличии препятствий к использованию. Пользователи вынуждены запрашивать учетную запись, разрешение на доступ и т. д.
Wiki-нотация и ссылки на страницы
Wiki ослабляет все эти препятствия. Вам не нужно проходить специальный курс обучения этой технологии, знание HTML тоже не требуется. Вам не нужна учетная запись для чтения документов. Если у вас нет учетной записи, а вы хотите отредактировать документ, то тут же получаете возможность создать ее. Учетные записи создаются с таким уровнем доступа по умолчанию, что пользователи могут выполнять большинство базовых операций. Самое приятное, что, хотя пользователи могут писать на чистом HTML, есть так называемая Wiki-нотация, позволяющая им вводить простой текст, который Wiki затем отформатирует. Например, Wiki понимает, что слова, окруженные звездочками, символами подчеркивания или иными, должны быть как-то отформатированы. Если вы введете *такой текст*, то на экране появится такой текст. А если -такой текст-, то на экране появится такой текст. Если вы создадите список, каждая строчка которого начинается со звездочки, Wiki преобразует эти строчки в маркированный HTML-список с тегами <ul>. Большинство людей быстро осваивает эту кодировку, поскольку уже пользуется ею в электронной почте, а если кто не пользуется, то справочной информации по форматированию в Сети предостаточно.
Создание ссылок на Wiki тоже не составляет труда. Если вставить во вводимый текст URL-адрес, Wiki превратит его в ссылку. Установка ссылок на другие Wiki-страницы проходит еще забавнее. У Wiki-страниц есть имена, имеющие специальный формат WikiWord. Программистам, работающим на Perl, он известен как CamelCase или Studly-Caps. Имя представляет собой слово, содержащее буквы как в верхнем, так и в нижнем регистре. Например, страницу можно назвать СписокПолезныхВещей Каждый раз, когда вы используете в тексте это имя, Wiki превращает его в ссылку на страницу, даже если страницы с таким именем нет. В последнем случае щелчок по ссылке позволит пользователю создать страницу с этим именем. Иными словами, чтобы создать новую страницу, создайте ссылку, щелкните по ней и приступайте к редактированию.
Размещать документы на Wiki-сайте тоже очень просто. Документ присоединяется к странице. Таким образом, любая страница может стать контейнером для документов в формате PDF, Word и др. Однажды мне поручили организовать хранение документов Microsoft Word для сотрудников, не разбирающихся в технике. Я создал Wiki-страницу, назвал ее ТекущийПроект и показал им, как присоединять к ней документы. Wiki автоматически выводит таблицу присоединенных файлов. Может, кто и не осилит Wiki-нотацию, но уж присоединить документ к странице все в состоянии. Возникает разделение труда: специалисты создают Wiki-страницы и структуру хранилища, а те, кто далек от техники, присоединяют страницы. По мере привыкания к технологии Wiki эти пользователи смогут освоить и более сложные задачи.
Предотвращение Wiki-вандализма
Для Wiki-страниц есть комплекс социальных и технических средств, гарантирующий, что вандалы и злоумышленники не разрушат хранилище информации.
Во-первых, есть простой общественный контроль: каждое изменение регистрируется в журнале с указанием автора изменений. Удивительно эффективный метод! Полагаю, факт регистрации автора на 90 % удерживает пользователей от внесения безответственных исправлений. Это тем более справедливо в корпоративных условиях.
Есть и технические средства борьбы с вандализмом. Все Wiki-страницы хранятся в системах, подобных RCS, CVS, Subversion или Microsoft SourceSafe. Это обеспечивает практически бесконечные возможности отката. Вы без труда отмените исправления или сравните две версии страницы для контроля изменений. Когда последствия вандализма легко устранимы, сам акт нередко теряет привлекательность в глазах хулигана. Если бы аэрозольная краска смывалась дождем, не было бы элемента азарта в том, чтобы написать на эстакаде «Фрэнсин любит Харви».
В большинстве Wiki-систем есть контроль доступа. Для каждой страницы или группы страниц можно установить, кто может их читать, редактировать или переименовывать. По умолчанию каждый посетитель может отредактировать любую страницу, в чем и заключается «принцип Wiki». Однако вы скорее предпочтете, чтобы главная страница, меню и некоторые другие страницы были доступны для редактирования ограниченному кругу пользователей.
Пуристы Wiki заявляют, что подобный контроль доступа не нужен, потому что в том-то и прелесть Wiki-культуры, что как вандалу несложно испортить страницу, так и кому-то еще несложно тут же восстановить ее. Это правда, но я лучше сплю ночью, зная, что страницу с номером телефона моей службы технической поддержки вправе отредактировать только один человек — я сам. В Wiki-культуре фраза «Wiki с ориентацией на бизнес» равносильна фразе «Wiki с контролем доступа».
Завершающим ударом против вандализма в Wiki является уведомление по электронной почте. Большинство Wiki-систем могут отправлять уведомления по электронной почте при любом изменении страницы. Обычно такое уведомление содержит информацию о том, что было изменено (HTML-отчет о различиях), и вы можете быстро определить, было ли изменение благотворным или вредоносным. Некоторые Wiki-системы по умолчанию извещают веб-мастера о любом изменении. Пожалуй, это превышение необходимой самообороны.
? Хотя стремление задокументировать абсолютно все можно понять, ни в коем случае не указывайте пароли на веб-странице. Не стоит рисковать, даже если она защищена паролем и находится на безопасном сервере. Например, однажды я обнаружил сайт, который его владельцы считали безопасным, потому что пароли хранились на странице, защищенной паролем и доступной только через SSL-соединение. Однако пользователи с учетными записями shell-account могли войти в систему и просматривать файлы напрямую. Поскольку это был основной сервер подразделения, такие учетные записи были у всех.
Система Wiki, с которой я больше всего работал, называется TWiki (http://www.twiki.org). Ее основным достоинством является управление доступом на добавление. Есть и другие системы — от чрезвычайно простых (одна из них написана на языке awk) до полнофункциональных. Некоторые крупные системы включают в себя технологию Wiki как одну из функциональных возможностей, другие целиком построены на концепции Wiki, например изумительная всеобъемлющая энциклопедия с открытым доступом — Wikipedia (http://www.wikipedia.org).