Welcome to Loot.co.za!
Sign in / Register |Wishlists & Gift Vouchers |Help | Advanced search
|
Your cart is empty |
|||
Books > Computing & IT > Computer programming > Object-oriented programming (OOP)
It takes a week to travel the 8,000 miles overland from Java to Kotlin. If you're an experienced Java developer who has tried the Kotlin language, you were probably productive in about the same time. You'll have found that they do things differently in Kotlin, though. Nullability is important, collections are different, and classes are final by default. Kotlin is more functional, but what does that mean, and how should it change the way that you program? And what about all that Java code that you still have to support? Your tour guides Duncan and Nat first made the trip in 2015, and they've since helped many teams and individuals follow in their footsteps. Travel with them as they break the route down into legs like Optional to Nullable, Beans to Values, and Open to Sealed Classes. Each explains a key concept and then shows how to refactor production Java to idiomatic Kotlin, gradually and safely, while maintaining interoperability. The resulting code is simpler, more expressive, and easier to change. By the end of the journey, you'll be confident in refactoring Java to Kotlin, writing Kotlin from scratch, and managing a mixed language codebase as it evolves over time.
This book begins by explaining key concepts in programming, and elaborates on characteristic of class, including inheritance, derivation and polymorphism. It also introduces generic programming and Standard Template Library, I/O Stream Library and Exception Handling. The concepts and methods are illustrated via examples step by step, making the book an essential reading for beginners to C++ programming.
Making extensive use of examples, this textbook on Java programming teaches the fundamental skills for getting started in a command-line environment. Meant to be used for a one-semester course to build solid foundations in Java, Fundamentals of Java Programming eschews second-semester content to concentrate on over 180 code examples and 250 exercises.Key object classes (String, Scanner, PrintStream, Arrays, and File) are included to get started in Java programming. The programs are explained with almost line-by-line descriptions, also with chapter-by-chapter coding exercises. Teaching resources include solutions to the exercises, as well as digital lecture slides.
System developers have used modeling languages for decades to specify, visualize, construct, and document systems. The Unified Modeling Language (UML) is one of those languages. UML makes it possible for team members to collaborate by providing a common language that applies to a multitude of different systems. Essentially, it enables you to communicate solutions in a consistent, tool-supported language. Today, UML has become the standard method for modeling software systems, which means you're probably confronting this rich and expressive language more than ever before. And even though you may not write UML diagrams yourself, you'll still need to interpret diagrams written by others. "UML 2.0 in a Nutshell" from O'Reilly feels your pain. It's been crafted for professionals like you who must read, create, and understand system artifacts expressed using UML. Furthermore, it's been fully revised to cover version 2.0 of the language. This comprehensive new edition not only provides a quick-reference to all UML 2.0 diagram types, it also explains key concepts in a way that appeals to readers already familiar with UML or object-oriented programming concepts. Topics include: The role and value of UML in projects The object-oriented paradigm and its relation to the UML An integrated approach to UML diagrams Class and Object, Use Case, Sequence, Collaboration, Statechart, Activity, Component, and Deployment Diagrams Extension Mechanisms The Object Constraint Language (OCL) If you're new to UML, a tutorial with realistic examples has even been included to help you quickly familiarize yourself with the system.
If you program in C++ you've been neglected. Test-driven
development (TDD) is a modern software development practice that
can dramatically reduce the number of defects in systems, produce
more maintainable code, and give you the confidence to change your
software to meet changing needs. But C++ programmers have been
ignored by those promoting TDD--until now. In this book, Jeff Langr
gives you hands-on lessons in the challenges and rewards of doing
TDD in C++.
This book illustrates a theory well suited to tracking codes, which the author has developed over the years. Tracking codes now play a central role in the design and operation of particle accelerators. The theory is fully explained step by step with equations and actual codes that the reader can compile and run with freely available compilers. In this book, the author pursues a detailed approach based on finite "s"-maps, since this is more natural as long as tracking codes remain at the centre of accelerator design. The hierarchical nature of software imposes a hierarchy that puts map-based perturbation theory above any other methods. The map-based approach, perhaps paradoxically, allows ultimately an implementation of the Deprit-Guignard-Schoch algorithms more faithful than anything found in the standard literature. This hierarchy of methods is not a personal choice: it follows logically from tracking codes overloaded with a truncated power series algebra package. After defining abstractly and briefly what a tracking code is, the author illustrates most of the accelerator perturbation theory using an actual code: PTC. This book may seem like a manual for PTC; however, the reader is encouraged to explore other tools as well. The presence of an actual code ensures that readers will have a tool with which they can test their understanding. Codes and examples will be available from various sites since PTC is in MAD-X (CERN) and BMAD (Cornell).
Data clustering is a highly interdisciplinary field, the goal of which is to divide a set of objects into homogeneous groups such that objects in the same group are similar and objects in different groups are quite distinct. Thousands of theoretical papers and a number of books on data clustering have been published over the past 50 years. However, few books exist to teach people how to implement data clustering algorithms. This book was written for anyone who wants to implement or improve their data clustering algorithms. Using object-oriented design and programming techniques, Data Clustering in C++ exploits the commonalities of all data clustering algorithms to create a flexible set of reusable classes that simplifies the implementation of any data clustering algorithm. Readers can follow the development of the base data clustering classes and several popular data clustering algorithms. Additional topics such as data pre-processing, data visualization, cluster visualization, and cluster interpretation are briefly covered. This book is divided into three parts-- Data Clustering and C++ Preliminaries: A review of basic concepts of data clustering, the unified modeling language, object-oriented programming in C++, and design patterns A C++ Data Clustering Framework: The development of data clustering base classes Data Clustering Algorithms: The implementation of several popular data clustering algorithms A key to learning a clustering algorithm is to implement and experiment the clustering algorithm. Complete listings of classes, examples, unit test cases, and GNU configuration files are included in the appendices of this book as well as in the downloadable resources. The only requirements to compile the code are a modern C++ compiler and the Boost C++ libraries.
Get to work quickly with C# with a uniquely succinct and visual format used to present the C# 7.0 language. Whether you're getting to grips with C# for the first time or working to deepen your understanding, you'll find this book to be a clear and refreshing take on each aspect of the language. Figures are of prime importance in this book. While teaching programming seminars, Daniel Solis found that he could almost watch the light bulbs going on over the students' heads as he drew the figures on the whiteboard. In this text, he has distilled each important concept into simple but accurate illustrations. For this latest edition, Dan is joined by fellow experienced teacher and programmer, Cal Schrotenboer, to bring you the very latest C# language features, along with an understanding of the frameworks it most often lives in: .NET and the new .NET Core. For something as intricate and precise as a programming language, there must be text as well as figures. But rather than long, wordy explanations, the authors use short, concise descriptions and bullet lists to make each important piece of information visually distinct and memorable. What You'll Learn Start with an overview of C# programming and how the language works under the hood Put things in context with a little useful history of C# and .NET Know how .NET Core fits into the picture Understand how C# handles types Benefit from clear, concise explanations of each language feature, from classes and inheritance to enumerators and iterators, and the new C# 7.0 tuples Quickly access material via this book's visual introduction to asynchronous programming with C# Who This Book Is For Novice to intermediate C# programmers, and more experienced programmers moving to C# from other languages
Explore the new way of building and maintaining test cases with Java test driven development (TDD) using JUnit 5. This book doesn't just talk about the new concepts, it shows you ways of applying them in TDD and Java 8 to continuously deliver code that excels in all metrics. Unit testing and test driven development have now become part of every developer's skill set. For Java developers, the most popular testing tool has been JUnit, and JUnit 5 is built using the latest features of Java. With Java Unit Testing with JUnit 5, you'll master these new features, including method parameters, extensions, assertions and assumptions, and dynamic tests. You'll also see how to write clean tests with less code. This book is a departure from using older practices and presents new ways of performing tests, building assertions, and injecting dependencies. What You Will Learn Write tests the JUnit 5 way Run your tests from within your IDE Integrate tests with your build and static analysis tools Migrate from JUnit 4 to JUnit 5 Who This Book Is For Java developers both with and without any prior unit testing experience.
Take container cluster management to the next level; learn how to administer and configure Kubernetes on CoreOS; and apply suitable management design patterns such as Configmaps, Autoscaling, elastic resource usage, and high availability. Some of the other features discussed are logging, scheduling, rolling updates, volumes, service types, and multiple cloud provider zones. The atomic unit of modular container service in Kubernetes is a Pod, which is a group of containers with a common filesystem and networking. The Kubernetes Pod abstraction enables design patterns for containerized applications similar to object-oriented design patterns. Containers provide some of the same benefits as software objects such as modularity or packaging, abstraction, and reuse. CoreOS Linux is used in the majority of the chapters and other platforms discussed are CentOS with OpenShift, Debian 8 (jessie) on AWS, and Debian 7 for Google Container Engine. CoreOS is the main focus becayse Docker is pre-installed on CoreOS out-of-the-box. CoreOS: Supports most cloud providers (including Amazon AWS EC2 and Google Cloud Platform) and virtualization platforms (such as VMWare and VirtualBox) Provides Cloud-Config for declaratively configuring for OS items such as network configuration (flannel), storage (etcd), and user accounts Provides a production-level infrastructure for containerized applications including automation, security, and scalability Leads the drive for container industry standards and founded appc Provides the most advanced container registry, Quay Docker was made available as open source in March 2013 and has become the most commonly used containerization platform. Kubernetes was open-sourced in June 2014 and has become the most widely used container cluster manager. The first stable version of CoreOS Linux was made available in July 2014 and since has become one of the most commonly used operating system for containers. What You'll Learn Use Kubernetes with Docker Create a Kubernetes cluster on CoreOS on AWS Apply cluster management design patterns Use multiple cloud provider zones Work with Kubernetes and tools like Ansible Discover the Kubernetes-based PaaS platform OpenShift Create a high availability website Build a high availability Kubernetes master cluster Use volumes, configmaps, services, autoscaling, and rolling updates Manage compute resources Configure logging and scheduling Who This Book Is For Linux admins, CoreOS admins, application developers, and container as a service (CAAS) developers. Some pre-requisite knowledge of Linux and Docker is required. Introductory knowledge of Kubernetes is required such as creating a cluster, creating a Pod, creating a service, and creating and scaling a replication controller. For introductory Docker and Kubernetes information, refer to Pro Docker (Apress) and Kubernetes Microservices with Docker (Apress). Some pre-requisite knowledge about using Amazon Web Services (AWS) EC2, CloudFormation, and VPC is also required.
The Definitive Java Programming Guide In "Java: The Complete Reference, Eighth Edition," bestselling programming author Herb Schildt shows you everything you need to develop, compile, debug, and run Java programs. Updated for Java Platform, Standard Edition 7 (Java SE 7), this comprehensive volume covers the entire Java language, including its syntax, keywords, and fundamental programming principles. You'll also find information on key elements of the Java API library. JavaBeans, servlets, applets, and Swing are examined and real-world examples demonstrate Java in action. In addition, new Java SE 7 features such as try-with-resources, strings in switch, type inference with the diamond operator, NIO.2, and the Fork/Join Framework are discussed in detail. Coverage includes: Data types and operators Control statements Classes and objects Constructors and methods Method overloading and overriding Interfaces and packages Inheritance Exception handling Generics Autoboxing Enumerations Annotations The try-with-resources statement Varargs Multithreading The I/O classes Networking The Collections Framework Applets and servlets JavaBeans AWT and Swing The Concurrent API Much, much more
This compact book introduces the concepts of Java lambdas and parallel streams in a concise form. It begins by introducing new supporting features such as functional interfaces, default methods and more. After this, the author demonstrates how streams can be parallelized in a very simple way-within certain limits, no knowledge about the thread management is needed. Nevertheless, some basic elements in the context of parallelism need to be considered. Here, the book provides a variety of information and best practices. What You Will Learn Master lambdas and streams Work with the default method Harness streams and the stream() function Use Stream and Spliterator Take advantage of parallel streams Work with collectors and concurrency Who This Book Is For Experienced Java programmers and developers. div>
The core idea of this book is that object- oriented technology is a generic technology whose various technical aspects can be presented in a unified and consistent framework. This applies to both practical and formal aspects of object-oriented technology. Course tested in a variety of object-oriented courses, numerous examples, figures and exercises are presented in each chapter. The approach in this book is based on typed technologies, and the core notions fit mainstream object-oriented languages such as Java and C#. The book promotes object-oriented constraints (assertions), their specification and verification. Object-oriented constraints apply to specification and verification of object-oriented programs, specification of the object-oriented platform, more advanced concurrent models, database integrity constraints and object-oriented transactions, their specification and verification.
While compilers for high-level programming languages are large complex software systems, they have particular characteristics that differentiate them from other software systems. Their functionality is almost completely well-defined - ideally there exist complete precise descriptions of the source and target languages. Additional descriptions of the interfaces to the operating system, programming system and programming environment, and to other compilers and libraries are often available. The book deals with the optimization phase of compilers. In this phase, programs are transformed in order to increase their efficiency. To preserve the semantics of the programs in these transformations, the compiler has to meet the associated applicability conditions. These are checked using static analysis of the programs. In this book the authors systematically describe the analysis and transformation of imperative and functional programs. In addition to a detailed description of important efficiency-improving transformations, the book offers a concise introduction to the necessary concepts and methods, namely to operational semantics, lattices, and fixed-point algorithms. This book is intended for students of computer science. The book is supported throughout with examples, exercises and program fragments.
Ever reach an impasse while writing code because you couldn't remember how something in Java worked? This pocket guide is designed to keep you moving. Concise, convenient and easy to use, Java Pocket Guide gives you Java stripped down to its bare essentials - in fact, it's the only quick reference guide to Java that you can actually fit in your pocket. Written by Robert and Patricia Liguori, senior software and lead information engineers for Java-based air traffic management and simulation environments, Java Pocket Guide contains everything you really need to know about Java, particularly everything you need to remember. This updated edition pays special attention to the new areas in Java 7 and 8, such as lambda expressions. Why is the Java Pocket Guide important? It's the only quick reference guide to Java available Lets you find important things quickly without consulting 1000-page tutorials Includes many command-line options Organized for quick and easy use on the job Java Pocket Guide is for experienced Java programmers who need quick reminders of how particular language elements work. Simply put, this pocket guide offers practical help for practicing developers.
Proceedings of the FISITA 2012 World Automotive Congress are selected from nearly 2,000 papers submitted to the 34th FISITA World Automotive Congress, which is held by Society of Automotive Engineers of China (SAE-China ) and the International Federation of Automotive Engineering Societies (FISITA). This proceedings focus on solutions for sustainable mobility in all areas of passenger car, truck and bus transportation. Volume 6: Vehicle Electronics focuses on: *Engine/Chassis/Body Electronic Control *Electrical and Electronic System *Software and Hardware Development *Electromagnetic Compatibility (EMC) *Vehicle Sensor and Actuator *In-Vehicle Network *Multi-Media/Infotainment System Above all researchers, professional engineers and graduates in fields of automotive engineering, mechanical engineering and electronic engineering will benefit from this book. SAE-China is a national academic organization composed of enterprises and professionals who focus on research, design and education in the fields of automotive and related industries. FISITA is the umbrella organization for the national automotive societies in 37 countries around the world. It was founded in Paris in 1948 with the purpose of bringing engineers from around the world together in a spirit of cooperation to share ideas and advance the technological development of the automobile.
Learn how to use the core Hibernate APIs and tools as part of the Spring Framework. This book illustrates how these two frameworks can be best utilized. Other persistence solutions available in Spring are also shown including the Java Persistence API (JPA). Spring Persistence with Hibernate, Second Edition has been updated to cover Spring Framework version 4 and Hibernate version 5. After reading and using this book, you'll have the fundamentals to apply these persistence solutions into your own mission-critical enterprise Java applications that you build using Spring. Persistence is an important set of techniques and technologies for accessing and using data, and ensuring that data is mobile regardless of specific applications and contexts. In Java development, persistence is a key factor in enterprise, e-commerce, and other transaction-oriented applications. Today, the agile and open source Spring Framework is the leading out-of-the-box, open source solution for enterprise Java developers; in it, you can find a number of Java persistence solutions. What You'll Learn Use Spring Persistence, including using persistence tools in Spring as well as choosing the best Java persistence frameworks outside of Spring Take advantage of Spring Framework features such as Inversion of Control (IoC), aspect-oriented programming (AOP), and more Work with Spring JDBC, use declarative transactions with Spring, and reap the benefits of a lightweight persistence strategy Harness Hibernate and integrate it into your Spring-based enterprise Java applications for transactions, data processing, and more Integrate JPA for creating a well-layered persistence tier in your enterprise Java application Who This Book Is For This book is ideal for developers interested in learning more about persistence framework options on the Java platform, as well as fundamental Spring concepts. Because the book covers several persistence frameworks, it is suitable for anyone interested in learning more about Spring or any of the frameworks covered. Lastly, this book covers advanced topics related to persistence architecture and design patterns, and is ideal for beginning developers looking to learn more in these areas.
Prepare for Microsoft Certification Exam 70-483: Programming in C#. The "What, Why, and How" of each concept is presented along with quick summaries, code challenges, and exam questions to review and practice key concepts. You will learn how to use: Lambda expressions to write LINQ query expressions Asynchronous programming with the Async and Await keywords to maximize performance of slow applications Regular expressions to validate user input Reflection to create and handle types at runtime and much more The source code in the book will be available in the form of iCanCSharp notebooks and scripts that allow you to try out examples and extend them in interesting ways. What You Will Learn Understand the necessary knowledge and skill set to prepare for Microsoft Exam 70-483 Study the code challenges and practice questions on C# that are relevant to the exam Master the C# programming language Who This Book Is For Experienced C# and .NET programmers and developers who are ready to take and pass the exam in order to get certified
This book constitutes the thoroughly refereed post-workshop proceedings of the 5th International Workshop on Structured Object-Oriented Formal Language and Method, SOFL+MSVL 2015, held in Paris, France, in November 2015. The 15 papers presented in this volume were carefully reviewed and selected from 22 submissions. The focus of this workshops was on following subjects: Modeling, specification, verification, model checking, testing, debugging, transformation, and algorithm.
Java I/O, NIO and NIO.2 is a power-packed book that is an accelerated guide and reference on buffers, files, sockets, datagrams, and pipe channels as found in the Java I/O, NIO, and NIO.2 reference implementations. In this book, you'll also learn how and when to use selectors, regular expressions, including patterns, matchers and more. You'll learn how to work with Charsets, formatters and scanners. You'll - all in all - learn how to use and apply NIO, NIO.2 and the enhancements available. After reading and using this book, you'll gain the accelerated knowledge and skill level to really build applications with efficient data access, especially for today's cloud computing streaming data needs.
Hibernate Recipes, Second Edition contains a collection of code recipes and templates for learning and building Hibernate solutions for you and your clients, including how to work with the Spring Framework and the JPA. This book is your pragmatic day-to-day reference and guide for doing all things involving Hibernate. There are many books focused on learning Hibernate, but this book takes you further and shows how you can apply it practically in your daily work. Hibernate Recipes, Second Edition is a must have book for your library. Hibernate 4.x continues to be the most popular out-of-the-box, open source framework solution for Java persistence and data/database accessibility techniques and patterns and it works well with the most popular open source enterprise Java framework of all, the Spring Framework. Hibernate is used for e-commerce-based web applications as well as heavy-duty transactional systems for the enterprise.
Over the period of last few decades, the 'C' language has become an icon for computer programmers. The field of computer science has undergone tremendous change, and the rate of obsolescence of concepts, programming platforms, tools and utilities is extremely high. However, in spite of such vast changes, the only thing that has retained its stability is the 'C' language. Even today, millions of students, hobbyists and professional programmers enjoy the sturdiness, reliability and user friendliness of the 'C' language. Today 'C' enjoys the undisputable recognition in the computing paradigm for diversified applications, from the basic programming, microcontrollers, and spreadsheets to system programming. In this book, most of the usual theoretical features have been skipped, for these have been widely published in previous books. Rather than introducing the underpinning theory, the authors approach has been "learning-through-doing", which is one that often appeals to programmers. Theory is followed by practical implementation, and in this way the book will cover programming aspects in a self-tutor manner providing an excellent overview, from basic to advance programming. Topics discussed include: * GCC interface * First time 'C' User * Decision and looping structures * Arrays and pointers * Functions, structures and union * Linear data structures
Domain-Driven Design (DDD) is a software development philosophy for tackling complex systems. Software is based around a model of the business domain in code to enable developers and business users to talk about problems in a single language. DDD is attracting new adoptees as .NET developers continue to mature and seek out best practices for developing enterprise level applications.This book is the first to present the philosophy of DDD in a down to earth practical manner for experienced developers. It shows developers how the concepts of DDD can be applied to their applications with real world examples. Unlike other books on the subject, it is packed with patterns, code examples and case studies that help to cement the theory of DDD.After introducing readers to DDD and its application (complete with development best practices and patterns), it goes on to explain Command, Query, Responsibility Segregation Architecture (CQRS), an architectural pattern that can be used to implement a DDD design methodology. Finally, a case study is included to show DDD, CQRS, and Messaging Pub/Sub architecture in the context of a real set of enterprise applications.The book includes: An introduction to the philosophy of Domain-Driven Design (DDD)Command, Query, Responsibility Segregation Architecture (CQRS)DDD Best practices for modeling patternsPublish/Subscribe Messaging Architecture for Bounded Contexts Throughout, the book gives the reader masses of code and examples of the concepts that other books have theorized about.
Programming Finite Elements in Java (TM) teaches the reader how to programme the algorithms of the finite element method (FEM) in Java (TM). The compact, simple code helps the student to read the algorithms, to understand them and thus to be able to refine them. All of the main aspects of finite element techniques are considered: finite element solution; generation of finite element meshes; and visualization of finite element models and results with Java 3D (TM). The step-by-step presentation includes algorithm programming and code explanation at each point. Problems and exercises are provided for each chapter, with Java (TM) source code and problem data sets available from http://extras.springer.com/2010/978-1-84882-971-8.
Fortran has been the premier language for scientific computing since its introduction in 1957. Fortran originally was designed to allow programmers to evaluate for- las-FORmula TRANslation-easily on large computers. Fortran compilers are now available on all sizes of machines, from small desktop computers to huge multiproc- sors. The Guide to Fortran 2003 Programming is an informal, tutorial introduction to the most important features of Fortran 2003 (also known as Fortran 03), the latest standard version of Fortran. Fortran has many modern features that will assist the programmer in writing efficient, portable, and maintainable programs that are useful for everything from "hard science" to text processing. Target Audience This book is intended for anyone who wants to learn Fortran 03, including those fam- iar with programming language concepts but unfamiliar with Fortran. Experienced Fortran 95 programmers will be able to use this volume to assimilate quickly those f- tures in Fortran 03 that are not in Fortran 95 (Fortran 03 contains all of the features of Fortran 95). This guide is not a complete reference work for the entire Fortran l- guage; it covers the basic features needed to be a good Fortran programmer and an - troduction to the important new features of Fortran 03. Many older error-prone features have been omitted and some of the more esoteric features that are new to F- tran 03 also are not discussed. |
You may like...
|