Book Image

Learning ClojureScript

By : W. David Jarvis, Allen Rohner
Book Image

Learning ClojureScript

By: W. David Jarvis, Allen Rohner

Overview of this book

Clojure is an expressive language that makes it possible to easily tackle complex software development challenges. Its bias toward interactive development has made it a powerful tool, enabling high developer productivity. In this book, you will first learn how to construct an interactive development experience for ClojureScript.. You will be guided through ClojureScript language concepts, looking at the basics first, then being introduced to advanced concepts such as functional programming or macro writing. After that, we elaborate on the subject of single page web applications, showcasing how to build a simple one, then covering different possible enhancements. We move on to study more advanced ClojureScript concepts, where you will be shown how to address some complex algorithmic cases. Finally, you'll learn about optional type-checking for your programs, how you can write portable code, test it, and put the advanced compilation mode of the Google Closure Compiler to good use.
Table of Contents (15 chapters)
Learning ClojureScript
Credits
Foreword
About the Authors
About the Reviewer
www.PacktPub.com
Preface

Improving load times


Production SPAs frequently contain upward of 1 MB of JavaScript, which takes time to download and parse, especially for mobile browsers. For internal applications, this might not be a big deal, but for SPAs deployed to the public Internet, speed is important. Users are impatient and will abandon a slow-loading page. Faster websites see increased repeat traffic, higher search engine rankings and higher conversion rates. In the next sections, we'll cover techniques that will reduce the download size of our SPA and improve its load time.

ClojureScript modules

ClojureScript modules are a Google Closure Compiler option for breaking a ClojureScript application into multiple .js files. The key insight to modules is that the entirety of your ClojureScript code is not typically required to render every page. For example, many applications have an "inner" and "outer" split, where "outer" consists of things such as marketing and pricing pages, while "inner" consists of the actual...