버그를 수정하기 위해 소스 코드를 공개해야합니까


15

애플리케이션에 빌드중인 버그가 있습니다. 나는 SO에 대한 질문을했고 사용자 중 한 명이 나를 볼 수 있도록 모든 코드를 게시하거나 보내달라고 요청했습니다.

요청을 완전히 이해합니다. 유효하고 이해할 수 있습니다. 그러나 나는 내가 해야하는지 의심하고 있습니다. 분명히, 나는 그 / 그녀에게 왕국의 열쇠를 주며 악의적 인 일을한다면 아무런 의지도 갖지 않을 것입니다.

또한 사용자의 도움을 제공하는 SO에 대한 무례 함을 의미한다고 덧붙이고 싶습니다. 나는 단지 우려를 표명하고있다.

버그를 수정하고 싶지만이 사람이 문제를 해결할 수 있다는 보장은 없습니다.

전체 소스 코드를 공개하고 최선을 다해야합니까? 아니면 그것을 유지하고 내 스스로 알아 내려고 노력합니까?

당신은 무엇을 하시겠습니까?


3
어려운 질문. 잘 부탁드립니다.
yfeldblum

답변:


44

SSCCE를 작성하십시오 (짧고 독립적이며 올바른 예). SSCCE에 대한 추가 정보를 제거 할 때 버그가 사라지면 발견 한 것입니다.

그렇지 않으면 공유하거나 염려하는 코드를 제거하는 SSCCE를 제공하거나 게시 할 수 있습니다.


1
"SSCCE"에 익숙하지 않은 사람들 : acronymfinder.com/SSCCE.html ( "식도의 표면 편평 상피 세포 암종"의 첫 번째 정의는 무시). Aha, 더 나은 링크를 찾았습니다 : sscce.org
FrustratedWithFormsDesigner

SSCCE 란 무엇입니까? 편집 : 그냥 당신의 대답에 충실하십시오. :)
jprete

7
가능한 가장 작은 재현을 만드는 것은 여러 가지 이유로 훌륭합니다. 코드를 제공하지 않을뿐만 아니라 예제를 개발하는 과정에서 버그를 찾을 수도 있습니다.
Steve

3
그리고 SSCCE는 회귀 테스트로 두 배가되므로 다시는 버그가 발생하지 않습니다. 또한 종종 SSCCE에서 정적 분석 도구에 대한 규칙을 작성할 수 있으므로 해당 버그를 다시는 얻을 수있을뿐만 아니라 유사한 버그도 다시 는 얻을 수 없습니다 .
Jörg W Mittag

9

잠재적 인 경쟁자 소스 코드를 전달하지 않은 다른 누군가를 위해 일하는 경우 특히 그렇게하지 않을 것입니다.

그러나 자신의 코드 인 경우에도 모든 사람이 읽고 사용할 수있는 질문과 답변을 제공하는 스택 오버플로의 요점을 놓칩니다. 따라서 귀하는 귀하의 질문을하기에 충분히 게시하고, 사람들은 게시 된대로 질문에 답변하며, 미래 독자들은 잘 캡슐화 된 질문과 답변을받습니다.

버그를 이해하기에 충분히 합리적으로 게시 할 수 없다면 가능한 한 작은 코드 조각으로 버그를 재현하여 게시해야합니다. ( 편집 : jzd가 언급 한 짧은 자체 포함 컴파일 가능한 예제 개념) 많은 양의 소스 코드를 게시하지 말고 인터넷의 전체 낯선 사람에게 많은 양의 응용 프로그램을 전달하지 마십시오.


2

오픈 소스 프로젝트의 일부로 릴리스 할 계획이라면 너무 걱정하지 않아도됩니다. 그렇지 않은 경우,이 코드가 귀하가 근무하는 곳에서 작업하는 코드이고 다른 사람이 소유 한 독점 아이디어가 포함 된 경우 다른 사람에게 공개하지 마십시오. 많은 문제가 생길 수 있습니다.

최선의 판단을하십시오!


1

그것이 개인 프로젝트의 코드이고 상업적인 코드가 아닌 경우, 소스를 복사하는 한 소스를 제공하는 데 문제가 없습니다 (일부 소스 코드 버전 제어 시스템에서는 더 낫습니다).


0

이산 적이다

결백합니다. 코드를 게시하고 SO 커뮤니티의 도움을 받으려고합니다. 문제는 사람들이 항상보고 있다는 것입니다.

스크립트를 게시하기 위해 작성했습니다. 일어난다.

집이나 카페에 게시하십시오. 신중하게 게시하십시오. 문제를 일으키지 않고 메모를하고 가져올 수 있어야합니다.

참고 : 나는 얼마나 순진한 지 약간 화가났습니다. 똑똑하세요!


나는 당신이 찾고있는 단어가 "조심"이라고 생각합니다. 아마도 프로그래밍에 너무 많은 시간을 보냈을 것입니다! :)
Sedate Alien
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.