分享文章
一些本周阅读过的好文章、以及我的一些总结和个人思考;非常建议你直接阅读原文,毕竟一千个读者就有一千个哈姆雷特,而且我的理解可能是错的。
网络没有版本号
在过去一年时间里,我们经常听到 WEB3 ,以及相关的术语:如区块链、加密、NTF 等,让不少 WEB 开发者认为这项技术是未来的趋势,于是每个开发者都跃跃欲试,但本文作者认为我们应该对这个充满误导性的术语 「WEB3」持谨慎态度,因为网络并没有版本号,更没有某个权威的机构会定期更新网络的版本。
希望 WEB3 及其相关术语不会成为 WEB 开发者的简历上必备的流行词,对于大部分 WEB 开发者而言,该领域的专业知识是不必要的。
您在软件开发方面的经验水平将使您产生截然不同的观点和意见
假设你是一个初级开发者,你为了实现某个功能,而刚好有一个库/框架能够满足你的需求,所以你希望能够把这个库/框架加入到项目中,但比你更有经验的同事拒绝了这个建议,他认为没必要仅仅为了实现一个功能而添加一个库/框架。
你可能会认为这是一个短视的看法,他们不应该被困在什么都自己重新造轮子的旧观念上。
但也许他是这样思考问题的:
- 添加一个库,意味着增加系统的复杂度、意味着更多的风险。
- 需要及时跟踪这个库的安全漏洞、并在 breaking change 时更新现有的代码。
- 这个库的安全性如何?是否会有意外的情况发生?
- 添加这个库的成本和风险?成本是否会比自己开发更低?
个人思考
对于任何一个商业项目而言,不应该也不可能完全脱离开源社区的框架、类库,我们确实不可能所有事情都重新造轮子,开源类库的健壮性肯定比自己实现要强,但这也不意味着我们可以盲目地使用开源类库,即便要使用类库,也可能会面临多个不同选择,我们应该从生态社区、维护积极性、安全性等多方面进行考察和对比,最终选择出适合的方案。
当你在构建产品时,你应该听取谁的意见?
人们根据自己的背景来重视不同的东西。就比如对于笔记本电脑,不同的群体需要不同的功能:
- 学生们想要一台价格实惠且重量轻的笔记本电脑(因为他们会把它带到课堂上)。
- 程序员想要一台具有高分辨率屏幕,大量内存和全尺寸键盘的笔记本电脑。
- 游戏玩家想要一个具有超强 CPU和 GPU 的电脑,他们也不介意笔记本电脑是否笨重。
本文作者提出我们在构建产品时,最应该听从谁的意见,以及如何听从:
- 只接受为您的产品付费的人的产品反馈,很多人可能不同意这个观点,但是请看看 Feedbook 和谷歌,我们中的许多人都在每天使用它,但是 Facebook 和谷歌似乎不太关心我们的隐私,并在未经我们同意的情况下分享我们的信息。为什么?因为他们效忠的是广告商。
在浏览器 devtools 中打印图片
我们使用以下代码在 devtools 中利用 console.log
输出图片:
function getBox(width, height) {
return {
string: "+",
style: "font-size: 1px; padding: " + Math.floor(height/2) + "px " + Math.floor(width/2) + "px; line-height: " + height + "px;"
}
}
console.image = function(url, scale) {
scale = scale || 1;
var img = new Image();
img.onload = function() {
var dim = getBox(this.width * scale, this.height * scale);
console.log("%c" + dim.string, dim.style + "background: url(" + url + "); background-size: " + (this.width * scale) + "px " + (this.height * scale) + "px; color: transparent;");
};
img.src = url;
};
或者直接使用这个库:https://github.com/adriancooney/console.image
有趣的链接
-
CORS Tester:跨域对于前后端来说都是一个不可逾越的知识点,在实际项目开发中也必然会遇到各种各样的跨域问题,可以使用这个网站在线体验跨域的请求。
-
Effective Shell:一本学习 Shell 的在线书籍,适合任何一个想要入门 Shell 的同学。
-
Convert curl commands to code:将 CURL 转换到各编程语言的实例中,当然我们平常都会使用 Postman、PAW 等工具进行转换,不过也总有需要在线转换的时候把?
-
JavaScript for impatient programmers (ES2022 edition):在 JavaScript 世界中有很多非常经典的书籍,如 《JavaScript 权威指南》、《JavaScript 高级程序设计》、《你不知道的 JavaScript》 等,但我推荐这本更加现代化的书,包含了最新的 ES2022 新特性。
-
Charm:在 CLI 构建你的图形界面,真的很漂亮!
-
jless:一个更好地显示 JSON 的 CLI 工具,推荐使用!
-
DevToys:堪称开发者的瑞士军刀,提供了比如文件转换(JSON <> YAML )、编码解码、格式化(支持 JSON、SQL、XML)、哈希生成、UUID 生成、图片压缩多种功能。