How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
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)
Martin Fowler, Kent Beck
Users can dramatically improve the design, performance, and manageability of object-oriented code without altering its interfaces or behavior. "Refactoring" shows users exactly how to spot the best opportunities for refactoring and exactly how to do it, step by step.
"This is Effective C++ volume three - it's really that good." - Herb Sutter, independent consultant and secretary of the ISO/ANSI C++ standards committee "There are very few books which all C++ programmers must have. Add Effective STL to that list." - Thomas Becker, Senior Software Engineer, Zephyr Associates, Inc., and columnist, C/C++ Users Journal C++'s Standard Template Library is revolutionary, but learning to use it well has always been a challenge. Until now. In this book, best-selling author Scott Meyers ( Effective C++ , and More Effective C++ ) reveals the critical rules of thumb employed by the experts - the things they almost always do or almost always avoid doing - to get the most out of the library. Other books describe what's in the STL. Effective STL shows you how to use it. Each of the book's 50 guidelines is backed by Meyers' legendary analysis and incisive examples, so you'll learn not only what to do, but also when to do it - and why. Highlights of Effective STL include: Advice on choosing among standard STL containers (like vector and list), nonstandard STL containers (like hash_set and hash_map), and non-STL containers (like bitset). Techniques to maximize the efficiency of the STL and the programs that use it. Insights into the behavior of iterators, function objects, and allocators, including things you should not do. Guidance for the proper use of algorithms and member functions whose names are the same (e.g., find), but whose actions differ in subtle (but important) ways. Discussions of potential portability problems, including straightforward ways to avoid them. Like Meyers' previous books, Effective STL is filled with proven wisdom that comes only from experience. Its clear, concise, penetrating style makes it an essential resource for every STL programmer.
Expert advice for smarties is offered from the #1 SQL guru. Trees and hierarchies are topics that all SQL users need to know, and this is the first developer's guide that addresses these concepts that are universally difficult for programmers to master. The book is Web-enhanced with downloadable SQL code, ready to use.
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.
Ralph Kimball, Margy Ross
Ralph Kimball invented a data warehousing technique called ?dimensional modelling? and popularised it in his first Wiley bestseller The Data Warehouse Toolkit. Since then dimensional modelling has become the most widely accepted technique for data warehouse design. Since the first edition, Kimball has improved on his earlier techniques and created many new ones. In this second edition, he provides a comprehensive collection of all of them, from basic to advanced, and strategies for optimising data warehouse design for common business applications. He includes examples for retail sales, inventory management, procurement, orders and invoices, customer relationship management, accounting, financial services, telecommunication and utilities, health care, insurance and more. He also presents unique modelling techniques for e-commerce and shows strategies for optimising performance. A companion Web site provides updates on dimensional modelling techniques, links to related sites and source code where appropriate.
A quick and reliable way to build proven databases for core business functions Industry experts raved about The Data Model Resource Book when it was first published in March 1997 because it provided a simple, cost-effective way to design databases for core business functions. Len Silverston has now revised and updated the hugely successful First Edition, while adding a companion volume to take care of more specific requirements of different businesses. Each volume is accompanied by a CD-ROM, which is sold separately. Each CD-ROM provides powerful design templates discussed in the books in a ready-to-use electronic format, allowing companies and individuals to develop the databases they need at a fraction of the cost and a third of the time it would take to build them from scratch. Updating the data models from the First Edition CD-ROM, this resource allows database developers to quickly load a core set of data models and customize them to support a wide range of business functions.
In his long-awaited book, Martin Fowler has done for application domain patterns what the Gang of Four [Gamma et al.] have done for general purpose design patterns in their book, Design Patterns: Elements of Reusable Object-Oriented Software. This book is a must have for all analysts and designers doing object-oriented business modeling and business process re-engineering. —Donald G. Firesmith, Knowledge Systems Corporation Fowler shares with you his wealth of object modeling experience and his keen eye for identifying repeating problems and transforming them into reusable models. Analysis Patterns provides a catalogue of patterns that have emerged in a wide range of domains, including trading, measurement, accounting, and organizational relationships.
Michael James Hernandez
“This book takes the somewhat daunting process of database design and breaks it into completely manageable and understandable components. Mike’s approach whilst simple is completely professional, and I can recommend this book to any novice database designer.” –Sandra Barker, Lecturer, University of South Australia, Australia “Databases are a critical infrastructure technology for information systems and today’s business. Mike Hernandez has written a literate explanation of database technology–a topic that is intricate and often obscure. If you design databases yourself, this book will educate you about pitfalls and show you what to do. If you purchase products that use a database, the book explains the technology so that you can understand what the vendor is doing and assess their products better.” –Michael Blaha, consultant and trainer, author of A Manager’s Guide to Database Technology “If you told me that Mike Hernandez could improve on the first edition of Database Design for Mere Mortals I wouldn’t have believed you, but he did! The second edition is packed with more real-world examples, detailed explanations, and even includes database-design tools on the CD-ROM! This is a must-read for anyone who is even remotely interested in relational database design, from the individual who is called upon occasionally to create a useful tool at work, to the seasoned professional who wants to brush up on the fundamentals. Simply put, if you want to do it right, read this book!” –Matt Greer, Process Control Development, The Dow Chemical Company “Mike’s approach to database design is totally common-sense based, yet he’s adhered to all the rules of good relational database design. I use Mike’s books in my starter database-design class, and I recommend his books to anyone who’s interested in learning how to design databases or how to write SQL queries.” –Michelle Poolet, President, MVDS, Inc. “Slapping together sophisticated applications with poorly designed data will hurt you just as much now as when Mike wrote his first edition, perhaps even more. Whether you’re just getting started developing with data or are a seasoned pro; whether you've read Mike’s previous book or this is your first; whether you're happier letting someone else design your data or you love doing it yourself–this is the book for you. Mike’s ability to explain these concepts in a way that’s not only clear, but fun, continues to amaze me.” –From the Foreword by Ken Getz, MCW Technologies, coauthor ASP.NET Developer's JumpStart “The first edition of Mike Hernandez’s book Database Design for Mere Mortals was one of the few books that survived the cut when I moved my office to smaller quarters. The second edition expands and improves on the original in so many ways. It is not only a good, clear read, but contains a remarkable quantity of clear, concise thinking on a very complex subject. It’s a must for anyone interested in the subject of database design.” –Malcolm C. Rubel, Performance Dynamics Associates “Mike’s excellent guide to relational database design deserves a second edition. His book is an essential tool for fledgling Microsoft Access and other desktop database developers, as well as for client/server pros. I recommend it highly to all my readers.” –Roger Jennings, author of Special Edition Using Access 2002 “There are no silver bullets! Database technology has advanced dramatically, the newest crop of database servers perform operations faster than anyone could have imagined six years ago, but none of these technological advances will help fix a bad database design, or capture data that you forgot to include! Database Design for Mere Mortals™, Second Edition, helps you design your database right in the first place!” –Matt Nunn, Product Manager, SQL Server, Microsoft Corporation “When my brother started his professional career as a developer, I gave him Mike’s book to help him understand database concepts and make real-world application of database technology. When I need a refresher on the finer points of database design, this is the book I pick up. I do not think that there is a better testimony to the value of a book than that it gets used. For this reason I have wholeheartedly recommended to my peers and students that they utilize this book in their day-to-day development tasks.” –Chris Kunicki, Senior Consultant, OfficeZealot.com “Mike has always had an incredible knack for taking the most complex topics, breaking them down, and explaining them so that anyone can ‘get it.’ He has honed and polished his first very, very good edition and made it even better. If you're just starting out building database applications, this book is a must-read cover to cover. Expert designers will find Mike’s approach fresh and enlightening and a source of great material for training others.” –John Viescas, President, Viescas Consulting, Inc., author of Running Microsoft Access 2000 and coauthor of SQL Queries for Mere Mortals “Whether you need to learn about relational database design in general, design a relational database, understand relational database terminology, or learn best practices for implementing a relational database, Database Design for Mere Mortals™, Second Edition, is an indispensable book that you’ll refer to often. With his many years of real-world experience designing relational databases, Michael shows you how to analyze and improve existing databases, implement keys, define table relationships and business rules, and create data views, resulting in data integrity, uniform access to data, and reduced data-entry errors.” –Paul Cornell, Site Editor, MSDN Office Developer Center Sound database design can save hours of development time and ensure functionality and reliability. Database Design for Mere Mortals™, Second Edition, is a straightforward, platform-independent tutorial on the basic principles of relational database design. It provides a commonsense design methodology for developing databases that work. Database design expert Michael J. Hernandez has expanded his best-selling first edition, maintaining its hands-on approach and accessibility while updating its coverage and including even more examples and illustrations. This edition features a CD-ROM that includes diagrams of sample databases, as well as design guidelines, documentation forms, and examples of the database design process. This book will give you the knowledge and tools you need to create efficient and effective relational databases.
Delve inside the core SQL Server engine--and put that knowledge to work--with guidance from a team of well-known internals experts. Whether database developer, architect, or administrator, you'll gain the deep knowledge you need to exploit key architectural changes--and capture the product's full potential. Discover how SQL Server works behind the scenes, including: What happens internally when SQL Server builds, expands, shrinks, and moves databases How to use event tracking--from triggers to the Extended Events Engine Why the right indexes can drastically reduce your query execution time How to transcend normal row-size limits with new storage capabilities How the Query Optimizer operates Multiple techniques for troubleshooting problematic query plans When to force SQL Server to reuse a cached query plan--or create a new one What SQL Server checks internally when running DBCC How to choose among five isolation levels and two concurrency models when working with multiple concurrent users
PHP 5's object-oriented enhancements are among the most significant improvements in the 10+ year history of the language. This book introduces you to those features and the many opportunities they provide, as well as a number of tools that will help you maximize development efforts. The book begins with a broad overview of PHP 5's object-oriented features, introducing key topics like class declaration, object instantiation, inheritance, and method and property encapsulation. You’ll also learn about advanced topics including static methods and properties, abstract classes, interfaces, exception handling, object cloning, and more. You’ll also benefit from an extensive discussion regarding object-oriented design best practices. The next part of the book is devoted to a topic that is often a natural extension of any object-oriented introduction: design patterns. PHP 5 is particularly well-suited to the deployment of these solutions for commonly occurring programming problems. The author will introduce pattern concepts and show you how to implement several key patterns in your PHP applications. The last segment introduces a number of great utilities that help you document, manage, test, and build your PHP applications, including Phing, PHPUnit2, phpDocumentor, PEAR, and CVS.
Stephane Faroult, Peter Robson
For all the buzz about trendy IT techniques, data processing is still at the core of our systems, especially now that enterprises all over the world are confronted with exploding volumes of data. Database performance has become a major headache, and most IT departments believe that developers should provide simple SQL code to solve immediate problems and let DBAs tune any "bad SQL" later. In The Art of SQL, author and SQL expert Stephane Faroult argues that this "safe approach" only leads to disaster. His insightful book, named after Art of War by Sun Tzu, contends that writing quick inefficient code is sweeping the dirt under the rug. SQL code may run for 5 to 10 years, surviving several major releases of the database management system and on several generations of hardware. The code must be fast and sound from the start, and that requires a firm understanding of SQL and relational theory. The Art of SQL offers best practices that teach experienced SQL users to focus on strategy rather than specifics. Faroult's approach takes a page from Sun Tzu's classic treatise by viewing database design as a military campaign. You need knowledge, skills, and talent. Talent can't be taught, but every strategist from Sun Tzu to modern-day generals believed that it can be nurtured through the experience of others. They passed on their experience acquired in the field through basic principles that served as guiding stars amid the sound and fury of battle. This is what Faroult does with SQL. Like a successful battle plan, good architectural choices are based on contingencies. What if the volume of this or that table increases unexpectedly? What if, following a merger, the number of users doubles? What if you want to keep several years of data online? Faroult's way of looking at SQL performance may be unconventional and unique, but he's deadly serious about writing good SQL and using SQL well. The Art of SQL is not a cookbook, listing problems and giving recipes. The aim is to get you-and your manager-to raise good questions.
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!
Ian H. Witten, Alistair Moffat, Timothy C. Bell
In this fully updated second edition of the highly acclaimed Managing Gigabytes, authors Witten, Moffat, and Bell continue to provide unparalleled coverage of state-of-the-art techniques for compressing and indexing data. Whatever your field, if you work with large quantities of information, this book is essential reading--an authoritative theoretical resource and a practical guide to meeting the toughest storage and access challenges. It covers the latest developments in compression and indexing and their application on the Web and in digital libraries. It also details dozens of powerful techniques supported by mg, the authors' own system for compressing, storing, and retrieving text, images, and textual images. mg's source code is freely available on the Web. * Up-to-date coverage of new text compression algorithms such as block sorting, approximate arithmetic coding, and fat Huffman coding * New sections on content-based index compression and distributed querying, with 2 new data structures for fast indexing * New coverage of image coding, including descriptions of de facto standards in use on the Web (GIF and PNG), information on CALIC, the new proposed JPEG Lossless standard, and JBIG2 * New information on the Internet and WWW, digital libraries, web search engines, and agent-based retrieval * Accompanied by a public domain system called MG which is a fully worked-out operational example of the advanced techniques developed and explained in the book * New appendix on an existing digital library system that uses the MG software
Explains how to tune SQL (Structured Query Language) queries to achieve optimal performance, regardless of the database platform, covering such topics as how to understand and control SQL execution plans and how to diagram SQL queries for the best execution plan for the query, in a tutorial that includes hands-on exercises to reinforce concepts. Original. (Advanced)
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.
"PHP Web Application Security" helps readers build secure Web applications, using Apache and MySQL along with PHP 5. The book details the attacks that hackers use against Web sites, and shows how to correctly configure Apache and PHP to guard against them.
This book takes you beyond the PHP basics to the enterprise development practices used by professional programmers. Updated for PHP 5.3 with new sections on closures, namespaces, and continuous integration, this edition will teach you about object features such as abstract classes, reflection, interfaces, and error handling. You’ll also discover object tools to help you learn more about your classes, objects, and methods. Then you’ll move into design patterns and the principles that make patterns powerful. You’ll learn both classic design patterns and enterprise and database patterns with easy-to-follow examples. Finally, you’ll discover how to put it all into practice to help turn great code into successful projects. You’ll learn how to manage multiple developers with Subversion, and how to build and install using Phing and PEAR. You’ll also learn strategies for automated testing and building, including continuous integration. Taken together, these three elements—object fundamentals, design principles, and best practices—will help you develop elegant and rock-solid systems. What you’ll learn Learn to work with object fundamentals: writing classes and methods, instantiating objects, and creating powerful class hierarchies using inheritance. Master advanced object-oriented features, including static methods and properties. Learn how to manage error conditions with exceptions, and create abstract classes and interfaces. Understand and use design principles to deploy objects and classes effectively in your projects. Learn about design patterns, their purpose and structure, and the underlying principles that govern them. Discover a set of powerful patterns that you can deploy in your own projects. Learn about the tools and practices that can guarantee a successful project including unit testing; version control; build, installation, and package management; and continuous integration. Who this book is for This book is suitable for anyone with at least a basic knowledge of PHP who wants to use its object-oriented features in their projects. Those who already know their interfaces from their abstracts may well still find it hard to use these features in their projects. These users will benefit from the book’s emphasis on design. They will learn how to choose and combine the participants of a system, how to read design patterns, and how to use them in their code. Finally, this book is for PHP coders who want to learn about the practices and tools (version control, testing, continuous integration, etc.) that can make projects safe, elegant, and stable. Table of Contents PHP: Design and Management PHP and Objects Object Basics Advanced Features Object Tools Objects and Design What Are Design Patterns? Why Use Them? Some Pattern Principles Generating Objects Patterns for Flexible Object Programming Performing and Representing Tasks Enterprise Patterns Database Patterns Good (and Bad) Practice An Introduction to PEAR and Pyrus Generating Documentation with phpDocumentor Version Control with Subversion Testing with PHPUnit Automated Build with Phing Continuous Integration Objects, Patterns, Practice
Michael James Hernandez, John Viescas
"Master every business SQL skill you need! Grouping, totaling, summaries, modifying databases, integrating data from multiple tables, and much more! Includes video introduction, 2+ hours of expert audio commentary, 200+ animated figures, 100+ self review questions, 100+ exercises, searching, hyperlinking, and more."--Container.
* *PHP has exploded in popularity, and is now starting to make inroads into large-scale business-critical Web systems *So far, little has been written about how to scale PHP applications to the enterprise level *Schlossnagle fills this void, providing the definitive guide to developing PHP applications for performance, stability, and extensibility