summaryrefslogtreecommitdiff
path: root/content/posts
diff options
context:
space:
mode:
authorEltrac <hi@guhub.cn>2024-12-05 23:36:22 +0800
committerEltrac <hi@guhub.cn>2024-12-05 23:36:22 +0800
commit12c54f045275a721199ae4e4735ed36dc2f28ed2 (patch)
treeab428e98879cb718557396f61ad7ccd6ece0417b /content/posts
parent40dd6373fae2632ef8f752e5744c62b32e0c29b6 (diff)
docs(blog): weekly draft
Diffstat (limited to 'content/posts')
-rw-r--r--content/posts/稻草人周刊-vol-6.md102
1 files changed, 102 insertions, 0 deletions
diff --git a/content/posts/稻草人周刊-vol-6.md b/content/posts/稻草人周刊-vol-6.md
new file mode 100644
index 00000000..1f0b35c3
--- /dev/null
+++ b/content/posts/稻草人周刊-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 期,我会在这里分享最近的有意思的事情、思考、阅读和体会。" "💡" >}}
+
+<!--more-->
+
+## 🏃
+
+[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>(<scope>): <subject>`,其中 `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/代码重构)