He estado desarrollando en el iPhone con Objective-C desde hace unos meses y he estado aplicando las mejores prácticas aprendidas y refinadas al desarrollar aplicaciones con Java. Estos incluyen: diseño de clases que tienen una responsabilidad única, aplicación de patrones de diseño cuando corresponda y escritura short methods que hacen una sola cosa. Para mí, estas prácticas son beneficiosas desde una perspectiva clean-code y son en gran parte independientes del dominio.Escribiendo código limpio, rendimiento para el iPhone
Estoy muy contento con los resultados. Sin embargo, algunos desarrolladores de iPhone me han aconsejado de forma independiente contra esto, ya que dicen que escribo demasiadas clases y demasiados métodos. En varios momentos se me ha advertido:
- La pila soplará
- Demasiados clases se ralentizará el iPhone hacia abajo (es decir, perceptible por el usuario)
- llamadas a métodos anidadas perjudicarán el rendimiento (es decir, perceptible por el usuario)
En la práctica no he tenido estos problemas. Si miro superficialmente a iPhone performance metrics, me parece que es poco probable que las llamadas al método extra y la sobrecarga del ciclo de vida del objeto para implementar patrones comunes y métodos cortos creen cualquier demora perceptible para el usuario. Sin embargo, el consejo de otros desarrolladores de iPhone me ha asustado un poco.
Me gustaría continuar aprendiendo y perfeccionando las prácticas de programación de dominio independiente que me han servido bien en el pasado, pero cuando desarrollo en el iPhone no deseo tomar una ruta que terminará en dolor.
Por lo tanto, con respecto a esta plataforma, ¿debería renunciar a algunas de las mejores prácticas comunes y ser más consciente de optimizar los gastos generales del ciclo de vida de llamadas y objetos del método? O debería continuar siguiendo Knuth's consejo:
optimización prematura es la raíz de todo mal (o al menos la mayor parte de ella) en programación
Me pregunto si podría mostrar algunos ejemplos de su código. Me gustaría ver cómo estás usando tu experiencia Java en el mundo Cocoa Touch. ¿Tiene algún repositores público en github o algo similar con sus fuentes ObjC? – Piotr