Должен ли я выпустить исходный код, чтобы исправить ошибку

15

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

Я полностью понимаю просьбу. Это действительно и понятно. Тем не менее, я сомневаюсь, если я должен. Очевидно, я даю ему / ей ключи от королевства, и у меня не будет никакой возможности обратиться за помощью, если он / она сделает что-то злое.

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

Я хочу исправить мою ошибку, но нет гарантии, что этот человек сможет ее исправить.

Должен ли я выпустить весь исходный код и надеяться на лучшее? Или сохранить это и попытаться выяснить это самостоятельно?

Что бы вы сделали?

webdad3
источник
3
Сложный вопрос. Хорошо спросил.
yfeldblum

Ответы:

44

Постройте SSCCE (короткий, самостоятельный, правильный пример). Если ошибка исчезает, когда вы удаляете некоторые дополнительные детали для SSCCE, то вы нашли ее.

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

JZD
источник
1
Для тех, кто не знаком с «SSCCE»: acronymfinder.com/SSCCE.html (игнорируйте первое определение «Поверхностная плоскоклеточная карцинома пищевода»). Ага, нашел лучшую ссылку: sscce.org
FrustratedWithFormsDesigner
Что такое SSCCE? РЕДАКТИРОВАТЬ: Просто вставьте его в свой ответ. :)
jprete
7
Создание наименьшего возможного репродукции полезно по многим причинам. Вы не только не отдает свой код, но и можете обнаружить ошибку в процессе разработки примера.
Стив
3
И SSCCE удваивается как регрессионный тест, гарантируя, что вы никогда не получите эту ошибку снова. Кроме того, часто вы можете создать правило для инструмента статического анализа из SSCCE, таким образом также удостоверившись, что вы не только никогда не получите эту ошибку, но и никогда больше не получите подобную ошибку.
Йорг Миттаг
9

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

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

Если вы не можете опубликовать достаточно разумно, чтобы понять ошибку, то вы должны попытаться воспроизвести ошибку в как можно меньшем куске кода и опубликовать ее. ( РЕДАКТИРОВАТЬ: концепция «Краткий автономный скомпилируемый пример», упомянутая jzd.) Не публикуйте большие объемы исходного кода и не просто передавайте большие куски вашего приложения всем незнакомцам в Интернете.

jprete
источник
2

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

Используйте свое лучшее суждение!

Бернард
источник
1

Если это код вашего личного проекта, а не коммерческий, у вас нет проблем с предоставлением исходного кода, пока вы поддерживаете его копию (лучше в некоторой системе контроля версий исходного кода).

Dhanunjai
источник
0

Будь дискретным

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

Я был написан за публикацию сценария. Бывает.

Почта дома или в кафе. Пост дискретно. Вы должны иметь возможность делать заметки и вносить их без проблем.

Примечание: я немного зол на то, как я был наивен. Быть умным!

расцеплени
источник
Я думаю, что слово, которое вы ищете, «сдержанный», возможно, вы потратили слишком много времени на программирование! :)
Sedate Alien