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

Using Datascript


Datascript is an in-memory database for ClojureScript, modeled after Datomic, the commercial Clojure database produced by Cognitect. Why do we need an in-memory database in the browser? We've spent most of the book learning how to create more powerful applications. The core.async channels, WebSockets and Om have given us the tools to collect and render large amounts of data. Adding a database to our large, complex SPA provides a useful tool for conveniently organizing and locating our data.

Understanding the Datascript/Datomic data model

Datascript is closely modeled after Datomic due to Datomic's powerful API, and using the same API on client and server eliminates the need for a translation layer. We'll cover Datomic's data model and point out differences between the two.

Datomic is a consistent (CP, in CAP terms), ACID, non-SQL database built around the concept of a datom.

Note

A datom is a tuple (an ordered list of elements) composed of entity/attribute/value/time, commonly...