理解 Kotlin 的 suspend 函数
January 24, 2021是回调(Callback) 理解 其实不需要纠结神奇的「挂起」是什么意思或者拘泥于线程是怎么切换的。实际上 的背后是大家非常熟悉的回调。 假设 由三个有依赖关系的异步子任务组成: , 和 ,这三个函数都是基于回调的 API: 可以看到基于回调的 API…
Written by Yu Jinyan.
Software Developer since 2016.
是回调(Callback) 理解 其实不需要纠结神奇的「挂起」是什么意思或者拘泥于线程是怎么切换的。实际上 的背后是大家非常熟悉的回调。 假设 由三个有依赖关系的异步子任务组成: , 和 ,这三个函数都是基于回调的 API: 可以看到基于回调的 API…
Domain Modeling Made Functional 一书介绍了如何用函数式编程去实现领域驱动设计,对两方面的内容都做了基础的介绍。本书的可读性非常强,尤其是在领域驱动设计这一部分。读 DDD…
我们在评价代码的时候会说这个代码「优雅」或者说「不优雅」,这里面包含了方方面面的东西。《代码整洁之道》、《代码大全》很多书都有详细的介绍。在 review…
In our Laravel backend project, there is a class, which is among one of the first classes created. Over the years, it has accumulated all…
硬件 工业设计 不得不说 MBP 的一体化机身和金属材质带来的高档感很难在 Windows 阵营中找到。Dell 对标 MBP 的高端货 XPS 系列上次去实体店观察了一下有些令人失望,屏幕和 C…
Guide Teach Yourself Computer Science is a motivating and invaluable resource for self-taught programmers. Coursera, Udacity, edX courses…
假设有一个元素为字符串的数组 ,我们需要清除字符串中前后空白字符,首先想到: 进一步优化,考虑将 map 中包裹的函数去掉,直接使用 String.prototype.trim。然而问题出现了: map 的第二个参数 造成错误的原因在于 Array.prototype.map…
本文尝试从一个新的视角解释 JavaScript 中 this 关键字的工作机制:我们假设箭头函数(arrow functions)是真正的函数,而普通的函数只是一种特殊的语法构造(language construct)。我认为这种解释可以使 更好理解,可以尝试一下。…
在客户端接口调试的过程中,有时会希望切换不同的环境进行测试。客户端如果更改请求地址需要重新编译比较麻烦,可以尝试修改域名解析,将请求转发到不同的服务器。这一思路在服务端或者客户端都可以实现。 服务端方案 CoreDNS 是一款 Go 编写的 DNS…
最早开始写后台接口的时候,曾看到有观点认为包括 Laravel 在内的框架不适合写大型项目。随着使用框架一段时间有了一些体会,做一些总结。 总体而言,和 Python…
在业务开发中有一些需要统一维护的字符串,比如 Redis 的键,接口错误码等。直接在代码中裸写字符串显然是非常糟糕的,因此比较理想的解决方案是将这些变量统一放在一个文件中,方便维护。 一般在 Laravel…
前一阵子在 Twitter 上看到 GitHub 上✨星星✨最多的 Sindre Sorhus 分享了一段 Swift 代码 正好借机跟 Swifter 好友交流切磋一番,然发现自己概念有些模糊还需修炼一下,所以发个总结的文章交作业。 数组 💡 简而言之,flatMap…
水平居中 水平居中行内元素(inline element) 在父级块级元素中使用 。 水平居中块级元素(block element) 在该元素上使用 前提:该元素定义了 属性。 解释:块状盒子(block box…