View Full Version : Miglior Libro su Design Patterns
Qual'è secondo voi il miglior libro sui design patterns?
in italiano?
in inglese?
grazie
^TiGeRShArK^
09-02-2008, 11:43
non l'ho mai letto, ma tutti parlano bene dell'originale della gang of four...
EDIT: trovato il titolo preciso :p
Design Patterns: Elements of Reusable Object-Oriented Software (ISBN 0-201-63361-2)
Einstein
09-02-2008, 13:19
imperdibile anche quello di Martin Fowler: Patterns of Enterprise Application Architecture.
http://www.amazon.com/Enterprise-Application-Architecture-Addison-Wesley-Signature/dp/0321127420/ref=sr_1_1?ie=UTF8&s=books&qid=1202563044&sr=1-1
^TiGeRShArK^
09-02-2008, 13:37
...peccato che ho speso 116 euro a libri giusto due settimane fa e ora ho troppi libri da leggere... :stordita:
altrimenti un pensierino ce l'avrei fatto :p
non l'ho mai letto, ma tutti parlano bene dell'originale della gang of four...
Pentiti!
Lo dovresti conoscere a memoria.
Da abbinare a questo, altrimenti solo DP e' pericoloso:
http://www.amazon.com/Refactoring-Patterns-Addison-Wesley-Signature-Kerievsky/dp/0321213351
In Refactoring To Patterns c'e' il piu' bell'esempio di codice che abbia mai letto e, forse, quello che piu' mi ha influenzato: una versione di Hello World scritta mediante Design Pattern. Duecento righe di codice. Ho capito tante cose...
In Refactoring To Patterns c'e' il piu' bell'esempio di codice che abbia mai letto e, forse, quello che piu' mi ha influenzato: una versione di Hello World scritta mediante Design Pattern. Duecento righe di codice. Ho capito tante cose...
Vero...bello Refactoring to Patterns ;)
^TiGeRShArK^
09-02-2008, 14:08
Pentiti!
Lo dovresti conoscere a memoria.
Da abbinare a questo, altrimenti solo DP e' pericoloso:
http://www.amazon.com/Refactoring-Patterns-Addison-Wesley-Signature-Kerievsky/dp/0321213351
In Refactoring To Patterns c'e' il piu' bell'esempio di codice che abbia mai letto e, forse, quello che piu' mi ha influenzato: una versione di Hello World scritta mediante Design Pattern. Duecento righe di codice. Ho capito tante cose...
sono già pentito ma non ho il tempo materiale di leggere tutto quello che vorrei leggere :D
Quando ne trovo un pò lo leggo :O (insieme a quello di C#, Quello di Java EE, quelo di Seam e di Java Server Faces :cry: )
Una versione PHP di Hello World per la gioia di Cesare:
<?php
/********************************************************************
Model-View-Controller implementation according to POSA
(Pattern-Oriented Software Architecture
http://www.hillside.net/patterns/books/Siemens/book.html)
********************************************************************/
class HelloWorldController {
private $model;
function __construct($model) {
$this->model = $model;
}
function handleEvent($args) {
$this->model->setStrategy($args[2]);
$this->model->addText($args[1]);
}
}
class HelloWorldModel {
private $text;
private $observers = array();
private $strategy;
function attach($observer) {
$this->observers[] = $observer;
}
function getData() {
$facade = new HelloWorldFacade($this->strategy);
return $facade->getHelloWorld().$this->text."\n";
}
function addText($text='') {
$this->text = $text;
$this->notify();
}
function setStrategy($strategy) {
$this->strategy = $strategy;
}
function notify() {
foreach ($this->observers as $observer) {
$observer->update();
}
}
}
class HelloWorldView {
private $model;
function initialize($model) {
$this->model = $model;
$model->attach($this);
return $this->makeController();
}
function makeController() {
return new HelloWorldController($this->model);
}
function update() {
$this->display();
}
function display() {
echo $this->model->getData();
}
}
/*********************************************************************
"Business logic"
********************************************************************/
class HelloWorld {
function execute() {
return "Hello world";
}
}
class HelloWorldDecorator {
private $helloworld;
function __construct($helloworld) {
$this->helloworld = $helloworld;
}
function execute() {
return $this->helloworld->execute();
}
}
abstract class HelloWorldEmphasisStrategy {
abstract function emphasize($string);
}
class HelloWorldBangEmphasisStrategy extends HelloWorldEmphasisStrategy {
function emphasize($string) {
return $string."!";
}
}
class HelloWorldRepetitionEmphasisStrategy extends HelloWorldEmphasisStrategy {
function emphasize($string) {
return $string." and ".$string." again";
}
}
class HelloWorldEmphasizer extends HelloWorldDecorator {
private $strategy;
function HelloWorldEmphasizer($helloworld,$strategy) {
$this->strategy = $strategy;
parent::__construct($helloworld);
}
function execute() {
$string = parent::execute();
return $this->strategy->emphasize($string);
}
}
class HelloWorldStrategyFactory {
static function make($type) {
if ($type == 'repetition') return self::makeRepetitionStrategy();
return self::makeBangStrategy();
}
static function makeBangStrategy() {
return new HelloWorldBangEmphasisStrategy;
}
static function makeRepetitionStrategy() {
return new HelloWorldRepetitionEmphasisStrategy;
}
}
class HelloWorldFormatter extends HelloWorldDecorator {
function execute() {
$string = parent::execute();
return $string."\n";
}
}
class HelloWorldFacade {
private $strategy;
function __construct($strategyType) {
$this->strategy = HelloWorldStrategyFactory::make($strategyType);
}
function getHelloWorld() {
$formatter = new HelloWorldFormatter(
new HelloWorldEmphasizer(
new HelloWorld,$this->strategy));
return $formatter->execute();
}
}
$model = new HelloWorldModel;
$view = new HelloWorldView;
$controller = $view->initialize($model);
$controller->handleEvent($_SERVER['argv']);
?>
Una versione PHP di Hello World per la gioia di Cesare:
http://www.hillside.net/patterns/books/Siemens/book.html)
Mi ha colpito "Siemens", è la Siemens tedesca?
Un mio ex collega è andato alla Siemens, mi domandavo in quali ambito nelle società IT si possa trovare "ingegneria del software" fatta per bene.
Quando penso che nelle banche d'affari è comune usare il VBA di excel per far calcoli molto importanti, resto un po' basito.
cdimauro
11-02-2008, 07:34
Una versione PHP di Hello World per la gioia di Cesare:
:eek: :Puke: Ti secchi se ti dico che l'ho saltato a pié pari? :fiufiu: :D
Invece per la tua gioia:
Design Patterns in Python - Alex Martelli http://www.pycon.it/static/talks/it_pydp.pdf
:D
Mi ha colpito "Siemens", è la Siemens tedesca?
Un mio ex collega è andato alla Siemens, mi domandavo in quali ambito nelle società IT si possa trovare "ingegneria del software" fatta per bene.
Quando penso che nelle banche d'affari è comune usare il VBA di excel per far calcoli molto importanti, resto un po' basito.
Nelle banche a Londra. Programmano come meglio non si potrebbe.
A me piace anche Head First Design Patterns. Non tratta tutti i pattern, ma solo quelli usati più frequentemente. Però è chiaro e più accessibile del GoF, e gli esempi sono in java.
Secondo me merita.
RaouL_BennetH
11-02-2008, 11:30
Quando penso che nelle banche d'affari è comune usare il VBA di excel per far calcoli molto importanti, resto un po' basito.
Da quello che so, vba per calcoli complessi e superveloci è uno degli strumenti migliori.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.