Developers Training

Primi passi in Django (overview + tutorials): https://docs.djangoproject.com/en/2.2/#first-steps

Rifare i tutorial dentro un virtualenv. Da creare con pipenv: https://pipenv.readthedocs.io/en/latest/

Creare un account su https://github.com e uno su https://gitlab.com

(Eventualmente generare e) caricare la propria cave pubblica tra le impostazioni del proprio profilo nelle 2 piattaforme

https://docs.gitlab.com/ee/ssh/README.html#types-of-ssh-keys-and-which-to-choose

Installare git e seguire i primi passi: https://docs.gitlab.com/ee/gitlab-basics/start-using-git.html

Leggere il workflow git adottato da beFair:

Leggere release-management adottato da beFair;

Clonare il progetto simpleinvoice: https://github.com/befair/simpleinvoice

Test di Gasista Felice

Test da effettuare con Gasista Felice, ma da specificare meglio:

Clonare Gasista Felice: https://github.com/befair/gasistafelice

Recarsi sul branch master-dj17

approntare il sistema per Gasista Felice

installare Gasista Felice docs/dev/quickstart.md

lanciare i test di gasista felice

cercare di correggere uno che non va

fare una push sul proprio repository forkato

fare una pull request delle modifiche

Materiale di riferimento

Vim

Plugin e comandi utili

.vimrc di Luca `fero`

http://lugscandiano.org/index.php/Sopravvivere_con_vim

http://robertames.com/files/vim-editing.html

Piccole Guide Linux: VIM II edizione

Django

Scaricare ed installare Django

http://docs.djangoproject.com

Avviare un progetto ``django-admin startproject test_gasista``

Avviare un'applicazione ``./manage.py startapp base``

Installare l'applicazione (aggiungere in ``settings.py`` l'applicazione base alle INSTALLED_APPS)

Sincronizzare il db ``./manage.py syncdb``

Gestione di una chiave ManyToManyField

Documentazione con docstrings

Shell interattiva ipython ``./manage.py shell``

QuerySet

View, template, autenticazione

Prova di alcune batteries: databrowse, admin

Accenno a pinax

Attualmente si sviluppa con Django 1.3, ma l'obiettivo è di passare alla 1.4 per i nuovi progetti. Per questo la reference punta alla 1.4.

Manuale - sezione Getting started tutta con ordine

Release notes 1.4 - come punto di riferimento per cose che non funzionano nella 1.3

Una delle principali differenze che si percepiranno è nella strutturazione della directory del progetto Django che ora vede il manage.py in una directory superiore alla directory del progetto (non allo stesso livello del settings.py). Per alcune pratiche di utilizzo di Django nei progetti beFair si faccia riferimento allo stile di programmazione beFair.

Git: sviluppo collaborativo

Inizializzazione di un nuovo repository

Aggiornamento

Diff

Branch/Tag

Clonazione

Workflow: master, dev, dev-fero, dev-seldon, dev-dom

Git User Manual ('repositories e branches') - partire clonando il repository di Gasista Felice

gittutorial, presente agevolmente nei vostri sistemi con man gittutorial

gittutorial-2, presente agevolmente nei vostri sistemi con man gittutorial-2

Everyday GIT with 20 Commands Or So

Video Linus Torvalds on Git

Come ribasare un branch interattivamente,senza modificare la history

Python

Glossario Python https://docs.python.org/2/glossary.html

Stile di programmazione PEP-8

Quacosa di python idiomatico…

Python 3 OOP

Full Stack Python

Facts and myths about Python names and values

Testing

http://blog.fogcreek.com/refactoring-to-a-happier-development-team-interview-with-coraline-ada-ehmke/

IMPORTANTE

Se sei arrivato qui, vuol dire che “ti sei fatto un po' le ossa” e puoi leggere le linee guida che Luca ha definito per lo sviluppo di progetto python+Django.

Non ti conviene leggere prima questa sezione perché dovresti avere confidenza con codice python e Django.

https://github.com/feroda/gasistafelice/blob/master/doc-dev/source/GUIDELINES.rst da imparare “come il Padre Nostro” (si diceva…)

I commit si fanno con l'indirizzo @befair.it [PER ORA CHI NON LO HA NON SI FERMI LI FACCIA CON IL SUO INDIRIZZO PERSONALE]

Sphinx

Lo strumento di documentazione utilizzato è Sphinx e la sintassi .rst

TODO

Books

https://github.com/vhf/free-programming-books

Appunti di VueJS e web UI

17/02/2024 e affini

v-use: da guardare. Sembra che bindi variabili del modello con il localStorage;

nel localStorage si possono salvare le preferenze dell'utente, ma attenzione se l'utente utilizza l'applicazione su più dispositivi

em vs rem: nel secondo caso la proporzione è relativa al font-size nel tag <html>

concetto di variabile Reactive

griglia responsive con v-col e attributi sm e md

dal server ottengo il contenuto, ma il javascript può accedere a tutto il browser, url compreso

installare estensione Vue DevTools e usare il mirino per debuggare un componente Vue

props: parametri che si possono passare a quella componente

structuredClone è una funzione Javascript recente per clonare un oggetto Javascript

Metodi array Javascript:

map: applica la modifica ad ogni elemento

every: tutti soddisfano

some: qualcuno soddisfa (per i flag)

filter: restituisce i record se true

find: trova

findLast: trova l'ultimo

findIndex: trova indice

findLastIndex: trova l'ultimo indice

Object.assign è come l'update in python. NOTA: Modifica il primo parametro e lo restituisce anche;