Muutke küpsiste eelistusi

E-raamat: Erlang and Elixir for Imperative Programmers

  • Formaat: PDF+DRM
  • Ilmumisaeg: 26-Nov-2016
  • Kirjastus: APress
  • Keel: eng
  • ISBN-13: 9781484223949
  • Formaat - PDF+DRM
  • Hind: 40,74 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: PDF+DRM
  • Ilmumisaeg: 26-Nov-2016
  • Kirjastus: APress
  • Keel: eng
  • ISBN-13: 9781484223949

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

Learn and understand Erlang and Elixir and develop a working knowledge of the concepts of functional programming that underpin them. This book takes the author’s experience of taking on a project that required functional programming and real-time systems, breaks it down, and organizes it. You will get the necessary knowledge about differences to the languages you know, where to start, and where to go next.Have you been told by your customer or manager that they heard good things about Erlang, you should use it for the next project? Never had to deal with functional programming or real-time systems? In 2014, the author, Wolfgang Loder, developed a repository for digital assets that had to deliver those assets in binary form quickly and reliably, being able to deal with at least hundreds of requests per second.Since he could decide the architecture and software stack of the solution, he immediately thought of Erlang and its libraries and started to evaluate this option. It was not long after that he discovered Elixir, which sits on top of the Erlang virtual machine and has features more palatable for non-functional programmers, although it is a functional programming language itself.Erlang and Elixir for Imperative Programmers gives you a basis for deciding whether the effort is viable for your next project. This book is partly a tale of the authors own experience and partly a description of the bigger and more subtle differences between Erlang/Elixir and languages such as C++, Java, and C#.What Youll LearnDiscover functional programming, Erlang, and ElixirWork on service design and service featuresSet up your environment: deployment, development, and productionImplement the service including public interface, asset processing, and deploymentUse the patterns and concepts found in Erlang including type creation concepts and code structuring.Who This Book Is For Experienced and savvy programmers, coders, and developers new to Erlang and functional programming.
About the Author xi
About the Technical Reviewers xiii
Foreword xv
Introduction xvii
Part I Before we start
1(12)
Chapter 1 Imperative vs. Functional Programming
3(6)
Imperative Programming
3(3)
Objects
4(1)
Memory
5(1)
Functional Programming
6(1)
Hybrid Programming Languages
7(1)
How Do Erlang and Elixir Fit into the Schema?
7(2)
Chapter 2 From Erlang to Elixir
9(2)
Chapter 3 Setting Your Mind
11(2)
Part II The Service
13(8)
Chapter 4 Service Overview and Design
15(4)
Security
16(1)
Live Media
16(1)
Insurance
16(1)
Solicitor
16(1)
Registries and Archives
16(1)
Online Shop
16(1)
Mobile Apps
16(3)
Chapter 5 Service Features
19(2)
Part III The Setup
21(66)
Chapter 6 Environment and Deployment
23(10)
Installation
23(1)
Testing the Setup
23(1)
Erlang
24(1)
Elixir
24(2)
Docker Containers
26(4)
Deployment
30(3)
Chapter 7 Development Setup
33(44)
Basic Tools for Continuous Integration
34(2)
Rebar3
34(2)
Custom Templates
36(2)
Configuration and Shell
38(3)
Mix
41(1)
Commands
41(7)
Custom Tasks
48(2)
Rebar 3 and Mix
50(1)
Common Test and EUnit for Erlang
51(1)
EUnit
51(4)
Common Test
55(8)
ExUnit
57(6)
Meck
63(14)
Debugger
67(4)
Dialyzer
71(6)
Chapter 8 Production Setup
77(10)
Release Management
78(3)
Monitoring
81(6)
Part IV Implementing the Service
87(82)
Chapter 9 Overview
89(22)
A Deeper Look at Erlang and Elixir
89(12)
Module Definition
93(1)
Function Exports
94(1)
Running on One Machine
94(3)
Running on Two Machines
97(4)
Project Structure
101(1)
Mixing Erlang and Elixir Modules
102(1)
Libraries
103(1)
Database Access: Ecto, Erlmongo, and Others
104(1)
Riak KV
104(1)
JSON
104(2)
Logging: Lager
106(2)
Timex
108(1)
UUID
109(2)
Chapter 10 Public Interface
111(34)
Low Level
113(3)
OTP Servers
116(14)
Generic Server
116(2)
Generic FSM and Generic State Machine
118(2)
Generic Event Handler
120(3)
Supervisor
123(1)
Application
124(2)
GenStage
126(4)
Erlang and Cowboy
130(6)
Route Options
134(1)
Query Strings
134(1)
Body Data
135(1)
HTTP Verbs
136(1)
Elixir and Phoenix
136(9)
Chapter 11 Asset Processing
145(20)
Database Access
145(8)
MongoDB GridFS
145(5)
PostgreSQL
150(3)
Workflow
153(9)
Model Definition
155(2)
Orchestration
157(1)
State Machine
158(4)
Image Processing
162(2)
PDF Creation
164(1)
Chapter 12 Deployment
165(4)
Security
165(1)
Distribution and Deployment
166(3)
Part V Patterns and Concepts
169(64)
Chapter 13 Overview Patterns and Concepts
171(2)
Chapter 14 Functional Concepts
173(30)
Pattern Matching
173(4)
Immutability
177(5)
Code Quality and Debugging
179(1)
Data Consistency and State
179(1)
Cache and Sharing
179(1)
Hash Keys
180(1)
Functional Correctness
180(1)
Bi-Directional Data Structures
180(1)
Workarounds
180(1)
Resistance
180(1)
Concurrency
181(1)
Maps
182(4)
Lists and Tuples
186(5)
Recursion
191(4)
Higher Order Functions
195(3)
Continuation-Passing
198(1)
Closures
199(1)
Lazy Evaluation
200(1)
Referential Transparency
201(2)
Chapter 15 Type Creation Concepts
203(16)
DSL and Metaprogramming
203(4)
Mixin
207(2)
Polymorphism
209(4)
Behaviors (Behaviours)
213(2)
Dynamic Types
215(2)
Atoms
217(2)
Chapter 16 Code Structuring Concepts
219(14)
Separation of Concerns
219(1)
SOA
220(1)
Actor Model
221(4)
Specific to Generic
225(1)
Fault Tolerance
226(1)
Processes
227(2)
Concurrency
229(1)
Flow-Based Programming
229(2)
Where To Go From Here?
231(2)
Appendix A Modeling
233(6)
Appendix B Resources
239(2)
Books
239(1)
Articles and Papers
239(1)
Online Learning
239(1)
Blogs
240(1)
Fora
240(1)
Appendix C Features/Framework/Concepts Matrix
241(2)
Appendix D Quick Guide to Erlang and Elixir
243(10)
Code Comments
243(10)
Variables
243(1)
Atoms
244(1)
Data Types
244(1)
Operators
245(1)
Conditionals
246(1)
Pattern Matching
247(1)
Guards
247(1)
Functions
248(1)
Data: Lists, Records, Maps, and Structs
248(2)
Pipeline
250(1)
Erlang Shell
250(1)
Elixir Shell
251(2)
Index 253
Wolfgang Loder is programming software since the 1980s. He successfully rejected all calls for management roles and remained hands-on until now.  His journey went from Assembler and C to C++ and Java to C# and F# and JavaScript, from Waterfall To Agile, from Imperative to Declarative and other paradigm changes too many to list and remember.  Most of his career Wolfgang was a contracting 'Enterprise Developer', so the introduction of 'new' languages, frameworks and concepts is very slow in this field. Once he decided to develop his own products he was free of such constraints and ventured into all sorts of paradigms, be it NoSQL or functional and evaluating all the latest ideas, crazy or not. In other words, he has fun developing software. Wolfgang was born in Vienna, Austria and lives in the UK and Kenya.