About the Author | |
Preface | |
Acknowledgments | |
Introduction | |
The Martian Principles | |
Don't reinvent the wheel | |
Someone Else Has Already Solved Your Problem | |
Understand What Your Added Value Is | |
Use Commercial Software Whenever Practicable | |
You won't do better than what's already been done | |
Adhere to Industry Standards and Best Practices | |
Seek User Groups, Chat Forums, Online Documentation, Books, and the Like | |
Do Not Gum Up the Plumbing | |
Your customers don't know what they want | |
Do Not Push Too Hard on the Requirements | |
Do Rapid Prototyping and Lots of User Testing | |
Customers Are the Best Testers | |
Get something working as soon as possible | |
The First End-to-End Thread Is Critical | |
Working Code Builds Confidence | |
Always Build on Top of Working Code | |
Use sound software engineering practices | |
Use a Component-Based Architecture | |
Use Design Patterns | |
Get All the Development Team Members to Agree | |
Don't trust the client applications | |
Be Very Paranoid-They Are Out to Get You | |
If You Do Not Break It, They Will | |
Plan to make changes | |
Do Not Hard-Code Values | |
Use External Editable Parameter Files | |
Implement a "Read Parameters" Method | |
Maintain Client Parameter Files Centrally on the Server | |
Identify the Parameter Values | |
You can't predict the future | |
Make Each Service Dynamically Reconfigurable | |
Create Field-Replaceable, Plug-and-Play Services | |
Hot Redeployment Allows Reconfiguring without Rebooting | |
Make Each Service Loosely Coupled | |
Take a Peek into the Future | |
Don't tie your services into knots | |
Keep Your Services Independent of Each Other | |
Services Should Treat Other Services As Equals | |
Build early, build often! The Major Challenge Is Not Code Development but Code Integration | |
Use a Source Code Repository | |
Maintain a Separate Environment in Which to Build and Deploy | |
"What middleware?" should be your greatest compliment | |
The Middleware Should Be Invisible to Users | |
Good Middleware Creates Ideal Virtual Worlds for the End Users | |
Expose the invisible | |
Put Hooks in the Middleware | |
Do Runtime, Real-Time Monitoring | |
Log everything | |
Do Not Turn Off Logging in Your Production Code. "Log Mining" Reveals Usage Patterns | |
Know the data | |
Learn the Data Usage Patterns | |
Create Appropriate Application and Middleware Data Models | |
Map to Practical Physical Data Models | |
Adapt to Third-Party and Legacy Data | |
Know when it will break | |
Do Lots of Stress Testing | |
If You Do Not Find Out What the Limits Are, Your Users Surely Will | |
Don't fail due to unexpected success | |
Missions May Last Longer Than Expected | |
Data Repositories May Grow Larger Than Planned | |
Project Management and Software Engineering | |
Strong leadership drives a project to success | |
A Good Architect Must Also Be a Good Leader | |
Any Architecture Is Only As Good As Its Implementation | |
Strong Project Management Is Necessary for Success | |
Project Milestones Are Opportunities for Demos and Rebalancing | |
The Project Milestones Near the End Allow You to Get Your Proje | |
Table of Contents provided by Publisher. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.