Викия

ru-Викия

коммент.2

Викия изнутри: работа с программными ошибками

Обнаружено использование расширения AdBlock.


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

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

На Викия есть множество различных инструментов и функций: редакторы страниц, чат, форум, фотогалереи, страницы категорий, страницы обсуждения, стены обсуждения, комментарии к статьям, личные блоги и т.д. Всё сразу и не перечислишь. Для того, чтобы это всё работало, нужно очень много страниц кодов на PHP, CSS, JavaScript, AJAX, HTML и MySQL, которые не должны мешать друг другу. Осуществить это - трудоёмкая и не простая задача.

Созданием, редактированием и обслуживанием страниц с кодом занимаются инженеры Викия. Наверное, некоторые участнике не совсем понимают, насколько сложны эти страницы. Представьте себе, что достаточно забыть добавить в код одну запятую или точку с запятой, чтобы он полностью перестал работать, и приходится потратить время на поиски этой крохотной проблемы. Если же код наоборот работает отлично, то он всё равно не застрахован от программных ошибок-багов, так как участники могут задать такие условия для его выполнения, о которых инженеры не подумали. Например, недавно участники поставили тег <tabber> внутрь <tabview>, из-за чего Tabber перестал работать.

Система
QualityBlitzBlogPost-1.png

Страница из программы по сбору отчётов об ошибках.

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

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

Внутри системы

Проиллюстрировать работу с программными ошибками мы хотим на конкретном реальном примере. Итак, один из участников не так давно обратился к инженерам через страницу Служебная:Contact о том, что меню вики при добавлении текста "Places" выдаёт - "Places on this wiki". Сотрудник Викия Берт связался с участником, подтвердил ошибку, сделал скриншот и отправил сообщение-билет инженеру с ником Kirkburn. Kirkburn определил, что ошибка произошла из-за того, что на Викия есть системное сообщение MediaWiki:Places и меню вики автоматически конвертирует название страницы MediaWiki в её содержимое.

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

Один из инженеров по имени Себастьян получил это задание и внёс необходимые изменения в код. Каждый свой шаг он проверял в особой тестовой среде под названием "devbox". Затем, убедившись, что код работает правильно, он поместил исправленный код в наше открытое хранилище Исходного кода Викия. Затем другой инженер запустил бота, который исправил все текущие сообщения MediaWiki в меню всех викий на обычные ссылки. И наконец сообщение-билет вернулось к Берту, который подтвердил, что ошибка исправлена и закрыл сообщение.

Этот "взгляд изнутри" показывает, сколько действий совершается, чтобы разобраться в ошибке и её причинах и найти пути для её исправления. Теперь умножьте все это на 154, вложите в две недели рабочего времени и получите по-настоящему жаркий январь для инженеров и сотрудников Викия.


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

Викия-сеть

Случайная вики