Costruire la qualità in progetti WordPress un esempio pratico

Una delle cose migliori dell'apprendimento di una nuova abilità nel software è che spesso si subisce questo processo di ottenere qualcosa lavorando, apprendendo alcuni degli errori che hai commesso, perfezionando il codice e poi ripetendo il processo.

In definitiva, si tratta di migliorare la qualità di ciò che si sta facendo in modo tale che il risultato finale sia migliore di quanto sarebbe stato se l'avessi appena lasciato com'era nella sua prima iterazione.

E, in realtà, quando si tratta di scrivere software, una delle cose che spesso ascoltiamo e spesso parliamo è qualità. Più specificamente, parliamo della qualità della costruzione in il nostro software. 

Ma la mia ipotesi è che se chiedi a dieci sviluppatori cosa significhi per loro la qualità, otterresti dieci risposte diverse.

La parola "qualità" offre tre definizioni:

  1. Quanto è buono o cattivo qualcosa,
  2. Una caratteristica o caratteristica che qualcuno o qualcosa ha: qualcosa che può essere notato come parte di una persona o cosa,
  3. Un alto livello di valore o eccellenza.

Se pensi per un momento a come questo si riferisce ai prodotti che hai creato usando WordPress, ti viene in mente?

  • È l'organizzazione dei file che compongono il tuo progetto?
  • È quanto bene il tuo codice è conforme agli standard di codifica di WordPress?
  • Ha a che fare con il modo in cui hai seguito le migliori pratiche del paradigma che hai scelto?
  • Forse è tutto quanto sopra; forse è qualcosa che non è elencato. 

In ogni caso, "qualità" può significare cose diverse per persone diverse. Ma credo che ci siano alcune cose che non sono soggettive per quanto riguarda lo sviluppo di WordPress.

Sviluppo di qualità e WordPress

Prima di andare oltre, vorrei sottolineare che quando si cita qualcun altro, a meno che non si tratti di una fonte ben nota, mi piace mantenere anonima la fonte.

La ragione è che non voglio che le persone che leggono tutorial come questo vengano seguite e provino a contestare ciò che la persona ha detto. È oltre il punto, lo sai?

E questo succede. Sto parlando per esperienza.

Detto questo, recentemente qualcuno mi ha contattato per un po 'di codice che avevo fornito sul lavoro con gli hook di WordPress quando si creavano temi. In breve, hanno detto:

Dire più linee di codice è meglio che meno è qualcosa che direbbe solo uno sviluppatore esperto di WordPress. Meno codice, meglio è.

Per gli hobbisti e coloro che stanno imparando le corde dello sviluppo, posso vedere come questo sembrerebbe vero. Per coloro che hanno lavorato sul campo per un po ', probabilmente riconoscerai il problema con questo.

Non sto affermando che più codice è sempre un codice migliore. Non è. Invece, sto suggerendo che ci sono momenti in cui un'intera funzione è migliore di una singola riga di codice.

Come lo costruiamo nel nostro lavoro? Come lo trasmettiamo a coloro che sono programmatori meno esperti? Diamo un'occhiata ad un esempio concreto e vediamo se c'è qualcosa da cui spigolarsi.

Un esempio: come i filtri producono la qualità

In WordPress 4.4, il supporto per i tag del titolo è stato modificato in modo tale da aggiungere il supporto semplicemente includendo la seguente riga nel file functions.php file:

Se non vuoi usare quella funzione, ti verrà richiesto di eseguire l'hardcode di titolo elemento nel modello di intestazione del tema. 

Naturalmente, ci sono plugin e temi che non sono ancora stati aggiornati (al momento di questo tutorial). A tal fine, è ancora relativamente comune vedere qualcosa come la seguente riga di codice nei file di modello:

<?php wp_title("); ?>

Ma perché qualcuno dovrebbe pasticciare con il titolo? Pensa ai plugin SEO. Cambieranno spesso titolo elementi per essere più favorevoli ai motori di ricerca.

Diamo un'occhiata a un esempio del mondo reale: dici che stai lavorando a un tema e al suo titolo elemento include una chiamata a wp_title. Inoltre, vuoi assicurarti che wp_title è filtrabile in modo che altri codici come i plugin sopra menzionati possano aggiornarlo.

Sembra abbastanza semplice, giusto? Ma diciamo che vuoi vestirlo un po 'includendo un separatore e aggiornando la sua posizione. In questo caso, puoi fare qualcosa del genere:

<?php wp_title( '|', true, 'right' ); ?>

O forse vuoi fare un ulteriore passo avanti e presentare il nome del blog e la sua descrizione. O forse vuoi impostare il titolo in modo che sia diverso sulla homepage. 

Quindi puoi fare qualcosa del genere:

<?php bloginfo('name'); ?> | <?php is_home() ? bloginfo('description') : wp_title("); ?>

In isolamento, al di fuori di qualsiasi plugin o altro lavoro, questo sembra buono. È una singola riga di codice che gli hobbisti possono utilizzare per raggiungere il loro obiettivo finale.

Ma cosa succede quando qualcuno distribuisce il tema? Inoltre, cosa succede quando qualcuno vuole usare un plugin per modificare il file titolo elemento?

Non funzionerà.

Questo è solo uno dei motivi per cui meno codice non è sempre un codice migliore e perché meno codice può essere di qualità inferiore.

Più codice, più qualità

Per assicurarsi che l'uso di wp_title () è il più flessibile possibile, dobbiamo definire una funzione personalizzata e filtrarla usando il wp_title filtro fornito da WordPress:

= 2 || $ page> = 2) $ title = sprintf (__ ('Pagina% s', 'acme'), max ($ paged, $ page)). "$ sep $ title";  return $ title; 

Il codice sopra è ovviamente più codice rispetto alla singola riga nell'esempio precedente, ma è anche più flessibile.

Innanzitutto, il codice controlla se la pagina viene visualizzata in un feed RSS. In tal caso, restituisce solo il titolo specificato. In caso contrario, aggiunge il nome del titolo al specificato $ titolo stringa. Durante la visualizzazione della homepage o della prima pagina, il codice posiziona la descrizione dopo il separatore.

Infine, se l'utente sta eseguendo il cercapersone attraverso il sito, il codice antepone il numero di pagina al separatore e al titolo.

Ciò fornisce la funzionalità di base per il rendering dell'elemento titolo all'interno del tema. Questo non è il modo predefinito per farlo per tutti i temi, ma è probabilmente un modo migliore per farlo. 

In quanto tale, puoi anche personalizzare questa funzione per adattarla a qualsiasi cosa tu ritenga sia meglio per il tuo lavoro.

Questa è la qualità?

Il takeaway chiave di questo tutorial non è come impostare un filtro per i titoli, o come impostare i filtri, né come gestire i titoli. inoltre, wp_title viene deprecato, come menzionato in precedenza nell'articolo.

Finiamo con una versione personalizzata del titolo. Diamo anche agli sviluppatori di terze parti la possibilità di sovrascrivere il nostro codice.

Anche se questo è più codice, è una soluzione di qualità superiore.

Conclusione

Ricorda, però: non è sempre così. A volte più codice può ridurre la qualità e può aumentare la complessità. Ma non è questo il punto di questo articolo. Forse è meglio discuterne in un altro tutorial.

Al contrario, lo scopo di questo tutorial è mostrare quanto meno codice può comportare una qualità inferiore e quanto più codice può migliorare la qualità. Ma questa non è una regola dura e veloce. Né dovrebbe essere.

Invece, l'intento è quello di introdurre una mentalità del pensiero attraverso ciò che definisce la qualità. A volte, meno codice è un codice di qualità; a volte, più codice è un codice di qualità.

Quando lavori sul tuo progetto, non cercare modi per consolidare il codice solo per meno codice. Cerca modi per scrivere codice in modo che sia elegante, estensibile, leggibile e manutenibile, e soprattutto adatto allo scopo. 

Tutto quanto sopra contribuisce a contribuire alla qualità.

Se stai cercando esempi di altri progetti WordPress che possono essere utilizzati per esaminare la qualità del codice, da utilizzare nel tuo lavoro, o in progetti client, potresti anche trovare qualcosa di interessante nel marketplace.

Se ti interessano altre cose che ho scritto o prodotto per Envato, puoi controllare il mio lavoro sulla mia pagina del profilo, e puoi seguirmi sul mio blog e / o Twitter su @tommcfarlin dove parlo dello sviluppo del software in il contesto di WordPress.

Non esitare a lasciare qualsiasi domanda o commento nel feed qui sotto e cercherò di rispondere a ciascuno di essi.