How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
Ralph Johnson, Erich Gamma, John Vlissides, Richard Helm
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves. The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk. 0201633612B07092001
This volume is a handbook for enterprise system developers, guiding them through the intricacies and lessons learned in enterprise application development. It provides proven solutions to the everyday problems facing information systems developers.
Features the best practices in the art and science of constructing software--topics include design, applying good techniques to construction, eliminating errors, planning, managing construction activities, and relating personal character to superior software. Original. (Intermediate)
Krzysztof Cwalina, Brad Abrams
A new edition of this title is available, ISBN-10: 0321545613 ISBN-13: 9780321545619 "This book is an absolute must-read for all .NET developers. It gives clear do and don't guidance on how to design class libraries for .NET. It also offers insight into the design and creation of .NET that really helps developers understand the reasons why things are the way they are. This information will aid developers designing their own class libraries and will also allow them to take advantage of the .NET class library more effectively." --Jeffrey Richter, author/trainer/consultant, Wintellect "Framework Design Guidelineswill help you in two important ways. First, any .NET developer will benefit from a greater understanding of the design principles that govern the .NET Base Class Library. Second, a deeper understanding of these principles will help you to create software that integrates well with the .NET environment. Quite frankly, this book should be on every .NET developer's bookshelf." --Bill Wagner, founder and consultant, SRT Solutions, author ofEffective C# "Not since Brooks'The Mythical Man Monthhas the major software maker of its time produced a book so full of relevant advice for the modern software developer. This book has a permanent place on my bookshelf and I consult it frequently." --George Byrkit, senior software engineer, Genomic Solutions "This book is a must-read for all architects and software developers thinking about frameworks. The book offers insight into some driving factors behind the design of the .NET Framework. It should be considered mandatory reading for anybody tasked with creating application frameworks." --Peter Winkler, senior software engineer, Balance Technology Inc. "Frameworks are valuable but notoriously difficult to construct: Your every decision must be geared towards making them easy to be used correctly and difficult to be used incorrectly. This book takes you through a progression of recommendations that will eliminate many of those downstream 'I wish I'd known that earlier' moments. I wish I'd read it earlier." --Paul Besly, principal technologist, QA "Filled with information useful to developers and architects of all levels, this book provides practical guidelines and expert background information to get behind the rules.Framework Design Guidelinestakes the already published guidelines to a higher level, and it is needed to write applications that integrate well in the .NET area." --Cristof Falk, software engineer Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Librariesteaches developers the best practices for designing system frameworks and reusable libraries for use with the Microsoft .NET Framework and WinFX. This book focuses on the design issues that directly affect the programmability of a framework, specifically its publicly accessible APIs. This book can improve the work of any .NET developer producing code that other developers will use. An added benefit is a collection of annotations to the guidelines by various members of the Microsoft .NET Framework and WinFX teams, which provide a lively discussion of the motives behind the guidelines, along with examples of good reasons for breaking the guidelines. Microsoft architects Krzysztof Cwalina and Brad Abrams offer guidelines for framework design from the top down. From their long experience and deep insight, you will learn The general philosophy of framework design Principles and guidelines that are fundamental to overall framework design Naming guidelines for the various parts of a framework, such as namespaces, types, and members Guidelines for the design of types and members of types Issues and guidelines that are important to ensure appropriate extensibilityin your framework Guidelines for working with exceptions, the preferred error reporting mechanism in the .NET Framework and WinFX Guidelines for extending and using types that commonly appear in frameworks Guidelines for and examples of common framework design patterns Guidelines in this book come in four major forms:Do,Consider,Avoid, andDo not. In general, aDoguideline should almost always be followed, aConsiderguideline should generally be followed, anAvoidguideline indicates that something is generally not a good idea, and aDo notguideline indicates something you should almost never do. Every guideline includes a discussion of its applicability, and most guidelines include a code example. A companion DVD includes theDesigning .NET Class Librariesvideo series, instructional presentations by the authors on design guidelines for developing classes and components that extend the .NET Framework. A sample API specification and other useful resources are also included.
Illustrating some of the most common misconceptions and pitfalls software developers face using relational databases, this book helps readers use a database to produce the most efficient results, and turn sluggish, inflexible code into high-quality, reliable solutions.
Are you an SQL programmer that, like many, came to SQL after learning and writing procedural or object-oriented code? Or have switched jobs to where a different brand of SQL is being used, or maybe even been told to learn SQL yourself? If even one answer is yes, then you need this book. A "Manual of Style" for the SQL programmer, this book is a collection of heuristics and rules, tips, and tricks that will help you improve SQL programming style and proficiency, and for formatting and writing portable, readable, maintainable SQL code. Based on many years of experience consulting in SQL shops, and gathering questions and resolving his students' SQL style issues, Joe Celko can help you become an even better SQL programmer. + Help you write Standard SQL without an accent or a dialect that is used in another programming language or a specific flavor of SQL, code that can be maintained and used by other people. + Enable you to give your group a coding standard for internal use, to enable programmers to use a consistent style. + Give you the mental tools to approach a new problem with SQL as your tool, rather than another programming language - one that someone else might not know!
Sajal Dam, Grant Fritchey
SQL Server 2008 Query Performance Tuning Distilled presents a direct trouble–shooting methodology for identifying poorly-performing stored procedures and queries, isolating the causes of that poor performance, and fixing the underlying problems. Each chapter is dedicated to one of the top causes of poorly performing queries and shows methods for identifying and dealing with the problems in that chapter’s domain. Emphasis is always put upon or placed upon practical methods that you can put to immediate use in your day–to–day work. SQL Server 2008 functionality, tips, and tricks are emphasized in each subject area. Emphasizes the practical. Does not bury readers in theory. Gives readers practical techniques to immediately apply in their daily work. Dedicates a chapter to each of the most common, performance–related problem areas. What you’ll learn Identify and fix poorly performing queries that are hurting your business. Read query execution plans and identify bottlenecks in performance. Record system performance metrics for trend analysis. Learn to design databases and write Transact–SQL code to avoid common problems. Understand what an index is, what it does, and how to build one. Use industry accepted best practices and understand how to develop your own to arrive at optimal database performance. Who this book is for SQL Server Query Performance Tuning Distilled is aimed at anyone writing business–critical Transact–SQL queries, and also at those responsible for the continued good performance of those queries. Developers, database administrators, business intelligence analysts, and any others who develop Transact–SQL queries will find this book an indispensable resource for getting the most out of what SQL Server 2008 has to offer.
--C. J. Date Three decades ago relational technology put the database field on a sound, scientific foundation for the first time. But the database industry--vendors, users, experts, and the trade press--has essentially flouted its principles, focusing instead on a cookbook, product-specific approach, devoid of conceptual understanding. The consequences have been costly: DBMS products, databases, development tools, and applications dont always perform up to expectation or potential, and they can encourage the wrong questions and provide the wrong answers. Practical Issues in Database Management is an attempt to remedy this intractable and costly situation. Written for database designers, programmers, managers, and users, it addresses the core, commonly recurring issues and problems that practitioners--even the most experienced database professionals--seem to systematically misunderstand, namely: *Unstructured data and complex data types *Business rules and integrity enforcement *Keys *Duplicates *Normalization and denormalization *Entity subtypes and supertypes *Data hierarchies and recursive queries *Redundancy *Quota queries *Missing information Fabian Pascal examines these crit
The introduction of the Microsoft® .NET framework not only brings developers a powerful, cohesive toolset for the development of new Windows and Web applications -- it also replaces COM as the technology of choice for building components on Windows platforms. Components are the fundamental building blocks of .NET applications; they can both simplify and add flexibility to complex applications. Applied properly, component-oriented programming enable reuse, allow for long-term maintenance, application extensibility and scalability. Component technology is nothing new, but the .NET Framework offers developers a new way to develop binary components rapidly, without the hurdles that many COM developers have had to deal with prior to .NET. While retaining all of the core concepts that define component-oriented development--language independence, separation of interface from implementation, binary compatibility, versioning, concurrency management, location transparency, security, deployment--.NET is built upon a fresh component-oriented runtime that has an easier time providing these core concepts. Programming .NET Componentsoffers a complete introduction to the new Microsoft .NET component model, focusing on the aspects of .NET that make it ideal for building reusable, maintainable, and robust components. Author Juval L��������wy, a noted authority on component-oriented programming, teaches the intricacies of .NET component programming and the related system issues to application developers, along with relevant design guidelines, tips, best practices, and known pitfalls. The book is packed with helpful original utilities aimed at simplifying the programming model and increasing the developer productivity. The book begins with an appreciation for the "why" and fundamentals of component-oriented programming, and then continues with an introduction to .NET essentials. Following practical, expert advice on effective .NET development techniques, the book then devotes a chapter to each of the following features critical to component development: Resource management Versioning Events Asynchronous calls Multithreading Serialization Remoting Component services Security. Programming .NET Componentsoffers everything you'll need to know to program components for real-life .NET applications, using Windows Forms, ASP.NET, ADO.NET, or web services. Anyone interested in developing .NET applications, especially enterprise level, will find this book an invaluable resource.
Francesco Balena, Giuseppe Dimauro
Presents more than seven hundred programming techniques for Microsoft Visual BASIC and Visual C#.