又到了年末写总结的时候。我不断地提醒自己过去这一年是 2021,不是 2022 —— 是的,作为一个使用了 VS2022 好几个月的人来说,感觉已经在 2022 好久了。然而, 2022 只是即将来临。回往昔,我都干了啥?
说起来,只记得最近为了迎接元宇宙,我去复习了《Matrix I、II、III》 —— 好吧,说实话,是为了《Matrix IV》。
不过为了做这个 2021 的思否社区总结,我是真的下了功夫 —— 去扒了下 SF 的个人数据:
------------------------- Article Info -------------------------
count: 20
votes: 216
comments: 39
winner: [34] 安全地在前后端之间传输数据 - 「1」技术预研
--------------------- Top 5 Vote Articles ---------------------
1. [34] 安全地在前后端之间传输数据 - 「1」技术预研
2. [28] 安全地在前后端之间传输数据 - 「3」真的安全吗?
3. [22] 我与思否,七年之痒 | 思否 9 周年
4. [19] 处理可能超时的异步操作
5. [16] 尝试对 jsjiami 加密结果手工解密
------------------------- Replies Info -------------------------
total: 338
accepted: 113 (33.43%)
votes: 307
---------------------- Notifications Info ----------------------
total: 1901
invited: 210 (11.05%)
askMe: 3
askFee: 148.8
voteReply: 241
voteArticle: 227
--------------------- Top 10 Vote Articles ---------------------
1. [----] (115) 理解 JavaScript 的 async/await
2. [2021] (8) 安全地在前后端之间传输数据 - 「3」真的安全吗?
3. [----] (8) 在微信小程序中使用 async/await
4. [----] (8) Token 认证的来龙去脉
5. [2021] (7) 安全地在前后端之间传输数据 - 「2」注册和登录示例
6. [----] (7) 还搞不懂闭包算我输(JS 示例)
7. [2021] (6) 安全地在前后端之间传输数据 - 「1」技术预研
8. [2021] (6) 尝试对 jsjiami 加密结果手工解密
9. [2021] (6) 我与思否,七年之痒 | 思否 9 周年
10. [2021] (6) 把程序做成系统服务
11. [----] (5) JavaScript 的 this 指向问题深度解析
要说怎么扒的,当然是使用传说中的“爬虫技术”…… 的入门技术:找到 API,找到 Token,写段代码迭代拉取数据,直到把今年的拉完。这不是重点,重点是 ——
2021 年间我写了 20 篇博文,收获 216 个赞。其中获赞最多的是《安全地在前后端之间传输数据 - 「1」技术预研》,有 34 个。回答问题 338 个,其中 113 个答案被接受,占比 33.43%;回答获赞 307 个,比博文多,但平均下来看还是博文更值钱。
除了统计 2021 年的文章和问题之外,我也想知道往年的文章在今年获赞的情况。想了一下,可能这个信息要从提醒消息里去拉。结果拉出来 1900 多条提醒。其中邀请回答 210 条,占 2021 年所有回答的 60%。确实,回想起来,整个 2021 年间,有超过半年的时间没有什么创作动力,也不怎么想回答问题,基本上是有邀请才答,没邀请拉倒。
不过爬出来的数据有效性不好说。你看,从提醒数据中提取出来文章共获得 227 个赞,除去前面统计的 2021 年文章的 216 个,只有 16 个赞在以前的文章上。然而,仅《理解 JavaScript 的 async/await》(发于 2016 年)一篇就占了 115 个赞,这不合理。然后我想,是不是“收藏”的也算了赞,但是没有单独出现“赞”的提醒呢,所以重新统计了一下:
---------------------- Notifications Info ----------------------
total: 1901
invited: 210 (11.05%)
askMe: 3
askFee: 148.8
voteReply: 241
voteArticle: 475
--------------------- Top 10 Vote Articles ---------------------
1. [----] (241) 理解 JavaScript 的 async/await
2. [----] (17) Token 认证的来龙去脉
3. [----] (17) 在微信小程序中使用 async/await
4. [2021] (16) 安全地在前后端之间传输数据 - 「1」技术预研
5. [2021] (15) 安全地在前后端之间传输数据 - 「3」真的安全吗?
6. [----] (15) 还搞不懂闭包算我输(JS 示例)
7. [----] (13) JavaScript 的 this 指向问题深度解析
8. [2021] (11) 安全地在前后端之间传输数据 - 「2」注册和登录示例
9. [2021] (10) 尝试对 jsjiami 加密结果手工解密
10. [2021] (10) 把程序做成系统服务
11. [2021] (9) 过滤/筛选树节点
结果看起来更接近一些,但是仍然存在差异。可能“有人收藏了你的文章”这里提到的“有人”有时候不止一个吧 —— 也只能这么解释了!但不管怎么说,这个统计数据已经很说明问题了,2021 一年的博文,比不过曾经一篇的余热 😰!
差点忘了,2021 年还有一点现实的收入,3 个付费问题,共计收入 ¥148.8 😁。
除了统计结果,我还想聊点细节。
总的来说,2021 年回答的问题都不是很难,但从我的感觉来看,同学们在数据处理上的问题比较多。怎么说呢 —— 还是得加强数据结构和算法和深入学习和理解,以及多运用,多实践,多积累经验。大概总结了一下,我回答过的问题有这么一些分类:
树型数据的生成、展开和查询。我有相关的博文可阅读参考:
- 使用递归遍历并转换树形数据(以 TypeScript 为例) 〔2017 年〕
- 从列表生成树 (JavaScript/TypeScript) 〔2021 年〕
- 过滤/筛选树节点〔2021〕
数组/列表数据的过滤、转换、分组、展开等。
对于前端 (JS) 来说,重点需要阅读Array
、Object
和Set
/Map
的文档;复杂一点的数据处理,建议把 Lodash 的文档通读一篇(了解即可,不需要记住),然后灵活运用。对于 C# 来说主要是了解 Linq 扩展(对Enumerable<T>
的扩展。而 Java,那就是 Collection 和 stream API 了。这些问题永不过时,早年写过一些:- 集合数据处理(C#、JavaScript 和 Java)〔2016 年〕
- JavaScript 中对大量数据的多重过滤〔2016 年〕
- JavaScript 数组分组的实现〔2016 年〕
- 数组去重(JavaScript 为例)〔2020 年〕
异步过程相关的问题。异步过程的处理需要具有一定的异步思维,毕竟代码的顺序不一定是执行的顺序。而处理异步程序,各种语言经过这么多年的研究和发展,都已经有了相对成熟的技术框架和模式,最为简约好用的一种就是基于 Promise 和 await 模式。当然,异步处理不仅限于计算程序中的处理,用户交互、程序交互(API 调用)等都存在大量的异步调用。我关于异步处理的博文似乎也比较多:
- 异步编程需要“意识”〔2018〕
- 理解 JavaScript 的 async/await〔2016〕
- 处理可能超时的异步操作〔2021〕
- 可以中断的异步操作〔2021〕
- 网页弹框的异步行为分析〔2021〕
- 还有一些往年写的内容,可以在我的思否专栏「边城客栈」中去找
TypeScript 相关的问题。Angular 带来了 TypeScript 的第一波高潮,但那已经是很久以前的事情了。最近大火的 Vue3 再次将 TypeScript 推了上去,所以 TypeScript 相关的问题也多了起来。TypeScript 的重点难点也是价值点,就是它的类型。但是为了兼容 JavaScript 的灵活性,TypeScript 已经将其类型声明设计来灵活得像一门语言了。我专门写 TypeScript 的文章不多,基本上都是把它作为示例语言使用。但也并不是没有:
- 请别误用 TypeScript 重载函数类型〔2021〕
- JavaScript 和 TypeScript 的封装性 —— 私有成员〔2020〕
- 还有我的 TypeScript 视频教程 —— TypeScript从入门到实践 【2021 版】 —— 欢迎来学!
还有一些其他的分类,比如框架类(Vue 等)的,工作类的,正则表达式类的 …… 其中最让我感到高兴的是有不少代码优化类的问题,这充分说明了越来越多的人开始关注代码的可读性和可维护性,而不再只是简单地追求“能跑”了 —— 别想多了,代码真的是给人读的!要不然人类终将会输给机器。
我的 2021 过得很平淡,平淡得不知不觉就过完了。本以为也没什么好写的,没想到还是写了一大篇。
牛年,我就像老水牛一般低调;虎年,我是不是该站出来咆哮!—— 也许是吧,但那不是我的性格。2022 年又会怎么过呢?
本文参与了 SegmentFault 思否征文「2021 总结」,欢迎正在阅读的你也加入。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。