Growing Object-Oriented Software, Guided by Tests


Steve Freeman - 2009
    This one's a keeper." --Robert C. Martin "If you want to be an expert in the state of the art in TDD, you need to understand the ideas in this book."--Michael Feathers Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your code before you write the code itself. However, this simple idea takes skill and judgment to do well. Now there's a practical guide to TDD that takes you beyond the basic concepts. Drawing on a decade of experience building real-world systems, two TDD pioneers show how to let tests guide your development and "grow" software that is coherent, reliable, and maintainable. Steve Freeman and Nat Pryce describe the processes they use, the design principles they strive to achieve, and some of the tools that help them get the job done. Through an extended worked example, you'll learn how TDD works at multiple levels, using tests to drive the features and the object-oriented structure of the code, and using Mock Objects to discover and then describe relationships between objects. Along the way, the book systematically addresses challenges that development teams encounter with TDD--from integrating TDD into your processes to testing your most difficult features. Coverage includes - Implementing TDD effectively: getting started, and maintaining your momentum throughout the project - Creating cleaner, more expressive, more sustainable code - Using tests to stay relentlessly focused on sustaining quality - Understanding how TDD, Mock Objects, and Object-Oriented Design come together in the context of a real software development project - Using Mock Objects to guide object-oriented designs - Succeeding where TDD is difficult: managing complex test data, and testing persistence and concurrency

Pro ASP.NET MVC 5


Adam Freeman - 2013
    It provides a high-productivity programming model that promotes cleaner code architecture, test-driven development, and powerful extensibility, combined with all the benefits of ASP.NET.ASP.NET MVC 5 contains a number of advances over previous versions, including the ability to define routes using C# attributes and the ability to override filters. The user experience of building MVC applications has also been substantially improved. The new, more tightly integrated, Visual Studio 2013 IDE has been created specifically with MVC application development in mind and provides a full suite of tools to improve development times and assist in reporting, debugging and deploying your code. The popular Bootstrap JavaScript library has also now been included natively within MVC 5 providing you, the developer, with a wider range of multi-platform CSS and HTML5 options than ever before without the penalty of having to load-in third party libraries. What you�ll learn Gain a solid architectural understanding of ASP.NET MVC 5 Explore the entire ASP.NET MVC Framework as a cohesive whole Learn what's new in version 5 and how best to apply these new features to your own work See how MVC and test-driven development work in action Capitalize on your existing knowledge quickly and easily through comparison of features in classic ASP.NET to those in ASP.NET MV Who this book is for This book is for web developers with a basic knowledge of ASP.NET and C#who want, or need, to start using the new ASP.NET MVC 5 Framework.

Python: 3 Manuscripts in 1 book: - Python Programming For Beginners - Python Programming For Intermediates - Python Programming for Advanced


Maurice J. Thompson - 2018
    This Box Set Includes 3 Books: Python Programming For Beginners - Learn The Basics Of Python In 7 Days! Python Programming For Intermediates - Learn The Basics Of Python In 7 Days! Python Programming For Advanced - Learn The Basics Of Python In 7 Days! Python Programming For Beginners - Learn The Basics Of Python In 7 Days! Here's what you'll learn from this book: ✓Introduction ✓Understanding Python: A Detailed Background ✓How Python Works ✓Python Glossary ✓How to Download and Install Python ✓Python Programming 101: Interacting With Python in Different Ways ✓How to Write Your First Python Program ✓Variables, Strings, Lists, Tuples, Dictionaries ✓About User-Defined Functions ✓How to Write User-Defined Functions in Python ✓About Coding Style ✓Practice Projects: The Python Projects for Your Practice Python Programming For Intermediates - Learn The Basics Of Python In 7 Days! Here's what you'll learn from this book: ✓ Shallow copy and deep copy ✓ Objects and classes in Python–including python inheritance, multiple inheritances, and so on ✓ Recursion in Python ✓ Debugging and testing ✓ Fibonacci sequence (definition) and Memoization in Python in Python ✓ Arguments in Python ✓ Namespaces in Python and Python Modules ✓ Simple Python projects for Intermediates Python Programming For Advanced - Learn The Basics Of Python In 7 Days! Here's what you'll learn from this book: ✓File management ✓Python Iterator ✓Python Generator ✓Regular Expressions ✓Python Closure ✓Python Property ✓Python Assert, and ✓Simple recap projects Start Coding Now!

Pro C# 3.0 and the .NET 3.5 Framework (Pro)


Andrew Troelsen - 2007
    Since that time, this text has been revised, tweaked, and enhanced to account for the changes found within each release of the .NET platform (1.1, 2.0, 3.0 and now 3.5)..NET 3.0 was more of an augmentative release, essentially providing three new APIs: Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF). As you would expect, coverage of the "W's" has been expanded a great deal in this version of the book from the previous Special Edition text.Unlike .NET 3.0, .NET 3.5 provides dozens of C# language features and .NET APIs. This edition of the book will walk you through all of this material using the same readable approach as was found in previous editions. Rest assured, you'll find detailed coverage of Language Integrated Query (LINQ), the C# 2008 language changes (automatic properties, extension methods, anonymous types, etc.) and the numerous bells and whistles of Visual Studio 2008. What you'll learn Everything you need to knowget up to speed with C# 2008 quickly and efficiently. Discover all the new .NET 3.5 featuresLanguage Integrated Query, anonymous types, extension methods, automatic properties, and more. Get a professional footholdtargeted to appeal to experienced software professionals, this book gives you the facts you need the way you need to see them. A rock-solid foundationfocuses on everything you need to be a successful .NET 3.5 programmer, not just the new features. Get comfortable with all the core aspects of the platform including assemblies, remoting, Windows Forms, Web Forms, ADO.NET, XML web services, and much more. Who this book is forIf you're checking out this book for the first time, understand that it targets experienced software professionals and/or students of computer science (so please don't expect three chapters devoted to "for" loops). The mission of this text is to provide you with a rock-solid foundation to the C# 2008 programming language and the core aspects of the .NET platform (object-oriented programming, assemblies, file IO, Windows Forms/WPF, ASP.NET, ADO.NET, WCF, WF, etc.). Once you digest the information presented in these 33 chapters, you'll be in a perfect position to apply this knowledge to your specific programming assignments, and you'll be well equipped to explore the .NET universe on your own terms. "

Beginning PHP and MySQL 5: From Novice to Professional


W. Jason Gilmore - 2004
    Essentially three books in one: provides thorough introductions to the PHP language and the MySQL database, and shows you how these two technologies can be effectively integrated to build powerful websites. Provides over 500 code examples, including real-world tasks such as creating an auto-login feature, sending HTML-formatted e-mail, testing password guessability, and uploading files via a web interface. Updated for MySQL 5, includes new chapters introducing triggers, stored procedures, and views.

Exploring CQRS and Event Sourcing


Dominic Betts - 2012
    It presents a learning journey, not definitive guidance. It describes the experiences of a development team with no prior CQRS proficiency in building, deploying (to Windows Azure), and maintaining a sample real-world, complex, enterprise system to showcase various CQRS and ES concepts, challenges, and techniques.The development team did not work in isolation; we actively sought input from industry experts and from a wide group of advisors to ensure that the guidance is both detailed and practical.The CQRS pattern and event sourcing are not mere simplistic solutions to the problems associated with large-scale, distributed systems. By providing you with both a working application and written guidance, we expect you’ll be well prepared to embark on your own CQRS journey.

Coders at Work: Reflections on the Craft of Programming


Peter Seibel - 2009
    As the words "at work" suggest, Peter Seibel focuses on how his interviewees tackle the day–to–day work of programming, while revealing much more, like how they became great programmers, how they recognize programming talent in others, and what kinds of problems they find most interesting. Hundreds of people have suggested names of programmers to interview on the Coders at Work web site: http://www.codersatwork.com. The complete list was 284 names. Having digested everyone’s feedback, we selected 16 folks who’ve been kind enough to agree to be interviewed:- Frances Allen: Pioneer in optimizing compilers, first woman to win the Turing Award (2006) and first female IBM fellow- Joe Armstrong: Inventor of Erlang- Joshua Bloch: Author of the Java collections framework, now at Google- Bernie Cosell: One of the main software guys behind the original ARPANET IMPs and a master debugger- Douglas Crockford: JSON founder, JavaScript architect at Yahoo!- L. Peter Deutsch: Author of Ghostscript, implementer of Smalltalk-80 at Xerox PARC and Lisp 1.5 on PDP-1- Brendan Eich: Inventor of JavaScript, CTO of the Mozilla Corporation - Brad Fitzpatrick: Writer of LiveJournal, OpenID, memcached, and Perlbal - Dan Ingalls: Smalltalk implementor and designer- Simon Peyton Jones: Coinventor of Haskell and lead designer of Glasgow Haskell Compiler- Donald Knuth: Author of The Art of Computer Programming and creator of TeX- Peter Norvig: Director of Research at Google and author of the standard text on AI- Guy Steele: Coinventor of Scheme and part of the Common Lisp Gang of Five, currently working on Fortress- Ken Thompson: Inventor of UNIX- Jamie Zawinski: Author of XEmacs and early Netscape/Mozilla hackerWhat you’ll learn:How the best programmers in the world do their jobWho is this book for?Programmers interested in the point of view of leaders in the field. Programmers looking for approaches that work for some of these outstanding programmers.

The Dream Machine: J.C.R. Licklider and the Revolution That Made Computing Personal


M. Mitchell Waldrop - 2001
    C. R. Licklider, whose visionary dream of a human-computer symbiosis transformed the course of modern science and led to the development of the personal computer. Reprint.

The Mythical Man-Month: Essays on Software Engineering


Frederick P. Brooks Jr. - 1975
    With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects. These essays draw from his experience as project manager for the IBM System/360 computer family and then for OS/360, its massive software system. Now, 45 years after the initial publication of his book, Brooks has revisited his original ideas and added new thoughts and advice, both for readers already familiar with his work and for readers discovering it for the first time.The added chapters contain (1) a crisp condensation of all the propositions asserted in the original book, including Brooks' central argument in The Mythical Man-Month: that large programming projects suffer management problems different from small ones due to the division of labor; that the conceptual integrity of the product is therefore critical; and that it is difficult but possible to achieve this unity; (2) Brooks' view of these propositions a generation later; (3) a reprint of his classic 1986 paper "No Silver Bullet"; and (4) today's thoughts on the 1986 assertion, "There will be no silver bullet within ten years."

The Psychology of Computer Programming


Gerald M. Weinberg - 1971
    Weinberg adds new insights and highlights the similarities and differences between now and then. Using a conversational style that invites the reader to join him, Weinberg reunites with some of his most insightful writings on the human side of software engineering.Topics include egoless programming, intelligence, psychological measurement, personality factors, motivation, training, social problems on large projects, problem-solving ability, programming language design, team formation, the programming environment, and much more.Dorset House Publishing is proud to make this important text available to new generations of programmers -- and to encourage readers of the first edition to return to its valuable lessons.

Getting Started with Arduino


Massimo Banzi - 2008
    Getting Started with Arduino gives you lots of ideas for Arduino projects and helps you get going on them right away. From getting organized to putting the final touches on your prototype, all the information you need is right in the book. Inside, you'll learn about:Interaction design and physical computing The Arduino hardware and software development environment Basics of electricity and electronics Prototyping on a solderless breadboard Drawing 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.

Kubernetes in Action, Second Edition


Marko Luksa
    Kubernetes in Action, Second Edition is a fully-updated and comprehensive guide to developing and running applications in a Kubernetes environment.Kubernetes is an essential tool for anyone deploying and managing cloud-native applications. It lays out a complete introduction to container technologies and containerized applications along with practical tips for efficient deployment and operation. This revised edition of the bestselling Kubernetes in Action contains new coverage of the Kubernetes architecture, including the Kubernetes API, and a deep dive into managing a Kubernetes cluster in production. In Kubernetes in Action, Second Edition, you'll start with an overview of how Docker containers work with Kubernetes and move quickly to building your first cluster. You'll gradually expand your initial application, adding features and deepening your knowledge of Kubernetes architecture and operation. As you navigate this comprehensive guide, you'll also appreciate thorough coverage of high-value topics like monitoring, tuning, and scaling. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

Python for Kids


Jason R. Briggs - 2012
    Jason Briggs, author of the popular online tutorial "Snake Wrangling for Kids," begins with the basics of how to install Python and write simple commands. In bite-sized chapters, he instructs readers on the essentials of Python, including how to use Python's extensive standard library, the difference between strings and lists, and using for-loops and while-loops. By the end of the book, readers have built a game and created drawings with Python's graphics library, Turtle. Each chapter closes with fun and relevant exercises that challenge the reader to put their newly acquired knowledge to the test.

Cryptanalysis: A Study of Ciphers and Their Solution


Helen Fouche Gaines - 1939
    Nihilist, grille, U. S. Army, key-phrase, multiple-alphabet, Gronsfeld, Porta, Beaufort, periodic ciphers, and more. Simple and advanced methods. 166 specimens to solve — with solutions.

The Passionate Programmer


Chad Fowler - 2009
    In this book, you'll learn how to become an entrepreneur, driving your career in the direction of your choosing. You'll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skills themselves are a product. The choices you make about which technologies to focus on and which business domains to master have at least as much impact on your success as your technical knowledge itself--don't let those choices be accidental. We'll walk through all aspects of the decision-making process, so you can ensure that you're investing your time and energy in the right areas. You'll develop a structured plan for keeping your mind engaged and your skills fresh. You'll learn how to assess your skills in terms of where they fit on the value chain, driving you away from commodity skills and toward those that are in high demand. Through a mix of high-level, thought-provoking essays and tactical "Act on It" sections, you will come away with concrete plans you can put into action immediately. You'll also get a chance to read the perspectives of several highly successful members of our industry from a variety of career paths. As with any product or service, if nobody knows what you're selling, nobody will buy. We'll walk through the often-neglected world of marketing, and you'll create a plan to market yourself both inside your company and to the industry in general. Above all, you'll see how you can set the direction of your career, leading to a more fulfilling and remarkable professional life.