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.
123 lines
5.2 KiB
123 lines
5.2 KiB
<!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>
|
|
|