Ho sviluppato su iPhone con Objective-C per alcuni mesi e ho applicato le best practice apprese e perfezionate durante lo sviluppo di applicazioni con Java. Questi includono: la progettazione di classi che hanno una sola responsabilità, l'applicazione di modelli di progettazione, se del caso, e la scrittura di short methods che fanno una cosa sola. Per me queste pratiche sono entrambe positive da una prospettiva clean-code e sono in gran parte indipendenti dal dominio.Scrittura pulita, codice performante per l'iPhone
Sono stato abbastanza soddisfatto dei risultati. Tuttavia, alcuni sviluppatori di iPhone mi hanno consigliato in modo indipendente contro questo, perché dicono che scrivo troppe classi e troppi metodi. In vari momenti sono stato messo in guardia:
- Lo stack soffierà
- Troppi classi rallenterà l'iPhone verso il basso (cioè percepibile dall'utente)
- chiamate di metodo nidificati farà male le prestazioni (cioè percepibile dal utente)
In pratica non ho riscontrato questi problemi. Guardando superficialmente ad alcuni iPhone performance metrics mi sembra che le chiamate extra al metodo e il sovraccarico del ciclo di vita degli oggetti richiesti per implementare modelli comuni e metodi brevi non creino probabilmente ritardi percepibili dall'utente. Tuttavia, il consiglio di altri sviluppatori iPhone mi ha spaventato un po '.
Mi piacerebbe continuare ad apprendere e perfezionare le pratiche di programmazione agnostica del dominio che mi hanno servito bene in passato, ma quando si sviluppa su iPhone non desidero percorrere una rotta che finirà nel dolore!
Quindi, per quanto riguarda questa piattaforma, dovrei abbandonare alcune best practice comuni ed essere più consapevole dell'ottimizzazione dei costi generali di chiamata di metodo e ciclo di vita degli oggetti? O devo continuare a seguire Knuth's consiglio:
ottimizzazione prematura è la radice di ogni male (o almeno la maggior parte di esso) in programmazione
Mi chiedo se potresti mostrare alcuni esempi del tuo codice. Mi piacerebbe vedere come stai usando la tua esperienza Java nel mondo Cocoa Touch. Avete qualche repository pubblico su github o qualcosa di simile con le vostre fonti ObjC? – Piotr