Packed with in-depth information and step-by-step guidance, this book escorts you through the process of creating, maintaining and extending sustainable software of high quality with PHP. World-renowned PHP experts present real-world case studies for developing high-quality applications and frameworks in PHP that can easily be adapted to changing business requirements. . They offer different approaches to solving typical development and quality assurance problems that every developer needs to know and master.Details the process for creating high-quality PHP frameworks and applications that can easily be adapted to changing business requirements Covers the planning, execution, and automation of tests for the different layers and tiers of a Web application Demonstrates how to establish a successful development process Shares real-world case studies from well-known companies and their PHP experts
With this book, you’ll learn to develop high-quality PHP frameworks and applications that can easily be maintained with reasonable cost and effort.
Now Steve returns with fresh perspective to reexamine the principles that made Don’t Make Me Think a classic–with updated examples and a new chapter on mobile usability. And it’s still short, profusely illustrated…and best of all–fun to read.
If you’ve read it before, you’ll rediscover what made Don’t Make Me Think so essential to Web designers and developers around the world. If you’ve never read it, you’ll see why so many people have said it should be required reading for anyone working on Web sites.
“After reading it over a couple of hours and putting its ideas to work for the past five years, I can say it has done more to improve my abilities as a Web designer than any other book.”
–Jeffrey Zeldman, author of Designing with Web Standards
Every day, more and more people want to learn some HTML and CSS. Joining the professional web designers and programmers are new audiences who need to know a little bit of code at work (update a content management system or e-commerce store) and those who want to make their personal blogs more attractive. Many books teaching HTML and CSS are dry and only written for those who want to become programmers, which is why this book takes an entirely new approach.Introduces HTML and CSS in a way that makes them accessible to everyone—hobbyists, students, and professionals—and it’s full-color throughout Utilizes information graphics and lifestyle photography to explain the topics in a simple way that is engaging Boasts a unique structure that allows you to progress through the chapters from beginning to end or just dip into topics of particular interest at your leisure
This educational book is one that you will enjoy picking up, reading, then referring back to. It will make you wish other technical topics were presented in such a simple, attractive and engaging way!
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
The fact is your brain craves novelty. It's constantly searching, scanning, waiting for something unusual to happen. After all, that's the way it was built to help you stay alive. It takes all the routine, ordinary, dull stuff and filters it to the background so it won't interfere with your brain's real work--recording things that matter. How does your brain know what matters? It's like the creators of the Head First approach say, suppose you're out for a hike and a tiger jumps in front of you, what happens in your brain? Neurons fire. Emotions crank up. Chemicals surge.
That's how your brain knows.
And that's how your brain will learn Java. Head First Java combines puzzles, strong visuals, mysteries, and soul-searching interviews with famous Java objects to engage you in many different ways. It's fast, it's fun, and it's effective. And, despite its playful appearance, Head First Java is serious stuff: a complete introduction to object-oriented programming and Java. You'll learn everything from the fundamentals to advanced topics, including threads, network sockets, and distributed programming with RMI. And the new. second edition focuses on Java 5.0, the latest version of the Java language and development platform. Because Java 5.0 is a major update to the platform, with deep, code-level changes, even more careful study and implementation is required. So learning the Head First way is more important than ever.
If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. If you haven't, you're in for a treat. You'll see why people say it's unlike any other Java book you've ever read.
By exploiting how your brain works, Head First Java compresses the time it takes to learn and retain--complex information. Its unique approach not only shows you what you need to know about Java syntax, it teaches you to think like a Java programmer. If you want to be bored, buy some other book. But if you want to understand Java, this book's for you.
Topics include:The pros and cons of braced initialization, noexcept specifications, perfect forwarding, and smart pointer make functionsThe relationships among std::move, std::forward, rvalue references, and universal referencesTechniques for writing clear, correct, effective lambda expressionsHow std::atomic differs from volatile, how each should be used, and how they relate to C++'s concurrency APIHow best practices in "old" C++ programming (i.e., C++98) require revision for software development in modern C++
Effective Modern C++ follows the proven guideline-based, example-driven format of Scott Meyers' earlier books, but covers entirely new material.
"After I learned the C++ basics, I then learned how to use C++ in production code from Meyer's series of Effective C++ books. Effective Modern C++ is the most important how-to book for advice on key guidelines, styles, and idioms to use modern C++ effectively and well. Don't own it yet? Buy this one. Now".
-- Herb Sutter, Chair of ISO C++ Standards Committee and C++ Software Architect at Microsoft
—Andrew Hedges, Tapulous
In this bestselling book, Wil shares his deeply personal and difficult journey to find himself. You'll understand the rigors, and joys, of Wil's rediscovering of himself, as he comes to terms with what it means to be famous, or, ironically, famous for once having been famous. Writing with honesty and disarming humanity, Wil touches on the frustrations associated with his acting career, his inability to distance himself from Ensign Crusher in the public's eyes, the launch of his incredibly successful web site, wilwheaton.net, and the joy he's found in writing. Through all of this, Wil shares the ups and downs he encountered along the journey, along with the support and love he discovered from his friends and family.
The stories in Just a Geek include:
Wil's plunge from teen star to struggling actorDiscovering the joys of HTML, blogging, Linux, and web designThe struggle between Wesley Crusher, Starfleet ensign, and Wil Wheaton, author and bloggerGut-wrenching reactions to the 9-11 disasterMoving tales of Wil's relationships with his wife, step-children, and extended familyThe transition from a B-list actor to an A-list author
Wil Wheaton--celebrity, blogger, and geek--writes for the geek in all of us. Engaging, witty, and pleasantly self-deprecating, Just a Geek will surprise you and make you laugh.
Learn the real secrets of creating web pages, and why everything your boss told you about HTML tables is probably wrong (and what to do instead). Most importantly, hold your own with your co-worker (and impress cocktail party guests) when he casually mentions how his HTML is now strict, and his CSS is in an external style sheet.
With Head First HTML, you'll avoid the embarrassment of thinking web-safe colors still matter, and the foolishness of slipping a font tag into your pages. Best of all, you'll learn HTML and CSS in a way that won't put you to sleep. If you've read a Head First book, you know what to expect: a visually-rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, this book will load HTML and CSS into your brain in a way that sticks.
So what are you waiting for? Leave those other dusty books behind and come join us in Webville. Your tour is about to begin.
Inside, you'll learn about:
Interaction design and physical computingThe Arduino hardware and software development environmentBasics of electricity and electronicsPrototyping on a solderless breadboardDrawing a schematic diagram
And more. With inexpensive hardware and open-source software components that you can download free, getting started with Arduino is a snap. To use the introductory examples in this book, all you need is a USB Arduino, USB A-B cable, and an LED.
Join the tens of thousands of hobbyists who have discovered this incredible (and educational) platform. Written by the co-founder of the Arduino project, with illustrations by Elisa Canducci, Getting Started with Arduino gets you in on the fun! This 128-page book is a greatly expanded follow-up to the author's original short PDF that's available on the Arduino website.
—Paul Irish, developer advocate, Google Chrome
“This is not a book for those looking for shortcuts; rather it is hard-won experience distilled into a guided tour. It’s one of the few books on JS that I’ll recommend without hesitation.”
—Alex Russell, TC39 member, software engineer, Google
You Will Learn Python!
Zed Shaw has perfected the world's best system for learning Python. Follow it and you will succeed-just like the hundreds of thousands of beginners Zed has taught to date! You bring the discipline, commitment, and persistence; the author supplies everything else.
In Learn Python the Hard Way, Third Edition, you'll learn Python by working through 52 brilliantly crafted exercises. Read them. Type their code precisely. (No copying and pasting!) Fix your mistakes. Watch the programs run. As you do, you'll learn how software works; what good programs look like; how to read, write, and think about code; and how to find and fix your mistakes using tricks professional programmers use. Most importantly, you'll learn the following, which you need to start writing excellent Python software of your own:Installing a complete Python environment Organizing and writing code Basic mathematics Variables Strings and text Interacting with users Working with files Looping and logic Data structures using lists and dictionaries Program design Object-oriented programming Inheritance and composition Modules, classes, and objects Python packaging Debugging Automated testing Basic game development Basic web development
It'll be hard at first. But soon, you'll just get it-and that will feel great!
This tutorial will reward you for every minute you put into it. Soon, you'll know one of the world's most powerful, popular programming languages. You'll be a Python programmer.
Watch Zed, too! The accompanying DVD contains 5+ hours of passionate, powerful teaching: a complete Python video course!
Node.js, MongoDB and AngularJS Web Development is a complete guide for web programmers who want to integrate these three technologies into full working solutions. It begins with concise, crystal-clear tutorials on each of the three technologies and then quickly moves on to building several common web applications.
Readers will learn how to use Node.js and MongoDB to build more scalable, high-performance sites, how to leverage AngularJS's innovative MVC approach to structure more effective pages and applications, and how to use all three together to deliver outstanding next-generation Web solutions.
Complete with quizzes, exercises, and helpful illustrations, this easy-to-follow, self-paced tutorial gets you started with both Python 2.7 and 3.3— the latest releases in the 3.X and 2.X lines—plus all other releases in common use today. You’ll also learn some advanced language features that recently have become more common in Python code.Explore Python’s major built-in object types such as numbers, lists, and dictionariesCreate and process objects with Python statements, and learn Python’s general syntax modelUse functions to avoid code redundancy and package code for reuseOrganize statements, functions, and other tools into larger components with modulesDive into classes: Python’s object-oriented programming tool for structuring codeWrite large programs with Python’s exception-handling model and development toolsLearn advanced Python tools, including decorators, descriptors, metaclasses, and Unicode processing
Completely updated for the C++11 standard, Sams Teach Yourself C++ in One Hour a Day presents the language from a practical point of view, helping you learn how to use C++11 to create faster, simpler, and more efficient C++ applications.
Master the fundamentals of C++ and object-oriented programming Understand how C++11 features help you write compact and efficient code using concepts such as lambda expressions, move constructors, and assignment operators Learn the Standard Template Library, including containers and algorithms used in most real-world C++ applications Test your knowledge and expertise using exercises at the end of every lesson
Learn on your own time, at your own pace:No previous programming experience required Learn C++11, object-oriented programming, and analysis Write fast and powerful C++ programs, compile the source code with a gcc compiler, and create executable files Use the Standard Template Library’s (STL) algorithms and containers to write feature-rich yet stable C++ applications Develop sophisticated programming techniques using lambda expressions, smart pointers, and move constructors Learn to expand your program’s power with inheritance and polymorphism Master the features of C++ by learning from programming experts Learn C++11 features that allow you to program compact and high-performance C++ applications TABLE OF CONTENTS
PART I: THE BASICS
LESSON 1: Getting Started with C++11
LESSON 2: The Anatomy of a C++ Program
LESSON 3: Using Variables, Declaring Constants
LESSON 4: Managing Arrays and Strings
LESSON 5: Working with Expressions, Statements, and Operators
LESSON 6: Controlling Program Flow
LESSON 7: Organizing Code with Functions
LESSON 8: Pointers and References Explained
PART II: FUNDAMENTALS OF OBJECT-ORIENTED C++ PROGRAMMING
LESSON 9: Classes and Objects
LESSON 10: Implementing Inheritance
LESSON 11: Polymorphism
LESSON 12: Operator Types and Operator Overloading
LESSON 13: Casting Operators
LESSON 14: An Introduction to Macros and Templates
PART III: LEARNING THE STANDARD TEMPLATE LIBRARY (STL)
LESSON 15: An Introduction to the Standard Template LibraryLESSON 16: The STL String Class
LESSON 17: STL Dynamic Array Classes
LESSON 18: STL list and forward_list
LESSON 19: STL Set Classes
LESSON 20: STL Map Classes
PART IV: MORE STL
LESSON 21: Understanding Function ObjectsLESSON 22: C++11 Lambda Expressions
LESSON 23: STL Algorithms
LESSON 24: Adaptive Containers: Stack and Queue
LESSON 25: Working with Bit Flags Using STL
PART V: ADVANCED C++ CONCEPTS
LESSON 26: Understanding Smart PointersLESSON 27: Using Streams for Input and Output
LESSON 28: Exception Handling
LESSON 29: Going Forward
A: Working with Numbers: Binary and Hexadecimal
B: C++ Keywords
C: Operator Precedence
E: ASCII Codes
Isn’t it time you became fluent in the language of the Web?
With this book you will:Explore how the this binding points to objects based on how the function is calledLook into the nature of JS objects and why you’d need to point to themLearn how developers use the mixin pattern to fake classes in JSExamine how JS’s prototype mechanism forms links between objectsLearn how to move from class/inheritance design to behavior delegationUnderstand how the OLOO (objects-linked-to-other-objects) coding style naturally implements behavior delegation
In this how-to companion to Don't Make Me Think: A Common Sense Approach to Web Usability, Steve Krug spells out a streamlined approach to usability testing that anyone can easily apply to their own Web site, application, or other product. (As he said in Don't Make Me Think, "It's not rocket surgery".)
Using practical advice, plenty of illustrations, and his trademark humor, Steve explains how to:
Test any design, from a sketch on a napkin to a fully-functioning Web site or application Keep your focus on finding the most important problems (because no one has the time or resources to fix them all) Fix the problems that you find, using his "The least you can do" approach By paring the process of testing and fixing products down to its essentials ("A morning a month, that's all we ask"), Rocket Surgery makes it realistic for teams to test early and often, catching problems while it's still easy to fix them. Rocket Surgery Made Easy adds demonstration videos to the proven mix of clear writing, before-and-after examples, witty illustrations, and practical advice that made Don't Make Me Think so popular.
The book features hundreds of interesting and practical examples of well-written Go code that cover the whole language, its most important packages, and a wide range of applications. Each chapter has exercises to test your understanding and explore extensions and alternatives. Source code is freely available for download from http://gopl.io/ and may be conveniently fetched, built, and installed using the go get command.
By using this book, you’ll be creating various small projects completely in blueprint. From this book, you’ll be equipped with the know-how you’ll need to create the game of your dreams.
On top of mastering the Blueprints system in Unreal Engine 4, you’ll also learn the secrets behind getting the most out of the beast of an engine.
Discover the timeless techniques and strategies that help you:
Design for minimum complexity and maximum creativity Reap the benefits of collaborative development Apply defensive programming techniques to reduce and flush out errors Exploit opportunities to refactor—or evolve—code, and do it safely Use construction practices that are right-weight for your project Debug problems quickly and effectively Resolve critical construction issues early and correctly Build quality into the beginning, middle, and end of your project
Yukihiro "Matz" Matsumoto, creator, designer and lead developer of Ruby and author of Ruby in a Nutshell, which has been expanded and revised to become this book.
why the lucky stiff, artist and Ruby programmer extraordinaire.This book begins with a quick-start tutorial to the language, and then explains the language in detail from the bottom up: from lexical and syntactic structure to datatypes to expressions and statements and on through methods, blocks, lambdas, closures, classes and modules.
The book also includes a long and thorough introduction to the rich API of the Ruby platform, demonstrating -- with heavily-commented example code -- Ruby's facilities for text processing, numeric manipulation, collections, input/output, networking, and concurrency. An entire chapter is devoted to Ruby's metaprogramming capabilities.
The Ruby Programming Language documents the Ruby language definitively but without the formality of a language specification. It is written for experienced programmers who are new to Ruby, and for current Ruby programmers who want to challenge their understanding and increase their mastery of the language.
Olsen draws on years of experience internalizing the Ruby culture and teaching Ruby to other programmers. He guides you to the “Ah Ha!” moments when it suddenly becomes clear why Ruby works the way it does, and how you can take advantage of this language’s elegance and expressiveness.
Eloquent Rubystarts small, answering tactical questions focused on a single statement, method, test, or bug. You’ll learn how to write code that actually looks like Ruby (not Java or C#); why Ruby has so many control structures; how to use strings, expressions, and symbols; and what dynamic typing is really good for.
Next, the book addresses bigger questions related to building methods and classes. You’ll discover why Ruby classes contain so many tiny methods, when to use operator overloading, and when to avoid it. Olsen explains how to write Ruby code that writes its own code–and why you’ll want to. He concludes with powerful project-level features and techniques ranging from gems to Domain Specific Languages.
A part of the renowned Addison-Wesley Professional Ruby Series, Eloquent Ruby will help you “put on your Ruby-colored glasses” and get results that make you a true believer.
The authors also include examples covering a variety of different integration technologies, such as JMS, MSMQ, TIBCO ActiveEnterprise, Microsoft BizTalk, SOAP, and XSL. A case study describing a bond trading system illustrates the patterns in practice, and the book offers a look at emerging standards, as well as insights into what the future of enterprise integration might hold.
This book provides a consistent vocabulary and visual notation framework to describe large-scale integration solutions across many technologies. It also explores in detail the advantages and limitations of asynchronous messaging architectures. The authors present practical advice on designing code that connects an application to a messaging system, and provide extensive information to help you determine when to send a message, how to route it to the proper destination, and how to monitor the health of a messaging system. If you want to know how to manage, monitor, and maintain a messaging system once it is in use, get this book.
Learn how to use the latest techniques, best practices, and current web standards—including HTML5 and CSS3. Each chapter provides exercises to help you to learn various techniques, and short quizzes to make sure you understand key concepts.
Learn how to:Use Google Apps to reduce technology expenses and grow your business Choose the best Google Apps version for your needs Quickly activate and customize your account Give your users customized email that uses your domain, not gmail.com Connect Gmail to your smartphone so your email and schedule always go with you Create, format, edit, print, and collaborate on documents with Docs Track and analyze your data with Sheets Create presentations with Slides and present anywhere via the Internet Cut travel costs: run video meetings online with Google Hangouts Improve project collaboration with a shared Sites workspace Efficiently manage and share your schedule with Calendar Store and share your files for secure anytime/anywhere access Sync your files between your PC or Mac and Google Drive in the cloud Use Vault to archive content and activity for compliance or other legal reasons
Step-by-step instructions with callouts to new Google Apps screenshots that show you exactly what to do.
Help when you run into Google Apps problemsor limitations.
Tips and Notes to help you get the most from Google Apps.
Nicholas C. Zakas worked with the Web for over a decade. He has worked on corporate intranet applications used by some of the largest companies in the world and large-scale consumer websites such as MyYahoo! and the Yahoo! homepage. He regularly gives talks at companies and conferences regarding front-end best practices and new technology.
Learning Python, Second Edition, offers programmers a comprehensive learning tool for Python and object-oriented programming. Thoroughly updated for the numerous language and class presentation changes that have taken place since the release of the first edition in 1999, this guide introduces the basic elements of the latest release of Python 2.3 and covers new features, such as list comprehensions, nested scopes, and iterators/generators.
Beyond language features, this edition of Learning Python also includes new context for less-experienced programmers, including fresh overviews of object-oriented programming and dynamic typing, new discussions of program launch and configuration options, new coverage of documentation sources, and more. There are also new use cases throughout to make the application of language features more concrete.
The first part of Learning Python gives programmers all the information they'll need to understand and construct programs in the Python language, including types, operators, statements, classes, functions, modules and exceptions. The authors then present more advanced material, showing how Python performs common tasks by offering real applications and the libraries available for those applications. Each chapter ends with a series of exercises that will test your Python skills and measure your understanding.
Learning Python, Second Edition is a self-paced book that allows readers to focus on the core Python language in depth. As you work through the book, you'll gain a deep and complete understanding of the Python language that will help you to understand the larger application-level examples that you'll encounter on your own. If you're interested in learning Python--and want to do so quickly and efficiently--then Learning Python, Second Edition is your best choice.
AESTHETICS, BEAUTY, AND BEHAVIOR: Why do striking visuals grab our attention? And how do emotions affect judgment and behavior?
PLAYFUL SEDUCTION: How do you create playful engagements during the moment? Why are serendipity, arousal, rewards, and other delights critical to a good experience?
THE SUBTLE ART OF SEDUCTION: How do you put people at ease through clear and suggestive language? What are some subtle ways to influence behavior and get people to move from intent to action?
THE GAME OF SEDUCTION: How do you continue motivating people long after the first encounter? Are there lessons to be gained from learning theories or game design?
Principles from psychology are found throughout the book, along with dozens of examples showing how these techniques have been applied with great success. In addition, each section includes interviews with influential web and interaction designers.
Many experienced programmers try to bend Python to fit patterns they learned from other languages, and never discover Python features outside of their experience. With this book, those Python programmers will thoroughly learn how to become proficient in Python 3.
This book covers:Python data model: understand how special methods are the key to the consistent behavior of objectsData structures: take full advantage of built-in types, and understand the text vs bytes duality in the Unicode ageFunctions as objects: view Python functions as first-class objects, and understand how this affects popular design patternsObject-oriented idioms: build classes by learning about references, mutability, interfaces, operator overloading, and multiple inheritanceControl flow: leverage context managers, generators, coroutines, and concurrency with the concurrent.futures and asyncio packagesMetaprogramming: understand how properties, attribute descriptors, class decorators, and metaclasses work
Responsive design is not just another technique–it is the beginning of the maturation of a medium and a fundamental shift in the way we think about the web.
Implementing Responsive Design is a practical examination of how this fundamental shift affects the way we design and build our sites. Readers will learn how to:Build responsive sites using a combination of fluid layouts, media queries, and fluid media Adopt a responsive workflow from the very start of a project Enhance content for different devices Use feature-detection and server-side enhancement to provide a richer experience
Along the way, you’ll write games such as Find the Buried Treasure, Hangman, and Snake. You’ll also learn how to:Create functions to organize and reuse your codeWrite and modify HTML to create dynamic web pagesUse the DOM and jQuery to make your web pages react to user inputUse the Canvas element to draw and animate graphicsProgram real user-controlled games with collision detection and score keeping
Ages 10+ (and their parents!)
Rather than impose development guidelines as other frameworks do, Flask leaves the business of extensions up to you. If you have Python experience, this book shows you how to take advantage of that creative freedom.Learn Flask’s basic application structure and write an example appWork with must-have components—templates, databases, web forms, and email supportUse packages and modules to structure a large application that scalesImplement user authentication, roles, and profilesBuild a blogging feature by reusing templates, paginating item lists, and working with rich textUse a Flask-based RESTful API to expose app functionality to smartphones, tablets, and other third-party clientsLearn how to run unit tests and enhance application performanceExplore options for deploying your web app to a production server
* The difference between primitive and reference values
* The various ways to create objects
* How to define your own constructors
* How to work with and understand prototypes
* Inheritance patterns for types and objects
As shown in this book, LiveCycle Designer addresses the many objectives of forms creation. It offers a digital handshake between the graphic designer and the data programmer. LiveCycle Designer lets form designers create more compelling and dynamic documents than is possible with Acrobat or Microsoft Word. Forms created with LiveCycle Designer automatically expand to accommodate different amounts of data and report that information back to a database. The new version of LiveCycle Designer (ES4) allows for the first time forms to be deployed in HTML5 format, so they can be used on a wider array of devices (page sizes can adjust to smaller screens) and in a wider range of software systems (no special reader or plugin needed to use them, just a Web browser).
Adobe LiveCycle Designer: Creating Dynamic PDF and HTML5 Forms for Desktop and Mobile Applications shows design strategies as well as the technical underpinnings of PDF and XFA (Adobe XML Forms Architecture), the tools necessary to create intelligent forms.
Purchasing this book gives you access to the downloadable lesson files you need to work through the projects in the book, and to electronic book updates covering new features that Adobe releases for Creative Cloud customers. For access, go to www.peachpit.com/redeem and redeem the unique code provided inside this book.
This book is a perfect companion to jQuery Pocket Reference.
Based on Cascading Style Sheets: The Definitive Guide, this reference is an easy-to-use cheatsheet of the CSS specifications you need for any task at hand. This book helps you:Quickly find and adapt the style elements you needLearn how CSS3 features complement and extend your CSS practicesDiscover new value types and new CSS selectorsImplement drop shadows, multiple backgrounds, rounded corners, and border imagesGet new information about transforms and transitions
HTML5 and CSS3 All-in-One For Dummies, 3rd Edition serves as the perfect reference for both web development beginners and seasoned professionals looking to learn more about how to get the most out of the powerful combination of HTML5 and CSS3.
Both beginning users, who want a thorough introduction to the technology, and more intermediate users, who are looking for a convenient reference, will find what they need here--in straightforward language and through readily accessible examples.
Scalability Rules is the easy-to-use scalability primer and reference for every architect, developer, web professional, and manager. Authors Martin L. Abbott and Michael T. Fisher have helped scale more than 200 hypergrowth Internet sites through their consulting practice. Now, drawing on their unsurpassed experience, they present 50 clear, proven scalability rules—and practical guidance for applying them.
Abbott and Fisher transform scalability from a “black art” to a set of realistic, technology-agnostic best practices for supporting hypergrowth in nearly any environment, including both frontend and backend systems.
For architects, they offer powerful new insights for creating and evaluating designs. For developers, they share specific techniques for handling everything from databases to state. For managers, they provide invaluable help in goal-setting, decision-making, and interacting with technical teams. Whatever your role, you’ll find practical risk/benefit guidance for setting priorities—and getting maximum “bang for the buck.”
• Simplifying architectures and avoiding “over-engineering”
• Scaling via cloning, replication, separating functionality, and splitting data sets
• Scaling out, not up
• Getting more out of databases without compromising scalability
• Avoiding unnecessary redirects and redundant double-checking
• Using caches and content delivery networks more aggressively, without introducing unacceptable complexity
• Designing for fault tolerance, graceful failure, and easy rollback
• Striving for statelessness when you can; efficiently handling state when you must
• Effectively utilizing asynchronous communication
• Learning quickly from mistakes, and much more
This book covers:Arrays and lists: the most common data structuresStacks and queues: more complex list-like data structuresLinked lists: how they overcome the shortcomings of arraysDictionaries: storing data as key-value pairsHashing: good for quick insertion and retrievalSets: useful for storing unique elements that appear only onceBinary Trees: storing data in a hierarchical mannerGraphs and graph algorithms: ideal for modeling networksAlgorithms: including those that help you sort or search dataAdvanced algorithms: dynamic programming and greedy algorithms
You’ll gain a strong foundation in the language, including best practices for testing, debugging, code reuse, and other development tips. This book also shows you how to use Python for applications in business, science, and the arts, using various Python tools and open source packages.Learn simple data types, and basic math and text operationsUse data-wrangling techniques with Python’s built-in data structuresExplore Python code structure, including the use of functionsWrite large programs in Python, with modules and packagesDive into objects, classes, and other object-oriented featuresExamine storage from flat files to relational databases and NoSQLUse Python to build web clients, servers, APIs, and servicesManage system tasks such as programs, processes, and threadsUnderstand the basics of concurrency and network programming