妙才周刊 No.66

2024年12月29上次更新于 15 天前
Weekly

OK!继续来分享上一周(月)接触到的一些讯息!本周将分享涉及 Uniapp 开发、WebChat 即时通讯、React 趋势图、JSON 超集 SuperJSON、云盘和临时点对点传输应用甚至零知识证明的学习资料等等。

Z-Lib 月会员

Z-library 推出一个小活动,所有用户可以打开 zlib 首页(自己找,问我也行),点击首屏 banner 的 Gift inside ,找到 unwrap it 文字上面的小船图标,点击即可获取月会员兑换码。

Image

Image

Image

Image

笔者亲身验证,并且还因此在这里下载了一本书:《你好啊,区块链》。

ps:这本书在网上找不着资源,万能的 PDD 上要几百块钱呢。

Vitesse Uni App

介绍 | Vitesse uni-app: vitess-uni-app 是一个基于 Vueuni-app 的开源模板,采用直观且可扩展的方式创建类型安全、高性能和生产级的跨端应用。你可以直接开始编写 .vue 文件,而无需从头开始配置。

笔者最近接了一个小活,用 uniapp 创建安卓应用。当我用官网脚手架开发好功能之后,在打包安卓的时候却遇到各种问题,一些轻微的改动就会触发难以排查的失败。这让我非常沮丧,于是我搜索了相关的话题找到了这个脚手架,经过验证这个脚手架的功能非常完整,打包也没有任何问题。

最重要的是:vitesse-uni-app 充分拥抱开放生态,比如 VS Code 和 npm,希望能带给你更好的体验。

Wot Design Uni

如果你想要有不错的 Uniapp 开发体验,那么可以考虑了解一下这个组件库:

Wot Design Uni | 一个基于Vue3+TS开发的uni-app组件库,提供70+高质量组件,支持暗黑模式、国际化和自定义主题。

笔者使用下来,感觉这个库的颜值和交互还是不错的。

React-trend

react-trend 1.2.0 Demo 展示了一个极简的 React 趋势图组件,用户可以配置颜色、宽度、形状和圆角尺寸来渲染一个简单的趋势图。

源码地址如下:

unsplash/react-trend: 📈 Simple, elegant spark lines,这个组件已经稳定,不过维护人没有时间精力继续维护,并且建议用户自己通过源代码了解怎么如何搭建这个组件。

绘图工具通常很复杂、抽象、还沉甸甸的。它们需要专业知识,还得花不少时间。虽然你要为分析应用做丰富的数据可视化,这确实是必要的代价。但如果你只是需要一个能显示趋势的简单折线图呢?

毫无疑问,在时间和精力有限的情况下,这是一个极佳的趋势图组件选项。

WebChat

molvqingtai/WebChat: 💬 Chat with anyone on any website. 是一个基于 webrtc 技术的匿名聊天 Chrome 插件,其提供了对同一站点的端对端加密通信,主要利用的技术栈如下:

  • remesh JavaScript 框架
  • Shadcn/ui 组件库
  • wxt Chrome 插件开发库
  • artico WebRTC 解决方案
  • Ugly-avatar 随机头像生成

某种意义上来说,我们可以参考这个作品,把端对端的加密通信用到自己的作品中去。这是一种技术,现在你只是缺少创意。

ugly-face

Ugly Avatar 是一个开源的漫画风头像生成应用,作者表示:这个项目是在“署名-非商业性使用 4.0 国际许可协议”下。也就是说,这个项目不能用于商业用途。我考虑了一段时间。如果你想在需要头像生成器的网站上使用它,那你可以随便用。但是,如果你用这段代码单独开发一个应用作为你的主要项目,我非常反对这样做。我不想有“有人复制了我的代码然后赚钱”的烦恼。

🤣,代码短小精悍,非常清晰地介绍了如何生成一个随机的头像,仅阅读这个代码也是一个不错的学习 svg 知识的机会。

Superjson

flightcontrolhq/superjson: Safely serialize JavaScript expressions to a superset of JSON, which includes Dates, BigInts, and more.

如上所示,superjson是一个支持完备 JavaScript 对象类型 JSON 超集,以下是二者序列化和反序列化数据能力的对比表格:

type supported by standard JSON? supported by Superjson?
string
number
boolean
null
Array
Object
undefined
bigint
Date
RegExp
Set
Map
Error
URL

如果你需要在某些场景下处理复杂 JavaScript 数据的序列化和反序列化的问题,这个库一定能帮助到你。

archive web page

webrecorder/archiveweb.page: A High-Fidelity Web Archiving Extension for Chrome and Chromium based browsers! 是一个备份整理 web 页面的浏览器插件,可以用来在浏览器里直接运行的高保真互动式网页存档。

临时云盘

文叔叔 - 传文件,找文叔叔(大文件、永不限速) 是一个不需要登录的临时文件传输服务,单文件最大 5G,非常适合临时使用,另外支持客户端和小程序。

点对点临时传输

Send Anywhere - File transfer 是一款非常知名的跨平台文件传输工具,2012 年推出至今已经运营 10 年时间。

可以通过密匙、二维码、链接、邮件分享和下载文件。而且使用密匙传输时直接在两台设备间传输文件,不会存储在服务器上,更安全可靠。

如果愿意接受实时地传输,那么看起来比上面的临时云盘更好用,直接跳过第三方服务点对点传输更快。

但是临时云盘依然有意义,文件可以短暂保存在服务器上,我们可以先去做别的事情。

ZK101

ZK101 - 零知识学习零知识 是一个致力于让零知识证明(Zero-Knowledge Proofs)变得易于理解和学习的开源教育平台。

  • 📚 循序渐进 - 从基础概念开始,逐步深入到高级主题
  • 🎯 实践导向 - 通过实际案例和代码示例加深理解
  • 🔍 深入浅出 - 复杂概念简单化,让零知识证明不再神秘
  • 🌟 持续更新 - 及时跟进零知识证明领域的最新发展

实时语音交互

realtime-ai/openai-realtime-webrtc-go: openai webrtc go : 使用 Go 语言实现的 OpenAI Realtime API WebRTC 客户端,支持实时语音交互。

独立开发者:

电影《误杀3》

主演肖央

周末和女朋友一起去看了电影《误杀3》,看的时候我就想到这种内容不可能在内地拍,因为很多场景根本没办法拍,那些行为很容易就会被控制,人们能做的事情只有相信大喇叭,亦或是用自己的脑子思考大喇叭所说的内容是否真实。

当你突破语言的限制,离开局域网把眼光放大到世界,使用另一种语言去获取信息和书籍,你才能够得到对事物更广阔的信息之源。

韩国空难 RIP

Image

Image

Image

Image

改变自己的第一步,不是洗心革面,来一次彻头彻尾的大改造,而是把以前想改变但半途而废的事做起来。比如把买了没读的书先看完,报了名没认真学的课去学一遍。

长期软件开发文摘(源自阮一峰周刊,推荐去关注一下):

有些领域的软件会持续运行几十年,比如发电厂、起搏器、飞机、桥梁、重型机械的软件。它们可能几年都不会改动,然后推出一个新的大版本。

如果一个软件的开发周期长达几十年,需要长期维护,那么最好做到下面几点。

(1)尽量减少依赖。

软件的依赖项越多,长期越难以维护。依赖包括开发时依赖和运行时依赖,都是越少越好。

现在,很多软件在运行时会调用云服务,这也不利于长期维护。

(2)完备的测试用例。

测试对于重构、删除/添加功能,会提供极大的帮助。当你中断3年后,重新开始开发,测试也会让你快速了解系统。

(3)减少复杂性。

复杂性是软件开发的头号敌人,会让最好的程序员和团队都铩羽而归。

由于熵增定律和人类行为,除非你有意识地遏制,否则复杂性总是会增加。

因此,你需要养成严格的开发习惯:尽早和频繁地重构,删除不必要的或重复的代码,花时间简化。

(4)编写简单无趣的代码。

代码越简单越好,重点是代码的运行逻辑要显而易见。你永远不会后悔编写了简单的代码。

那些看上去很聪明、很高深的代码,会让后期的调试和理解变得复杂。特别注意那些高性能代码,只有当你正确理解它们时,它们才有效。

另外,那些眼下时髦、被热炒的明星技术,如果没有得到充分验证,也需要规避。

你最好只使用至少有10年历史的可靠技术。有一条规则是,某项技术的寿命与它们当前的年龄成正比,即存在越久的东西越可能继续存在。

(5)日志、遥测和文档

如果软件不是持续更新,开发者的注意力就会转到其他地方,不会立即跟进,所以需要有日志和遥测,能把运行过程记录下来。

文档则可以帮助我们理解几年前、甚至十几年前,编写原始代码时的想法。可能的话,记录所有事物,不仅仅是代码,还有理念、想法和为什么。

(6)团队

团队人员变化是很常见的。在许多地方,在一个团队呆三年,就已经很久了。虽然你可以用良好的文档和出色的测试,来抵消这种人员变化,但这很困难。

软件长寿的最简单办法之一,就是让开发成员长期稳定,保持工作十年。这意味着,你必须给你的程序员提供良好待遇,否则人们会离开。

在某些地方,软件是外包公司或咨询顾问写的,他们将代码丢到你的系统中后离开。对于长期运行的软件,这是非常糟糕的安排。

(7)开源

让你的代码暴露在外界的眼光,是保持代码可靠的好方法。一个有趣的事实是,只有质量良好的代码,人们才愿意对外分享,也就是说,如果不开源,人们会愿意在组织内部接受质量更差的代码。

开源代码有更高的标准、更多的测试,这是让代码不过时的绝佳机制。

最后

最近开始准备一直在找远程工作,如果大家有内推的话,欢迎联系我!

非常期待读者的点赞和支持,或多或少我都能从中得到鼓励❤️

好了,今天的分享就先到这里,大家下周见~

not-by-ainot-by-ai
文章推荐

Friends

Jimmy老胡SubmaraBruce SongScarsu宇阳Steven Lynn's Blog