LibriOltre - la rubrica sui libri di Liberi Oltre discussion
Suggerimenti di lettura
>
Spunti per informatici in erba
date
newest »

message 1:
by
Paolo
(new)
Feb 06, 2021 02:08PM

reply
|
flag

- C, C#, SQL
- UML distilled - Fowler
- sistemi informativi
- sicurezza
Poi qualche lettura su
Turing
Raymond
Stallman
Torvalds

Da scienziato la mia programmazione è: devo fare questo calcolo, implemento l'algoritmo. Ah ma mi serve anche questo: aggiungo feature. E così via fino a quando ci si accorge che si ha bisogno di un approccio più ragionato e ricominciare tutto è troppo.
Qualche riferimento dove studiare come disegnare un codice a monte per rendere l'aggiunta di feature più facile e ordinata?

Da scienziato la mia programmazione è: devo fare questo calcolo, implemento l'algoritmo. Ah ma mi serve anche questo: aggiungo feature. E così via fino a che quand..."
Ciao Lorenzo,
come libro abbastanza generale sull'analisi e la progettazione del codice (object oriented) ti consiglierei il libro di Craig Larman Applying UML and Patterns. La quantità di UML presentata è molto limitata e si limita a quello che serve per poter esprimere su di una lavagna o un foglio di carta il design, e i pattern presentati sono utili per avere soluzioni ripetibili.
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development
A livello di codice il libro è Java-based, ma i principi si possono applicare a qualsiasi linguaggio (io li ho applicati in Python, per esempio).
Pensando invece al fatto di dover modificare e riusare il codice esistente, in modo da non dover buttare via tutto e ricominciare da capo, ti consiglierei di dare un'occhiata al libro di Martin Fowler sul Refactoring (= migliorare la qualità del codice senza cambiarne il comportamento osservabile).
Refactoring: Improving the Design of Existing Code
Ciao Lorenzo,
io suggerisco per incominciare questi quattro libri:
- Design Patterns: Elements of Reusable Object-Oriented Software Oltre a essere un classico, identifica bene il problema di come organizzare il codice in modo generale. Gli esempi sono in C++ e Smalltalk, ma i principi sono comunque validi.
- Refactoring: Improving the Design of Existing Code Molto utile per capire come far diventare il codice migliore - nel senso di più espressivo, meno ridondante, più facile da modificare.
- Refactoring to Patterns Libro che mette insieme i due principi precedenti, mostrando come muoversi verso design del codice che esprimano con maggiore chiarezza gli intenti del developer.
Andando poi verso aspetti più avanzati suggerisco sicuramente Test-Driven Development: By Example. Dover scriver il proprio codice guidato dai test aiuta moltissimo ad avere un design più pulito e meno ridondante.
Infine in termini di architettura software propriamente detta un libro abbastanza buono è Clean Architecture. Qualche volta risulta un po' troppo discorsivo, ma i principi che presenta sono quelli importanti.
io suggerisco per incominciare questi quattro libri:
- Design Patterns: Elements of Reusable Object-Oriented Software Oltre a essere un classico, identifica bene il problema di come organizzare il codice in modo generale. Gli esempi sono in C++ e Smalltalk, ma i principi sono comunque validi.
- Refactoring: Improving the Design of Existing Code Molto utile per capire come far diventare il codice migliore - nel senso di più espressivo, meno ridondante, più facile da modificare.
- Refactoring to Patterns Libro che mette insieme i due principi precedenti, mostrando come muoversi verso design del codice che esprimano con maggiore chiarezza gli intenti del developer.
Andando poi verso aspetti più avanzati suggerisco sicuramente Test-Driven Development: By Example. Dover scriver il proprio codice guidato dai test aiuta moltissimo ad avere un design più pulito e meno ridondante.
Infine in termini di architettura software propriamente detta un libro abbastanza buono è Clean Architecture. Qualche volta risulta un po' troppo discorsivo, ma i principi che presenta sono quelli importanti.

Lavoro da anni solo con Matlab e Python.

Lavoro da anni solo con Matlab e Python."
Come dice Paolo, gli esempi sono validi a prescindere dal linguaggio. Alcune cose vanno adattate, ma questo è un altro discorso. http://www.aleax.it/goo_pydp.pdf questo è anche buono (presentazione di Alex Martelli su DP in Python)
Books mentioned in this topic
Design Patterns: Elements of Reusable Object-Oriented Software (other topics)Refactoring: Improving the Design of Existing Code (other topics)
Refactoring to Patterns (other topics)
Test-Driven Development: By Example (other topics)
Clean Architecture (other topics)
More...