• Fri frakt över 249 kr
  • •
  • Snabba leveranser
  • •
  • Billiga böcker
Kundservice

Du är på sajten för privatpersoner.

Företag, bibliotek eller offentlig verksamhet?

Du handlar på classic.bokus.com, där alla dina funktioner finns intakta.
Till classic.bokus.com
Bokus logotyp. Gå till startsidan.
  • Erbjudanden
  • Student
  • Topplistor
  • Barn & ungdom
  • Bokus Play
  • E-böcker
  • Ljudböcker
  • Pocketböcker
  • Spel & pussel

Upp till 25% på utvalda nyheter →

Sidfot

Mina sidor

    Hjälp

    • Kundservice
    • Vanliga frågor och svar
    • Frakt och leverans
    • Retur vid ångerrätt
    • Reklamera vara
    • Betalning
    • Köpvillkor
    • Allmänna villkor
    • Information om webbplatsens tillgänglighet

    Om Bokus

    • Om oss
    • Pressrum
    • För studenter
    • För företag
    • För bibliotek och offentlig verksamhet
    • För leverantörer
    • Hållbarhet

    Populärt

    • Aktuella erbjudanden
    • Presentkort
    • Studentlitteratur
    • Nya böcker
    • Topplistor
    • Signerade böcker
    • Engelska böcker

    Inspiration

    • Boktips
    • BookTok
    • Populära bokserier
    • Barnbokskaraktärer
    • Populära författare
    Logotyp för Bokus
    Följ oss på Facebook (extern länk)Följ oss på Instagram (extern länk)Följ oss på YouTube (extern länk)Följ oss på TikTok (extern länk)
    bokus @ CookiesAnpassa cookiesIntegritetspolicyKöpvillkor
    Till Citymail hemsida (extern länk)Till Budbee hemsida (extern länk)Till Postnord hemsida (extern länk)Till Schenker hemsida (extern länk)Till Early Bird hemsida (extern länk)Till Walleys hemsida (extern länk)
    1. Data och IT
    2. Programmeringsböcker

    Professional Clojure

    AvJeremy Anderson,Michael Gaare

    Häftad, Engelska, 2016

    557 kr

    Beställningsvara. Skickas inom 5-8 vardagar. Fri frakt över 249 kr.

    Beskrivning

    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 read—eval—print 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 programming—but 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 programmingUnderstand Clojure performance and capabilitiesDevelop reactive web pages using ClojureScriptAdopt an REPL-driven development workflowClojure 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.

    Produktinformation

    • Utgivningsdatum:2016-07-19
    • Mått:188 x 236 x 13 mm
    • Vikt:449 g
    • Format:Häftad
    • Språk:Engelska
    • Antal sidor:264
    • Förlag:John Wiley & Sons Inc
    • ISBN:9781119267270

    Utforska kategorier

    • Programmeringsböcker inom Data och IT

    Mer om författaren

    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.

    Recensioner i media

    "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)

    Innehållsförteckning

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