You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
5.2 KiB
124 lines
5.2 KiB
11 months ago
|
<!DOCTYPE html>
|
||
|
<html lang="en">
|
||
|
<head>
|
||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||
|
|
||
|
<!-- Enable responsiveness on mobile devices-->
|
||
|
<!-- viewport-fit=cover is to support iPhone X rounded corners and notch in landscape-->
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, viewport-fit=cover">
|
||
|
|
||
|
<title>Julio Biason .Me 4.3</title>
|
||
|
|
||
|
<!-- CSS -->
|
||
|
<link rel="stylesheet" href="https://blog.juliobiason.me/print.css" media="print">
|
||
|
<link rel="stylesheet" href="https://blog.juliobiason.me/poole.css">
|
||
|
<link rel="stylesheet" href="https://blog.juliobiason.me/hyde.css">
|
||
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=PT+Sans:400,400italic,700|Abril+Fatface">
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
</head>
|
||
|
|
||
|
<body class=" ">
|
||
|
|
||
|
<div class="sidebar">
|
||
|
<div class="container sidebar-sticky">
|
||
|
<div class="sidebar-about">
|
||
|
|
||
|
<a href="https://blog.juliobiason.me"><h1>Julio Biason .Me 4.3</h1></a>
|
||
|
|
||
|
<p class="lead">Old school dev living in a 2.0 dev world</p>
|
||
|
|
||
|
|
||
|
</div>
|
||
|
|
||
|
<ul class="sidebar-nav">
|
||
|
|
||
|
|
||
|
<li class="sidebar-nav-item"><a href="/">English</a></li>
|
||
|
|
||
|
<li class="sidebar-nav-item"><a href="/pt">Português</a></li>
|
||
|
|
||
|
<li class="sidebar-nav-item"><a href="/tags">Tags (EN)</a></li>
|
||
|
|
||
|
<li class="sidebar-nav-item"><a href="/pt/tags">Tags (PT)</a></li>
|
||
|
|
||
|
|
||
|
</ul>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<div class="content container">
|
||
|
|
||
|
<div class="post">
|
||
|
<h1 class="post-title">Web Development with Clojure: Build Bulletproof Web Apps with Less Code - Dmitri Sotnikov</h1>
|
||
|
<span class="post-date">
|
||
|
2017-06-22
|
||
|
|
||
|
<a href="https://blog.juliobiason.me/tags/books/">#books</a>
|
||
|
|
||
|
<a href="https://blog.juliobiason.me/tags/dmitri-sotnikov/">#dmitri sotnikov</a>
|
||
|
|
||
|
<a href="https://blog.juliobiason.me/tags/reviews/">#reviews</a>
|
||
|
|
||
|
<a href="https://blog.juliobiason.me/tags/clojure/">#clojure</a>
|
||
|
|
||
|
<a href="https://blog.juliobiason.me/tags/web-development/">#web development</a>
|
||
|
|
||
|
<a href="https://blog.juliobiason.me/tags/it/">#it</a>
|
||
|
|
||
|
<a href="https://blog.juliobiason.me/tags/stars-2/">#stars:2</a>
|
||
|
|
||
|
<a href="https://blog.juliobiason.me/tags/published-2013/">#published:2013</a>
|
||
|
|
||
|
</span>
|
||
|
<p><a href="https://www.goodreads.com/book/show/18399028-web-development-with-clojure">GoodReads Summary</a>:
|
||
|
Modern web development needs modern tools. Web Development With Clojure shows
|
||
|
you how to apply Clojure programming fundamentals to build real-world
|
||
|
solutions. You'll develop all the pieces of a full web application in this
|
||
|
powerful language. If you already have some familiarity with Clojure, you'll
|
||
|
learn how to put it to serious practical use. If you're new to the language,
|
||
|
the book provides just enough Clojure to get down to business.</p>
|
||
|
<span id="continue-reading"></span><div>
|
||
|
★★☆☆☆
|
||
|
</div>
|
||
|
<p>First of all, this book suffers from the same mistakes every single Lisp-like
|
||
|
language book I've read: They throw a truck at you, then slowly, while you're
|
||
|
being crushed by it, explain each part that creates a truck -- In other words,
|
||
|
they throw a large piece of code at you and then slowly explain each part of
|
||
|
it.</p>
|
||
|
<p>Even worst, in the last parts, it's basically "here is truck, take it" -- very
|
||
|
little explanation about the code itself, just "we'll do this" and code. What
|
||
|
the pieces of code mean, that's entirely to you.</p>
|
||
|
<p>Another problem: no tests. The author prefers the REPL approach, which is okay
|
||
|
for little projects, but for projects that should last longer than a weekend
|
||
|
project. No only that, but even the tests are wrong, because it mocks the
|
||
|
database -- Database is part of your project so it <strong>should</strong> be tested along
|
||
|
all the other tests.</p>
|
||
|
<p>And, on top of that, there is a REST server with sessions, and a lot of code
|
||
|
just to keep the frontend session in sync with the server session. That's
|
||
|
actually <strong>not</strong> how a REST server works.</p>
|
||
|
<p>And while I usually don't comment the technology behind the book (because it's
|
||
|
not the author's creation), I really have to ask if Clojure is the right tool
|
||
|
for web servers. I mean, a lot about Clojure is about immutability and a lot
|
||
|
about the shown code is forcing mutability -- one function even is composed
|
||
|
with nothing but functions that force mutability.</p>
|
||
|
<p>So, not only the book itself doesn't give a clear picture about web
|
||
|
development in Clojure, the language itself doesn't appear appropriate for
|
||
|
such task.</p>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
</div>
|
||
|
|
||
|
</body>
|
||
|
|
||
|
</html>
|