SlideShare a Scribd company logo
1 of 14
En C# y en Español



           Martín Salías
            Southworks
Introducción
                                patrones
                           valores y principios
                               motivación




                                 Clase


          Comportamiento                          Estado


Métodos                                                    Colecciones



                             Frameworks
Motivación
• Los programas se leen más seguido de lo que
  se escriben.
• Nunca se termina; siempre se invierte más en
  modificaciones que inicialmente.
• Se estructuran con un juego básico de
  conceptos de estado y control de flujo.
• Los lectores deben entender detalle y
  concepto, moviéndose de uno a otro.
Cálculo
costototal = costodesarrollo + costomantenimiento



                    costocomprensión
                  + costocambio
                  + costoprueba
                  + costodespliegue
Valores


Comunicación

 Simplicidad

 Flexibilidad
Principios

•   Consecuencias locales
•   Minimizar la repetición
•   Lógica y datos juntos
•   Simetría
•   Expresiones declarativas
•   Frecuencia de cambios
PATRONES
Clases
Class                       Specialization
• Simple Superclass Name    • Subclass
• Qualified Subclass name   • Implementor
• Abstract Interface        • Inner Class
• Versioned Interface       • Instance-specific behavior
• Abstract Class            • Conditional
• Value Object              • Delegation
                            • Pluggable Selector
                            • Anonymous Inner Class
                            • Library Class
Estado
State                     Variable
• Access                  • Local Variable
   – Direct Access        • Field
   – Indirect Access      • Parameter
• Common State            • Collecting Parameter
• Variable State          • Parameter Object
• Extrinsic State         • Constant
                          • Role-Suggesting Name
                          • Declared Type
                          • Initialization
                             – Eager Initialization
                             – Lazy Initialization
Comportamiento
•   Control Flow          •   Exceptional Flow
•   Main Flow             •   Guard Clause
•   Message               •   Exception
•   Choosing Message      •   Checked Exception
•   Double Dispatch       •   Exception Propagation
•   Decomposing Message
•   Reversing Message
•   Inviting Message
•   Explaining Message
Métodos
•   Composed Method            •   Creation
•   Intention-Revealing Name   •   Complete Constructor
•   Method Visibility          •   Factory Method
•   Method Object              •   Internal Factory
•   Overriden Method           •   Collection Accessor Method
•   Overloaded Method          •   Boolean Setting Method
•   Method Return Type         •   Query Method
•   Method Comment             •   Equality Method
•   Helper Method              •   Getting Method
•   Debug Print Method         •   Setting Method
•   Conversion                 •   Safe Copy
•   Conversion Method
•   Conversion Constructor
Colecciones
•   Array
•   Iterable
•   Collection
•   List
•   Set
•   SortedSet
•   Map
Recursos
blog.salias.com.ar
         martin@salias.com.ar



DEBATE

More Related Content

More from Martin Salias

Restricciones para la Creatividad
Restricciones para la CreatividadRestricciones para la Creatividad
Restricciones para la CreatividadMartin Salias
 
Arquitectura de Software en el Ciclo de Vida Ágil
Arquitectura de Software en el Ciclo de Vida ÁgilArquitectura de Software en el Ciclo de Vida Ágil
Arquitectura de Software en el Ciclo de Vida ÁgilMartin Salias
 
Organizaciones y Liderazgo Ágiles
Organizaciones y Liderazgo ÁgilesOrganizaciones y Liderazgo Ágiles
Organizaciones y Liderazgo ÁgilesMartin Salias
 
Building Hybrid Applications
Building Hybrid ApplicationsBuilding Hybrid Applications
Building Hybrid ApplicationsMartin Salias
 
Antipatrones de Software
Antipatrones de SoftwareAntipatrones de Software
Antipatrones de SoftwareMartin Salias
 
Introduccion a la Arquitectura de Software
Introduccion a la Arquitectura de SoftwareIntroduccion a la Arquitectura de Software
Introduccion a la Arquitectura de SoftwareMartin Salias
 
Arquitectura y ciclo de vida ágil en la práctica
Arquitectura y ciclo de vida ágil en la prácticaArquitectura y ciclo de vida ágil en la práctica
Arquitectura y ciclo de vida ágil en la prácticaMartin Salias
 
High Maturity Agile Practice
High Maturity Agile PracticeHigh Maturity Agile Practice
High Maturity Agile PracticeMartin Salias
 
Explosión de Lenguajes
Explosión de LenguajesExplosión de Lenguajes
Explosión de LenguajesMartin Salias
 

More from Martin Salias (17)

Restricciones para la Creatividad
Restricciones para la CreatividadRestricciones para la Creatividad
Restricciones para la Creatividad
 
LeSS Intro
LeSS IntroLeSS Intro
LeSS Intro
 
Arquitectura Ágil
Arquitectura ÁgilArquitectura Ágil
Arquitectura Ágil
 
Arquitectura de Software en el Ciclo de Vida Ágil
Arquitectura de Software en el Ciclo de Vida ÁgilArquitectura de Software en el Ciclo de Vida Ágil
Arquitectura de Software en el Ciclo de Vida Ágil
 
Organizaciones y Liderazgo Ágiles
Organizaciones y Liderazgo ÁgilesOrganizaciones y Liderazgo Ágiles
Organizaciones y Liderazgo Ágiles
 
Diseño Agile
Diseño AgileDiseño Agile
Diseño Agile
 
Why JavaScript
Why JavaScriptWhy JavaScript
Why JavaScript
 
Building Hybrid Applications
Building Hybrid ApplicationsBuilding Hybrid Applications
Building Hybrid Applications
 
Jas 2012 keynote
Jas 2012 keynoteJas 2012 keynote
Jas 2012 keynote
 
Antipatrones de Software
Antipatrones de SoftwareAntipatrones de Software
Antipatrones de Software
 
Introduccion a la Arquitectura de Software
Introduccion a la Arquitectura de SoftwareIntroduccion a la Arquitectura de Software
Introduccion a la Arquitectura de Software
 
Refactoring
RefactoringRefactoring
Refactoring
 
Solid Principles
Solid PrinciplesSolid Principles
Solid Principles
 
Arquitectura y ciclo de vida ágil en la práctica
Arquitectura y ciclo de vida ágil en la prácticaArquitectura y ciclo de vida ágil en la práctica
Arquitectura y ciclo de vida ágil en la práctica
 
TDD Workshop
TDD WorkshopTDD Workshop
TDD Workshop
 
High Maturity Agile Practice
High Maturity Agile PracticeHigh Maturity Agile Practice
High Maturity Agile Practice
 
Explosión de Lenguajes
Explosión de LenguajesExplosión de Lenguajes
Explosión de Lenguajes
 

Recently uploaded

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 

Recently uploaded (20)

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 

C# patrones y principios

  • 1. En C# y en Español Martín Salías Southworks
  • 2. Introducción patrones valores y principios motivación Clase Comportamiento Estado Métodos Colecciones Frameworks
  • 3. Motivación • Los programas se leen más seguido de lo que se escriben. • Nunca se termina; siempre se invierte más en modificaciones que inicialmente. • Se estructuran con un juego básico de conceptos de estado y control de flujo. • Los lectores deben entender detalle y concepto, moviéndose de uno a otro.
  • 4. Cálculo costototal = costodesarrollo + costomantenimiento costocomprensión + costocambio + costoprueba + costodespliegue
  • 6. Principios • Consecuencias locales • Minimizar la repetición • Lógica y datos juntos • Simetría • Expresiones declarativas • Frecuencia de cambios
  • 8. Clases Class Specialization • Simple Superclass Name • Subclass • Qualified Subclass name • Implementor • Abstract Interface • Inner Class • Versioned Interface • Instance-specific behavior • Abstract Class • Conditional • Value Object • Delegation • Pluggable Selector • Anonymous Inner Class • Library Class
  • 9. Estado State Variable • Access • Local Variable – Direct Access • Field – Indirect Access • Parameter • Common State • Collecting Parameter • Variable State • Parameter Object • Extrinsic State • Constant • Role-Suggesting Name • Declared Type • Initialization – Eager Initialization – Lazy Initialization
  • 10. Comportamiento • Control Flow • Exceptional Flow • Main Flow • Guard Clause • Message • Exception • Choosing Message • Checked Exception • Double Dispatch • Exception Propagation • Decomposing Message • Reversing Message • Inviting Message • Explaining Message
  • 11. Métodos • Composed Method • Creation • Intention-Revealing Name • Complete Constructor • Method Visibility • Factory Method • Method Object • Internal Factory • Overriden Method • Collection Accessor Method • Overloaded Method • Boolean Setting Method • Method Return Type • Query Method • Method Comment • Equality Method • Helper Method • Getting Method • Debug Print Method • Setting Method • Conversion • Safe Copy • Conversion Method • Conversion Constructor
  • 12. Colecciones • Array • Iterable • Collection • List • Set • SortedSet • Map
  • 14. blog.salias.com.ar martin@salias.com.ar DEBATE