Il mio Workflow da Programmatore

- Bash, Firefox, JavaScript, KDE, Linux, Open Source, PHP, Programmazione, Senza categoria, Sicurezza, Wordpress

Visto il successo della mia serie su Youtube Parliamo di e del suo sondaggio (che vi permette di scegliere le tematiche) ho deciso di lanciare:

Proponi un’articolo su Mte90.Net

Sui social in una settimana ci sono stati buoni riscontri quindi il tema con 8 voti è quello del titolo ovvero Il mio Workflow da Programmatore.

Alcune premesse:

  • Uso Debian Sid GNU/Linux quindi non chiedetemi come usare quei programmi su Windows/OSX che non ne ho idea e non mi interessa
  • Non tutti i programmi che citerò sono solo per Linux quindi sta a voi verificare
  • Non chiedetemi pareri su altri programmi che cancellerò i commenti, lo scopo di questo articolo è parlare del mio e non di fare recensioni di programmi per quello cercatemi sui social che ne parlo spesso
  • Parlerò del mio workflow attuale e non del passato
2014 21:17:29
Il primo strumento indispensabile è essere fan di Doctor Who ed avere un cacciavite sonico

Come iniziare

Parto sempre dal suddividere il progetto nelle parti più importanti.
Isolare le parti più noiose che di solito sono quelle che richiedono più tempo ma sono spesso le fondamentali.

In poche parole le cose più importanti e quei dettagli da ricordare che fanno la differenza.

Prendo appunti e faccio uno schema su un foglio di carta, si niente roba digitale.
Successivamente disegno il frontend delle GUI sia di siti che di programmi sempre su carta così posso scarabbocchiare in libertà.

Tirò giù una lista, solitamente a seconda del progetto e piano piano spunto via con soddisfazione le cose fatte.

Lo scarabbocchiare è importante perchè libera la mente e aiuta a focalizzarsi sulle cose più importanti. Farlo sul computer non è la stessa cosa perchè ci si distrae facilmente ed è molto più professionale rispetto ad uno scarabbocchiare su un tablet.

L’importante è scarabbocchiare!

Programmazione Web

Come programmatore web sia per passione che per lavoro uso sempre gli stessi tool.

Linux è una delle cose essenziali
Linux è essenziale
L’editor veloce che uso è Kate che è l’editor avanzato di base su KDE con qualche piccola personalizzazione a livello di shortcut, il supporto ad Emmett e tabulazione stile Python predefinita con gli spazi.

Passiamo alle cose serie!
Passiamo alle cose serie!
Il vero editor è quel bel macigno in Java di Netbeans (che uso per tutti i linguaggi web). Ho molti moduli installati:

Alcune shortcut personalizzate con delle macro, supporto per i tool php XDebug/PHP Code Sniffer/PHP Coding Standards Fixer/PHPMD/ApiGen, SASS e LESS e una configurazione personalizzata per il report degli errori e formattazione.

La mia faccia quando ispeziono le pagine web con il cacciavite sonico!
La mia faccia quando ispeziono le pagine web con il cacciavite sonico!
Dopodichè per lavorare uso Firefox con la nuova fiammante Developer Edition (precedentemente Aurora che già usavo) con alcune estensioni:

  • Acebug
  • DevTools Prototyper
  • Firebug
  • Firefox OS Simulator 1.3 alla 2.2
  • FirePicker
  • FireStorage Plus
  • Grunt DevTools
  • Page Speed
  • YSlow
  • View Source Code in the Same Tab

Inoltre oramai uso i tool di Firefox per lavorare che sono una cannonata e sopperisco alle loro mancanze con Firebug ma ne ho parlato qui.

Da linea di comando invece solitamente uso Grunt a seconda del progetto. Con WordPress uso WordMove (Andrea ne ha parlato approfonditamente) per il deploy tant’è che ho realizzato degli strumenti per semplificare la sua configurazione.

Inoltre per preparare un’ambiente di lavoro per lo sviluppo di un sito WordPress ho realizzato uno script che combina WP-CLI e Breeder ma ne ho parlato in un hangout.

Programmazione Desktop

Per programmare in Bash uso Kate che uso anche per Python.
Se devo lavorare in modo avanzato per Python uso Spyder (con i vari tool secondari) solitamente perchè lavoro con le librerie Qt.

Per NodeJS uso sempre Netbeans mentre per Dart uso i tool ufficiali del linguaggio.

Per KDE ho usato Plasmate in passato con Kate.

Testing

Non ho potuto ancora sfruttare soluzioni come gli unit test per mancanza di tempo o effettiva necessità quindi uso la classica soluzione manuale o prove da chi non conosce il progetto.

Se si tratta di risolvere un bug di un progetto non mio oltre a cercare sul sito ufficiale mi studio il codice. Questa cosa del leggere il codice mi permette di imparare ma anche di capire se il progetto che userò è veramente funzionale alle mie necessità e se è fatto bene. Inoltre mi permette di usarlo con sicurezza perchè sò come funziona e di testare ove necessario.

Documentazione

Per la ricerca della documentazione uso il sito ufficiale dei vari linguaggi e StackOverflow nella maggior parte dei casi.
I forum di supporto dei vari software e GitHub sono veramente utili per il mio lavoro.

Come mi documento?

Libri, guide, tutorial ed altro tramite i miei feed preferiti.

Smontare il progetto è la migliore soluzione per imparare ad usarlo ma richiede tempo e capacità quindi lo uso come ultima spiaggia anche se spesso è risolutivo.

Traduzioni

Per tradurre uso Lokalize che è molto più potente di PoEdit che ha solo due funzionalità mancanti nella controparte KDE ovvero la compilazione del file al salvataggio e la scansione del codice sorgente per aggiornare il file di lingua.

Per file più semplici tipo file proprierties uso il solito Kate.

Sicurezza

Per testare la sicurezza uso WPScan, i tool a seconda di quello che serve ed ovviamente l’intelligenza che è lo strumento più potente. Sapere come è fatto il codice aiuta a testare nei punti che si ritengono più vulnerabili.

Tool online

Lavorando col web uso qualche tool online principalmente Google Page Speed e Woorank.

Uno dei miei siti preferiti di tool è perf-tooling.today.

Per lavorare uso OwnCloud, Google Drive, Asana e Google Hangout per comunicare con i colleghi e scambiare i file.

GitHub

Da quando uso questo servizio, ovvero dal 2010, ho migliorato molto il mio modo di lavorare e di apprendere oltre che relazionarmi con altri programmatori.

Prima lavoravo ai miei progetti privatamente e rilasciavo il materiale sul mio sito e questo è sbagliato per la promozione e per il confronto con gli altri che è la parte fondamentale di ogni lavoro.

Eventi

Gli eventi sono un modo concreto per vivere GitHub nella vita reale.

Si imparano molte cose da altri programmatori e sopratutto è molto divertente, secondo me è necessario per capire se si lavora bene o male. GitHub è utile ma il rapporto umano non può battere un messaggio su un social tipo “è bellissimo” mentre un tecnico è tutt’altra cosa.

Fare il relatore degli eventi inoltre è un salto ancora più importante che è un riconoscimento del proprio lavoro. Dimostra che effettivamente si possiedono delle conoscenze che un lavoro non può spiegare ai non addetti ai lavori.

14 - 1Vi aspettavate altro materiale? Sono le conoscenze tecniche che cambiano il modo di lavorare non il workflow.

Per questo scrivo e per questo vi chiedo di partecipare ai sondaggi che apro e di essere partecipi nei miei lavori per migliorare il materiale che leggete.

Mi sono scordato qualcosa?

Quale tema sceglierete per la prossima settimana?

PS: Ci vediamo questo sabato all’Open Source Day ad Udine il 29 Novembre.

Liked it? Take a second to support Mte90 on Patreon!

Become a Patreon
All the stuff released in this website, where the author is Daniele Scasciafratte, is under the GPL 2.0 license except when the resources have their licenses.

Lascia un commento