In che modo i programmatori possono cercare le funzioni esistenti prima di scriverne una propria?

StackOverflow https://stackoverflow.com/questions/643248

  •  22-07-2019
  •  | 
  •  

Domanda

Perché così tante persone stanno ancora scrivendo versioni scadenti delle cose nelle librerie standard? Per non seguire gli sviluppatori PHP, ma i ragazzi vanno a leggere PHP SPL

È stato utile?

Soluzione

Migliori tecniche di ricerca. e Familiarità specifica del dominio

In che modo uno sviluppatore verifica una funzione di cui non conosce il nome? O forse non esiste una funzione EXACT integrata per fare ciò che vogliono, ma qualcosa che possono usare per salvare un sacco di codice. Devi essere in grado di trovare la terminologia giusta per il problema in questione e da lì sai cosa cercare. Questo è meglio ottenuto leggendo argomenti specifici per il tuo dominio problematico. Allontanati dalla codifica di risorse specifiche e trascorri un po 'di tempo nel campo per cui stai codificando ... se si tratta di vendita al dettaglio, assistenza medica, assicurazione, ecc.

Altri suggerimenti

La revisione tra pari può aiutare a cogliere quel tipo di cose. Se hai un altro sviluppatore che guarda il codice e trovano continuamente implementazioni dei metodi di libreria standard, la revisione dovrebbe fallire a meno che non ci sia una buona ragione per reinventare la ruota.

I programmatori giovani e ambiziosi amano risolvere da soli ogni problema. Non hanno bisogno di librerie puzzolenti. I programmatori più anziani e pigri preferiscono cercare soluzioni esistenti al problema attuale.

Quindi il mio consiglio: la prossima volta che assumi un programmatore, scegli il vecchio che si addormenta nell'area della reception.

Sto scherzando, soprattutto. La revisione tra pari e l'educazione sono la risposta.

Riepilogo: il presupposto è la madre di tutti i FUBAR

Lo vedo molto da colleghi che non hanno familiarità con il concetto di framework (dio come si lamentano di "due lingue in una"), vale a dire: i vecchi ragazzi C ++ si sono improvvisamente confrontati con C # in testa per ricreare gli hashtables da zero ...

Chiaramente gran parte di questo fenomeno da quel punto di vista non sta uscendo dalle vecchie mentalità e abitudini. Se ti trovi in ??un nuovo ambiente, devi imparare le nuove regole. L'unico modo per affrontarlo dall'esterno è fornire formazione, sia che si tratti di programmare la coppia per un po 'o qualcosa di più formale.

La mancanza di familiarità con i tuoi strumenti genera il disprezzo degli altri.

Un semplice documento di stile di codifica potrebbe aiutare ricordando agli sviluppatori che ci sono librerie disponibili (magari elencandone alcune preferite) e che dovrebbero avere familiarità con esse.

A volte, devi solo ricordare alle persone.

Sarebbe utile una revisione tra pari.

PHP è ben documentato se e solo se, sai esattamente cosa stai cercando. Ad esempio, avresti aperto Array e Funzioni dell'array per vedere cosa puoi fare con gli array. E indovina un po ', non c'è nemmeno menzione di SPL.

Dovresti anche incoraggiare la ricerca prima di iniziare a scrivere il codice. Di solito affronto i problemi pensando a un modo per farlo, quindi provo a trovare qualcosa nella libreria standard o in qualsiasi altra libreria che mi possa aiutare. Direi che un'ora di ricerca in alcuni casi può valere giorni di programmazione.

Se le persone non lo fanno, potrebbe essere una buona idea chiedere a qualcuno di porre loro domande sul loro approccio generale al problema e su quali funzioni / classi della biblioteca stanno pensando di usare. Se manca qualcosa di ovvio, suggeriscilo.

Due motivi vengono subito in mente. Innanzitutto, la libreria PHP standard non è ben nota e soffre di scarsa documentazione. Il sito Web php.net è ampiamente considerato la migliore risorsa del linguaggio, ma molte delle classi integrate più recenti (come SPL, API di riflessione, DomDocument, ecc.) Sono poco più di un elenco di metodi senza un ampio contesto.

Ancora più importante, sembra che l'intero SPL non sia mai stato spedito di default con nessuna versione di PHP precedente alla (non rilasciata) 5.3. Questo è un assassino per quanto riguarda l'adozione. Di solito le persone che scrivono codice PHP non hanno il controllo su ciò che viene rispettato nel loro binario PHP. Questo è gestito dal loro web-host e / o team operativo, e web host e / o team operativi hanno obiettivi diversi rispetto a uno sviluppatore e non installeranno tutte le estensioni opzionali che si presentano. Questo significa anche che progetti come Drupal, Joomla, Wordpress, ecc. Non possono fare affidamento sul fatto che SPL sia installato ovunque, quindi non lo usano.

Parte del motivo per cui PHP " ha vinto " over perl era una singola installazione con tutto il necessario. Le estensioni opzionali non sono mai state ampiamente adottate fino a quando non sono diventate parte dell'installazione di base.

Domanda molto difficile a cui rispondere. Ovviamente aiuta la revisione tra pari, ma anche una documentazione adeguata. I tuoi progetti hanno specifiche tecniche in cui mappare le classi e le interfacce da creare?

In tal caso, qualcun altro nel team dovrebbe rivedere le specifiche e indicare dove potrebbe essere utilizzato il codice esistente ...

Concordare con l'addestramento e la revisione tra pari, ma imporre anche test unitari e documentazione del codice dovrebbe aiutare con il NIH sindrome :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top