Skip to content

最前端Stay Hungry, Stay Foolish.

最新文章

  • 了解 TypeScript 中的数据结构

    译文:Understanding Data Structures in TypeScript: A Practical Guide with Real-World Examples

    大家好!今天,我们将开始一段令人兴奋的旅程,探索 TypeScript 中的数据结构领域。无论你是经验丰富的老鸟还是刚刚入门小白,了解数据结构对于编写高效、可维护的代码都至关重要。所以,拿起你最喜欢的饮料,让我们一起来学习吧!

  • 关于你所不知道的 TypeScript

    译文:One Thing Nobody Explained To You About TypeScript

    我已经使用 TypeScript 超过四年了,总的来说,这是一次非常棒的体验。随着时间的推移,使用它的摩擦逐渐减少,直到完全消失,这使得我在编写类型或以类型优先的方式解决问题时变得更加高效。虽然我还远未成为真正的类型大师,但我敢说自己已经熟练掌握了这门语言,经历了类型体操、条件类型、嵌套泛型,并深刻理解了 typeinterface 之间的神圣差异。说实话,我认为我对这门语言已经有了相当不错的理解。

    直到我发现我错了。其实,有一个关于 TypeScript 的特定问题我完全理解错了,我相信你也可能犯过同样的错误。而这并不是某个你从未听说过、可能永远不会用到的复杂边缘案例。恰恰相反,这是你和其他所有 TypeScript 开发者直接交互过数百次的东西,一直在我们眼前游弋。

  • 软件程序设计原则

    软件也像人一样,具有生命力,从出生到死亡,会经历多种变化。软件架构设计也不是一蹴而就的,是不断地演进发展。每个程序员都可以从理解编程原则和模式中受益。

    软件设计原则是一组帮助我们避开不良设计的指导方针。根据 Robert Martin 的理论,应该避免不良设计的以下三个重要特点:

    • 僵化:很难做改动,因为每一个细微的改动都会影响到系统大量的其他功能
    • 脆弱:每当你做一次改动,总会引起系统中预期之外的部分出现故障
    • 死板:代码很难在其他应用中重用,因其不能从当前应用中单独抽离出来

    下面这些软件设计原则是我从一些书籍和网络中收集而来,并不完整,而且你也需要在一些有「冲突的原则」之间进行权衡和取舍。本文或许会对你的编程、程序设计、讨论或评审工作有所帮助。

  • 数据表单设计建议

    无论是在注册流程、多视图步进器,还是在单调的数据输入界面中,表单都是数字产品设计中最重要的组成部分之一。本文着重介绍了表单设计中常见的该做和不该做的事情。请记住,这些都是一般准则,每个规则都有例外。

    设计原则

    单栏设计

    单栏设计

    多栏会破坏用户在垂直方向上的关注趋势。

  • 写好 JavaScript 异步代码的几个技巧

    调试 JavaScript 中的异步代码,有时会感觉像在趟雷。你不知道 console.log 何时何地会打印出来,你也不知道你的代码是如何执行的。

    你很难正确地构造异步代码,使其按照你的意图以正确的顺序执行。

    如果你在编写异步代码时有一些指导,并且在你即将犯错时得到一个有用的信息,那不是很好吗?

    幸运的是,在我们将代码推送到生产中之前,我们有提示器来捕捉一些错误。下面是一个编译的提示规则列表,专门帮助你在 JavaScript 和 Node.js 中编写异步代码。

    即使你最终没有在你的项目中使用这些规则,阅读它们的描述也会使你更好地理解异步代码,提高你的开发技能。

  • NodeJs Promise 并发控制

    场景

    当异步处理过多的时候,比如 Promise.all() 并发发起多个 Promise,假设 Promise 是 tcp 连接,并且数量达到几万个,会带来性能问题或触发系统限制。

  • Nodejs CLI 应用程序最佳实践

    1 命令行体验

    本节介绍有关创建漂亮且高价值用户体验的 Node.js 命令行应用程序最佳实践。

    在本节中:

  • 微前端 JS 沙箱实现机制

    在过去,浏览器沙箱(sandbox)主要应用在前端安全领域,随着应用架构复杂,微前端方案的出现,js 运行环境沙箱在浏览器中的需求越来越多。特别是近几年比较火的微前端领域,js 沙箱是其比较核心一个技术点,是整个微前端方案的实现的关键点之一。

  • 从 Generator 入手读懂 co 模块源码

    Generator

    异步编程一直是 JS 的核心之一,业界也是一直在探索不同的解决方法,从「回调地狱」到发布订阅模式,再到 Promise,都是在优化异步编程。尽管 Promise 已经很优秀了,也不会陷入「回调地狱」,但是嵌套层数多了也会有一连串的 then,始终不能像同步代码那样直接往下写就行了。Generator 是 ES6 引入的进一步改善异步编程的方案,下面我们先来看看基本用法。

  • NPM & YARN 包版本管理

    几乎所有前端项目中都有 yarn.lock / package-lock.json 文件(以下以 npm 为例)。打开浏览,你会发现它长得类似 package.json 的依赖,但是冗长得多。很多同学可能都不知道他们是干什么用的,甚至部分同学在项目跑不起来的时候还会暴力把 lock 文件给干掉,最后反而导致更严重的错误。

    那么,lock 文件到底是干什么用的?为什么我们会需要 lock 文件?