Как правильно сообщать программисту об ошибке в модуле?

09.10.2019 13:37 (226 просмотров)

Ошибки в программировании неизбежны.

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

В данном процессе всегда участвуют 2 стороны.

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

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

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

  • адрес сайта и страница, где эту ошибку можно увидеть
  • текст ошибки
  • FTP доступ для проверки конфликта с другим модулем

 

Несколько рекомендаций, как эффективно сообщать об ошибке

 

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

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

Многие думают так: "Разработчик модуля в теме, зачем париться самому? Программист ведь за 10-15 минут разберется".

Но спросите себя, а сколько времени лично Вы занимаетесь благотворительностью? Вы бы стали регулярно тратить половину своего рабочего времени на безоплатную помощь другим людям?

При чем тут благотворительность?

Да притом, что если хотя бы 10 человек в день обращается с вопросами и проблемами, которые не касаются непосредственном модуля, и на их решение уходит 15 минут, то получается 150 минут в день тратится на благотворительность. А это 2,5 часов времени. А если обращается 20 человек в день, то это 5 часов времени.

Тем не менее, я приложил усилия и подготовил список решений для типичных ошибок, которые меня по большому счету даже не касаются - https://opencart-guide.com/administration/extensions/error-on-install-extensions.html. Проявите и Вы немного усердия для своего магазина и решите такую проблему самостоятельно. Или же наймите того, кто Вам ее решит.

 

2. Ошибка чаще всего имеет конкретное описание

Обычно, когда в модуле OpenCart (как, в принципе, в любом приложении на PHP) возникает ошибка, то на странице появляется кричащая надпись: "Fatal error", "Notice" и тому подобное.

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

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

 

3. Ошибка имеет постоянный адрес

Когда Вы сообщаете об ошибке, необходимо дать ссылку на конкретную страницу, где эту ошибку можно увидеть.

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

 

4. Ошибку нужно иметь возможность лицезреть — снимки экрана Вам в помощь!

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

Снимки экранов всех настроек модуля также должны прилагаться.

 

5. Снимки экранов должны охватывать всю страницу!

То есть, должен быть виден контекст того, что происходит на странице и желательно строка запроса с адресом, чтобы было понятно, на какой странице она происходит. Когда на снимке виден только 1 блок страницы (который может встречаться в 10 разных местах), такая информация не особо полезна. А гадание на кофейной гуще, как мы уже знаем, нужных ответов нам не даст.

 

6. Исчезающие ошибки

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

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

 

7. После не значит в следствие

Иногда, к ошибке приводит совсем другой модуль или изменения исходного кода файлов OpenCart. Просто она начала проявляется только тогда, когда обновили кеш модификаторов во время установки последнего модуля. И тогда, по мнению пользователя, во всем виноват именно последний модуль. А это не всегда так. Хотя, безусловно, если 20 минут назад устанавливался еще 1 модуль и кеш модификаторов тоже обновлялся и все работало, то вероятность, что после таки значит вследствие значительно увеличивается :)

 

8. Доступы прилагаются

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

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

Еще один важный нюансик: перед оптравкой доступов к админке и к ФТП обязательно проверьте:

  • С этим логином и паролем дейтсвительно ли можно войти в админку? Или, может быть, у пользователя статус Отключен?
  • Попробуйте сами соединиться по ФТП. Действительно ли соединение успешно? Потому что если Вы пишите настырные письма, и при этом не даете нормальных доступов, то это, извините меня за сильное словцо, немного неадекватно.

 

9. Немного терпения

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

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

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

 

10. Рамки приличия и деловой стиль общения

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

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

Во-первых, письмо должно быть целостным и грамотным. То есть, письмо или сообщение должно содержать ясное изложение проблемы. Стороннему человек должно быть понятно, что Вы хотели сказать. Для теста можете отправить письмо своему близкому другу: если он поймет, что именно случилось и что Вы хотите получить, значит письмо составлено грамотно. А если он, даже симпатизируя Вам, ничего не поймет, то и я не пойму. Приложите свои усилия, чтобы вспомнить элементарную грамматику и составить полные предложения, где четко прослеживается ключевая мысль и есть все члены предложения.

И не забудьте подкрепите письмо (сообщение) фактологическими данными, о которых было сказано выше (адрес ошибки, доступы к админке и к ФТП, после каких действий ошибка была обнаружена).

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

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

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