Diferencia entre revisiones de «Introducción a Patrones de Diseño en C++ con Qt4:Racionalizacion»

Contenido eliminado Contenido añadido
Sin resumen de edición
Línea 3:
=Justificación para este libro=
 
Como en la Universidad de Suffolk, seguimos la tendencia popular y continuamos enseñando programación orientada a objetos usando C++. Por varios años enseñamos un curso de un semestre de OOP/C++ stándarestándar que seguía una secuencia CS1-CS2 basada en el lenguaje de programación C. StudentsLos developedestudiantes substantialdesarrollaron masterysubstancial ofmaestría thedel corelenguaje C++ languagedel andnúcleo any understandingentendimiento ofde somealgunos conceptos de OO conceptscomo suchson asla encapsulationencapsulación, refactoring,rehechura andy tooldesarrollo developmentde herramientas. HoweverSin embargo, weencontramos found thatque STL ises auna librarylibrería thatque oftenofrece overwhelmsdificultades studentsa andlos causesestudiantes themy tocausa spendque toopierdan muchmucho timetiempo onconstruyendo low-levelprogramación programmingde constructsbajo andnivel templatey problemas de issuesplantillas. STL isno notes enoughcapaz tode writeescribir applicationsaplicaciones with graphicalcon interfaces gráficas, andy anotheralgún otro framework woulddebía haveser tousado be useden anywayconsecuencia.
 
During the summer of 2003 we got together and decided to develop a book that would approach OOP/C++ at a higher level. We wanted to provide a substantial introduction to GUI programming using the multi-platform Qt framework, as well as touch upon some important design patterns that are used.
 
Durante el verano del 2003 nos hartamos y decidimos desarrollar un libro que pudiera aprovechar OOP/C++ en un alto nivel. Buscamos proporcionar una introducción sustancial a la programación de GUI usando el framework Qt multiplataforma, así como tocar algunos patrones de diseño importantes que serían usados.
We designed this first as a textbook to be used in a university class, but it is designed in an extensible way and crammed with information that will make it useful for readers with a wide range of backgrounds: from those who already program in C or another procedural language and wish to learn OO and GUI programming, to those who have no C background but are familiar with Basic, Java, Python, or another programming language and wish to learn C++. The first part of the book is aimed at familiarizing all audiences with basic C++ elements, OO concepts, UML, and the core Qt classes.
 
We believe that readers will understand ideas best when they apply them, and we found this to be especially true with design patterns. Many of the Qt classes or code examples are concrete implementations of some of the more popular design patterns described in [Gamma95]. For each design pattern that we discuss, we make available the source code for our example and include exercises that challenge readers to reuse, refine, and extend that code.
 
Diseñamos este primeramente como un libro de texto para ser usado en clases de la universidad, pero fue diseñado de forma extensible y repleta de información que le hiciera útil para lectores con un cierto rango de respaldos: para aquellos que ya programaban en C o algún otro lenguaje progresivo y desearan aprender programación OO y GUI, para aquellos que no tuvieran ese antecedente pero estuviesen familiarizados con Basic, Java, Python, o algún otro lenguaje de programación y desearan aprender C++. La primera parte del libro está encaminada a familiarizar a todas las audiencias con los elementos de C++, conceptos de OO, UML, y las clases Qt de núcleo.
Reuse of libraries requires an understanding not only of libraries but also of modular software, the linker, and library design. We have included a substantial amount of advice distilled from experience (ours and our students') and from online discussion communities. We found that this helped our students to cope with most of the problems they encountered in courses based on early versions of this book.
 
We used preliminary versions of this book in Suffolk University's OOP/C++ course each semester during the academic years 2003-2004 through 2005-2006, with increasingly promising results and with much valuable feedback from our students. In the earlier version of this course students typically would write thousands of lines of code for their programming projects. By contrast, with the emphasis now on code reuse and the exploitation of robust tool libraries, student programming projects have fewer lines of student code but are much more interesting and, we feel, much more valuable learning experiences.
 
Creemos que los lectores entienden mejor las ideas cuando las aplican, y encontramos que esto es especialmente cierto con los patrones de diseño. Muchas de las clases Qt o ejemplos de código son implementaciones concretas de los patrones de diseño más populares descritos en [http://cartan.cas.suffolk.edu/oopdocbook/opensource/bibliography.html#gof95| Gamma95]. Para cada patrón de diseño que discutimos, hacemos disponible el código fuente de nuestro ejemplo e incluimos ejercicios que retan al lector a reusar, refinar y extender ese código.
There are many C++ books out there that either teach C++ or teach Qt, but we found that the C++ books use a variety of different programming styles, and they emphasize some topics that we do not use very often with Qt. The Qt books we have seen all assume prior C++ knowledge. This book, by contrast, assumes no C or C++ programming experience, and it covers the language features of C++ that you need to know in order to use Qt 4 classes as early as possible in the examples and assignments. It can be used as a textbook for teaching C++ and design patterns, with an emphasis on open-source code reuse.
 
 
As far as we know, there are no university-level C++ textbooks that contain Qt examples and also provide review questions, exercises, solutions, and lecture slides for instructors.
El reuso de librerías requiere un entendimiento no solo de las librerías, sino también del sofware modular, el enlazador y diseño de librería. Hemos incluido una cantidad substancial de advertencias destiladas por la experiencia (nuestra y de nuestros estudiantes) y desde comunidades de discución en línea. Encontramos que esto ayudaba a nuestros estudiantes s hacer frente a la mayoría de los problemas que encontraron en cursos basados en las primeras versiones de este libro.
 
 
Utilizamos versiones preliminares de este libro en el curso de OOP/C++ de la Universidad de Suffolk durante cada semestre escolar de los años 2003-2004 hasta 2005-2006, con resultados prometedoramente ascendentes y con valiosas peticiones de nuestros estudiantes. En la versión anterior de este curso los estudiantes típicamente acostumbraban escribir cientos de líneas de código para programar sus proyectos. En contraste, con el énfasis en el reuso de código y la explotación de librerías de herramientas robustas, los estudiantes programan proyectos que tienen menos líneas de código del estudiante pero son mucho más interesantes, y creemos, mucho más valiosos como experiencias de aprendizaje.
 
 
Existen muchos libros de C++ por allí que también enseñan C++ o enseñan Qt, pero encontramos que los libros de C++ usan una variedad distinta de estilos de programación, y hacen énfasis en algunos puntos que nosotros no usamos mucho con Qt. los libros sobre Qt que hemos visto asumen previos conocimientos de C++. Este libro, por el contrario, asume que no se tiene experiencia programando C++ o C, y cubre las características de lenguaje de C++ que necesitas saber con el fin de usar las clases Qt 4 tan pronto como sea posible en ejemplos y asignaciones. Esto puede ser un útil libro de texto para enseñar C++ y patrones de diseño, con énfasis en el reuso de código abierto.
 
 
Hasta donde podemos saber, no hay libros de C++ a nivel universitario que también contengan revisión de preguntas, ejercicios y lecturas alternativas para los instructores.
 
 
En Marzo del 2009 Paynalton, un aprendiz autodidacta de programación, buscaba una manera de crear una interfase gráfica en Qt 4 y buscó documentación que le enseñara a realizar esta tarea. Sin embargo la única fuente apropiada que encontró fue este libro que había sido publicado en la red. Por ello comenzó a leerlo al tiempo que realizaba una traducción al castellano con el fin de aprender y, al mismo tiempo, ayudar a otros que posteriormente buscaran este mismo conocimiento a encontrar la documentación en su idioma.
----
[[Introducción a Patrones de Diseño en C++ con Qt4:Agradecimientos| << Agradecimientos]][[Introducción a Patrones de Diseño en C++ con Qt4| Contenido]][[Introducción a Patrones de Diseño en C++ con Qt4:Racionalizacion| Racionalización del libro >>]]