第 38 期:好记性不如烂笔头

@Author : Lewis Tian (taseikyo@gmail.com)

@Link : github.com/taseikyo

@Range : 2021-07-18 - 2021-07-24

Weekly #38

readme | previous | next

本文总字数 1510 个,阅读时长约:3 分钟,统计数据来自:算筹字数统计

*Photo by David Travis on Unsplash

Table of Contents

  • tip

    • os.listdir 返回并不是有序列表

    • Mac 修改文件默认打开方式

    • Sublime Text3 中使用终端/terminal

    • golang 中 abc.(type) 和 abc.(SomeType) 的用法

    • 一行 CSS 实现全站中文简繁转换

  • share

    • 好记性不如烂笔头

algorithm 🔝

review 🔝

tip 🔝

1. os.listdir 返回并不是有序列表

已经踩了很多次这个坑了,每次都默认它返回的是一个有序列表,但实际上并不是,看一下它的函数原型:

listdir(path) -> list_of_strings

Return a list containing the names of the entries in the directory.

path: path of directory to list
The list is in arbitrary order. It does not include the special entries '.' and '..' even if they are present in the directory.

注意最后一段话:The list is in arbitrary order. ,所以以后使用如果想得到一个有序列表,还是外面套一个 sorted 或者得到列表之后,调用它的 sort 方法。

files = sorted(os.listdir("images"))
files = os.listdir("images")
files.sort()

sort 方法是没有返回值的,不要直接在调用 listdir 之后调用 sort 方法,这大概也是一个坑

最近 md 文件的默认打开方式老在变,又或者这个 md 能用 Chrome 打开,另一个又不行,就很烦,明明点了默认用 Chrome 打开了

搜了一下,方法如下:

  1. 选中文件,右键 - "查看简介"

  2. 找到 "打开方式",从下拉菜单中,找到对应的程序

  3. 点击 "全部更改"

之后就所有这种文件都是用选定的应用打开了,舒服!

cmd + shift + p 安装 Terminus 插件

安装结束后,可以使用 cmd + shift + p,输入 terminus, 选中 Terminus:Toggle Panel,如果安装成功,界面下方会出现一个终端界面

当然每次这样会很麻烦,我们可以设置快捷键:SublimeText3 -> Preference -> Key Bindings

[
   { "keys": ["ctrl+shift+t"], "command": "toggle_terminus_panel" }
]

之后就可以 ctrl + shift + t 开关终端了

.(type) 是用来类型分支选择上:

type T struct {}

func PrintType(v interface{}) {
    switch v.(type) {
    case int:
        fmt.Println("int")
    case float32:
        fmt.Println("float32")
    case T:
        fmt.Println("T")
    }
}

func main() {
    PrintType(1)
    PrintType(T{})
}

.(SomeType) 是把一个接口转换成具体的类型:

func main() {
    var v interface{} = 10
    n, ok := v.(int)
    if ok {
        fmt.Println(n)
    }
}

前者是判断接口的类型;后者是将接口转化为具体类型。

font-variant-east-asian: traditional;

当然了,这种效果需要字体本身包含繁体变体,而在 Windows 系统中的几个默认字体都没有包含繁体变体,而 Mac ,以及 iOS 系统默认中文字体是包含繁体变体的

因此,目前,在没有任何外界干预的情况下,一行 CSS 让网站转变成繁体,只在 OSX 和 iOS 系统中有效

share 🔝

1. 好记性不如烂笔头

我一直认为带有时间标记(tag)的东西,后面回过头来看就会感觉很有意义,所以我在几乎我每个 Markdown 文档都会加个文件头,这也是我离不开 Sublime 的原因,因为它的 SublimeTml 插件可以定制化不同类型的文件头

另一方面,我一直觉得做笔记是一个非常好的习惯,因为人的记忆力是有限的,不可能把看过的东西都记住,特别是一些业务相关的东西,有了笔记(文档)不仅后面可以回过头来复习看,也可以造福后来者,这一点让我在公司感触颇深,业务逻辑需要看代码,但是一些祖传代码又没有文档,命名又不是很规范(多人开发),看得很难受

再者,记录一些如遇到的 bug 之类的东西,后面再次遇到就不必去搜,因为你往往需要查阅好几个网页才会找到真正能解决你问题的方法,如果有文档,直接按照方法来

这个过程就很想就像计算机里面读数据一样,如果你有文档,那么相当于直接 Cache 命中并返回;如果没有则需要去内存找,如果还没有则需要从磁盘加载,相比较而言,后者肯定慢得多

在公司因为是多人开发,即便初始文档做的比较粗糙也没关系,后来者可以跟进修改,至少有个参考的依据

如果啥都没有,新人首先需要理解业务,搞懂代码,然后才能写文档,这就浪费了很多时间

而且如果补充了很多新人的话,每个人都要去浪费这个时间,加起来这个损失其实是相当大的

readme | previous | next

最后更新于

这有帮助吗?