Stile: lunghezza della linea e avvolgimento di commenti in JavaScript [chiuso]

4

Sto bene con 80 caratteri per riga per riga (anche se alcuni considerano tale limite obsoleto ), ma io sono diviso (nessun gioco di parole) quando si tratta di dividere commenti su più righe , anziché scriverli su una riga (purché sia necessario) e lasciare che gli editori si occupino del wrapping.

Penso che i commenti meritino una discussione separata data la loro natura di testo (piuttosto che di codice), con diverse considerazioni sulla leggibilità e un orientamento di paragrafo (piuttosto che di linea).

Dopo aver letto la discussione su stili di commento , ho ristretto il mio importante aspetto del flusso di sviluppo al seguente:

  • L'uso di un editor che non supporta il wrapping non è un problema o una scusa. Sono il principale manutentore del codice, con contributi molto occasionali tramite GitHub. emacs o vi non saranno usati.
  • Il codice che viene pubblicato su GitHub dovrebbe facilitare la modifica con il loro editor, che supporta i soft wraps:
  • Vadoasceglierelostile,quindinonc'èaderenzaaunostileesistente.

Lunghezzelineaarbitrarie-professionisti

    Lericerche
  • nonfallisconosoloperchédueparoleconsecutivechehaicercatosonostatearbitrariamenteseparateda\n*
  • utilizzodelloschermoeccellentepergliimmobili

Lunghezzelineaarbitrarie-contro

  • conilsoftwrapping,sembrastranoinJSDoc:
  • veramente minore, ma la modalità di diffusione di GitHub è "Unificata" per impostazione predefinita, che visualizza una barra di scorrimento orizzontale . Tuttavia, se fai clic su "Dividi", i softwind diff diffetti di GitHub:
  • Il visualizzatore di GitHub NON supporta il wrapping e la sua larghezza è di 128 caratteri (sebbene alcuni stili utente "GitHub wide" esistano ).

Professionisti a lunghezza di linea limitata:

  • il testo viene letto più velocemente su 50-75 caratteri / linea , ma non stiamo scrivendo un romanzo qui e se leggi i commenti, puoi permetterti di spendere qualche secondo in più
  • visualizzazione migliore negli strumenti legacy che non supportano il wrapping

Contro della lunghezza della linea limitata:

  • l'inserimento di testo all'inizio di un commento mentre è difficile racchiudere ciascuna delle sue linee può facilmente causare una cascata di false diff:

In natura, ho visto per lo più hard wraps (lunghezza della linea limitata), nonostante il problema del diff sopra fosse piuttosto comune e sconcertante.

Cosa mi manca e come posso prendere una decisione?

Perché non sono arbitrariamente lunghe righe che si incontrano più comunemente nei progetti contemporanei?

    
posta Dan Dascalescu 25.06.2017 - 08:44
fonte

1 risposta

6

Sembra che tu abbia fatto un'analisi approfondita della tua situazione, il tuo fattore di contesto essendo principalmente GitHub.

In altri progetti, il fattore contestuale è l'IDE utilizzato, con tre situazioni più utilizzate:

  • Limite di 80 caratteri. Questa è una grande scelta per gli sviluppatori che usano emacs / vi o coloro che seguono ciecamente alcune convenzioni di stile (un punto interessante è che jslint's maxlen valore predefinito è unlimited ).

    Il vantaggio qui è la coerenza. Anche i plugin corretti per gli editor di testo aiutano: si digita e l'editor si occupa delle terminazioni di riga per far rispettare il limite di 80 caratteri. Semplice come quello.

    Nota che, sebbene il limite di 80 sia popolare, è possibile utilizzare anche altri numeri, e questo di solito non è un problema; a volte richiede una configurazione personalizzata.

  • Nessun limite. Questa è una grande scelta per coloro che hanno fatto lo sforzo di configurare il word-wrap nel proprio IDE. Se Mary usa il suo Visual Studio su un monitor da 24 pollici, mentre Jeff lavora su un laptop da 19 pollici, potrei pensare che il numero effettivo di caratteri per riga per Jeff sarebbe molto inferiore a quello di Mary. Ma non importa, dal momento che Visual Studio mostrerà esattamente quanti più caratteri possibili, andando a una nuova riga quando necessario.

    Il vantaggio qui è che a nessuno interessa il vero IDE / configurazione utilizzata da altri sviluppatori. Il testo viene visualizzato chiaramente per tutti e tutti sono felici. Finché, una volta, il team assolda uno sviluppatore che ama emacs o vi, e fino a quando il team non inizia a utilizzare uno strumento che non può trattare con il word-wrap.

  • "Questo funziona sul limite della mia macchina". Gli sviluppatori che utilizzano IDE in cui le dimensioni della finestra possono cambiare e chi non ha configurato il ritorno a capo sono talvolta inclini a inserire interruzioni di riga dove è bello . Digitano il testo nella loro finestra di 173 caratteri e, quando raggiungono il carattere 171, fanno un'interruzione di riga per iniziare una nuova parola su una nuova riga.

    Questo è un approccio sbagliato:

    1. Tale testo sembra brutto non appena la finestra viene ridimensionata. Crea una lunghezza di 168 caratteri e ottieni uno scroll verticale (ewwww!) O un wordwrap che assomiglia a questo:

      //                                       The arbitrary line end is here ↴
      //                                        The new word-wrap is here ↴   ┊
      ····if·(this.windowActive·&&·this.findStartupTimer().isExpired)↵    ┊   ┊
      ····{↵                                                              ┊   ┊
      ········console.log('Entering·the·primary·loop.');↵                 ┊   ┊
      ········//·TODO:·implement·the·primary·loop·which·will·handle·the·▖ ┊   ┊
      events↵                                                             ┊   ┊
      ········//·from·the·application.↵                                   ┊   ┊
      ····}↵                                                              ┊   ┊
      

      Lo sviluppatore ha deciso di inserire un'interruzione di riga dopo "eventi" per rendere il testo piacevole nel contesto della fine della riga originale. Non appena la larghezza della finestra viene leggermente ridotta, l'IDE con funzionalità word-wrap introduce una nuova riga dopo "handle the", facendo apparire gli "eventi" da solo su una riga. Questo non è particolarmente leggibile.

      Non può ospitare schermi ben più grandi. Sarebbe sopportabile se tutti usassero un limite consistente: avrei sprecato spazio a destra, ma anche questa pagina su softwareengineering.SE, dove due terzi dello spazio sul mio monitor sono semplicemente vuoti. Il problema, tuttavia, è la mancanza di coerenza. È come se una domanda su questo sito usasse 1000 pixel di larghezza, mentre una risposta preferirebbe una larghezza di 800 pixel, e quindi alcuni commenti si estenderebbero a 1 200 pixel e così via.

    2. Pochi strumenti possono accettare una regola "Ehi, una interruzione di linea qui sembra bella". Non puoi imporlo automaticamente al commit. Non puoi chiedere al tuo IDE di inserire interruzioni di riga per te.

Sfortunatamente, in alcune comunità, il limite di "Questo funziona sulla mia macchina" è abbastanza popolare. Il codice Corporate C # è pieno di quelle brutte interruzioni di riga, perché Visual Studio ha preso una decisione sbagliata per disabilitare il ritorno a capo automatico di default, e la maggior parte dei programmatori non sa come abilitarlo. Non essere uno di loro.

Quando si tratta di scegliere tra un limite rigoroso e coerente e nessun limite, fai una scelta a seconda degli strumenti che usi. Sembra che nel tuo caso la scelta sia la mancanza di limiti.

    
risposta data 25.06.2017 - 09:58
fonte

Leggi altre domande sui tag