十五周刊 - 120
2024 第 35 周周报
欢迎来到十五周刊,我们每周都会分享有价值的前端技术文章,让你随时掌握前端的最新动态。此外,我们还会介绍一些实用的软件工具,帮助你提升工作效率。同时,我们也会分享一些个人生活感悟,希望通过分享,能够给你的生活带来一些启示和思考。希望你会喜欢我们的内容。
开源浏览器 Zen
Zen 是基于 Firefox 的开源浏览器,支持 Mac、Windows 和 Linux。可以算 Arc 的开源替代。
Zen 有以下特点:
- Workspace:可以创建多个工作区。
- Profile:可以创建多个配置文件,用来将工作与生活的账号区分开。
- 垂直标签页。
- 分屏。(与 Arc 相比,除了左右分屏,还支持上下分屏)
- Compact 模式(全屏模式,隐藏侧边标签与地址栏)。
- 侧边栏(一个小的独立区域,可以放置一些常用工具)。
Ratato
3D 手机 Mockup 展示工具。
给开发者和媒体朋友推荐下 rotato 这个 App,可以说是最好用的 3D 手机 Mockup 展示工具。无论是演示视频还是教程相关都会炫酷简单一个级别,你在短视频看到的 3D 手机展示基本都是 rotato 做的。除了 iPhone、也支持安卓手机、电脑、手表,自带很多 3D 模板,没什么好说的就是很强大很好用。…
什么是真正的 VPN
VPN (Virtual Private Network):虚拟专用网络。
VPN 的本质是加密隧道,通过加密隧道将本地网络与远程网络连接起来。
VPN 的目的是在公共网络上建立一个安全的连接,保护数据在传输过程中的安全。常用于远程访问公司内网。
《黑客与画家》读书笔记
- 为什么书呆子不受欢迎
- 学校等小的封闭圈子,成员的所作所为只对内部有影响,对真实世界不具备实际功能,所以产生野蛮的做法
- 真实世界足够庞大,所做的事情能够产生真实的效果,所以追求正确答案就开始变得重要。
- 如今的孩子对家长在遥远办公室的工作一无所知,看不到学校作业与未来社会的工作有何联系,自然也缺乏古代学徒对成年人的尊敬。
- 如今社会孩子对生产活动是负作用,但又不能放任不管,所以成年人将他们集中起来,用几个成年人看守,就像一个监狱。
- 黑客与画家
- 与科学家数学家相比,黑客更像画家与作家。
- 黑客需要像画家一样从练习中学习,从临摹中学习。
- 黑客搞懂计算理论的必要性与画家搞懂颜料化学成分的必要性差不多。
- 黑客之间的合作应该像画家一样,有严格定义的模块,每一个模块由一个人明确负责。
- 就像绘画作品一样,大多数软件是为人类用户准备的。所以。黑客必须像画家一样,时刻考虑到用户的人性需要。
- 软件的部分功能就是解释自身。为了写出优秀的软件,你必须假定用户对你的软件基本上一无所知。
- 源代码也应该可以自己解释自己。
- 不能说的话
- 触怒他人的言论是那些可能会有人相信的言论。
- 做一个异端是有回报的,不仅是在科学领域,在任何有竞争的地方,只要你能看到别人看不到或不敢看的东西,你就有很大的优势。
- 反击:把辩论上升到抽象层次,不要直接攻击某个标签,而要攻击它的元标签;使用隐喻;幽默(狂热分子都有一个共同点--缺乏幽默感,他们无法平静地对待笑话)。
- 保持质疑。
- 良好的坏习惯
- 公民自由使得国家富强。
- 专制国家会变成腐败国家,腐败国家会变成贫穷国家,贫穷国家会变成弱小国家。
- 如同随着税率提升,税收收入会先增加后减少,政府力量也是如此,随着对公民自由的限制不断上升,政府的力量会先增加后减少。
- 另一条路
- 很难用纯粹的函数式编程完成整个程序,但是它可以用来编写一些重要的部分,使得这些部分易于调试,因为它们不包含状态。
- 一定数量的盗版对软件公司是有好处的,不管你的软件定价多少,有些用户永远都不会购买,如果这样的用户使用盗版,你没有任何损失。事实上你反而赚到了,因为你的软件现在多了一个用户,市场影响力更大了。
- 管理企业只要记住两点:做出用户喜欢的产品,保证开支小于收入。随着事业的发展,你自己就能琢磨出其他的诀窍。
- 如何做出用户喜欢的产品:从作出简洁的产品入手,首先保证你自己愿意使用,然后迅速作出1.0版本,接着不断改进,倾听用户反馈。在软件的简易与复杂全面之间取得平衡,正确设置默认值。比较软件的标准是看对手的软件将来有什么功能,而不是现在。
- 如何创造财富
- 创造有价值的东西就是创造财富。财富与金钱并不是同义词。
- 工作就是在一个组织中,与许多人共同合作,做出人们需要的东西。
- 大公司最大的困扰就是无法准确测量每个员工的贡献。
- 致富的前提:可测量性和可放大性。没有可测量性,你做的再多也无法得到更多的报酬,没有可放大性,你能做的唯一决策就是以多快的速度完成工作,即时你做到最快,回报增加地也很有限。
- 小团体=可测量性。团队越大,每个人的贡献越接近于整体的平均值。
- 高科技=可放大性。技术就是某种手段,就是我们做事的方式。杠杆。
- 没有财富的激励,技术革新就会逐渐停顿。
代码组织原则 Colocation
https://kentcdodds.com/blog/colocation
Place code as close to where it's relevant as possible
将代码尽可能放在与它最相关的地方
最近用的 Cursor 编辑器可以将整个文件夹作为上下文。由此想到了如果一个功能模块的代码都集中在一个文件夹下,那么在使用 AI 编辑器的时候,效率应该会高很多。
联想到我们迭代了将近两年的一个项目,功能模块非常多,在一个模块内新增一个功能,修改文件,添加文件,经常迷失在目录树里,还是挺影响效率的。
比如项目刚启动的时候,我们将所有的页面放在 pages
目录下,网络请求放在 services
目录下。前几个月页面分分类可能只有四五个,目录树大概是这样:
txt
1pages 2|- classCenter 3|- orderCenter 4|- studentCenter 5 6services 7|- classService.ts 8|- orderService.ts 9|- studentService.ts
大部分情况下 services 跟 pages 目录是一致的,模块少的时候在目录树中跳转还算方便,但是假如模块增加到十几个,二十几个,目录树就会变得非长。经常需要滚动侧边栏查找文件。
如果将 services 目录下的文件分散到各个模块的目录下,目录树就会变得非常清晰。
txt
1pages 2|- classCenter 3|--- classService.ts 4|- orderCenter 5|--- orderService.ts 6|- studentCenter 7|--- studentService.ts
这样在目录树中跳转就会方便很多。将整个文件夹丢给 AI 编辑器,效率也会更高。