Professional Scala - Bogucki Janek; Lacava Alessandro; Bedrytski Aliaksandr; De Detrich Matthew; Neil Benjamin | Libro Wrox 07/2016 - HOEPLI.it


home libri books ebook dvd e film top ten sconti 0 Carrello


Torna Indietro

bogucki janek; lacava alessandro; bedrytski aliaksandr; de detrich matthew; neil benjamin - professional scala

Professional Scala

; ; ; ;




Disponibilità: Non disponibile o esaurito presso l'editore


PREZZO
45,50 €



Questo prodotto usufruisce delle SPEDIZIONI GRATIS
selezionando l'opzione Corriere Veloce in fase di ordine.


Pagabile anche con App18 Bonus Cultura e Carta Docenti


Facebook Twitter Aggiungi commento


Spese Gratis

Dettagli

Genere:Libro
Lingua: Inglese
Editore:

Wrox

Pubblicazione: 07/2016





Note Editore

A professional's guide to the robust language big data demands

As big data and cluster computing applications expand, so too does the need for experienced programmers equipped to handle ever–increasing data requirements. Scala bridges the gap between functional and object–oriented programming, and its Java compatibility has made it an increasingly in–demand language. This book provides experienced programmers with the guidance they need to quickly become productive with Scala in professional production applications. Without wasting time on programming fundamentals, the discussion launches directly into practical Scala topics with the most up–to–date coverage of this rapidly–expanding language. Designed for professionals, by professionals, this book demonstrates the real–world skills needed to work with Scala in production settings.

Professional Scala:

  • Explains syntax, the SBT interactive build tool, the REPL workflow, and the features that make Scala useful in diverse applications
  • Links functional and object–oriented programming for a more thorough understanding and quick practical mastery
  • Integrates Maven, Scala.js, Scaladoc, Lint, and other useful compatibilities to help expand functionality
  • Explores functional design patterns, the Scala's type system, concurrency, documentation, and testing for start–to–finish reference
  • Walks through Java compatibility and advanced functional programming topics to demonstrate Scala's full capabilities
  • Provides the most up–to–date coverage of this expanding language, by an expert author team

Wrox Professional guides are planned and written by working programmers to meet the real–world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.





Sommario

INTRODUCTION xv

CHAPTER 1: LANGUAGE FEATURES 1

Static Types and Type Inference 2

Implicit Parameters, Conversions, and Their Resolution 3

Case Class, Tuples, and Case Object 5

Abstract Class, Traits, and Sealed 6

Pattern Matching 8

Statements Are Expressions 9

String Interpolation 9

Scala Collections, immutable and mutable 10

For Comprehension 12

Packages, Companion Objects, Package Objects, and Scoping 13

AnyVal, AnyRef, Any, and the Type Hierarchy 16

Summary 17

CHAPTER 2: FUNCTIONAL PROGRAMMING 19

Immutability 20

Pure Functions 22

Recursion 23

Higher–Order Functions 26

Core Collection Methods 27

Methods Returning a Collection 29

Methods Returning a Value 31

Currying and Partially Applied Functions 32

Null Handling (Option) 34

Strict versus Non–Strict Initialization 35

Summary 36

CHAPTER 3: JAVA COMPATIBILITY 37

Scala and Java Collections 37

Interfaces and Traits 40

Scala/Java Enumerations 42

Summary 43

CHAPTER 4: SIMPLE BUILD TOOL 45

Basic Usage 46

Project Structure 47

Single Project 47

Scopes 49

Custom Tasks 50

Dependencies 50

Resolvers 51

Advanced Usage 52

Advanced Dependencies 53

Testing in the Console 55

Release Management 56

Deploying to Sonatype 56

Packaging with SBT–Native–Packager 58

Creating a Docker Image 59

Common SBT Commands 60

Useful Plugins 61

Summary 62

CHAPTER 5: MAVEN 63

Getting Started with Maven and Scala 64

Introducing scala–maven–plugin 67

Adding Library Dependencies 70

Using the REPL 71

Getting Help 72

Running Tests 72

Joint Compilation with Java 74

Accelerating Compilation with Zinc 76

Summary 77

CHAPTER 6: SCALA STYLE/LINT 79

Scala with Style 79

Scaliform 81

Scapegoat 82

WartRemover 82

Scoverage 84

Summary 84

CHAPTER 7: TESTING 85

ScalaTest 86

Unit Tests 87

Integration Testing 87

Data–Driven Tests 88

Performance Testing 89

Acceptance Testing 90

Mocks 92

Load Testing 93

Summary 94

CHAPTER 8: DOCUMENTING YOUR CODE WITH SCALADOC 95

Why Document Your Code? 96

Revealing the Benefi ts 96

Bookending the Continuum 96

Choosing What to Document 96

Scaladoc Structure 97

Overall Layout 97

Index Pane 98

Content Pane 100

Invoking the Scaladoc Tool 106

Wiki Syntax 108

Formatting with Inline Wiki Syntax 108

Structuring with Block Elements 110

Linking 113

Locating Scaladoc 117

Tagging 117

Everyday Tagging 117

Tagging for Groups 123

Advanced Tagging 125

Invoking scaladoc: Additional Options 132

Integrating Scaladoc Creation with Your Project 133

Configuring Maven 133

Configuring SBT 134

Publishing Scaladoc 134

Tables and CSS 136

Summary 138

CHAPTER 9: TYPE SYSTEM 139

What Is a Type System? 140

Static versus Dynamic Typing 140

What Static Type Systems Are Good For 141

What Dynamic Type Systems Are Good For 141

Scala s Unified Type System 141

Value Classes 143

Polymorphism 145

Subtype Polymorphism 145

Parametric Polymorphism 146

Ad Hoc Polymorphism 146

Bounds 149

Context Bounds 149

Upper and Lower Bounds 150

Variance 151

Other Niceties 155

Self–Type Annotations 155

Self–Recursive Types 158

Abstract Type Members 159

Dynamic Programming 161

Structural Types 161

Dynamic Trait 162

Summary 164

CHAPTER 10: ADVANCED FUNCTIONAL PROGRAMMING 165

Higher–Kinded Types 165

Functional Design Patterns 167

Functor 167

Applicative Functor 170

Monad 172

Semigroup 173

Monoid 174

Summary 176

CHAPTER 11: CONCURRENCY 179

Synchronize/Atomic Variables 181

Future Composition 184

Parallel Collections 187

Reactive Streams 192

STM 195

Actors (Akka) 198

Spark 200

Summary 202

CHAPTER 12: SCALA.JS 205

Scala.js and Its Design 205

Getting Started: Scala.js with SBT 206

Scala.js Peculiarities 210

Webjars and Dealing with the Frontend Ecosytem 211

Summary 213

INDEX 215





Autore

Aliaksandr Bedrytski is a Big Data engineer at Worldline France.

Janek Bogucki is a Co–Founder of Inferess Inc., and Principal Consultant (Scala and Data Science) at Combination One.

Alessandro Lacava is a lead designer and developer who specializes in functional programming and Scala.

Matthew de Detrich is a Software Engineer at Zalando.

Benjamin Neil is a Full Stack Engineer at AppThis LLC.

Visit us at wrox.com where you have access to free code samples, Programmer to Programmer forums, and discussions on the latest happenings in the industry from around the world.








Altre Informazioni

ISBN:

9781119267225

Condizione: Nuovo
Collana: WROX PROGRAMMER TO PROGRAMMER
Dimensioni: 232 x 11.7 x 187 mm Ø 414 gr
Formato: Brossura
Pagine Arabe: 240






Utilizziamo i cookie di profilazione, anche di terze parti, per migliorare la navigazione, per fornire servizi e proporti pubblicità in linea con le tue preferenze. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie clicca qui. Chiudendo questo banner o proseguendo nella navigazione acconsenti all’uso dei cookie.

X