Strumenti per lo sviluppo web
Automatizza operazioni ripetitive e noiose:Migliora la tua esperienza di sviluppatore web adottando strumenti avanzati per automatizzare operazioni ripetitive e noiose: scaffolding nuovi progetti, css performance tooling, live reload browser, javascript linting, merge e minificazione asset, uncss, cdn, integrazione con framework web e tematiche legate al deploy.L'ospite d'onore del talk è stato Yeoman, con numerosi cenni a Bower, Npm, Grunt e naturalmente Yo (e i suoi generatori più famosi come per esempio generator-webapp e generator-angular).
Inoltre per terminare sono stati presentati una serie di esempi di integrazioni di Yeoman con framework web di diverse tipologie (basati su Python - come non citare Plone o Pyramid - e NodeJS - portando come esempio il framework loopback.io con la sua AngularJS SDK) ed illustrate alcune delle (molte) tecniche avanzate per l'ottimizzazione del front end (es: grunt-uncss).
Insomma, argomenti molto vari ed è stata dura riuscire a condensare tutto in una sola ora di talk a disposizione!
Per quanto riguarda gli altri talk posso dire che il livello era molto alto e, purtroppo, avrei voluto assistere ad altre due presentazioni ma erano in parallelo con la mia (Arduino e virtualizzazione con Docker)... Da segnalare una buona partecipazione da parte dei pinguini torinesi, l'ottima organizzazione, location veramente azzeccata (comoda con i trasporti, aule capienti, buona acustica), la simpatia dei volontari allo stand dei gadget. Talk preferito? Scrivere driver per il kernel, presentato dal simpaticissimo e ultra competente kernel hacker Alessandro Rubini (complimenti!!!).
Come promesso ecco le slide.
Slide
Le slide sono disponibili su https://speakerdeck.com/davidemoro/linux-day-2014-torino-strumenti-per-lo-sviluppo-webDomande e risposte
Riporto una serie di domande e risposte emerse alla fine del talk, purtroppo c'è stato poco tempo a disposizione per portare avanti la discussione e ho aggiunto delle integrazioni e precisazioni postume con aggiunta di riferimenti. Vado a memoria e spero di non aver dimenticato nulla.Q: La tecnica dell'uncss sembra essere un anti-pattern rispetto a soluzioni Compass-sass
A: Mmm, no. Questo pattern è stato recentemente presentato alla csseuconf dall'autore di grunt-uncss che lavora presso Google, ma il concetto esisteva già ed è stato già applicato in diversi contesti. Per maggiori informazioni puoi approfondire la questione leggendo l'articolo originale dell'autore di grunt-uncss http://addyosmani.com/blog/removing-unused-css/
Q: Si poteva snellire allo stesso modo il css di Twitter boostrap con Compass-Sass sfruttando la modularità di Twitter Bootstrap (pattern migliore)
A: Sì, ma solo parzialmente. Grunt-uncss è uno strumento diverso e consente comunque di ottenere delle performance migliori. Inolte uncss può essere applicato a qualsiasi css o framework UI indipendentemente dal supporto o meno di sass. Per maggiori informazioni fai riferimento all'articolo dell'autore http://addyosmani.com/blog/removing-unused-css/
Q: Hai parlato spesso di AngularJS nel tuo talk, c'è una correlazione con Yeoman o è solo un caso? Perchè non emberjs o altri framework.
A: No, non c'è correlazione, giusto per fare un esempio con del codice Javascript. Yeoman è totalmente indipendente dal framework Javascript usato. Avrei benissimo potuto usare una qualsiasi altra tecnologia. La scelta di riportare AngularJS come esempio è ricaduta semplicemente in base a una mia preferenza personale, ma i concetti visti sono assolutamente generici.
Q: Yo funziona anche sotto Windows?
A: In realtà ho la fortuna di usare solo Linux da diversi anni per cui non so esprimermi di preciso, ma viste le tecnologie usate immagino di sì. Dopo aver fatto una breve ricerca a casa posso affermare che la risposta è certamente positiva, anche se non ho mai provato in prima persona. Vedi annuncio su http://addyosmani.com/blog/yeoman-update-announcing-1-0-beta-4
Q: Esistono delle soluzioni per il deploy e l'hosting?
A: Ci sono numerosi servizi Paas (Platform As A Service) che consentono di fare il deploy della propria applicazione NodeJS, Python, ecc tramite una comoda CLI (Command Line Interface) ed offrono una serie di servizi aggiuntivi molto comodi. Basta cercare su Google per trovare molte alternative. Per quanto riguarda Plone invece ci si può rivolgere a uno dei provider o installare un proprio VPS, vedi https://plone.org/support/providers