Sobes.tech
Middle

La Programmazione Orientata agli Oggetti (OOP) è un approccio allo sviluppo di software in cui il codice è organizzato sotto forma di oggetti Incapsulamento L’incapsulamento è l’unione di dati e metodi che lavorano con questi dati all’interno di una stessa classe, oltre alla restrizione dell’accesso diretto allo stato interno dell’oggetto. In parole semplici: l’oggetto gestisce i propri dati, e il codice esterno interagisce con esso tramite metodi. Astrazione L’astrazione consiste nel evidenziare solo le caratteristiche importanti dell’oggetto e nel nascondere i dettagli della sua implementazione. In parole semplici: all’utente importa cosa fa l’oggetto, non come lo fa esattamente. Polimorfismo Il polimorfismo è la capacità di oggetti con implementazioni diverse di usare un’interfaccia comune. Nei test, questo aiuta a scrivere codice universale che funziona con diversi tipi di dati o classi. Esempio in Python: class Animal: def make_sound(self): pass class Dog(Animal): def make_sound(self): return "Bau!" class Cat(Animal): def make_sound(self): return "Miao!" def animal_sound(animal: Animal): print(animal.make_sound()) dog = Dog() cat = Cat() animal_sound(dog) # Bau! animal_sound(cat) # Miao! Ne test automatizzati, il polimorfismo è utile per: - Creare metodi di verifica universali - Implementare diverse strategie di test tramite un’interfaccia - Supportare diverse versioni di API/UI senza modificare i test Ereditarietà L’eredità è un meccanismo che permette a una nuova classe di usare automaticamente una classe esistente, ereditandone proprietà e metodi. In parole semplici: la nuova classe riutilizza il codice della classe genitore e lo amplia se necessario. Git 1. Sistemi di controllo di versione. Locale, centralizzato, distribuito. 2. Concetti di base. Repository, indice, commit, puntatori, branch, copia di lavoro. 3. Lavorare con il repository. Comandi: init, clone, status 4. Creare un commit. Comandi: add, commit. 5. Creare, visualizzare, cambiare tra branch, eliminare. Comandi: branch, checkout, log, diff. 6. Annullare modifiche. Comandi: restore, rm, checkout, revert. 7. Unire modifiche tra branch. Comandi: merge, cherry-pick, rebase. 8. Lavorare con il repository remoto. Comandi: fetch, pull, push. 9. Lavorare con GitHub, fork e Pull Requests.