Effective Objective-C 2.0

52 Specific Ways to Improve Your iOS and OS X Programs

Author: Matt Galloway

Publisher: Addison-Wesley

ISBN: 0133386945

Category: Computers

Page: 320

View: 5288

Write Truly Great iOS and OS X Code with Objective-C 2.0! Effective Objective-C 2.0 will help you harness all of Objective-C’s expressive power to write OS X or iOS code that works superbly well in production environments. Using the concise, scenario-driven style pioneered in Scott Meyers’ best-selling Effective C++, Matt Galloway brings together 52 Objective-C best practices, tips, shortcuts, and realistic code examples that are available nowhere else. Through real-world examples, Galloway uncovers little-known Objective-C quirks, pitfalls, and intricacies that powerfully impact code behavior and performance. You’ll learn how to choose the most efficient and effective way to accomplish key tasks when multiple options exist, and how to write code that’s easier to understand, maintain, and improve. Galloway goes far beyond the core language, helping you integrate and leverage key Foundation framework classes and modern system libraries, such as Grand Central Dispatch. Coverage includes Optimizing interactions and relationships between Objective-C objects Mastering interface and API design: writing classes that feel “right at home” Using protocols and categories to write maintainable, bug-resistant code Avoiding memory leaks that can still occur even with Automatic Reference Counting (ARC) Writing modular, powerful code with Blocks and Grand Central Dispatch Leveraging differences between Objective-C protocols and multiple inheritance in other languages Improving code by more effectively using arrays, dictionaries, and sets Uncovering surprising power in the Cocoa and Cocoa Touch frameworks
Posted in Computers

Effective Modern C++

42 Specific Ways to Improve Your Use of C++11 and C++14

Author: Scott Meyers

Publisher: "O'Reilly Media, Inc."

ISBN: 1491908432

Category: Computers

Page: 334

View: 9770

Coming to grips with C++11 and C++14 is more than a matter of familiarizing yourself with the features they introduce (e.g., auto type declarations, move semantics, lambda expressions, and concurrency support). The challenge is learning to use those features effectively—so that your software is correct, efficient, maintainable, and portable. That’s where this practical book comes in. It describes how to write truly great software using C++11 and C++14—i.e. using modern C++. Topics include: The pros and cons of braced initialization, noexcept specifications, perfect forwarding, and smart pointer make functions The relationships among std::move, std::forward, rvalue references, and universal references Techniques for writing clear, correct, effective lambda expressions How std::atomic differs from volatile, how each should be used, and how they relate to C++'s concurrency API How 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
Posted in Computers

C++ FAQs

Author: Marshall P. Cline,Greg Lomow,Mike Girou

Publisher: Addison-Wesley Professional

ISBN: 9780201309836

Category: Computers

Page: 587

View: 9386

PLEASE PROVIDE DESCRIPTION
Posted in Computers

Large-scale C++ Software Design

Author: John Lakos

Publisher: Addison-Wesley Professional

ISBN: 9780201633627

Category: Computers

Page: 846

View: 1256

In designing large-scale C++ applications, you are entering a dimension barely skimmed by most C++ books, particularly considering experience with small programming projects does not scale up to larger projects. This book unites high-level design concepts with specific C++ programming details to reveal practical methods for planning and implementing high-quality large C++ systems. You will learn the importance of physical design in large systems, how to structure your software as an acyclic hierarchy of components, and techniques for reducing link-time and compile-time dependencies. Then the book turns to logical design issues--architecting a component, designing a function, and implementing an object--all in the context of a large-project environment.
Posted in Computers

Refactoring

Improving the Design of Existing Code

Author: Martin Fowler,Kent Beck,John Brant,William Opdyke,Don Roberts

Publisher: Addison-Wesley

ISBN: 013306526X

Category: Computers

Page: 455

View: 3504

As the application of object technology--particularly the Java programming language--has become commonplace, a new problem has emerged to confront the software development community. 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 Code, 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. With proper training a skilled system designer can take a bad design and rework it into well-designed, robust code. In this book, Martin Fowler shows you where opportunities for refactoring typically can be found, and how to go about reworking a bad design into a good one. Each refactoring step is simple--seemingly too simple to be worth doing. Refactoring may involve moving a field from one class to another, or pulling some code out of a method to turn it into its own method, or even pushing some code up or down a hierarchy. While these individual steps may seem elementary, the cumulative effect of such small changes can radically improve the design. Refactoring is a proven way to prevent software decay. In addition to discussing the various techniques of refactoring, the author provides a detailed catalog of more than seventy proven refactorings with helpful pointers that teach you when to apply them; step-by-step instructions for applying each refactoring; and an example illustrating how the refactoring works. The illustrative examples are written in Java, but the ideas are applicable to any object-oriented programming language.
Posted in Computers

Effective STL

50 Specific Ways to Improve Your Use of the Standard Template Library

Author: Scott Meyers

Publisher: Pearson Education

ISBN: 0201749629

Category: Computers

Page: 260

View: 3686

"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.
Posted in Computers

Effective C# (Covers C# 6. 0)

50 Specific Ways to Improve Your C#

Author: Bill Wagner

Publisher: Addison-Wesley Professional

ISBN: 9780672337871

Category:

Page: 336

View: 1473

In Effective C#, Third Edition, respected .NET expert Bill Wagner identifies 50 ways to harness the full power of the C# 6.0 language to write exceptionally robust, efficient, and well-performing code. Reflecting the growing sophistication of the C# language and its development community, Wagner has identified dozens of new ways to write better code. This edition s new solutions include some that take advantage of generics and several that are more focused on LINQ, as well as a full chapter of advanced best practices for working with exceptions. Wagner s clear, practical explanations, expert tips, and realistic code examples have made Effective C# indispensable to hundreds of thousands of developers. Drawing on his unsurpassed C# experience, he addresses everything from resource management to multicore support, and reveals how to avoid common pitfalls in the language and its .NET environment. Learn how to choose the most effective solution when multiple options exist, and how to write code that s far easier to maintain and improve. Wagner shows how and why to Prefer implicitly typed local variables (see Item 1) Replace string.Format() with interpolated strings (see Item 4) Express callbacks with delegates (see Item 7) Make the most of .NET resource management (see Item 11) Define minimal and sufficient constraints for generics(see Item 18) Specialize generic algorithms using runtime type checking (see Item 19) Use delegates to define method constraints on type parameters (see Item 23) Augment minimal interface contracts with extension methods (see Item 27) Create composable APIs for sequences (see Item 31) Decouple iterations from actions, predicates, and functions (see Item 32) Prefer lambda expressions to methods (see Item 38) Distinguish early from deferred execution (see Item 40) Avoid capturing expensive resources (see Item 41) Use exceptions to report method contract failures (see Item 45) Leverage side effects in exception filters (see Item 50) You re already a successful C# programmer, and this book will make you an outstanding one. Normal 0 false false false EN-US X-NONE X-NONE "
Posted in

Accelerated C++

Practical Programming by Example

Author: Andrew Koenig,Barbara E. Moo

Publisher: Addison-Wesley Professional

ISBN: 9780201703535

Category: Computers

Page: 336

View: 7091

Takes a practical approach to solving problems using C++. This book describes real problems and solutions, not just language features. It covers the language and standard library together.
Posted in Computers

The Art of Software Testing

Author: Glenford J. Myers,Corey Sandler,Tom Badgett

Publisher: John Wiley & Sons

ISBN: 1118133153

Category: Business & Economics

Page: 256

View: 9995

The classic, landmark work on software testing The hardware and software of computing have changed markedly in the three decades since the first edition of The Art of Software Testing, but this book's powerful underlying analysis has stood the test of time. Whereas most books on software testing target particular development techniques, languages, or testing methods, The Art of Software Testing, Third Edition provides a brief but powerful and comprehensive presentation of time-proven software testing approaches. If your software development project is mission critical, this book is an investment that will pay for itself with the first bug you find. The new Third Edition explains how to apply the book's classic principles to today's hot topics including: Testing apps for iPhones, iPads, BlackBerrys, Androids, and other mobile devices Collaborative (user) programming and testing Testing for Internet applications, e-commerce, and agile programming environments Whether you're a student looking for a testing guide you'll use for the rest of your career, or an IT manager overseeing a software development team, The Art of Software Testing, Third Edition is an expensive book that will pay for itself many times over.
Posted in Business & Economics

Advanced CORBA® Programming with C++

Author: Michi Henning,Steve Vinoski

Publisher: Pearson Education

ISBN: 0672333945

Category: Computers

Page: 1120

View: 706

Here is the CORBA book that every C++ software engineer has been waiting for. Advanced CORBA® Programming with C++ provides designers and developers with the tools required to understand CORBA technology at the architectural, design, and source code levels. This book offers hands-on explanations for building efficient applications, as well as lucid examples that provide practical advice on avoiding costly mistakes. With this book as a guide, programmers will find the support they need to successfully undertake industrial-strength CORBA development projects. The content is systematically arranged and presented so the book may be used as both a tutorial and a reference. The rich example programs in this definitive text show CORBA developers how to write clearer code that is more maintainable, portable, and efficient. The authors' detailed coverage of the IDL-to-C++ mapping moves beyond the mechanics of the APIs to discuss topics such as potential pitfalls and efficiency. An in-depth presentation of the new Portable Object Adapter (POA) explains how to take advantage of its numerous features to create scalable and high-performance servers. In addition, detailed discussion of advanced topics, such as garbage collection and multithreading, provides developers with the knowledge they need to write commercial applications. Other highlights In-depth coverage of IDL, including common idioms and design trade-offs Complete and detailed explanations of the Life Cycle, Naming, Trading, and Event Services Discussion of IIOP and implementation repositories Insight into the dynamic aspects of CORBA, such as dynamic typing and the new DynAny interfaces Advice on selecting appropriate application architectures and designs Detailed, portable, and vendor-independent source code
Posted in Computers

C Programming Language

Author: Brian W. Kernighan,Dennis Ritchie

Publisher: Prentice Hall

ISBN: 0133086216

Category: Computers

Page: 285

View: 5269

This ebook is the first authorized digital version of Kernighan and Ritchie’s 1988 classic, The C Programming Language (2nd Ed.). One of the best-selling programming books published in the last fifty years, "K&R" has been called everything from the "bible" to "a landmark in computer science" and it has influenced generations of programmers. Available now for all leading ebook platforms, this concise and beautifully written text is a "must-have" reference for every serious programmer’s digital library. As modestly described by the authors in the Preface to the First Edition, this "is not an introductory programming manual; it assumes some familiarity with basic programming concepts like variables, assignment statements, loops, and functions. Nonetheless, a novice programmer should be able to read along and pick up the language, although access to a more knowledgeable colleague will help."
Posted in Computers

The Pragmatic Programmer

From Journeyman to Master

Author: Andrew Hunt,David Thomas

Publisher: Addison-Wesley Professional

ISBN: 013211917X

Category: Computers

Page: 352

View: 7481

What others in the trenches say about The Pragmatic Programmer... “The cool thing about this book is that it’s great for keeping the programming process fresh. The book helps you to continue to grow and clearly comes from people who have been there.” —Kent Beck, author of Extreme Programming Explained: Embrace Change “I found this book to be a great mix of solid advice and wonderful analogies!” —Martin Fowler, author of Refactoring and UML Distilled “I would buy a copy, read it twice, then tell all my colleagues to run out and grab a copy. This is a book I would never loan because I would worry about it being lost.” —Kevin Ruland, Management Science, MSG-Logistics “The wisdom and practical experience of the authors is obvious. The topics presented are relevant and useful.... By far its greatest strength for me has been the outstanding analogies—tracer bullets, broken windows, and the fabulous helicopter-based explanation of the need for orthogonality, especially in a crisis situation. I have little doubt that this book will eventually become an excellent source of useful information for journeymen programmers and expert mentors alike.” —John Lakos, author of Large-Scale C++ Software Design “This is the sort of book I will buy a dozen copies of when it comes out so I can give it to my clients.” —Eric Vought, Software Engineer “Most modern books on software development fail to cover the basics of what makes a great software developer, instead spending their time on syntax or technology where in reality the greatest leverage possible for any software team is in having talented developers who really know their craft well. An excellent book.” —Pete McBreen, Independent Consultant “Since reading this book, I have implemented many of the practical suggestions and tips it contains. Across the board, they have saved my company time and money while helping me get my job done quicker! This should be a desktop reference for everyone who works with code for a living.” —Jared Richardson, Senior Software Developer, iRenaissance, Inc. “I would like to see this issued to every new employee at my company....” —Chris Cleeland, Senior Software Engineer, Object Computing, Inc. “If I’m putting together a project, it’s the authors of this book that I want. . . . And failing that I’d settle for people who’ve read their book.” —Ward Cunningham Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how to Fight software rot; Avoid the trap of duplicating knowledge; Write flexible, dynamic, and adaptable code; Avoid programming by coincidence; Bullet-proof your code with contracts, assertions, and exceptions; Capture real requirements; Test ruthlessly and effectively; Delight your users; Build teams of pragmatic programmers; and Make your developments more precise with automation. Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.
Posted in Computers

Qt5 C++ GUI Programming Cookbook

Author: Lee Zhi Eng

Publisher: Packt Publishing Ltd

ISBN: 178328028X

Category: Computers

Page: 300

View: 5110

Use Qt5 to design and build a graphical user interface that is functional, appealing, and user-friendly for your software application About This Book Learn to make use of Qt5 to design and customize the look-and-feel of your application Improve the visual quality of your application by utilizing the graphic rendering system and animation system provided by Qt5 A good balance of visual presentation and its contents will make an application appealing yet functional Who This Book Is For This book intended for those who want to develop software using Qt5. If you want to improve the visual quality and content presentation of your software application, this book is best suited to you. What You Will Learn Customize the look and feel of your application using the widget editor provided by Qt5 Change the states of the GUI elements to make them appear in a different form Animating the GUI elements using the built-in animation system provided by Qt5 Draw shapes and 2D images in your application using Qt5's powerful rendering system Draw 3D graphics in your application by implementing OpenGL, an industry-standard graphical library to your project Build a mobile app that supports touch events and export it to your device Parse and extract data from an XML file, then present it on your software's GUI Display web content on your program and interact with it by calling JavaScript functions from C++, or calling C++ functions from the web content Access to MySQL and SQLite databases to retrieve data and display it on your software's GUI In Detail With the advancement of computer technology, the software market is exploding with tons of software choices for the user, making their expectations higher in terms of functionality and the look and feel of the application. Therefore, improving the visual quality of your application is vital in order to overcome the market competition and stand out from the crowd. This book will teach you how to develop functional and appealing software using Qt5 through multiple projects that are interesting and fun. This book covers a variety of topics such as look-and-feel customization, GUI animation, graphics rendering, implementing Google Maps, and more. You will learn tons of useful information, and enjoy the process of working on the creative projects provided in this book. Style and approach This book focuses on customizing the look and feel and utilizing the graphical features provided by Qt5. It takes a step-by-step approach, providing tons of screenshots and sample code for you to follow and learn. Each topic is explained sequentially and placed in context.
Posted in Computers

Transactions on Pattern Languages of Programming I

Author: James Noble,Ralph E Johnson

Publisher: Springer

ISBN: 3642108326

Category: Computers

Page: 234

View: 9892

From conception to birth is traditionally nine months. The first emails regarding the volume you now hold in your hands—or the bits you have downloaded onto your screen—are dated 11 June 2005. From conception to birth has taken over four years. Springer’s LNCS Transactions on Pattern Languages of Programming is dedicated, first and foremost, to promoting, promulgating, presenting, describing, critiquing, interrogating, and evaluating all aspects of the use of patterns in programming. In the 15 years or so since Gamma, Helm, Johnson, Vlissides’s Design Patterns became widely available, software patterns have become a highly effective means of improving the quality of programming, software engineering, system design, and development. Patterns capture the best practices of software design, making them available to everyone participating in the production of software. A key goal of the Transactions Series is to present material that is validated. Every contributed paper that appears in this volume has been reviewed by both patterns experts and domain experts, by researchers and practitioners. This reviewing process begins long before the paper is even submitted to Transactions. Every paper in the Series is first presented and critiqued at one of the Pattern Languages of Programming (PLoP) conferences held annually around the world. Prior to the conference, each submitted paper is assigned a shepherd who works with the authors to improve the paper. Based on several rounds of feedback, a paper may proceed to a writers’ workshop at the conference itself.
Posted in Computers

Research Methods in Crime and Justice

Author: Brian L. Withrow

Publisher: Taylor & Francis

ISBN: 131730067X

Category: Social Science

Page: 554

View: 5337

Research Methods in Crime and Justice, 2nd Edition, is an innovative text/online hybrid for undergraduate Criminal Justice Research Methods courses. This material uniquely addresses the fundamental teaching issue for this course: how to show students that success as criminal justice practitioners is linked to their acquisition of research skills. Brian Withrow, a widely published academic researcher and former Texas State Trooper, developed this approach for his own undergraduate Research Methods class. He persuasively demonstrates that research skills aren’t just essential to university academic researchers but to successful criminal justice practitioners as well. More than 80 short, sharply focused examples throughout the text rely on research that is conducted by, on behalf of, or relevant to criminal justice practitioners to engage students’ interest like no other text of its kind. Extensive web materials all written by the author provide an array of instructor support material, including a Researcher’s Notebook that provides students (and their instructors) with a series of structured exercises leading to the development of a valid research project. Withrow systematically walks students through defining a question, conducting a literature review, and designing a research method that provides the data necessary to answer the research question—all online, with minimal instructor supervision. The second edition features expanded coverage of measurement, qualitative research methods, and evaluation research methods, as well as additional downloadable journal articles to ensure students begin to think critically about research and can read scholarly literature.
Posted in Social Science

How We Test Software at Microsoft

Author: Alan Page,Ken Johnston,Bj Rollison

Publisher: Microsoft Press

ISBN: 0735638314

Category: Computers

Page: 448

View: 543

It may surprise you to learn that Microsoft employs as many software testers as developers. Less surprising is the emphasis the company places on the testing discipline—and its role in managing quality across a diverse, 150+ product portfolio. This book—written by three of Microsoft’s most prominent test professionals—shares the best practices, tools, and systems used by the company’s 9,000-strong corps of testers. Learn how your colleagues at Microsoft design and manage testing, their approach to training and career development, and what challenges they see ahead. Most important, you’ll get practical insights you can apply for better results in your organization. Discover how to: Design effective tests and run them throughout the product lifecycle Minimize cost and risk with functional tests, and know when to apply structural techniques Measure code complexity to identify bugs and potential maintenance issues Use models to generate test cases, surface unexpected application behavior, and manage risk Know when to employ automated tests, design them for long-term use, and plug into an automation infrastructure Review the hallmarks of great testers—and the tools they use to run tests, probe systems, and track progress efficiently Explore the challenges of testing services vs. shrink-wrapped software
Posted in Computers

Clean Code

A Handbook of Agile Software Craftsmanship

Author: Robert C. Martin

Publisher: Pearson Education

ISBN: 0132350882

Category: Computers

Page: 431

View: 3650

Looks at the principles and clean code, includes case studies showcasing the practices of writing clean code, and contains a list of heuristics and "smells" accumulated from the process of writing clean code.
Posted in Computers