Upload
federico-capoano
View
329
Download
0
Embed Size (px)
Citation preview
“Do one thing and do it well”
La Filosofia Unix
Chi sono?
Mi chiamo Federico CapoanoAnche conosciuto come Nemesis
Ninux.org e OpenWISP.org
z
Perchè la filosofia Unix?
Riscoprire la filosofia Unixmi ha aiutato a diventare
un programmatore migliore
Cosa intendo per “migliore”?
Imparare a risolvere problemicomplessi con approcci
semplici
scrivere piccoli programmi combinabili invece che“palle di fango giganti”
mantenere librerie usate da migliaia di sviluppatori
saper attrarre e gestire contributi di terze parti
Fare da admin e mentor
http://www.ninux.org
Incontrare Linus Torvalds
http://www.ninux.org
Tutto è cominciato con Ninux
Cos'è ninux?
Rete IP comunitaria
Libertà di comunicazione
Tutti possono connettersi
Condivisione servizi in rete
Sperimentazione nuove tecnologie
Approccio collaborativo
Tecnologie principalmente FLOSS
http://www.ninux.org
Cosa sono le reti comunitarie?
http://www.ninux.org
Cosa sono le reti comunitarie?
http://www.ninux.org
Cosa sono le reti comunitarie?
http://www.ninux.org
Cosa sono le reti comunitarie?
http://www.ninux.org
nodeshot.org
Openwisp.org
Cos'hanno in comune?
- applicazioni web- molte feature- molta interdipendenza
Qual'è Il problemadi questo approccio?
1. Complessità
Il software tende a diventare una“palla di fango gigante”
2. Interdipendenza
Cambiare un componenterichiede cambiamentiad altri componenti
3. Inflessibilità
difficile adattare il software anuovi requisiti
4. poco riutilizzabile
Poco riutilizzabile in contestidifferenti (anche leggermente)
5. pochi contributi
Software troppo specificonon crea una comunità di
contributors
Nikola is not happy
Ci deve essere
un'altra via!
Che cos'è la “filosofia Unix”?
1. Approccio
Sviluppo di softwaresemplice ed efficace
2. Maturità
Maturato nellacomunità UNIX
tra il 1969 ed il 2003
3. Change tolerant
Nata per funzionare in un ambiente
in costante cambiamento
La base di tutto
“Do one thingand do it well”
Scomporre un problema complesso
in problemi più piccoli
Risolvere un problemaalla volta
Un problema, un programma
Rendere questi programmifacilmente combinabili
I vantaggi dell'approccio Unix
Quali sono i vantaggipiù significativi?
1. facilità
Risolvere un solo problemaalla volta è più facile
2. mantenibilità
Mantenere un programma semplice comporta
meno lavoro
3. usabilità
Un programma semplice è più facile da spiegare
ed usare
4. leggibilità
Il codice di un programma semplice è più facileda leggere e capire
5. riutilizzo
Essendo facile da riutilizzare
attrarrà più contributors
6. rapidità
Un programma semplice si riadatta più rapidamente
a nuovi requirement
ME GUSTA
Le 17 regole di Unix sintetizzate
da Eric Raymond
Autore de“La cattedrale e il Bazaar”
1. Modularità
Scrivete parti semplici connesse tramite interfacce ben definite
2. Chiarezza
Scegliete la chiarezzapiuttosto che l' ingegno
3. Composizione
Progettate programmi per essere connessi ad altri programmi
4. Separazione
separate la politica dai meccanismi;
separate le interfacce dai motori
5. Semplicità
Progettate per la semplicità; aggiungete complessità solose strettamente necessario
6. Parsimonia
Scrivete un programma grande solo quando è stato dimostrato
che nient'altro funzionerà meglio
7. Trasparenza
Progettate con il fine di facilitare l' ispezione ed il debugging
8. Robustezza
La robustezza è la figlia della trasparenza e della semplicità
9. Rappresentazione
Inserite la conoscenza nelle strutture dati in modo da
mantenere la logicasemplice e robusta
10. Sorpresa minima
nella progettazione delle interfacce,
scegliete sempre la cosa più ovvia
11. Silenzio
quando un programma non ha niente da dire,
non dovrebbe dire nulla
12. Riparazione
Riparate quando potete,ma quando dovete fallire,
fatelo rumorosamenteed il più presto possibile
13. Economia
il tempo del programmatore è costoso; meglio risparmiare
quello piuttosto che il tempo della macchina
14. Generazione
evitate di fare tutto a mano;scrivete programmi che
generano codice
15. Ottimizzazione
realizzate prototipi prima di rifinire; fatelo funzionare prima di
ottimizzare
16. Diversità
diffidare tutte le rivendicazioni di “una vera via”
17. Estendibilità
progettate per il futuro, perchè sarà qui prima di quello che pensi
Robba seria
Parliamo di dati
nodeshotvs
Feature estratte (sommate)
contributi & download
Nodeshot: 13
Libraries: 44
Pull request (6 months)
3x
Nodeshot: 324
Libraries: 25199
PyPi downloads (1 month)
78x
Nodeshot: 95
Libraries: 1392
Github clones (1 month)
14x
Nodeshot: 14
Libraries: 471
Github unique clones (1 month)
33x
Nodeshot: 1100
Libraries: 2385
Github page views (1 month)
2x
Nodeshot: 128
Libraries: 635
Github unique visitors (1 month)
5x
Le metriche di utilizzodei piccoli programmi
(sommati tra loro)Mostrano un aumento medio
di un 22xRispetto a nodeshot
Conclusioni...
1. I creatori di unixnon erano gli ultimi arrivati
Seguire i loro consigliè una buona idea
2. NO ai dogmi
Anche i fondatori dellafilosofia Unix rigettano i dogmi
(nessuna “vera via”)
3. applicatela
Applicate la filosofia unixai vostri progetti
4. imparate da chi è più esperto
Unix e Linux sono miglioraticosì tanto soprattutto grazie
all'ambiente FLOSS