Devo rilasciare il codice sorgente per correggere l'errore


15

Ho un bug nella mia applicazione che sto creando. Ho fatto una domanda su SO e uno degli utenti mi ha chiesto di pubblicare o inviare tutto il codice a lui in modo che potesse guardarlo.

Capisco perfettamente la richiesta. È valido e comprensibile. Tuttavia, ho dei dubbi su se dovrei. Ovviamente, gli do le chiavi del regno e non avrò alcun ricorso se farebbe qualcosa di malvagio.

Voglio anche aggiungere che intendo non mancare di rispetto all'utente su SO che ha offerto il loro aiuto. Sto solo trasmettendo una preoccupazione.

Voglio che il mio bug sia corretto, ma non esiste alcuna garanzia che questa persona sia in grado di risolverlo.

Devo rilasciare l'intero codice sorgente e sperare per il meglio? O tenerlo e provare a capirlo da solo?

Cosa faresti?


3
Domanda difficile. Ben chiesto.
yfeldblum,

Risposte:


44

Costruisci un SSCCE (breve, autonomo, esempio corretto). Se il bug scompare quando si rimuovono alcuni dettagli aggiuntivi per SSCCE, è stato trovato.

Altrimenti avrai un SSCCE che dai o pubblichi che elimina idealmente il codice di cui ti preoccupi per la condivisione.


1
Per coloro che non hanno familiarità con "SSCCE": acronymfinder.com/SSCCE.html (ignorare la prima definizione di "Carcinoma a cellule squamose superficiali dell'esofago"). Ah, ho
FrustratedWithFormsDesigner

Che cos'è un SSCCE? EDIT: basta attaccarlo nella tua risposta. :)
giovedì

7
Costruire il più piccolo repro possibile è ottimo per molte ragioni, non solo non stai dando via il tuo codice ma potresti trovare il bug nel processo di sviluppo di un esempio.
Steve,

3
E SSCCE funge anche da test di regressione, assicurandosi di non ricevere più quel bug. Inoltre, spesso puoi creare una regola per uno strumento di analisi statica da SSCCE, assicurandoti così non solo di ottenere quel bug mai più, ma anche di non avere mai più un bug simile .
Jörg W Mittag,

9

Non lo farei, specialmente se stai lavorando per qualcun altro, che probabilmente non apprezzerebbe la tua consegna del codice sorgente di potenziali concorrenti.

Ma anche se è il tuo codice, manca il punto di Stack Overflow, ovvero avere un indice di domande e risposte che tutti possano leggere e utilizzare. Quindi pubblichi abbastanza per porre la tua domanda, le persone rispondono alla domanda come pubblicata e i futuri lettori hanno una domanda ben incapsulata e una risposta di fronte a loro.

Se non puoi ragionevolmente pubblicare abbastanza per capire il bug, allora dovresti provare a riprodurre il bug nel più piccolo pezzo di codice che puoi e pubblicarlo. ( EDIT: il breve concetto autocompilabile di esempio menzionato da jzd.) Non pubblicare grandi quantità di codice sorgente e non semplicemente consegnare grossi blocchi dell'applicazione a sconosciuti totali su Internet.


2

Se è il codice che stai pianificando di rilasciare come parte di un progetto open source, non mi preoccuperei troppo. Altrimenti, se questo è un codice su cui lavori nel tuo luogo di lavoro e contiene idee proprietarie che appartengono a qualcun altro, non rilasciarlo a nessuno. Potrebbe metterti nei guai.

Usa il tuo miglior giudizio!


1

Se è il codice del tuo progetto personale e non è commerciale, non hai problemi a fornire il tuo sorgente fintanto che ne mantieni una copia (meglio in alcuni sistemi di controllo della versione del codice sorgente).


0

Sii discreto

È innocente. Vuoi pubblicare un po 'di codice e avere l'aiuto della community SO. Il problema è che le persone guardano sempre.

Sono stato scritto per aver pubblicato una sceneggiatura. Succede.

Posta a casa o in un bar. Posta discretamente. Dovresti essere in grado di prendere alcuni appunti e portarli dentro senza metterti nei guai.

Nota: sono un po 'incazzato per quanto fossi ingenuo. Essere intelligenti!


Penso che la parola che stai cercando sia "discreta", forse hai speso troppo tempo a programmare! :)
Sedate Alien,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.