Clojure: High Performance JVM Programming
By 作者: Eduardo Diaz – Shantanu Kumar – Akhil Wali
ISBN-10 书号: 1787129594
ISBN-13 书号: 9781787129597
Release Finelybook 出版日期: 2017-01-31
pages 页数: 580
Book Description to Finelybook sorting
Clojure is a general-purpose language from the Lisp family with an emphasis on functional programming. It has some interesting concepts and features such as immutability, gradual typing, thread-safe concurrency primitives, and macro-based metaprogramming, which makes it a great choice to create modern, performant, and scalable applications.
This learning path aims at unleashing the true potential of the Clojure language so you can use it in your projects. It begins with installing and setting up the Clojure environment before moving on to explore the language in depth. You’ll get acquainted with its various features such as functional programming, concurrency, reducers, transducers, core.async and core.logic, and so on with a great level of detail.
Moving on, you’ll also learn how to enhance performance using Java interoperability and JVM-specific features from Clojure; you’ll even master language features such as asynchronous channels, actors, logic programming, reactive programming, metaprogramming, and so on.
This learning path combines some of the best that Packt has to offer in one complete, curated package. It includes content from the following Packt products:
Clojure for Java Developers by Eduardo Díaz
Clojure High Performance Programming, Second Edition by Shantanu Kumar
Mastering Clojure by Akhil Wali
1: GETTING STARTED WITH CLOJURE
2: NAMESPACES, PACKAGES, AND TESTS
3: INTERACTING WITH JAVA
4: COLLECTIONS AND FUNCTIONAL PROGRAMMING
5: MULTIMETHODS AND PROTOCOLS
7: MACROS IN CLOJURE
8: PERFORMANCE BY DESIGN
9: CLOJURE ABSTRACTIONS
10: LEANING ON JAVA
11: HOST PERFORMANCE
13: MEASURING PERFORMANCE
14: PERFORMANCE OPTIMIZATION
15: APPLICATION PERFORMANCE
16: WORKING WITH SEQUENCES AND PATTERNS
17: ORCHESTRATING CONCURRENCY AND PARALLELISM
18: PARALLELIZATION USING REDUCERS
19: METAPROGRAMMING WITH MACROS
20: COMPOSING TRANSDUCERS
21: EXPLORING CATEGORY THEORY
22: PROGRAMMING WITH LOGIC
23: LEVERAGING ASYNCHRONOUS TASKS
24: REACTIVE PROGRAMMING
25: TESTING YOUR CODE
26: TROUBLESHOOTING AND BEST PRACTICES
What You Will Learn
Understand tools for the Clojure world and how they relate to Java tools and standards (such as Maven)
Write simple multicore programs using Clojure’s core concepts, such as atoms, agents, and refs
Get to grips with Clojure’s concurrency and state-management primitives in depth
Analyze latency using the Criterium library
Avoid reflection and boxing with type hints
Maximize the impact of parallelization, functional composition, and process transformation by composing reducers and transducers
Modify and add features to the Clojure language using macros
Test your code with unit tests, specs, and type checks to write testable code
Troubleshoot and style your Clojure code to make it more maintainable
Eduardo Díaz is a developer with a strong background in the Java language. He has a passion for functional programming and new programming paradigms. His work includes full stack development, systems design, and high volume real time data processing.
He has worked on every technology related problem you can imagine, as a consultant solving anything related to Java, UNIX, C, or any other strange problem you might have had.
As a developer, he has been working for around 10 years on Java, Python, Scala, Clojure, in the media, bank, and primarily communications industries.
He is currently working at Grupo Expansion, a media company, where he helps design and implement a new content delivery platform aiming to empower content editors and encourage developers to find new ways to use data.
Shantanu Kumar is a software developer living in Bengaluru, India. He works with Concur Technologies as a principal engineer, building a next-generation stack in Clojure. He started learning computer programming when he was at school, and has dabbled in several programming languages and software technologies. Having used Java for a long time, he discovered Clojure in early 2009 and has been a fan of it ever since.
When not busy with programming or reading up on technical stuff, he enjoys reading non-fiction and cycling around Bengaluru. Shantanu is an active participant in The Bangalore Clojure Users Group, and contributes to several open source Clojure projects on GitHub. He is also the author of the first edition of the book Clojure High Performance Programming, Packt Publishing.