Atnaujinkite slapukų nuostatas

El. knyga: Professional Clojure

3.78/5 (15 ratings by Goodreads)
  • Formatas: EPUB+DRM
  • Išleidimo metai: 25-May-2016
  • Leidėjas: Wrox Press
  • Kalba: eng
  • ISBN-13: 9781119267294
Kitos knygos pagal šią temą:
  • Formatas: EPUB+DRM
  • Išleidimo metai: 25-May-2016
  • Leidėjas: Wrox Press
  • Kalba: eng
  • ISBN-13: 9781119267294
Kitos knygos pagal šią temą:

DRM apribojimai

  • Kopijuoti:

    neleidžiama

  • Spausdinti:

    neleidžiama

  • El. knygos naudojimas:

    Skaitmeninių teisių valdymas (DRM)
    Leidykla pateikė šią knygą šifruota forma, o tai reiškia, kad norint ją atrakinti ir perskaityti reikia įdiegti nemokamą programinę įrangą. Norint skaityti šią el. knygą, turite susikurti Adobe ID . Daugiau informacijos  čia. El. knygą galima atsisiųsti į 6 įrenginius (vienas vartotojas su tuo pačiu Adobe ID).

    Reikalinga programinė įranga
    Norint skaityti šią el. knygą mobiliajame įrenginyje (telefone ar planšetiniame kompiuteryje), turite įdiegti šią nemokamą programėlę: PocketBook Reader (iOS / Android)

    Norint skaityti šią el. knygą asmeniniame arba „Mac“ kompiuteryje, Jums reikalinga  Adobe Digital Editions “ (tai nemokama programa, specialiai sukurta el. knygoms. Tai nėra tas pats, kas „Adobe Reader“, kurią tikriausiai jau turite savo kompiuteryje.)

    Negalite skaityti šios el. knygos naudodami „Amazon Kindle“.

Clear, practical Clojure for the professional programmer Professional Clojure is the experienced developer's guide to functional programming using the Clojure language. Designed specifically to meet the needs of professional developers, this book briefly introduces functional programming before skipping directly to the heart of using Clojure in a real-world setting. The discussion details the readevalprint workflow that enables fast feedback loops, then dives into enterprise-level Clojure development with expert guidance on web services, testing, datomics, performance, and more. Read from beginning to end, this book serves as a clear, direct guide to Clojure programmingbut the comprehensive coverage and detail makes it extraordinarily useful as a quick reference for mid-project snags. The author team includes four professional Clojure developers, ensuring professional-level instruction from a highly practical perspective.

Clojure is an open-source programming language maintained and supported by Cognitect., and quickly gaining use across industries at companies like Amazon, Walmart, Facebook, Netflix, and more. This guide provides a concise, yet thorough resource for professional developers needing to quickly put Clojure to work.





Parse the difference between functional and object-oriented programming Understand Clojure performance and capabilities Develop reactive web pages using ClojureScript Adopt an REPL-driven development workflow

Clojure is a modern dialect of Lisp, designed for concurrency and Java compatibility. It can be used with the Java virtual machine, Microsoft's Common Language Runtime, and JavaScript engines, providing a level of both versatility and functionality that is appealing to more and more enterprise-level developers. As requirements grow increasingly complex, stepping away from imperative programming can dramatically streamline the development workflow. Professional Clojure provides the expert instruction that gets professionals up to speed and back to work quickly.

Recenzijos

"A book that makes you think, from the first chapter's dive into thoughtful code-led examples, and covers web services, testing and performance. Brings you closer to functional thinking." (MagPi, October 2016)

Introduction xv
Chapter 1 Have A Beginner's Mind 1(30)
Functional Thinking
2(14)
Value Oriented
2(3)
Thinking Recursively
5(3)
Higher Order Functions
8(3)
Embracing Laziness
11(1)
When You Really Do Need to Mutate
12(3)
Nil Punning
15(1)
The Functional Web
16(1)
Doing Object-Oriented Better
16(7)
Polymorphic Dispatch with defmulti
18(2)
Defining Types with deftype and defrecord
20(1)
Protocols
21(1)
Reify
22(1)
Persistent Data Structures
23(4)
Shaping the Language
27(2)
Summary
29(2)
Chapter 2 Rapid Feedback Cycles With Clojure 31(22)
REPL-Driven Development
32(8)
Basic REPL Usage with Leiningen
32(2)
Remote REPLs with nREPL
34(1)
REPL Usage with a Real Application
35(4)
Connecting Your Editor to a REPL
39(1)
Reloading Code
40(11)
Reloading Code from the REPL
40(3)
Automatically Reloading Code
43(6)
Writing Reloadable Code
49(2)
Summary
51(2)
Chapter 3 Web Services 53(46)
Project Overview
53(2)
Namespace Layout
54(1)
Elements of a Web Service
55(19)
Libraries, Not Frameworks
55(1)
HTTP
55(9)
Routing
64(6)
JSON Endpoints
70(4)
Example Service
74(20)
Create the Project
75(1)
Additional Namespaces
75(2)
Default Middleware
77(1)
The Storage Protocol
78(5)
Handlers
83(5)
Middleware
88(1)
Routes
89(5)
Deployment
94(3)
Using Leiningen
94(1)
Compiling an Uberjar or Uberwar
95(1)
Hosting
96(1)
Summary
97(2)
Chapter 4 Testing 99(30)
Testing Basics with clojure.test
100(4)
with-test
101(1)
deftest
101(1)
are
102(1)
Using Fixtures
103(1)
Testing Strategies
104(8)
Tests Against DB
104(2)
Testing Ring Handlers
106(2)
Mocking/Stubbing Using with-redefs
108(2)
Redefining Dynamic Vars
110(1)
Record/Replay with VCR
111(1)
Measuring Code Quality
112(7)
Code Coverage with Cloverage
112(2)
Static Analysis with kibit and bikeshed
114(2)
Keeping Dependencies Under Control
116(3)
Testing Framework Alternatives
119(8)
Expectations
119(1)
Speclj
119(1)
Cucumber
120(6)
Kerodon
126(1)
Summary
127(2)
Chapter 5 Reactive Web Pages In Clojurescript 129(40)
ClojureScript Is a Big Deal
129(2)
A First Brush with ClojureScript
131(20)
Starting a New ClojureScript Project
132(1)
Getting Fast Feedback with Figwheel
132(2)
Creating Components
134(1)
Modeling the Data
135(1)
Responding to Events and Handling State Change
136(1)
Understanding Errors and Warnings
137(4)
Namespace Layout
141(1)
Styling
141(1)
Form Inputs and Form Handling
142(3)
Navigation and Routes
145(2)
HTTP Calls: Talking to a Server
147(2)
Drag and Drop
149(1)
Publishing
150(1)
Reagent in Depth
151(8)
Form 1: A Function That Returns a Vector
151(1)
Form 2: A Function That Returns a Component
152(1)
Form 3: A Function That Returns a Class
153(1)
Sequences and Keys
154(1)
Custom Markup
155(1)
Reactions
156(2)
A Note on Style
158(1)
Testing Components with Devcards
159(3)
Interop with JavaScript
162(2)
One Language, One Idiom, Many Platforms
164(1)
Things to Know About the Closure Compiler and Library
164(1)
Modeling State with DataScript
165(1)
Go Routines in Your Browser with core.async
166(1)
Summary
167(2)
Chapter 6 The Datomic Database 169(48)
Datomic Basics
170(18)
Why Datomic?
170(2)
The Datomic Data Model
172(3)
Querying
175(6)
Transactions
181(2)
Indexes Really Tie Your Data Together
183(4)
Datomic's Unique Architecture
187(1)
Modeling Application Data
188(9)
Example Schema for Task Tracker App
188(8)
Entity ids and Partitions
196(1)
Datomic's Clojure API
197(9)
Basic Setup
197(3)
Experimenting in the REPL
200(6)
Building Applications with Datomic
206(9)
User Functions
206(3)
Account Functions
209(1)
Task Functions
210(3)
Deployment
213(1)
The Limitations
214(1)
Summary
215(2)
Chapter 7 Performance 217(18)
What Is Performance?
219(1)
Choosing the Right Data Structure Is a Prerequisite for Performance
219(2)
Benchmarking
221(4)
Timing Slow Things
221(2)
Use Criterium for Timing Fast Things
223(2)
Use Test Selectors for Performance Tests
225(1)
Parallelism
225(1)
Memoization
226(1)
Inlining
227(1)
Persistent Data Structures
228(1)
Safe Mutation with Transients
228(1)
Profiling
229(1)
Avoiding Reflection with Type Hinting
230(2)
Java Flags
232(1)
Math
232(1)
Summary
232(3)
Index 235
About the authors

Jeremy Anderson is a Developer at Code Adept, and a Clojure contributor.

Michael Gaare is the platform technical lead at Nextangles, a financial technology startup.

Justin Holguķn is a software engineer at Puppet Labs, where he specializes in Clojure backend services.

Nick Bailey is a Clojure enthusiast and the maintainer of the Clojure java.jmx library. He is a software architect at DataStax.

Timothy Pratley is a Clojure contributor at Outpace Systems, Inc.

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.