Topic: Nuovo progetto, template di partenza  (Letto 29 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline sal

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
Nuovo progetto, template di partenza
« il: Ottobre 10, 2019, 10:17 »
Buongiorno,
vorrei iniziare un nuovo progetto (una console application), ho letto alcune documenti sulla struttura da dare, ma mi chiedevo se esistesse un template pronto da cui partire.
Su github ho trovato https://github.com/seanfisk/python-project-template
Può andare bene?
Avete altri consigli a riguardo?

grazie
ciao

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.870
  • Punti reputazione: 9
    • Mostra profilo
Re:Nuovo progetto, template di partenza
« Risposta #1 il: Ottobre 15, 2019, 11:48 »
Un solo consiglio, detto in breve? Lascia perdere, non vale la pena farsi sti problemi.

Devo elaborare? Ok, allora: HEAD FIRST, come dice la collana https://en.wikipedia.org/wiki/Head_First_(book_series).
Se vedi che una cosa del genere, che dovrebbe darti consigli sulle tecnologie da usare, è aggiornata a sei anni fa, lascia stare. Fai prima a cercarti qualcosa di più aggiornato che a capire quali consigli sono ancora validi e quali no. Per esempio, https://github.com/pyscaffold/pyscaffold (e non sto dicendo che devi usare questo, eh?)
Secondo: tutte queste cose sarebbero pensate per ridurre il boilerplate, ma intanto aggiungono uno strato intermedio di boilerplate aggiuntivo che devi padroneggiare. Cioè, tu hai un problema: non sai come strutturare un progetto python. Decidi di risolverlo con un aggeggio del genere? Bene, adesso hai due problemi: devi capire come funziona l'aggeggio e che cosa fa davvero dietro le quinte, e comunque non sai ancora come strutturare un progetto python. Se ti sembra un progresso, vai così senza problemi.

Terzo: io non ho mai capito davvero se questi "template" ultra-ingegnerizzati non sono poi in fondo solo delle gran trollate. Voglio dire, anche nella migliore delle ipotesi, a che ti servono? Se dovessi far partire dieci nuovi progetti python al giorno, capirei di automatizzare lo startup. Ma io (non so tu) se va bene faccio partire un progetto nuovo al mese. E ogni mese circa, perdo un quarto d'ora a installarmi manualmente i pacchetti che mi servono, creare le directory e i readme e le licenze... copiando da qualche altro progetto che avevo già fatto in passato e che più o meno andava bene. Direi che perdo un quarto d'ora di produttività al mese... boh, non mi cambia la vita.
In definitiva direi che è meglio *pensare e capire* come vale la pena di essere strutturato un progetto python, e poi farselo a mano. Un'ottima idea è vedere come fanno gli altri. O magari leggere qualche guida in giro. Per esempio, come parte della mia guida avevo scritto anche qualcosa a questo proposito https://pythoninwindows.blogspot.com/2018/08/installare-e-usare-python-su-windows6.html

Quarto: può capitare che uno si sveglia un mattino e dice "io so che oggi inizio da zero un progetto corporate da un milione di righe di codice"... allora uno magari parte da un template di questo tipo. Ma di solito (almeno, per me) non succede: uno magari inizia buttando giù uno script da una dozzina di righe, un'altro script accanto per i test... nessun pacchetto esterno, basta unittest... e poi poco per volta, man mano che il progetto cresce, lo organizzi meglio...

Dopo di che, nello specifico del template che hai linkato... ma ti serve quella roba? Boh, non so, forse... L'unica cosa che a occhio ti serve di sicuro, e che la libreria standard non ha, è un buon linter (ma ormai andrei su pylint, non so se flake8... boh, come credi però). Tutto il resto, dipende.
Inoltre tieni conto che quel template non comprende le cose "extra-python" che pure potrebbero (e dovrebbero, in certi casi) servirti: un version control come Git, un tool di deployment... va a sapere cos'altro.

Morale: concentrati sul codice che vuoi scrivere, e sulle tue idee. Al "contorno" ci pensi man mano che ne hai bisogno...

Offline sal

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
Re:Nuovo progetto, template di partenza
« Risposta #2 il: Ottobre 15, 2019, 14:28 »
grazie mille.
concordo con quanto dici, infatti ho accantonato l'idea del template di partenza, nel frattempo ho dato una letta a qualche altra guida. e poi ho iniziato a sfogliare progetti su github, anche se quest'ultima fase è stata un po' più complessa, in quanto mi manca ancora qualche aspetto di base di funzionamento del python. Quindi alcune modalità di ereditarietà di classi/interfacce mi hanno un po' confuso nel seguire il flusso applicativo senza metterli in debug, ma dalla semplice visualizzazione in github stesso.. ma intanto credo appunto di partire con una struttura semplice e via via complicare in base alle necessità.