这篇是计算机类的优质预售推荐>>>>《Clojure经典实例》
功能性编程全面指南
编辑推荐
本书涵盖150多个具体实例,展示了有经验的Clojure开发者如何用这门JVM语言完成各种编程任务。解决方案全面广泛:从构建动态网站和应用数据库到网络通信、云计算、高级测试策略等,面面俱到。这些实例源于全球60多名顶级Clojure开发者。
本书的每个实例不仅可以即学即用,而且其中提供的关于解决方案原理的讨论,让读者可以在模式、方法和技巧上举一反三,从而在遇到本书未提及的其他编程任务时也能游刃有余。
通过阅读本书,你可以:
掌握内建原生数据和复合数据结构;
使用Leiningen工具创建、开发和发布库;
与本地计算机交互;
管理网络通信协议和库;
掌握连接和使用各种数据库的技术;
应用Ring HTTP服务器库构建并维护动态网站;
解决封装、发布、配置、日志等应用任务;
进行云计算和重量级分布式数据处理;
深入研究单元测试、集成测试、模拟测试和基于属性的测试。
内容简介
本书以具体实例的形式讲解了Clojure语言在不同领域的应用,不仅介绍如何运用Clojure,而且还展示了很多常见库。书中给出了添加了注释的示例代码,详细分析并解释了数百个真实世界的编程任务。读者既可通过本书深入了解Clojure的精髓,也可将本书用作参考指南,解决具体问题。
作译者
Luke
VanderHart
是一名Clojure和ClojureScript开发者,目前就职于Cognitect公司(Clojure之父在该公司任CTO)。他是Practical Clojure(Apress)和ClojureScript: Up and Running(O‘Reilly)的合著者之一,目前在北卡罗来纳州达勒姆市生活和工作。
Ryan Neufeld
通晓多种计算机语言,是一名全能型软件开发者,热衷于分布式系统和网络应用开发。Ryan十分善于为客户解决各种或棘手或简单的软件技术问题,及时为客户交付成果。他目前居住于北卡罗来纳州达勒姆市,是Cognitect公司的一名开发人员。
媒体评论
“Clojure是由实践者所创,也是为实践者而创,而这本书也一样,它源于实践,面向实践,是Clojure实际开发的全面指南。”
——Rich Hickey
Clojure之父,Cognitect公司CTO
译者序
编程语言习得
“熟悉与优雅正交。”
——Rich Hickey
约二十年前,我买过一本高等教育出版社出版的《LISP 语言》,作者是马希文、宋柔。可惜当年没有老师指导,自己水平不够,未能深入下去,只留下了一点模糊的印象:LISP 语言适用于人工智能,括号很多。
几年前,图灵公司的朋友送我一本《黑客与画家》,我连夜看完,重新燃起了对LISP 的兴趣。我在书评中写道:“读完之后有一种想去学习LISP 语言的冲动。一个不懂LISP 的Java 程序员,不是一个好的C++ 程序员。”
现在,我终于找到了机会,开始学习Clojure 这种运行在JVM 上的LISP 方言。经过一段时间的学习,我完全被它迷住了!
首先吸引我的是它的函数式编程特性。作为一个学习C++ 和Java 多年的程序员,我已习惯在程序中使用各种名词抽象,也就是领域术语,希望在程序中体现领域专家的思想和认识水平。而在Clojure 编程中,虽然它也很适合领域抽象,但它的抽象程度更高,它希望达到数学家认识世界的水平。问题的开头通常是“给定一个无限序列……”,而常见的例子是如何实现斐波那契数列。
Leslie Lamport 说过,要将事情描述得清晰准确,人类发明的最好语言就是数学。这种对“表达的经济性”的追求,对于中国人是不陌生的。中国是诗歌的国度,而且古人对言简意赅的追求也有许多例子,比如“逸马杀犬于道”的故事。所以我觉得,LISP/Clojure 在精神上与有追求的中国程序员是契合的。
其次,它特别适合开发领域特定语言(DSL)。在LISP 社区中流传着一个笑话,可以说明这一点:任何足够大的软件,最后都会实现一个半调子LISP 解析器。LISP 的底层抽象极其简单,允许程序员设计更多的抽象,来描述这个世界。
学习一门新的语言,会改变学习者的思维方式。在面向对象编程时,我们更多关注单个对象。在函数式编程中,我们更多关注函数和集合。在工作中,不一定马上有机会使用Clojure,但其中学到的思维方式,将对编程产生立竿见影的影响。在翻译本书时,我同时在用Lua 开发项目,学习了Clojure,让我能写出更简洁、更优雅的Lua 代码。学习新语言有这样一些原则:(1)专注于与你相关的内容;(2)从学习这门语言的第一天起,就把它当作你的交流方式;(3)当你听得懂别人在说什么时,就会不知不觉慢慢习得这门语言;(4)语言不是大量的知识积累,而更像一种生理训练;(5)心理状态和生理状态都很重要,要愉快和放松。对于模棱两可要有一定的容忍性,对于细枝末节不要过于纠结,因为那会把你逼疯。本书提供了大量的例子,覆盖了日常编程领域的方方面面,正是学习Clojure
的好读物。
在翻译本书的过程中,我学到了很多,在此郑重推荐给大家。不足之处,还望大家指正。
王海鹏
2014 年秋
版权声明:本文为博主原创文章,未经博主允许不得转载。