Learning Concurrent Programming in Scala

Author: Aleksandar Prokopec

Publisher: Packt Publishing Ltd

ISBN: 1786462141

Category: Computers

Page: 434

View: 2653

Learn the art of building intricate, modern, scalable, and concurrent applications using Scala About This Book Make the most of Scala by understanding its philosophy and harnessing the power of multicores Get acquainted with cutting-edge technologies in the field of concurrency, through practical, real-world applications Get this step-by-step guide packed with pragmatic examples Who This Book Is For If you are a Scala programmer with no prior knowledge about concurrent programming, or seeking to broaden your existing knowledge about concurrency, this book is for you. Basic knowledge of the Scala programming language will be helpful. Also if you have a solid knowledge in another programming language, such as Java, you should find this book easily accessible. What You Will Learn Get to grips with the fundamentals of concurrent programming on modern multiprocessor systems Build high-performance concurrent systems from simple, low-level concurrency primitives Express asynchrony in concurrent computations with futures and promises Seamlessly accelerate sequential programs by using data-parallel collections Design safe, scalable, and easy-to-comprehend in-memory transactional data models Transparently create distributed applications that scale across multiple machines Integrate different concurrency frameworks together in large applications Develop and implement scalable and easy-to-understand concurrent applications in Scala 2.12 In Detail Scala is a modern, multiparadigm programming language designed to express common programming patterns in a concise, elegant, and type-safe way. Scala smoothly integrates the features of object-oriented and functional languages. In this second edition, you will find updated coverage of the Scala 2.12 platform. The Scala 2.12 series targets Java 8 and requires it for execution. The book starts by introducing you to the foundations of concurrent programming on the JVM, outlining the basics of the Java Memory Model, and then shows some of the classic building blocks of concurrency, such as the atomic variables, thread pools, and concurrent data structures, along with the caveats of traditional concurrency. The book then walks you through different high-level concurrency abstractions, each tailored toward a specific class of programming tasks, while touching on the latest advancements of async programming capabilities of Scala. It also covers some useful patterns and idioms to use with the techniques described. Finally, the book presents an overview of when to use which concurrency library and demonstrates how they all work together, and then presents new exciting approaches to building concurrent and distributed systems. Style and approach The book provides a step-by-step introduction to concurrent programming. It focuses on easy-to-understand examples that are pragmatic and applicable to real-world applications. Different topics are approached in a bottom-up fashion, gradually going from the simplest foundations to the most advanced features.
Release

Programmieren mit Scala

Author: Dean Wampler,Alex Payne

Publisher: O'Reilly Germany

ISBN: 3897216485

Category: Computers

Page: 480

View: 470

Sie ist elegant, schlank, modern und flexibel: Die Rede ist von Scala, der neuen Programmiersprache für die Java Virtual Machine (JVM). Sie vereint die Vorzüge funktionaler und objektorientierter Programmierung, ist typsicherer als Java, lässt sich nahtlos in die Java-Welt integrieren – und eine in Scala entwickelte Anwendung benötigt oft nur einen Bruchteil der Codezeilen ihres Java-Pendants. Kein Wunder, dass immer mehr Firmen, deren große, geschäftskritische Anwendungen auf Java basieren, auf Scala umsteigen, um ihre Produktivität und die Skalierbarkeit ihrer Software zu erhöhen. Das wollen Sie auch? Dann lassen Sie sich von den Scala-Profis Dean Wampler und Alex Payne zeigen, wie es geht. Ihre Werkzeugkiste: Schon bevor Sie loslegen, sind Sie weiter, als Sie denken: Sie können Ihre Java-Programme weiter verwenden, Java-Bibliotheken nutzen, Java von Scala aus aufrufen und Scala von Java aus. Auch Ihre bevorzugten Entwicklungswerkzeuge wie NetBeans, IntelliJ IDEA oder Eclipse stehen Ihnen weiter zur Verfügung, dazu Kommandozeilen-Tools, Plugins für Editoren, Werkzeuge von Drittanbietern – und natürlich Ihre Programmiererfahrung. In Programmieren mit Scala erfahren Sie, wie Sie sich all das zunutze machen. Das Hybridmodell: Die Paradigmen "funktional" und "objektorientiert" sind keine Gegensätze, sondern ergänzen sich unter dem Scala-Dach zu einem sehr produktiven Ganzen. Nutzen Sie die Vorteile funktionaler Programmierung, wann immer sich das anbietet – und seien Sie so frei, auf die guten alten Seiteneffekte zu bauen, wenn Sie das für nötig halten. Futter für die Profis: Skalierbare Nebenläufigkeit mit Aktoren, Aufzucht und Pflege von XML mit Scala, Domainspezifische Sprachen, Tipps zum richtigen Anwendungsdesign – das sind nur ein paar der fortgeschrittenen Themen, in die Sie mit den beiden Autoren eintauchen. Danach sind Sie auch Profi im Programmieren mit Scala.
Release

Learning Concurrent Programming in Scala

Author: Felix Frank

Publisher: N.A

ISBN: 9781783281411

Category: Computers

Page: 366

View: 1399

This book is a must-have tutorial for software developers aiming to write concurrent programs in Scala, or broaden their existing knowledge of concurrency.This book is intended for Scala programmers that have no prior knowledge about concurrent programming, as well as those seeking to broaden their existing knowledge about concurrency. Basic knowledge of the Scala programming language will be helpful. Readers with a solid knowledge in another programming language, such as Java, should find this book easily accessible.
Release

Learning Scala Programming

Object-oriented programming meets functional reactive to create Scalable and Concurrent programs

Author: Vikash Sharma

Publisher: Packt Publishing Ltd

ISBN: 1788391616

Category: Computers

Page: 426

View: 4119

Learn how to write scalable and concurrent programs in Scala, a language that grows with you. Key Features Get a grip on the functional features of the Scala programming language Understand and develop optimal applications using object-oriented and functional Scala constructs Learn reactive principles with Scala and work with the Akka framework Book Description Scala is a general-purpose programming language that supports both functional and object-oriented programming paradigms. Due to its concise design and versatility, Scala's applications have been extended to a wide variety of fields such as data science and cluster computing. You will learn to write highly scalable, concurrent, and testable programs to meet everyday software requirements. We will begin by understanding the language basics, syntax, core data types, literals, variables, and more. From here you will be introduced to data structures with Scala and you will learn to work with higher-order functions. Scala's powerful collections framework will help you get the best out of immutable data structures and utilize them effectively. You will then be introduced to concepts such as pattern matching, case classes, and functional programming features. From here, you will learn to work with Scala's object-oriented features. Going forward, you will learn about asynchronous and reactive programming with Scala, where you will be introduced to the Akka framework. Finally, you will learn the interoperability of Scala and Java. After reading this book, you'll be well versed with this language and its features, and you will be able to write scalable, concurrent, and reactive programs in Scala. What you will learn Get to know the reasons for choosing Scala: its use and the advantages it provides over other languages Bring together functional and object-oriented programming constructs to make a manageable application Master basic to advanced Scala constructs Test your applications using advanced testing methodologies such as TDD Select preferred language constructs from the wide variety of constructs provided by Scala Make the transition from the object-oriented paradigm to the functional programming paradigm Write clean, concise, and powerful code with a functional mindset Create concurrent, scalable, and reactive applications utilizing the advantages of Scala Who this book is for This book is for programmers who choose to get a grip over Scala to write concurrent, scalable, and reactive programs. No prior experience with any programming language is required to learn the concepts explained in this book. Knowledge of any programming language would help the reader understanding concepts faster though.
Release

Concurrent Programming in Java

Design Principles and Patterns

Author: Douglas Lea

Publisher: Addison-Wesley Professional

ISBN: 9780201310092

Category: Computers

Page: 411

View: 9892

Software -- Programming Languages.
Release

Groovy im Einsatz

Author: Dierk König

Publisher: N.A

ISBN: 9783446412385

Category: Computer Sciences

Page: 597

View: 6003

Release

Sieben Wochen, sieben Sprachen (Prags)

Author: Bruce A. Tate

Publisher: O'Reilly Germany

ISBN: 3897213230

Category: Computers

Page: 360

View: 9705

Mit diesen sieben Sprachen erkunden Sie die wichtigsten Programmiermodelle unserer Zeit. Lernen Sie die dynamische Typisierung kennen, die Ruby, Python und Perl so flexibel und verlockend macht. Lernen Sie das Prototyp-System verstehen, das das Herzstück von JavaScript bildet. Erfahren Sie, wie das Pattern Matching in Prolog die Entwicklung von Scala und Erlang beeinflusst hat. Entdecken Sie, wie sich die rein funktionale Programmierung in Haskell von der Lisp-Sprachfamilie, inklusive Clojure, unterscheidet. Erkunden Sie die parallelen Techniken, die das Rückgrat der nächsten Generation von Internet-Anwendungen bilden werden. Finden Sie heraus, wie man Erlangs "Lass es abstürzen"-Philosophie zum Aufbau fehlertoleranter Systeme nutzt. Lernen Sie das Aktor-Modell kennen, das das parallele Design bei Io und Scala bestimmt. Entdecken Sie, wie Clojure die Versionierung nutzt, um einige der schwierigsten Probleme der Nebenläufigkeit zu lösen. Hier finden Sie alles in einem Buch. Nutzen Sie die Konzepte einer Sprache, um kreative Lösungen in einer anderen Programmiersprache zu finden – oder entdecken Sie einfach eine Sprache, die Sie bisher nicht kannten. Man kann nie wissen – vielleicht wird sie sogar eines ihrer neuen Lieblingswerkzeuge.
Release

Spring im Einsatz

Author: Craig Walls

Publisher: Carl Hanser Verlag GmbH Co KG

ISBN: 3446429468

Category: Computers

Page: 428

View: 3303

SPRING IM EINSATZ // - Spring 3.0 auf den Punkt gebracht: Die zentralen Konzepte anschaulich und unterhaltsam erklärt. - Praxis-Know-how für den Projekteinsatz: Lernen Sie Spring mit Hilfe der zahlreichen Codebeispiele aktiv kennen. - Im Internet: Der vollständige Quellcode für die Applikationen dieses Buches Das Spring-Framework gehört zum obligatorischen Grundwissen eines Java-Entwicklers. Spring 3 führt leistungsfähige neue Features wie die Spring Expression Language (SpEL), neue Annotationen für IoC-Container und den lang ersehnten Support für REST ein. Es gibt keinen besseren Weg, um sich Spring anzueignen, als dieses Buch - egal ob Sie Spring gerade erst entdecken oder sich mit den neuen 3.0-Features vertraut machen wollen. Craig Walls setzt in dieser gründlich überarbeiteten 2. Auflage den anschaulichen und praxisorientierten Stil der Vorauflage fort. Er bringt als Autor sein Geschick für treffende und unterhaltsame Beispiele ein, die das Augenmerk direkt auf die Features und Techniken richten, die Sie wirklich brauchen. Diese Auflage hebt die wichtigsten Aspekte von Spring 3.0 hervor: REST, Remote-Services, Messaging, Security, MVC, Web Flow und vieles mehr. Das finden Sie in diesem Buch: - Die Arbeit mit Annotationen, um die Konfiguration zu reduzieren - Die Arbeit mit REST-konformen Ressourcen - Spring Expression Language (SpEL) - Security, Web Flow usw. AUS DEM INHALT: Spring ins kalte Wasser, Verschalten von Beans, Die XML-Konfiguration in Spring minimalisieren, Aspektorientierung, Zugriff auf die Datenbank, Transaktionen verwalten, Webapplikationen mit Spring MVC erstellen, Die Arbeit mit Spring Web Flow, Spring absichern, Die Arbeit mit Remote-Diensten, Spring und REST, Messaging in Spring, Verwalten von Spring-Beans mit JMX
Release

C++ für Dummies

Author: Stephen R. Davis

Publisher: John Wiley & Sons

ISBN: 3527686894

Category: Computers

Page: 471

View: 8702

Die Programmierung mit C++ muss nicht schwer sein. Mit diesem Buch werden Sie schon ab dem ersten Kapitel eigene Programme schreiben und die C++-Syntax von der Pike auf lernen, verstehen und anwenden. Anhand zahlreicher Programmschnipsel erkl?rt Ihnen Stephen Randy Davis, wie Sie Code zu Modulen zusammenfassen, die Sie immer wieder verwenden k?nnen, und schon bald werden Sie wissen, wie man Variablen deklariert und mathematische Operationen ausf?hrt.
Release

Play Framework Cookbook - Second Edition

Author: Alexander Reelsen,Giancarlo Inductivo

Publisher: Packt Publishing Ltd

ISBN: 1784396567

Category: Computers

Page: 354

View: 2754

This book is aimed at advanced developers who are looking to harness the power of Play 2.x. This book will also be useful for professionals looking to dive deeper into web development. Play 2 .x is an excellent framework to accelerate your learning of advanced topics.
Release

Machine Learning mit Python

Das Praxis-Handbuch für Data Science, Predictive Analytics und Deep Learning

Author: Sebastian Raschka

Publisher: MITP-Verlags GmbH & Co. KG

ISBN: 3958454240

Category: Computers

Page: 424

View: 7617

Release

Learning Akka

Author: Jason Goodwin

Publisher: Packt Publishing Ltd

ISBN: 1784393541

Category: Computers

Page: 274

View: 2425

Build fault tolerant concurrent and distributed applications with Akka About This Book Build networked applications that self-heal Scale out your applications to handle more traffic faster An easy-to-follow guide with a number of examples to ensure you get the best start with Akka Who This Book Is For This book is intended for beginner to intermediate Java or Scala developers who want to build applications to serve the high-scale user demands in computing today. If you need your applications to handle the ever-growing user bases and datasets with high performance demands, then this book is for you. Learning Akka will let you do more for your users with less code and less complexity, by building and scaling your networked applications with ease. What You Will Learn Use Akka to overcome the challenges of concurrent programming Resolve the issues faced in distributed computing with the help of Akka Scale applications to serve a high number of concurrent users Make your system fault-tolerant with self-healing applications Provide a timely response to users with easy concurrency Reduce hardware costs by building more efficient multi-user applications Maximise network efficiency by scaling it In Detail Software today has to work with more data, more users, more cores, and more servers than ever. Akka is a distributed computing toolkit that enables developers to build correct concurrent and distributed applications using Java and Scala with ease, applications that scale across servers and respond to failure by self-healing. As well as simplifying development, Akka enables multiple concurrency development patterns with particular support and architecture derived from Erlang's concept of actors (lightweight concurrent entities). Akka is written in Scala, which has become the programming language of choice for development on the Akka platform. Learning Akka aims to be a comprehensive walkthrough of Akka. This book will take you on a journey through all the concepts of Akka that you need in order to get started with concurrent and distributed applications and even build your own. Beginning with the concept of Actors, the book will take you through concurrency in Akka. Moving on to networked applications, this book will explain the common pitfalls in these difficult problem areas while teaching you how to use Akka to overcome these problems with ease. The book is an easy to follow example-based guide that will strengthen your basic knowledge of Akka and aid you in applying the same to real-world scenarios. Style and approach An easy-to-follow, example-based guide that will take you through building several networked-applications that work together while you are learning concurrent and distributed computing concepts. Each topic is explained while showing you how to design with Akka and how it is used to overcome common problems in applications. By showing Akka in context to the problems, it will help you understand what the common problems are in distributed applications and how to overcome them.
Release

Neuronale Netze. Grundlagen

Mit Beispielprogrammen in Java

Author: Thomas Kaffka

Publisher: MITP-Verlags GmbH & Co. KG

ISBN: 395845609X

Category: Computers

Page: 240

View: 9433

Release

Entwurfsmuster

Elemente wiederverwendbarer objektorientierter Software

Author: Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides

Publisher: Pearson Deutschland GmbH

ISBN: 9783827330437

Category: Agile software development

Page: 479

View: 8042

Release

Die Macht der Abstraktion

Einführung in die Programmierung

Author: Herbert Klaeren,Michael Sperber

Publisher: Springer-Verlag

ISBN: 9783835101555

Category: Computers

Page: 321

View: 7924

"Die Macht der Abstraktion" ist eine Einführung in die Entwicklung von Programmen und die dazugehörigen formalen Grundlagen. Im Zentrum stehen Konstruktionsanleitungen, die die systematische Konstruktion von Programmen fördern, sowie Techniken zur Abstraktion, welche die Umsetzung der Konstruktionsanleitungen ermöglichen. In der Betonung systematischer Konstruktion unterscheidet sich dieses Buch drastisch von den meisten anderen Einführungen in die Programmierung. Die vermittelten Grundlagen und Techniken sind unabhängig von einer bestimmten Programmiersprache. Zur Illustration und zum Training der Programmierung dient Scheme, eine kleine und leicht erlernbare Programmiersprache, die es erlaubt, die Konzepte der Programmierung zu präsentieren, ohne Zeit mit der Konstruktvielfalt anderer Programmiersprachen zu verlieren. Entsprechend vermittelt dieses Buch fortgeschrittene Techniken. Scheme-Könner sind in der Lage, andere Programmiersprachen in kürzester Zeit zu erlernen.
Release

Mastering Concurrency Programming with Java 9

Author: Javier Fernandez Gonzalez

Publisher: Packt Publishing Ltd

ISBN: 1785887459

Category: Computers

Page: 516

View: 529

Master the principles to make applications robust, scalable and responsive About This Book Implement concurrent applications using the Java 9 Concurrency API and its new components Improve the performance of your applications and process more data at the same time, taking advantage of all of your resources Construct real-world examples related to machine learning, data mining, natural language processing, and more Who This Book Is For This book is for competent Java developers who have basic understanding of concurrency, but knowledge of effective implementation of concurrent programs or usage of streams for making processes more efficient is not required What You Will Learn Master the principles that every concurrent application must follow See how to parallelize a sequential algorithm to obtain better performance without data inconsistencies and deadlocks Get the most from the Java Concurrency API components Separate the thread management from the rest of the application with the Executor component Execute phased-based tasks in an efficient way with the Phaser components Solve problems using a parallelized version of the divide and conquer paradigm with the Fork / Join framework Find out how to use parallel Streams and Reactive Streams Implement the “map and reduce” and “map and collect” programming models Control the concurrent data structures and synchronization mechanisms provided by the Java Concurrency API Implement efficient solutions for some actual problems such as data mining, machine learning, and more In Detail Concurrency programming allows several large tasks to be divided into smaller sub-tasks, which are further processed as individual tasks that run in parallel. Java 9 includes a comprehensive API with lots of ready-to-use components for easily implementing powerful concurrency applications, but with high flexibility so you can adapt these components to your needs. The book starts with a full description of the design principles of concurrent applications and explains how to parallelize a sequential algorithm. You will then be introduced to Threads and Runnables, which are an integral part of Java 9's concurrency API. You will see how to use all the components of the Java concurrency API, from the basics to the most advanced techniques, and will implement them in powerful real-world concurrency applications. The book ends with a detailed description of the tools and techniques you can use to test a concurrent Java application, along with a brief insight into other concurrency mechanisms in JVM. Style and approach This is a complete guide that implements real-world examples of algorithms related to machine learning, data mining, and natural language processing in client/server environments. All the examples are explained using a step-by-step approach.
Release

Clean Code - Refactoring, Patterns, Testen und Techniken für sauberen Code

Deutsche Ausgabe

Author: Robert C. Martin

Publisher: MITP-Verlags GmbH & Co. KG

ISBN: 3826696387

Category: Computers

Page: 480

View: 9788

h2> Kommentare, Formatierung, Strukturierung Fehler-Handling und Unit-Tests Zahlreiche Fallstudien, Best Practices, Heuristiken und Code Smells Clean Code - Refactoring, Patterns, Testen und Techniken für sauberen Code Aus dem Inhalt: Lernen Sie, guten Code von schlechtem zu unterscheiden Sauberen Code schreiben und schlechten Code in guten umwandeln Aussagekräftige Namen sowie gute Funktionen, Objekte und Klassen erstellen Code so formatieren, strukturieren und kommentieren, dass er bestmöglich lesbar ist Ein vollständiges Fehler-Handling implementieren, ohne die Logik des Codes zu verschleiern Unit-Tests schreiben und Ihren Code testgesteuert entwickeln Selbst schlechter Code kann funktionieren. Aber wenn der Code nicht sauber ist, kann er ein Entwicklungsunternehmen in die Knie zwingen. Jedes Jahr gehen unzählige Stunden und beträchtliche Ressourcen verloren, weil Code schlecht geschrieben ist. Aber das muss nicht sein. Mit Clean Code präsentiert Ihnen der bekannte Software-Experte Robert C. Martin ein revolutionäres Paradigma, mit dem er Ihnen aufzeigt, wie Sie guten Code schreiben und schlechten Code überarbeiten. Zusammen mit seinen Kollegen von Object Mentor destilliert er die besten Praktiken der agilen Entwicklung von sauberem Code zu einem einzigartigen Buch. So können Sie sich die Erfahrungswerte der Meister der Software-Entwicklung aneignen, die aus Ihnen einen besseren Programmierer machen werden – anhand konkreter Fallstudien, die im Buch detailliert durchgearbeitet werden. Sie werden in diesem Buch sehr viel Code lesen. Und Sie werden aufgefordert, darüber nachzudenken, was an diesem Code richtig und falsch ist. Noch wichtiger: Sie werden herausgefordert, Ihre professionellen Werte und Ihre Einstellung zu Ihrem Beruf zu überprüfen. Clean Code besteht aus drei Teilen:Der erste Teil beschreibt die Prinzipien, Patterns und Techniken, die zum Schreiben von sauberem Code benötigt werden. Der zweite Teil besteht aus mehreren, zunehmend komplexeren Fallstudien. An jeder Fallstudie wird aufgezeigt, wie Code gesäubert wird – wie eine mit Problemen behaftete Code-Basis in eine solide und effiziente Form umgewandelt wird. Der dritte Teil enthält den Ertrag und den Lohn der praktischen Arbeit: ein umfangreiches Kapitel mit Best Practices, Heuristiken und Code Smells, die bei der Erstellung der Fallstudien zusammengetragen wurden. Das Ergebnis ist eine Wissensbasis, die beschreibt, wie wir denken, wenn wir Code schreiben, lesen und säubern. Dieses Buch ist ein Muss für alle Entwickler, Software-Ingenieure, Projektmanager, Team-Leiter oder Systemanalytiker, die daran interessiert sind, besseren Code zu produzieren. Über den Autor: Robert C. »Uncle Bob« Martin entwickelt seit 1970 professionell Software. Seit 1990 arbeitet er international als Software-Berater. Er ist Gründer und Vorsitzender von Object Mentor, Inc., einem Team erfahrener Berater, die Kunden auf der ganzen Welt bei der Programmierung in und mit C++, Java, C#, Ruby, OO, Design Patterns, UML sowie Agilen Methoden und eXtreme Programming helfen.
Release