<p>Ciao Enrico<br>
per i punti 2b e 6 hai qualche materiale da suggerirmi x approfondire le best practices in python?<br>
Marco</p>
<div class="gmail_quote">Il giorno 29/dic/2014 21:40, "enrico franchi" <<a href="mailto:enrico.franchi@gmail.com">enrico.franchi@gmail.com</a>> ha scritto:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2014-12-29 19:00 GMT+00:00 Carlos Catucci <span dir="ltr"><<a href="mailto:carlos.catucci@gmail.com" target="_blank">carlos.catucci@gmail.com</a>></span>:<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote"><span>2014-12-29 19:45 GMT+01:00 enrico franchi <span dir="ltr"><<a href="mailto:enrico.franchi@gmail.com" target="_blank">enrico.franchi@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>Mi sembra sia uno use case un po' diverso dal "principiante totale che non sa programmare" di cui si parlava.</div><div>Penso si possa dare per assodato che Davide conoscesse sia la programmazione in generale che, probabilmente, almeno un po' di OOP (se non di piu'). Mi aspetto che fosse gia' familiare anche con questioni di eccezioni e gestione dell'errore, e di design di API. Probabilmente aveva anche esperienza con un framework web, certamente con i database. Senza dubbio con vari elementi della programmazione web (http che fa, come si usano gli status di ritorno...). Sperabilmente anche TDD o per lo meno come si scrivono i test dovevano essere assodati. Mi sembra insomma che sia difficilmente comparabile.</div></blockquote><div><br></div></span><div>Io intendevo dire che una persona skillata con Python in pochissimo tempo e' autonoma, lo stesso non si puo' dire di Java (e di altri linguaggi)<br></div></div></div></div></blockquote><div><br></div><div>Scusa non capisco... eravamo partiti dal principiante assoluto che non sa programmare che in 10 giorni metteva in produzione un sito, di questo stiamo parlando. O no?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>  <br></div><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span></span><div>Mi piacerebbe davvero vederlo. Ma vorrei anche vedere il codice. Perche' il fatto che si tiri su un orrore immantenibile in 10 giorni, a me sembra relativamente poco interessante. </div></blockquote><div><br></div></span><div>No codice mantenibile. Io sono fanatico su questa cosa. Se il codice non e' chiaro e mantenibile per me non e' codice. <br></div></div></div></div></blockquote><div><br></div><div>Visto quello che escludi piu' sotto dalla definizione di codice mantenibile, credo che abbiamo definizioni diverse di mantenibile. Per esempio, per me, codice mantenibile senza test e' un ossimoro. Tanto per dirne una.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div></div><div>Solo a spiegare come funziona il web ci va parecchio tempo. Non parliamo poi di questioni sulla gestione dell'errore, programmazione ad oggetti e gestione dell'errore.</div></blockquote><div><br></div></span><div>Io ho detto che faccio programmare una persona che non conosce il linguaggio ed il frameqwork, con un monitoraggio. Poi ovvio che se trovo quello negato non ho chance. Ma una persona di medie capacita' puo' imparare a scrivere codice. Ovviamente non sto parlando di riscrivere facebook, ma un sito decente, ad esempio per gestire un magazzino, con sottoscorta e quant'altro, si.<br></div></div></div></div></blockquote><div><br></div><div>E io su questo sono completamente in disaccordo. </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><span><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div></div><div>Secondo me  quello che intendi con "formato" o "in grado" e' un po' diverso da quello che intendo io.</div></blockquote></span></div><br></div><div class="gmail_extra">Forse tu intendi uno sviluppatore esperto. L'esperienza non la si trasmette per endovena, per cui prima che possa essere autonomo del tutto servono tempi piu' lunghi, ma io parlo delal capacita' di scrivere codice mantenibile e funzionante.<br></div><div class="gmail_extra">Deploy, testing avanzato, e tutto il resto non rientrano in questo. Quello che voglio dire e' che in Python posso far programmare decentemente una persona in pochi giorni, con altri linguaggi mi serve minimo un mese per avere risultati simili.<br></div></div></blockquote><div><br></div><div>Ecco... nel 2014 fatico a considerare codice senza test come "mantenibile" o come "decente". Ma poi voglio dire, in 10 giorni gli spieghi:</div><div><br></div><div>1. python di base (funzioni, cicli, if, compagnia)</div><div>2. oggetti e programmazione ad oggetti (sembra difficile ragionare con Django senza ragionare con gli oggetti)</div><div>2b. come organizzare le dipendenze in modo sensato, moduli e oggetti, interfacce fra gli stessi (non in senso Java, in senso di come si parlano)<br></div><div>3. Django</div><div>4. HTTP (voglio dire, dovra' ben sapere quando una chiamata ti torna un 200, un 404, un 401, un 403, gli altri 4xx e i 3xx)</div><div>5. HTML/Templating, verosimilmente con CSS e quel minimo di Javascript che tende a saltare fuori ovunque</div><div>5b. Forms e compagnia</div><div>6. Come si gestiscono e come non si gestiscono gli errori, quando usare None, quando tirare un'eccezione, quando fare altro. Come gestire le eccezioni, quando rilanciarle, quando gestirle, quando fare cosa</div><div>7. Testing (che non vorremo mica sviluppare senza test, spero)</div><div>8. Grosso modo come funziona uno stack web</div><div>9. Quel poco di SQL (o meglio, di db relazionali) che ti serve per capire come accidenti Django salva e legge dati, fra le altre varie cose per non inchiodare tutto appena la gente comincia ad usare il servizio</div><div>10. Quel poco di dbms che ti serve</div><div>11. Come funzionano le fixtures e come si scrivono i test che interagiscono con il db</div><div>12. cosa loggare e cosa non loggare, quando, come leggere e capire un log</div><div><br></div><div><br></div><div><br></div><div><br></div></div><div><br></div>-- <br><div> .<br>..: -enrico-</div>
</div></div>
<br>_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/mailman/listinfo/python</a><br>
<br></blockquote></div>