From 12c54f045275a721199ae4e4735ed36dc2f28ed2 Mon Sep 17 00:00:00 2001 From: Eltrac Date: Thu, 5 Dec 2024 23:36:22 +0800 Subject: docs(blog): weekly draft --- ...1\344\272\272\345\221\250\345\210\212-vol-6.md" | 102 +++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 "content/posts/\347\250\273\350\215\211\344\272\272\345\221\250\345\210\212-vol-6.md" diff --git "a/content/posts/\347\250\273\350\215\211\344\272\272\345\221\250\345\210\212-vol-6.md" "b/content/posts/\347\250\273\350\215\211\344\272\272\345\221\250\345\210\212-vol-6.md" new file mode 100644 index 00000000..1f0b35c3 --- /dev/null +++ "b/content/posts/\347\250\273\350\215\211\344\272\272\345\221\250\345\210\212-vol-6.md" @@ -0,0 +1,102 @@ +--- +title: 稻草人周刊 Vol.6 +subtitle: +description: +date: 2024-12-09 15:19:00 +categories: 稻草人周刊 +draft: true + +--- + +{{< callout "你正在阅读 [稻草人周刊](/categories/稻草人周刊/) 的第 6 期,我会在这里分享最近的有意思的事情、思考、阅读和体会。" "💡" >}} + + + +## 🏃 + +[www.guhub.cn](https://www.guhub.cn/) 这个域名空了好久,我终于把它填上了。 + +![image-20241205224859248](https://image.guhub.cn/uPic/2024/12/image-20241205224859248.png) + +这种风格叫做 Bento,是日语里「饭盒」的意思。虽然设计风格不算新了,但之前一直没有用到个人网站上的灵感。前几天偶然发现 [ImQi1](https://imqi1.com/about) 的播客,觉得他的关于页面令人眼前一亮,用的也是 Bento 风格。 + +于是便想要自己用 Vue 写一个,就有了现在这个主页。做这个页面还有另一个心思,就是想要练习「做小事」。因为自己容易陷入完美主义的拖延症当中,所以就给自己限定时间把一个小项目做完。 + +正因为真的很简单,就越容易陷入过度打磨当中,然后迟迟不肯发布。比如我现在还想往技术栈那一个卡片里加上 Hugo 和 MySQL 的徽标,想要打磨一下页面在小屏幕上的样式,但我知道,如果我继续的话,我就停不下来了。 + +如果你也是独立开发者,**我认为你我都需要一种,能够毫无波澜地把一堆充满了潜在 bug 和各种待重构的屎山代码推送到生产环境的勇气**。拥抱 MVP(最小可行性产品),先让世界看到你的想法。 + +话不多说,我马上要去做我的下一个项目了。 + +## 🤔 + +### 重构(refactor)到底是什么意思? + +虽然是软件工程专业,但还没开始正经地研究软件工程学。重构这个常见的概念,我其实一直不知道具体的意思。我发现我身边的不少人用「重构」这个词的时候,其实非常混乱,似乎都不是一个意思。 + +第一次接触到「重构」这个词,大概是高中的时候写 Typecho 主题,圈子里有不少开发者会「重构主题」,我自己也效仿过。当时我的理解就是,把相同设计的程序重新写一遍,就算重构了。这个理解其实不错,但也不对。 + +我接触版本管理也比较早,git commit summary 的编写规范也有所了解。这个 summary 就是在 git 仓库中递交(commit)一次更改时,用来描述这次更改内容的信息。目前主流的格式是 `(): `,其中 `type` 指类型,比如 `feat` 表示添加了新特性(`feature`),还有一个是 `refactor`,也就是重构。我当时没多想,只是疑惑:这个操作有那么常见吗?重构这样的大操作,居然可以写在一个 commit 里吗? + +开始学 Java 之后,自然接触到了 IntelliJ IDEA 这个集成开发环境。第一次用的时候,我找不到重命名(Rename)在哪。后来才发现,Rename 被归属到 Refactor 下了。我心生疑惑:重命名这样简单的操作怎么就算重构了呢?但我也没多想,只是记住了,在写代码的时候,重命名也算一种「重构」操作。 + +直到这周,我终于搜索了「重构」的意思。维基百科给出的定义如下: + +> **代码重构**(英语:code refactoring)指对[软件](https://zh.wikipedia.org/wiki/%E8%BD%AF%E4%BB%B6)代码**做一些改动**以增加可读性或者简化代码结构而不影响输出结果。 +> +> …… +> +> 在[软件工程学](https://zh.wikipedia.org/wiki/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E5%AD%A6)里,**重构**[代码](https://zh.wikipedia.org/wiki/%E4%BB%A3%E7%A0%81)一词通常是指在**不改变代码的外部行为情况下而修改[源代码](https://zh.wikipedia.org/wiki/%E6%BA%90%E4%BB%A3%E7%A0%81)**。[^1] + +所以,把主题重写一遍,但是设计不变,只是从整体上优化结构,的确是「重构」,因为它没有改变代码的外部行为;简单地给文件重命名,也确实对代码进行了更改,代码的外部行为没有变,因此也算「重构」。重构这个操作不论大小,的确很常见。 + +我认为我遇到了一个叫做「**前置引用**」的现象,就是一个概念在我大脑中定义之前就出现在了其他定义中。简单来说,就是我过早地接触到了我没学过的东西,但这种「过早」并不是错的,甚至是难以避免的,在学习任何东西时都会遇到「前置引用」。在理解某个新概念的时候,往往会在他的定义中遇到另一个陌生的概念。 + +可以尝试的解决方法: + +1. 感到疑惑时就立刻去查 +2. 如果不妨碍现在的理解,就不管,把更多的精力放在当下需要理解的东西上 + +知识本质上也还是信息,真正重要的信息,你早晚会知道的,囫囵吞枣不是好事。 + +*如果你想要了解更多有关前置引用的内容,可以阅读《[关于前置引用现象,学习卡顿的根源 ](https://sspai.com/post/93798)》* + +### 手机与信息焦虑 + +[夺回你的注意力:用断舍离治疗手机上瘾](https://sspai.com/post/93322) + +《手机大脑》和《数字极简》 + +[如何解决信息焦虑问题 - Versun](https://versun.me/blog/如何解决信息焦虑问题/) + +简单分享自己的做法 + +…… + +### 独立博客何去何从? + +[科技爱好者周刊(第 327 期):没有链接的互联网 - 阮一峰的网络日志](http://www.ruanyifeng.com/blog/2024/11/weekly-issue-327.html) + +…… + +## 📒 + +[什么是智慧? - Rolen's Blog](https://rolen.wiki/what-is-wisdom/) + +> 我知道当心中有一个念头的时候,就应该放下手头的事情,马上去实现,因为一旦过了那个点,就大概率不会去做了 + +[广东大学生请假事件分析 - 林海草原](https://lhcy.org/archives/guang-dong-da-xue-sheng-qing-jia-shi-jian-fen-xi.html) + +> …… + +在咒骂学校等机构的死板和不近人情之余,也应该思考一下何为「责任体系」以及这些原因背后更不个人化的考量,实际上是为了群体的利益而非蠢坏。 + +《How to Deal With idiots》 + +> Try to negotiate and meet your norms with others' norms. Don't think you're so smart that everyone has to do things your way. +> +> 试着协商,将你的规则和其他人的规则靠拢。不要觉得你聪明到所有人都必须按照你的方法做事。 + + + +[^1]: [代码重构 - 维基百科,自由的百科全书](https://zh.wikipedia.org/wiki/代码重构) -- cgit v1.2.3