<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[aimingoo的专栏]]></title><description><![CDATA[.F{color:red}aimingoo]]></description><link>https://blog.youkuaiyun.com/aimingoo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; aimingoo]]></copyright><item><title><![CDATA[基于JSDoc实现TypeScript类型安全的实践报告]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/134763354</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/134763354</guid><author>aimingoo</author><pubDate>Tue, 05 Dec 2023 21:35:35 +0800</pubDate><description><![CDATA[这是一篇“通过JSDoc/TSDoc来生成.d.ts”，并实现TypeScript的类型安全检查的实践报告。]]></description><category></category></item><item><title><![CDATA[告前端同学书]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/133842170</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/133842170</guid><author>aimingoo</author><pubDate>Sun, 15 Oct 2023 14:18:22 +0800</pubDate><description><![CDATA[缘于之前在“技术15年”中的文体变动，访谈的味道十不存一，所以这里再次整理成文，是为《告前端同学书》。【本文欢迎转载转发】]]></description><category></category></item><item><title><![CDATA[在块语句中的函数声明]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/115270358</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/115270358</guid><author>aimingoo</author><pubDate>Sat, 27 Mar 2021 19:39:57 +0800</pubDate><description><![CDATA[在ES6之后的兼容性规范要求，块级作用域中的函数声明语句将采用“静态提升”，并在（其所在的）变量作用域中采用隐式地进行“动态提升”。但这种复杂的方式并不能完全实现早期JS的相关特性，这是它与使用者的预期存在差异的根本原因。]]></description><category></category></item><item><title><![CDATA[科普："Field提案"是什么东东？]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/83143188</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/83143188</guid><author>aimingoo</author><pubDate>Thu, 18 Oct 2018 11:00:54 +0800</pubDate><description><![CDATA[上次掺和JavaScript的事，是说JavaScript语言有值的问题；再往前一年，就是在“红绿灯大战”中讨论Promise了。这细数起来，都是两三年前的旧事了。
但我还是跟进JavaScript的。最新近的事，是持续地讨论这个所谓“TC39提案”的事情。本以为真关心的人并不多，但前两天连老宋都转了篇贴子过来，“这帮人要把js折腾成啥样子啊”，老宋说。
“啥样子？”
1. 导致太下大乱的“Fie...]]></description><category></category></item><item><title><![CDATA[关于废止proposal-class-fields提案的建议]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/83099606</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/83099606</guid><author>aimingoo</author><pubDate>Wed, 17 Oct 2018 00:19:47 +0800</pubDate><description><![CDATA[
在本文中，我会仔细分析新提案中field的概念矛盾，并揭示它实质上是作用域设计上的倒退。并且，该提案的错误实现，将不可避免地导致灾难。
Reject it! No more choices!

1. 概念：“Not Fields”！
对象在定义上是“属性集（object is collection of properties）1”。因此如果Field不是属性，则它必然不属于“对象成员（colle...]]></description><category></category></item><item><title><![CDATA[私有属性的实现]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/83056096</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/83056096</guid><author>aimingoo</author><pubDate>Mon, 15 Oct 2018 11:09:18 +0800</pubDate><description><![CDATA[
在tc39的提案中，这一特性被称为&quot;private field&quot;，据说是为了避免与property这个传统的名字出现概念冲突。这简直是扎了裤脚放屁——还要称比脱了裤子文雅！为什么这么讲呢？因为一旦引入了所谓“private filed”，就预示着还会有“public field”等等之类，而这与传统的property又有什么不同吗？
还是叫“私有属性（private property）”吧，别再...]]></description><category></category></item><item><title><![CDATA[No prefix! operator is Ok!]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/83042239</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/83042239</guid><author>aimingoo</author><pubDate>Sat, 13 Oct 2018 21:10:17 +0800</pubDate><description><![CDATA[
所有在我对原有提案的修改中，核心不是“不用#字符”，而是将它从一个前缀字符，变成了一个操作符。这一方面是使“声明语法”与“表达式运算”分开，另一方面也让这些修改与ECMAScript规范保持在语法上的一致性。
原有提案：https://github.com/tc39/proposal-class-fields
修改的提议：#issuecomment-429533532

1. 为什么是&amp;amp;quot;:“而不...]]></description><category></category></item><item><title><![CDATA[元类型系统是对JavaScript内建概念的补充]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/82144108</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/82144108</guid><author>aimingoo</author><pubDate>Tue, 28 Aug 2018 10:44:37 +0800</pubDate><description><![CDATA[
  本文是一个系列，包括：
  
  
  JavaScript的元系统
  JavaScript中创建原子的几种方法
  元类型系统是对JavaScript内建概念的补充（本文）
  


JavaScript的类型系统一贯是反人类的，以至于JavaScript之父Eich都会跳出来说“我做错了”。但是这并不是说它的整个类型系统就是不可理解的，相反，它提供了观察这门语言的多个不同角度。

远古...]]></description><category></category></item><item><title><![CDATA[JavaScript中创建原子的几种方法]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/82080105</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/82080105</guid><author>aimingoo</author><pubDate>Sun, 26 Aug 2018 13:47:13 +0800</pubDate><description><![CDATA[
  本文是“JavaScript的元语言”系列中的一篇。其它内容参见： 
  * JavaScript的元系统


JavaScript中可以通过Object.create(null)来创建原子，这是非常自然而又易于理解的方式。不过也有一些其它的方法来实现相同的效果，虽然在概念上有所不同，但是它们创建的一样是“原子对象”。

创建原子


使用Object.create()




// 方法1...]]></description><category></category></item><item><title><![CDATA[JavaScript的元系统]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/82014291</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/82014291</guid><author>aimingoo</author><pubDate>Fri, 24 Aug 2018 10:55:56 +0800</pubDate><description><![CDATA[
  本文是对在第四届FEDay中分享的《无类继承：JavaScript面向对象的根基》的进一步讨论。也是对开源项目@aimingoo/metameta的解析。


ECMAScript中只有两处提及到“Meta”这个概念，一处是说明ECMAScript的规范类型（a specification type）是用于描述和实现语言类型（language types）的元值（meta-values），另...]]></description><category></category></item><item><title><![CDATA[本届FEDay的讲演内容在这里了]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/81902535</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/81902535</guid><author>aimingoo</author><pubDate>Tue, 21 Aug 2018 10:31:51 +0800</pubDate><description><![CDATA[就是前端日（https://fequan.com/2018/）了。

这是第四届了，呵呵，谢邀。我的主题是《无类继承：JavaScript面向对象的根基》，主要是从JS中面向对象的历史讲起，一直到元类继承的实现。

资源下载在这里：

https://download.youkuaiyun.com/download/aimingoo/10616853

或者可以通过github下载，在这里：

https:/...]]></description><category></category></item><item><title><![CDATA[怎么会有两个“原本”]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/78078583</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/78078583</guid><author>aimingoo</author><pubDate>Sun, 24 Sep 2017 18:43:52 +0800</pubDate><description><![CDATA[今天很突然地发现裘宗燕老师还翻译了一本《编程原本》，英文名是”Elements of Programming”，是C++的STL库之父Alexander Stepanov，简单地说就是“一个大牛”。而看到这个书名的时候，就是一惊：撞衫撞脸撞书名，我那本《程序原本》的英文名原本也是打算用”Elements of Programming”……]]></description><category></category></item><item><title><![CDATA[小述系列最终篇：说说《大道至易：实践者的思想》]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/76376815</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/76376815</guid><author>aimingoo</author><pubDate>Sun, 30 Jul 2017 11:50:11 +0800</pubDate><description><![CDATA[这最后一篇小述，是写《大道至易》的。我想我又是犯了文绉绉的老毛病，把这篇“述”写成了自说自话的道可道与非常道。之所以写得这么晦涩难看，除了拽拽文之外，其实可能最大的原因还是自己吃得不够透彻，所以表达上就深入得进去，却浅不出来……
  
  所谓大道，终归是难写的，所以还是请大家原谅我的这些不成熟吧。
  
  本电子书可自由下载和传播。
霍泰稳先生的序认识泰稳兄已经很多年，第一次请他写序。之所以邀他]]></description><category></category></item><item><title><![CDATA[电子书《我的架构思想》小述]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/75948953</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/75948953</guid><author>aimingoo</author><pubDate>Sun, 23 Jul 2017 22:19:35 +0800</pubDate><description><![CDATA[接下来谈谈《我的架构思想》。上一篇是“电子书《程序原本》小述”，在这里：http://blog.youkuaiyun.com/aimingoo/article/details/75506782。
  
  本电子书可自由下载和传播。
这些年来我所谈的“架构思想”在2007年，我还在盛大的时候曾做过一次名为《设计师的实战过程》的内部分享，这个分享现今在优快云还能下载到（在这里）。但在此之后，我便再也没有讲过“设]]></description><category></category></item><item><title><![CDATA[重发：“设计师的实战过程”下载]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/75948724</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/75948724</guid><author>aimingoo</author><pubDate>Sun, 23 Jul 2017 21:49:01 +0800</pubDate><description><![CDATA[这大概是我最后一次讲过的“软件设计”话题了，包括音频和PPT。需要的同学请自行下载。
Chapter1~3，下载Chapter 1介绍： 
http://blog.youkuaiyun.com/aimingoo/article/details/2735597 
下载(Part1~2)： 
http://download.youkuaiyun.com/source/562755 
http://download.csdn.n]]></description><category></category></item><item><title><![CDATA[电子书《程序原本》小述]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/75506782</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/75506782</guid><author>aimingoo</author><pubDate>Thu, 20 Jul 2017 12:20:02 +0800</pubDate><description><![CDATA[《程序原本》作为电子书首发已经一个月了（下载附后），它到底是一本怎么样的书呢？我想站在我自己的角度对它做一些阐述，或是有利于对它的理解与传播的。
  
  本电子书可自由下载和传播。
什么是“原本”书名取自于《几何原本（Euclid’s Elements）》，因此这个“原本”，其实原意应从Elements来找，一般来说理解成“不可或缺的、核心的要素，或元素”就好了。《程序原本》确实就是想从这个角度来]]></description><category></category></item><item><title><![CDATA[本博客的主要更新已经迁至新站]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/73332051</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/73332051</guid><author>aimingoo</author><pubDate>Fri, 16 Jun 2017 15:21:17 +0800</pubDate><description><![CDATA[也许我会时不时会回这里来写一两篇，但不确保长期维护]]></description><category></category></item><item><title><![CDATA[前端要给力之：语句在JavaScript中的值]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/51136511</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/51136511</guid><author>aimingoo</author><pubDate>Tue, 12 Apr 2016 19:48:08 +0800</pubDate><description><![CDATA[语句在JavaScript中的值
  这两天在写语言精髓那本书的第三版，讨论到ES6跟ES5中间对“语句的值”的不同处理。正好Weibo上也有同学对这个问题有兴趣，所以专门整理了这篇。
  
  写博客可以啰嗦点，写书就不行了。所以这篇文章跟书上能看到的还是会不一样的。
问题是：语句有值吗？很不幸，我们面临的的确是一门连语句都有值的语言。在JavaScript中，代码是按语句行（Statement]]></description><category></category></item><item><title><![CDATA[确定的世界 - The Promise's World]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/47401961</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/47401961</guid><author>aimingoo</author><pubDate>Mon, 10 Aug 2015 17:35:08 +0800</pubDate><description><![CDATA[有这样的一个世界在持续地向前推进着，这个世界充满着无穷多个选择，也就是说有无穷多的可能；但对每一个选择来说，存在决定/未决两种状态，如果已经决定，则只能有yes/no两种结果之一。

那么，这个世界是确定的么？]]></description><category></category></item><item><title><![CDATA[前端要给力之：红绿灯大战中的火星生命-Promise]]></title><link>https://blog.youkuaiyun.com/aimingoo/article/details/45014325</link><guid>https://blog.youkuaiyun.com/aimingoo/article/details/45014325</guid><author>aimingoo</author><pubDate>Sun, 12 Apr 2015 21:35:15 +0800</pubDate><description><![CDATA[目录目录
传说的开始
看到winter的代码我的第一反应是全无promise的精髓
其实我了解Promise也是新近的事情
我与Promise后来发生的故事
红绿灯大战的亲历实录
Promise写出来怎么会是这个样子
欢迎回到火星
感谢米粽粽同学提到我的一篇旧文
第一步的抽象
一点说明前提
重新定义问题
Promise的编程基础之逻辑过程
如何确认一个数据就绪
然后then只能处理一个数据
最后任何]]></description><category></category></item></channel></rss>