平平淡淡又一年-边城在思否的 2021 年总结| 思否年度征文

SegmentFault

共 5374字,需浏览 11分钟

 ·

2022-01-10 23:44

# 思否年度征文

一起来总结你的 2021 #



一路从后端走来,终于走在了前端!

——边城

*本文为 SegmentFault 思否社区征文活动参选稿件



 

又到了年末写总结的时候。我不断地提醒自己过去这一年是 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 年〕

    https://segmentfault.com/a/1190000011819279

  • 从列表生成树 (JavaScript/TypeScript) 〔2021 年〕

    https://segmentfault.com/a/1190000040336164

  • 过滤/筛选树节点〔2021〕

    https://segmentfault.com/a/1190000040741437


  • 数组/列表数据的过滤、转换、分组、展开等。

对于前端 (JS) 来说,重点需要阅读 Array、Object 和 Set/Map 的文档;复杂一点的数据处理,建议把 Lodash 的文档通读一篇(了解即可,不需要记住),然后灵活运用。对于 C# 来说主要是了解 Linq 扩展(对 Enumerable 的扩展。而 Java,那就是 Collection 和 stream API 了。这些问题永不过时,早年写过一些:


  • 集合数据处理(C#、JavaScript 和 Java)〔2016 年〕

    https://segmentfault.com/a/1190000006884402

  • JavaScript 中对大量数据的多重过滤〔2016 年〕

    https://segmentfault.com/a/1190000007371890

  • JavaScript 数组分组的实现〔2016 年〕

    https://segmentfault.com/a/1190000007464770

  • 数组去重(JavaScript 为例)〔2020 年〕

    https://segmentfault.com/a/1190000024457700


  • 异步过程相关的问题。


异步过程的处理需要具有一定的异步思维,毕竟代码的顺序不一定是执行的顺序。而处理异步程序,各种语言经过这么多年的研究和发展,都已经有了相对成熟的技术框架和模式,最为简约好用的一种就是基于 Promise 和 await 模式。当然,异步处理不仅限于计算程序中的处理,用户交互、程序交互(API 调用)等都存在大量的异步调用。我关于异步处理的博文似乎也比较多:


  • 异步编程需要“意识”〔2018〕

    https://segmentfault.com/a/1190000013337421

  • 理解 JavaScript 的 async/await〔2016〕

    https://segmentfault.com/a/1190000007535316

  • 处理可能超时的异步操作〔2021〕

    https://segmentfault.com/a/1190000040963849

  • 可以中断的异步操作〔2021〕

    https://segmentfault.com/a/1190000040972018

  • 网页弹框的异步行为分析〔2021〕

    https://segmentfault.com/a/1190000040978125

  • 还有一些往年写的内容,可以在我的思否专栏「边城客栈」中去找

    https://segmentfault.com/blog/jamesfancy


  • TypeScript 相关的问题。


Angular 带来了 TypeScript 的第一波高潮,但那已经是很久以前的事情了。最近大火的 Vue3 再次将 TypeScript 推了上去,所以 TypeScript 相关的问题也多了起来。TypeScript 的重点难点也是价值点,就是它的类型。但是为了兼容 JavaScript 的灵活性,TypeScript 已经将其类型声明设计来灵活得像一门语言了。我专门写 TypeScript 的文章不多,基本上都是把它作为示例语言使用。但也并不是没有:


  • 请别误用 TypeScript 重载函数类型〔2021〕

    https://segmentfault.com/a/1190000040902173

  • JavaScript 和 TypeScript 的封装性 —— 私有成员〔2020〕

    https://segmentfault.com/a/1190000022863522

  • 还有我的 TypeScript 视频教程 —— TypeScript从入门到实践 【2021 版】 —— 欢迎来学!

    https://ke.segmentfault.com/course/1650000023477528


还有一些其他的分类,比如框架类(Vue 等)的,工作类的,正则表达式类的 …… 其中最让我感到高兴的是有不少代码优化类的问题,这充分说明了越来越多的人开始关注代码的可读性和可维护性,而不再只是简单地追求“能跑”了 —— 别想多了,代码真的是给人读的!要不然人类终将会输给机器。


我的 2021 过得很平淡,平淡得不知不觉就过完了。本以为也没什么好写的,没想到还是写了一大篇。


牛年,我就像老水牛一般低调;虎年,我是不是该站出来咆哮!—— 也许是吧,但那不是我的性格。2022 年又会怎么过呢?


- END -

2021,也注定是个不平凡的一年!鲜花与荆棘,凛寒和热盼;仔细想来,大家在这一年一定经历和成长了很多,人生的进度条又向前了一格。


2022 已经开始啦,又到了要复盘的时候,回望这一年,年初的计划是否已经实现?又get了哪些新技能?完成了多少个项目?踩了多少坑?


这里思否小姐姐邀请你一起,用文字记录下 2021 一个又一个难忘的瞬间,复盘一下你的 2021......


点击下方海报,了解【思否年度征文】更多详情


浏览 13
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报