Refactoring: Improving the Design of Existing Code


Martin Fowler - 1999
    Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and extend. Increasingly, software system professionals are discovering just how difficult it is to work with these inherited, non-optimal applications. For several years, expert-level object programmers have employed a growing collection of techniques to improve the structural integrity and performance of such existing software programs. Referred to as refactoring, these practices have remained in the domain of experts because no attempt has been made to transcribe the lore into a form that all developers could use... until now. In Refactoring: Improving the Design of Existing Software, renowned object technology mentor Martin Fowler breaks new ground, demystifying these master practices and demonstrating how software practitioners can realize the significant benefits of this new process.

Domain-Driven Design: Tackling Complexity in the Heart of Software


Eric Evans - 2003
    "His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving understanding of it. Eric thinks that learning about your problem domain is as likely to happen at the end of your project as at the beginning, and so refactoring is a big part of his technique. "The book is a fun read. Eric has lots of interesting stories, and he has a way with words. I see this book as essential reading for software developers--it is a future classic." --Ralph Johnson, author of Design Patterns "If you don't think you are getting value from your investment in object-oriented programming, this book will tell you what you've forgotten to do. "Eric Evans convincingly argues for the importance of domain modeling as the central focus of development and provides a solid framework and set of techniques for accomplishing it. This is timeless wisdom, and will hold up long after the methodologies du jour have gone out of fashion." --Dave Collins, author of Designing Object-Oriented User Interfaces "Eric weaves real-world experience modeling--and building--business applications into a practical, useful book. Written from the perspective of a trusted practitioner, Eric's descriptions of ubiquitous language, the benefits of sharing models with users, object life-cycle management, logical and physical application structuring, and the process and results of deep refactoring are major contributions to our field." --Luke Hohmann, author of Beyond Software Architecture "This book belongs on the shelf of every thoughtful software developer." --Kent Beck "What Eric has managed to capture is a part of the design process that experienced object designers have always used, but that we have been singularly unsuccessful as a group in conveying to the rest of the industry. We've given away bits and pieces of this knowledge...but we've never organized and systematized the principles of building domain logic. This book is important." --Kyle Brown, author of Enterprise Java(TM) Programming with IBM(R) WebSphere(R) The software development community widely acknowledges that domain modeling is central to software design. Through domain models, software developers are able to express rich functionality and translate it into a software implementation that truly serves the needs of its users. But despite its obvious importance, there are few practical resources that explain how to incorporate effective domain modeling into the software development process. Domain-Driven Design fills that need. This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development. Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis--refactoring not just the code but the model underlying the code--in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Driven Design then builds on this foundation, and addresses modeling and design for complex systems and larger organizations.Specific topics covered include:Getting all team members to speak the same language Connecting model and implementation more deeply Sharpening key distinctions in a model Managing the lifecycle of a domain object Writing domain code that is safe to combine in elaborate ways Making complex code obvious and predictable Formulating a domain vision statement Distilling the core of a complex domain Digging out implicit concepts needed in the model Applying analysis patterns Relating design patterns to the model Maintaining model integrity in a large system Dealing with coexisting models on the same project Organizing systems with large-scale structures Recognizing and responding to modeling breakthroughs With this book in hand, object-oriented developers, system analysts, and designers will have the guidance they need to organize and focus their work, create rich and useful domain models, and leverage those models into quality, long-lasting software implementations.

Minimalist Budget: Simple Strategies On How To Save More, Spend Less, And Curb Spending Temptation (Without Living On Ramen)


Zoe McKey - 2017
    Minimalist Budget will help you to turn your bloated expenses into a well-toned budget, spending on exactly what you need and nothing else. This book presents solutions for two major problems in our consumer society: (1) how to downsize your cravings without having to sacrifice the fun stuff, and (2) how to whip your finances into shape and follow a personalized budget. This is not a get rich quick book. But I can promise day-by-day, month-by-month, you’ll budget better and become richer as a consequence. Regardless of how much your income is we’ll find a way to budget, save, and increase your net worth. Since my youth, I’ve had to live on a budget that ranged from $100 to $200 a month if I was lucky. Even though I never knew how much I would have the next month, I was always able to have enough for my essential expenses, personal pleasures, and savings. If you’re tired of the false and impossible-to-follow promises of “finance gurus,” try out my simple, straightforward, easy-to-stick-to methods. Improve your spending habits: • Incorporate minimalism into your finances • How to avoid becoming a minimalist consumerist • Learn the psychological traps that make you overspend • Control your compulsive spending habits Feel financially secure every day: • Learn about two A-Z budgeting methods and how to make them work for you • Learn ratio-based budgeting and fixed-amount budgeting • Discover the best budgeting software programs • Design a bulletproof savings strategy to get out of debt, be prepared for emergencies, and set yourself up for retirement Stop hating your financial life: • Learn how to set SMART financial goals • Increase your self-confidence with budgeting • 50 small budgeting tips Financial education is not part of our educational system. It is normal that we don’t know how to budget when we step into the craziness we call adulthood. But it is not normal to stay ignorant about a field of life that (like it or not) guarantees our material survival. Money management is an essential skill for everybody who earns, shops or consumes. If you follow the budgeting tips in this book, you’ll be able to keep track of your finances. You’ll clearly know where your money goes, where it comes from and where can you save. You won’t feel stressed of running out of money unexpectedly, you’ll clear yourself out of debts and have savings for bigger expenses like a vacation, new car or unexpected events. Leave money struggles for yesterday. Grab a copy of Minimalist Budget by hitting buy now in the top right corner of this page.

A Software Engineer Learns HTML5, JavaScript and jQuery


Dane Cameron - 2013
    Due to their monopoly position in web browsers, and the fact web browsers have spread from PCs to phones, tablets and TVs; their status will continue to grow and grow. Despite their success, many software engineers are apprehensive about JavaScript and HTML. This apprehensiveness is not completely unfounded; both JavaScript and HTML were rushed in their early years, and driven by commercial rather than engineering interests. As a result, many dubious features crept into these languages. Due to backwards compatibility concerns, most of these features still remain. In addition, many software engineers have used these languages without ever learning them. JavaScript and HTML have low barriers to entry, and this, along with their similarity to other languages, led many software engineers to conclude that there really was nothing much to learn. If you have not used JavaScript and HTML for a number of years, or if you are a programmer or software engineer using other languages, you may be surprised at what they now offer. Browser based web applications are now capable of matching or exceeding the sophistication and scale of traditional desktop applications. In order to create complex web applications however, it is essential to learn these languages. This book takes the point of view that once you have a strong grasp of the fundamentals, the details will take care of themselves. It will not present you with long lists of APIs, or intricate details of every attribute, these can be found in reference manuals. It will focus on the details of each language that are fundamental to understanding how they work. This book will guide you through the process of developing a web application using HTML5, Javascript, jQuery and CSS. It contains the following content: 1. An introduction to the HTML5 markup language, and how it differs from HTML4 and XHTML. 2. An introduction to JavaScript, including an in-depth look at its use of objects and functions, along with the design patterns that support the development of robust web applications. 3. An introduction to jQuery selection, traversal, manipulation and events. 4. An in-depth look at the Web storage and IndexedDB APIs for client side data storage. 5. A guide to implementing offline web applications with the Application Cache API. 6. An introduction to the ways JavaScript can interact with the users file-system using the FileReader API. 7. The use of Web Workers in a web application to execute algorithms on background threads. 8. An introduction to AJAX, and the jQuery API supporting AJAX. 9. An introduction to Server Sent Events and Web Sockets. All subjects are introduced in the context of a sample web application. This book is intended for anyone with at least a superficial knowledge of HTML and programming.

OCA Java SE 7 Programmer I Certification Guide: Prepare for the 1ZO-803 exam


Mala Gupta - 2012
    You'll explore a wide range of important Java topics as you systematically learn how to pass the certification exam. Each chapter starts with a list of the exam objectives covered in that chapter. You'll find sample questions and exercises designed to reinforce key concepts and to prepare you for what you'll see in the real exam, along with numerous tips, notes, and visual aids throughout the book.About This BookTo earn the OCA Java SE 7 Programmer Certification, you need to know your Java inside and out, and to pass the exam it's good to understand the test itself. This book cracks open the questions, exercises, and expectations you'll face on the OCA exam so you'll be ready and confident on test day.OCA Java SE 7 Programmer I Certification Guide is a comprehensive guide to the 1Z0-803 exam. You'll explore important Java topics as you systematically learn what is required. Each chapter starts with a list of exam objectives, followed by sample questions and exercises designed to reinforce key concepts. It provides multiple ways to digest important techniques and concepts, including analogies, diagrams, flowcharts, and lots of well-commented code.Written for developers with a working knowledge of Java who want to earn the OCA Java SE 7 Programmer I Certification.Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.What's InsideCovers all exam topicsHands-on coding exercisesHow to avoid built-in traps and pitfallsAbout the AuthorMala Gupta has been training programmers to pass Java certification exams since 2006. She holds OCA Java SE7 Programmer I, SCWCD, and SCJP certifications.Table of ContentsIntroductionJava basicsWorking with Java data typesMethods and encapsulationString, StringBuilder, Arrays, and ArrayListFlow controlWorking with inheritanceException handlingFull mock exam

CompTIA Network+ Study Guide: Exam N10-004


Todd Lammle - 2009
    Using his one-of-a-kind conversational style, Todd gives you clear and concise information on crucial networking topics through practical examples and insights drawn from his real-world experience. This Study Guide thoroughly covers all exam objectives for the CompTIA Network+ exam (N10-004), including key topics such as network technologies, media and topologies, devices, management, tools, and security. Along with the book you get a CD-ROM featuring a custom test engine with chapter review questions, two practice exams, flashcards, and the book as a searchable PDF.Note: CD-ROM/DVD and other supplementary materials are not included as part of eBook file.For Instructors: Teaching supplements are available for this title.

Sun Certified Programmer & Developer for Java 2 Study Guide (Exam 310-035 & 310-027)


Kathy Sierra - 2002
    More than 250 challenging practice questions have been completely revised to closely model the format, tone, topics, and difficulty of the real exam. An integrated study system based on proven pedagogy, exam coverage includes step-by-step exercises, special Exam Watch notes, On-the-Job elements, and Self Tests with in-depth answer explanations to help reinforce and teach practical skills.Praise for the author:"Finally A Java certification book that explains everything clearly. All you need to pass the exam is in this book."--Solveig Haugland, Technical Trainer and Former Sun Course Developer"Who better to write a Java study guide than Kathy Sierra, the reigning queen of Java instruction? Kathy Sierra has done it again--here is a study guide that almost guarantees you a certification "--James Cubeta, Systems Engineer, SGI"The thing I appreciate most about Kathy is her quest to make us all remember that we are teaching people and not just lecturing about Java. Her passion and desire for the highest quality education that meets the needs of the individual student is positively unparalleled at SunEd. Undoubtedly there are hundreds of students who have benefited from taking Kathy's classes."--Victor Peters, founder Next Step Education & Software Sun Certified Java Instructor"I want to thank Kathy for the EXCELLENT Study Guide. The book is well written, every concept is clearly explained using a real life example, and the book states what you specifically need to know for the exam. The way it's written, you feel that you're in a classroom and someone is actually teaching you the difficult concepts, but not in a dry, formal manner. The questions at the end of the chapters are also REALLY good, and I am sure they will help candidates pass the test. Watch out for this Wickedly Smart book."-Alfred Raouf, Web Solution Developer, Kemety.Net"The Sun Certification exam was certainly no walk in the park but Kathy's material allowed me to not only pass the exam, but Ace it "--Mary Whetsel, Sr. Technology Specialist, Application Strategy and Integration, The St. Paul Companies

We Are the Builders of Our Fortunes: Success through Self-Reliance


Ralph Waldo Emerson - 2013
    His philosophy directly inspired Napoleon Hill, James Allen, Wallace D. Wattles, and Elbert Hubbard. Today's inspirational leaders, like Tony Robbins, Wayne Dyer, Rhonda Byrne, and Oprah Winfrey, are equally indebted to Emerson. "We are the Builders of Our Fortunes" is the first-ever collection of Emerson's essential writings on success. In these ten essays, Emerson will teach you: How to develop your inner genius; How the power of thought shapes our world; How the universe responds to our every action; Why wealth is a spiritual phenomena; Why economies rise or fall; What defines human greatness; and much more. Includes an introduction by Charles Conrad, who also selected "Emerson's Keys to Success" after each chapter.

Your Road to Wealth Starts Here: A Simple Step-by-Step Plan for Everyone to Get Out of Debt and Stay Debt-Free Forever in 2017


Avery Breyer - 2016
     You’ve seen all the goofy ideas and fads that don’t work. Now it’s time to get back to basics with a simple, time-tested, step-by-step plan that anyone can follow. Arm yourself with the truth about getting out of debt. Knowledge is power and you’re going to get it. Find out: • Whether your mortgage is good or bad (the answer may surprise you!) • About the Power Pay Off Plan (and how Sam saved 20 grand) • The secrets to successfully get out of debt • Where to find the money you need for debt free living • How much money you ought to be putting towards paying off debt • The truth about debt consolidation (including pitfalls to avoid) • How to use insurance to protect yourself from the unexpected • What to do next, once you’ve started on the road to wealth Your student loans, mortgage, car loans, and credit card balances can all be gone with the straightforward strategies you’ll learn in this book. You don’t have to feel stress, shame, or embarrassment over it for one moment longer. You’re going to take control and change your life for the better. You’ll also get free access to The Debt Destroyer. This wickedly good tool will create a customized plan for you to pay off debt and ensure that more of your money stays in your pocket. You don’t have to tackle this alone, and you don’t have to be rich to pull this off. If you want debt help on a budget - with straight talk and no tricks - you’ll find everything you need right here. Debt relief can be yours. Buy this book today and get started. It’s your turn.

Trade and Grow Rich : Adventurous Journey to Successful trading


Indrazith Shantharaj - 2018
    For over a decade,the authors have studied the world’s successful traders. Based on their learnings, they started practicing it and are now part of the 5%. Trade and Grow Rich teaches not just concepts but also methods with the help of anecdotes. This book has to be read one chapter at a time, rather than just being a one-time read. If you want to enjoy an adventurous journey to become a successful trader, then this is the book you are looking for!

Ship It!


Jared Richardson - 2005
    You'll get quick, easy-to-follow advice on modern practices: which to use, and when they should be applied. This book avoids current fashion trends and marketing hype; instead, readers find page after page of solid advice, all tried and tested in the real world.Aimed at beginning to intermediate programmers, Ship It! will show you:Which tools help, and which don't How to keep a project moving Approaches to scheduling that work How to build developers as well as product What's normal on a project, and what's not How to manage managers, end-users and sponsors Danger signs and how to fix them Few of the ideas presented here are controversial or extreme; most experienced programmers will agree that this stuff works. Yet 50 to 70 percent of all project teams in the U.S. aren't able to use even these simple, well-accepted practices effectively. This book will help you get started.Ship It! begins by introducing the common technical infrastructure that every project needs to get the job done. Readers can choose from a variety of recommended technologies according to their skills and budgets. The next sections outline the necessary steps to get software out the door reliably, using well-accepted, easy-to-adopt, best-of-breed practices that really work.Finally, and most importantly, Ship It! presents common problems that teams face, then offers real-world advice on how to solve them.

Clean Code: A Handbook of Agile Software Craftsmanship


Robert C. Martin - 2007
    But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way. Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship . Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code on the fly into a book that will instill within you the values of a software craftsman and make you a better programmer but only if you work at it. What kind of work will you be doing? You'll be reading code - lots of code. And you will be challenged to think about what's right about that code, and what's wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft. Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code - of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and "smells" gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code. Readers will come away from this book understanding ‣ How to tell the difference between good and bad code‣ How to write good code and how to transform bad code into good code‣ How to create good names, good functions, good objects, and good classes‣ How to format code for maximum readability ‣ How to implement complete error handling without obscuring code logic ‣ How to unit test and practice test-driven development This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.

The Topline Summary of: Simon Sinek's Start with Why - Be a Great Leader and Inspire Other People to Take Action (Topline Summaries)


Gareth F. Baines - 2014
    It matters WHY you do it. “What’s good, if brief, is twice as good.” – Baltasar Gracian Don't you hate it when you've always wanted to read a book but never able to quite find the time? Or do you just want to extract the key ideas of a book without having to spend weeks and months reading through it all? Fret not! Welcome to Top Line Summaries, brought to you by BrevityBooks Publishing - encapsulating the core concepts, big ideas and best bits from all your favourite business and leadership, personal development and self-help bestselling books. In an age where personal time is more limited than ever, our core belief is that ‘being brief is best.’ Whether in business or at home, Topline Summaries will get you on the express road to success! The latest book to get the infamous 'Topline Summary Treatment' is Simon Sinek's groundbreaking book, Start with Why. “The more organizations and people who learn to start with WHY, the more people there will be who wake up being fulfilled by the work they do.” – Simon Sinek, Start with Why Have you ever wondered why some companies fail, others do average, and some - the rare few – become huge success stories? Why is it that some leaders never achieve greatness and others motivate millions? What sets apart the mundane from the masterful, the indifferent from the inspirational? Simon Sinek encapsulated the answers to all of these questions in his groundbreaking book Start with Why, following on from his hugely popular and now legendary TED talk. We have extracted the best and most pertinent parts of the book and here it now is, available just a short read away!

Getting Clojure


Russ Olsen - 2018
    The vision behind Clojure is of a radically simple language framework holding together a sophisticated collection of programming features. Learning Clojure involves much more than just learning the mechanics of the language. To really get Clojure you need to understand the ideas underlying this structure of framework and features. You need this book: an accessible introduction to Clojure that focuses on the ideas behind the language as well as the practical details of writing code.

How the Internet Works (How It Works)


Preston Gralla - 1991
     The Internet has changed the world... and, with everything from blogs to podcasts, Internet phones to video, it's still changing the world. Now, it's easy to understand how it all works! This book's big, brilliant, full-color illustrations and clear explanations make it all incredibly simple! DISCOVER HOW THE INTERNET REALLY WORKS... IT'S AMAZINGLY EASY! This new edition has been completely updated for today's hottest Internet technologies, Web connections, hardware, communications and entertainment services, and much more! - See how the Internet can deliver any kind of information, anywhere: web pages, email, music, video, phone calls, and more! - Understand the most exciting new Internet technologies, from blogs and podcasting to wikis and BitTorrent - Discover how your connection to the Internet works... wireless, cable modem, DSL, even cellphones - Go behind the scenes with today's most sophisticated websites, applications, and services - Protect yourself from the latest Internet dangers, including phishing, web surveillance, and wireless hacking Preston Gralla is the award-winning author of more than 30 books, including How the Internet Works, Complete Idiot's Guide to Internet Privacy and Security, Complete Idiot's Guide to Protecting Your Child Online, and How Wireless Works. He has written frequently about security issues, computer technology, the Internet, and has been a columnist for many magazines, websites and newspapers.