HTML5中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

HTML5中国 首页 应用推荐 查看内容

推荐给菜鸟的编程书

2016-8-23 08:07| 发布者: Hyukoh| 查看: 814| 评论: 0|原作者: SwiftGG翻译组|来自: SegmentFault

摘要: 对于刚开始编程的菜鸟来说,这些书非常赞。对于已经有几年编程经验的老鸟来说,仍能从中学到东西。这些书有很大一部分都是用其他语言如 C、Ruby 或者 Java 写的,读这些书可能是个不小的挑战。还好在大多数情况下, ...

  Design Patterns

  作者 Gamma、Helm、Johnson 和 Vlissides


  这四位作者被大家称为「四剑客」,这本书出版于 1994 年。是第一本介绍常见的设计模式的书,讲述什么时候应该如何使用这些设计模式,附带使用示例代码。我推荐的几本书都是这种类型的,虽然看起来很像教科书,但也能可以读普通书那样快速翻阅,当要使用某个设计模式时,就知道应该跳到哪一章来获取需要的详细知识了。


  这本书创作于在桌面应用时代,其中的一些设计模式也是针对那个时代的。比如命令模式,对于菜单中没有功能,使用命令行非常有用。但是这些动作场景在 iOS 和 Web 开发中很难见到,所以命令模式可能有点过时了。但是设计模式解决问题的过程,有助于为你自己的问题想出有创造力的解决方法。



  Patterns of Enterprise Application Architecture

  作者 Martin Fowler


  上一本书创造于桌面图形应用的时代,而这本书诞生于 Web 年代。书名看起来很枯燥,不过我发现此书包含了一系列有用的模式。读起来就像在实现一个类似于 Ruby on Rails 框架食谱,所以如果说 DHH 在写 Ruby on Rails 框架之前读过这本书,我也不会感到惊讶。


  这些模式,已被用在 Web 的表单、HTML和数据库中。前两类很有趣,数据库模式还可以用于编写现代的 iOS 应用。如果你想了解一下类似于 Core Data(或者 ActiveRecord)的 ORM 是如何实现的,那可以看看这本书。比如,Core Data 使用了标识映射、延迟加载、元数据映射和查询对象等模式。像「四剑客」写的那本书一样,在写代码时虽然我们不会用到书中所有的模式,但是作者解决问题的这个过程,还是很令人兴奋的。



  Refactoring

  作者 Martin Fowler


  这本书也是由 Martin Fowler 编写的。它给重构下了一个准确的定义:


  有人问我,“难道重构只是清理代码?”,在某种程度上,答案是肯定的,但我觉得重构更进了一步,因为它为清理代码提供了一个更加高效和更为可控的方式。


  这本书还介绍了,重构是如何融入通常的软件开发过程中的:


  使用重构来开发软件,需要把时间分为两个部分:添加功能和重构。添加的新功能时,不应该改变现有的代码;你只是添加新的功能。


  在介绍和定义了重构之后,Fowler 深入讲解了一系列重构的例子。从抽取方法这种简单的开始,然后逐渐深入到类似引入空对象的重构方式。像之前的两本书一样,这本书从头读到尾也需要花些功夫。



  Domain-Driven Design

  作者 Eric Evans


  之前四本书籍大多介绍模式,这本书有一条小小的叙事线。一个开发者和一个领域的专家,搭建了一个管理船行程的应用。在这个过程中,从最初的研究阶段到实际的编码过程,你将学到如何把一个领域模型化。我从这本书了解到 value types 比 Swift 发布它的 value types 早了两年。


  作者在程序员和领域专家之间编造的苏格拉底式对话也有助于我们理解。有人认为,在一个理想的世界中,一个产品经理可以在开发者和利益相关者之间传话。而在真实的世界中,你(作为开发者)对于表达软件的功能和局限也负有最终的责任,这本书展示类似的应该是什么样子。



  如何思考 vs 思考什么

  这五本书每一本都有各自的价值——你不仅能学到书里的知识,还能学会如何思考面临的问题。这些书都遵循着同样的结构:提出问题,然后给出解决方案。将问题和解决方法联系起来,能够看清如何解决的整个过程,最终学会如何处理其他问题。


原文链接:https://segmentfault.com/a/1190000006684219

原文作者:SwiftGG翻译组


鲜花

握手

雷人

路过

鸡蛋
更多

相关阅读

最新评论

HTML5中国微信

小黑屋|关于我们|HTML5论坛|友情链接|手机版|HTML5中国 ( 京ICP备11006447号 京公网安备:11010802018489号  

GMT+8, 2017-4-27 05:39

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

返回顶部