摘要: 当我们在Spoil打算推出我们自己的移动端应用时,头一个需要作出的决定就是:我们应该使用哪种编程语言?经过一番讨论,我们最终做出的决定是:React-Native。学习一门新的“语言”或者框架并不是个大问题,但是老兄我得告诉你,React-Native和Redux确确实实是块难啃的骨头。这篇文章没有介绍React-Native是如何工作的(因为那确实不是最难的部分)。下面几段文字的目的在于帮助任何人完成从“Thingking in MVC”到“Thinking in Redux”的转换。希望能对你有所帮助。 阅读全文
posted @ 2017-09-19 17:54 iKcamp 阅读(416) 评论(0) 推荐(0) 编辑
摘要: Electron 可以让你使用纯 JavaScript 调用 Chrome 丰富的原生的接口来创造桌面应用。你可以把它看作一个专注于桌面应用的 Node.js 的变体,而不是 Web 服务器。其基于浏览器的应用方式可以极方便的做各种响应式的交互,接下来介绍下关于 Electron 上衍生出的框架 Nightmare。 Nightmare 是一个基于 Electron 的框架,针对 Web 自动化测试和爬虫(其实爬虫这个是大家自己给这个框架加的功能XD),因为其具有跟 PlantomJS 一样的自动化测试的功能可以在页面上模拟用户的行为触发一些异步数据加载,也可以跟 Request 库一样直接访问 URL 来抓取数据,并且可以设置页面的延迟时间,所以无论是手动触发脚本还是行为触发脚本都是轻而易举的(这边注意,如果事件具备 isTrusted 的检查的话,就无法触发了)。 阅读全文
posted @ 2017-09-19 17:52 iKcamp 阅读(2181) 评论(0) 推荐(0) 编辑
摘要: 不好意思,没有像其他公众号一样赶着发文章,每年到这个时候总有一大波什么今年前端预测,技术框架预测什么的。我这次写这篇文针对的对象,是想在今年踏入前端这行的人们,不管你现在是徘徊在门口,还是已经半只脚踏入这片未知领域,都可以参考一下先行者的经验。 阅读全文
posted @ 2017-09-19 17:50 iKcamp 阅读(747) 评论(0) 推荐(0) 编辑
摘要: 这是一本可供任何人使用的指南,用于学习前端开发实践。该指南大体上勾勒出了前端工程的轮廓,同时也讨论了前端工程的实践:2017 年,如何学习前端工程,用什么工具来实践? 笔者有意将本书打造为一份专业资料,为想要或正在实践的前端开发者们提供学习材料和开发工具。其次,它同样可供主管、CTO、讲师和猎头们深入探索前端开发实践。 本书内容偏向于 WEB 技术(HTML、CSS、DOM、JavaScript)和以这些技术为根基直接构建而成的开源技术。书中引用和讨论的材料要么就是同类翘楚,要么就是解决问题的流行方案。 阅读全文
posted @ 2017-09-19 17:48 iKcamp 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 你是否还沉迷于上一节介绍的闭包/对象之中?欢迎回来! 如果你能做一些令人惊叹的事情,请持续保持下去。 本文之前已经简要的提及了一些实用函数:`map(..)`、`filter(..)` 和 `reduce(..)`,现在深入了解一下它们。在 Javascript 中,这些实用函数通常被用于 Array(即 “list” )的原型上。因此可以很自然的将这些实用函数和数组或列表操作联系起来。 在讨论具体的数组方法之前,我们应该很清楚这些操作的作用。在这章中,弄明白为何有这些列表操作和这些操作如何工作同等重要。请保持头脑清晰,跟上节奏。 在本章内外,有大量常见且通俗易懂的 阅读全文
posted @ 2017-09-19 17:39 iKcamp 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 在第 5 章中,我们探讨了减少副作用的重要性:副作用是引起程序意外状态改变的原因,同时也可能会带来意想不到的惊喜(bugs)。这样的暗雷在程序中出现的越少,开发者对程序的信心无疑就会越强,同时代码的可读性也会越高。本章的主题,将继续朝减少程序副作用的方向努力。 如果编程风格幂等性是指定义一个数据变更操作以便只影响一次程序状态,那么现在我们将注意力转向将这个影响次数从 1 降为 0。 现在我们开始探索值的不可变性,即只在我们的程序中使用不可被改变的数据。 阅读全文
posted @ 2017-09-19 17:31 iKcamp 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 数年前,Anton van Straaten 创造了一个非常有名且被常常引用的 [禅理](https://www.merriam-webster.com/dictionary/koan) 来举例和证实一个闭包和对象之间重要的关系。 德高望重的大师 Qc Na 曾经和他的学生 Anton 一起散步。Anton 希望引导大师到一个讨论里,说到:大师,我曾听说对象是一个非常好的东西,是这样么?Qc Na 同情地看着他的学生回答到, “愚笨的弟子,对象只不过是可怜人的闭包” 被批评后,Anton 离开他的导师并回到了自己的住处,致力于学习闭包。他认真的阅读整个“匿名函数:终极……”系列论 阅读全文
posted @ 2017-09-19 17:31 iKcamp 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 在第 2 章,我们讨论了一个函数除了它的返回值之外还有什么输出。现在你应该很熟悉用函数式编程的方法定义一个函数了,所以对于函数式编程的副作用你应该有所了解。 我们将检查各种各样不同的副作用并且要看看他们为什么会对我们的代码质量和可读性造成损害。 这一章的要点是:编写出没有副作用的程序是不可能的。当然,也不是不可能,你当然可以编写出没有副作用的程序。但是这样的话程序就不会做任何有用和明显的事情。如果你编写出来一个零副作用的程序,你就无法区分它和一个被删除的或者空程序的区别。 阅读全文
posted @ 2017-09-19 17:31 iKcamp 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 到目前为止,我希望你能更轻松地理解在函数式编程中使用函数意味着什么。 一个函数式编程者,会将他们程序中的每一个函数当成一小块简单的乐高部件。他们能一眼辨别出蓝色的 2x2 方块,并准确地知道它是如何工作的、能用它做些什么。当构建一个更大、更复杂的乐高模型时,当每一次需要下一块部件的时候,他们能够准确地从备用部件中找到这些部件并拿过来使用。 但有些时候,你把蓝色 2x2 的方块和灰色 4x1 的方块以某种形式组装到一起,然后意识到:“这是个有用的部件,我可能会常用到它”。 那么你现在想到了一种新的“部件”,它是两种其他部件的组合,在需要的时候能触手可及。这时候,将这个蓝黑色 L 形状的方块组合体放到需要使用的地方,比每次分开考虑两种独立方块的组合要有效的多。 函数有多种多样的形状和大小。我们能够定义某种组合方式,来让它们成为一种新的组合函数,程序中不同的部分都可以使用这个函数。这种将函数一起使用的过程叫做组合。 阅读全文
posted @ 2017-09-19 17:30 iKcamp 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 在第 2 章的 “函数输入” 小节中,我们聊到了函数形参(parameters)和实参(arguments)的基本知识,实际上还了解到一些能简化其使用方式的语法技巧,比如 `...` 操作符和解构(destructuring)。 在那个讨论中,我建议尽可能设计单一形参的函数。但实际上你不能每次都做到,而且也不能每次都掌控你的函数签名(译者注:JS 中,函数签名一般包含函数名和形参等函数关键信息,例如 `foo(a, b = 1, c)`)。 现在,我们把注意力放在更复杂、强大的模式上,以便讨论处在这些场景下的函数输入。 阅读全文
posted @ 2017-09-19 17:28 iKcamp 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 函数式编程**不是仅仅用 `function` 这个关键词来编程**。如果真这么简单,那我这本书可以到此为止了!重点在于:函数**是**函数式编程的核心。这也是如何使用函数(function)才能使我们的代码具有函数式(functional)的方法。 然而,你真的明白**函数**的含义吗? 在这一章,我们将会介绍函数的基础知识,为阅读本书的后续章节打下基础。从某些方面来讲,这章回顾的函数知识并不是针对函数式编程者,非函数式编程者同样需要了解。但如果我们想要充分、全面地学习函数式编程的概念,我们需要从里到外地**理解**函数。 阅读全文
posted @ 2017-09-19 17:27 iKcamp 阅读(542) 评论(0) 推荐(0) 编辑
摘要: 函数式编程(FP),不是一个新的概念,它几乎贯穿了整个编程史。我不确定这么说是否合理,但是很确定的一点是:直到最近几年,函数式编程才成为整个开发界的主流观念。所以我觉得函数式编程领域更像学者的领域。 然而一切都在变。不只是从编程语言的角度,一些库和框架都对函数式编程的兴趣空前高涨。你很可能也在读相关内容,因为你终于意识到函数式编程是不容忽视的东西。或者你跟我一样,已经尝试很多次去学函数式编程,但却很难理解所有的术语或数学符号。 无论你出于何目的翻阅本书,欢迎加入我们! 阅读全文
posted @ 2017-09-19 17:24 iKcamp 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 本书主要探索函数式编程(FP)的核心思想。在此过程中,作者不会执着于使用大量复杂的概念来进行诠释,这也是本书的特别之处。我们在 JavaScript 中应用的仅仅是一套基本的函数式编程概念的子集。我称之为“轻量级函数式编程(FLP)”。 阅读全文
posted @ 2017-09-19 17:21 iKcamp 阅读(831) 评论(0) 推荐(0) 编辑