Fantasy

Programming & Thinking

Reading

注:这是我发布在豆瓣上的书评,稍加整理后发布在此处。 古人学问无遗力,少壮工夫老始成。 纸上得来终觉浅,绝知此事要躬行。 – 《冬夜读书示子聿》 以这首诗作为本次书评的开篇,是因为这正是我在阅读整本书的时候脑海中不断地浮现的想法。 如果你没有阅读过此书,可以稍稍浏览下整本书的目录: 心智的力量 开启自己的心智 通过管理自己与时间做朋友 开拓我们的心智 小心所谓「成功学」 更多思考 此时此刻开始改变 书本的第五章叫做「小心所谓的成功学」– 而这一章也是我觉得整本书堪称败笔的地方。 为什么这么说呢? 李笑来老师花了很长的篇幅、旁征博引,数落了大量「成功学」书籍的不是之处。 熟不知这本书本身也是一个作为「成功者」的李笑来所编写的「成功学」书籍 – 只能说「对比」作为一种常见的文字技巧,在这里实践地很透彻。 当然了,瑕不掩瑜,这本书除了这一章充满了令人吐槽之感以外,其他章节看起来都是那么的令人信服、热血迸发 – 恨不得立即争分夺秒、唯恐自己的时间悄悄溜走了。 这似乎又从另一个角度印证了这是一本「成功的」「成功学」书籍 – 不是这样也不会成为畅销书了。 书中有很多的「方法论」,例如: 我们需要学会控制自己的大脑,而不是被大脑所控制 这一点乍一听很玄乎,但是李笑来老师用一整节的文字来举例说明我们在平常的生活中有多么的愚蠢地被自己的大脑所控制,而这些例子中多多少少总有那么一个适用于身为读者的你。...

Node.js

Express 的路由是内置在框架内的,在实例化之后可以直接调用声明路由,例如: const app = require('express')(); app.get('/', (req, res) => { // ... }); 项目中经常会对目录结构进行 MVC 的分层,所以很多情况下会这样组织代码: 定义一个 controller exports.renderHomepage = (req, res) => { res.render('home'); }; 定义一个 router const...

JavaScript

Decorators 亦即「装饰器」,最早接触到这个概念是在学生时代学习 Python 的时候。 查阅 ECMA262 的资料可以发现,ECMAScript 提案中的 decorator 分为好几种类型: Class and Property decorators Method Parameter decorators Function Expression decorators 其中第一种已经处于 stage-2,而下面两种仍处于 stage-0 – 也就是说我们可能在不远的将来就能使用到原生的 “Class and Property decorators”。当然,不同类型的装饰器的装饰对象不同,应用场景也不同 –...

Front-end

随着浏览器的不断更新换代,我们可以在浏览器中使用的存储方式也日趋丰富。 从 cookies 到 HTML5 规范带来的本地存储,以及与传统数据库很相像、功能也更为强大的 IndexedDB 和 WebSQL – 在浏览器端,我们已经有能力去使用一些与客户端软件一样的数据持久化方案。 cookies cookies 应该是我们认识时间最久的浏览器端的存储方式了。然而 cookies 最初出现的目的并不是为了给开发者一个存储数据的地方,而是与 HTTP 的状态管理 1 有关系。简而言之,就是 cookies 会在每一次 HTTP 请求的时候被发送到服务端,而不仅仅是作为一种存储的方式停留在我们的浏览器中。 因此,如果你的 cookies 内容过长,很有可能影响到服务器的性能。 使用 cookies 在浏览器中,我们可以通过...

Node.js

Docker 是当下最流行的容器技术,最近稍稍研究了下如何使用 Docker 来创建一个 Node.js 项目的镜像。 此文抛砖引玉,大家可以来讨论一下关于 Docker 的一些知识与应用 :doge: 创建一个简单的 Node.js 应用 const express = require('express') const app = express() const PORT = 4000 app.get('/', (req, res) => {...

Node.js

在工作中使用 Node.js 開發 Web 項目已經超過一年的時間了,也一直在思考如何將項目中很多的東西進行簡化。 Node.js 項目的現狀 首先,可能需要介紹一下我所遇到過的項目的現狀 ﹣﹣ 當然這些方式可能已經比較落後。 現在的項目結構是基於 MVC,可能實際上有不少出入,不過大致的目錄結構是這樣的: - public/ - css/ - js/ - models/ - controllers/ - views/ - routes/ - app.js M-V-C 各司其職,項目結構在一定的團隊協作之下還是能夠很順利、清晰的運作的。...

Front-end

最近由於一些原因,要使用 Canvas 來繪製一些內容,也算是正好學習以下這門技術,順便在此分享一二。 下文中的示例代碼均不包含以下初始化的代碼 ﹣﹣ 獲取節點、創建 Canvas 的上下文: var app = document.getElementById('app'); var ctx = app.getContext('2d'); 繪製線條 線條其實是通過當前繪製的線路,然後填充使用指定的 strokeStyle 進行填充: // 指定畫布中的起點 ctx.moveTo(0, 0); ctx.lineTo(40, 40); ctx.strokeStyle = '#ccc'; ctx.stroke();...

Fresh

学习 Elm 其实是很早之前就做的计划,一直到现在才开始实施。最近由于某些事情忙得焦头烂额,手足无措,也是难得有时间能安静的坐在电脑面前好好打打字。 Elm 的需要通过下载安装包来进行安装。 本文还是从一个简单的 Todo 应用开始,当然会以一个「常规」的 Web 开发者眼光来表述一些自己的看法与体会。 开始开发! HTML 结构 一般习惯「传统」前端开发模式的都会先把 HTML 的结构用代码表示出来,但是这一次我们需要使用 Elm 来编写这个结构。 首先,我们需要一个列表用来展示: import Html exposing (ul, li, text) main = ul [] [...