JiaHe

相遇即是缘

本文主要起因是,一次在微博上和朋友关于嵌套好几层的if-else语句的代码重构的讨论(微博原文),在微博上大家有各式各样的问题和想法。按道理来说这些都是编程的基本功,似乎不太值得写一篇文章,不过我觉得很多东西可以从一个简单的东西出发,到达本质,所以,我觉得有必要在这里写一篇的文章。不一定全对,只希望得到更多的讨论,因为有了更深入的讨论才能进步。

文章有点长,我在文章最后会给出相关的思考和总结陈词,你可以跳到结尾。

所谓箭头型代码,基本上来说就是下面这个图片所示的情况。

那么,这样“箭头型”的代码有什么问题呢?看上去也挺好看的,有对称美。但是……

关于箭头型代码的问题有如下几个:

1)我的显示器不够宽,箭头型代码缩进太狠了,需要我来回拉水平滚动条,这让我在读代码的时候,相当的不舒服。

2)除了宽度外还有长度,有的代码的if-else里的if-else里的if-else的代码太多,读到中间你都不知道中间的代码是经过了什么样的层层检查才来到这里的。

总而言之,“箭头型代码”如果嵌套太多,代码太长的话,会相当容易让维护代码的人(包括自己)迷失在代码中,因为看到最内层的代码时,你已经不知道前面的那一层一层的条件判断是什么样的,代码是怎么运行到这里的,所以,箭头型代码是非常难以维护和Debug的

阅读全文 »

这次重装系统(为何要重装有兴趣的可翻看上上篇)我是一万个不愿意的,因为我知道系统重装的成本有多大。就单纯装个系统来说可能只需要十几分钟,但是装系统前的准备工作(主要是备份和制作安装启动 U 盘)以及系统装完后的恢复备份、软件安装调试、系统设置等,要想完全恢复之前的使用环境,差不多得需要一天的时间。现在是晚上的 10:42,先记录下该做的一些工作,按步骤来就不会出错。

阅读全文 »

Scoop 是什么

借用 Mike Zick 对 Cygwin 和 MSYS 的描述,他对 Scoop 作了一个类比描述:

Scoop is an installer

The goal of Scoop is to let you use Unix-y programs in a normal Windows environment

并且他也称,Scoop 并不是一个包管理器,而是通过读取 JSON 描述文件来安装程序及其依赖。Scoop 专注于开源和命令行开发工具,不符合其标准的不可能进入 main bucket(Scoop 安装后便自带的),因而虽然通过 scoop install skype 也能安装 Skype,但是只能放在 extra bucket 中。

阅读全文 »

git-merge 完全解析

Git 的 git-merge 是在 Git 中频繁使用的一个命令,很多人都觉得 git 合并是一个非常麻烦的事情,一不小心就会遇到丢失代码的问题,从而对 git 望而却步。本文基于 Git 2.8.2 对 git-merge 命令进行完整详细的介绍,特别是关于交叉合并所带来的代码遗失问题,在文末给出自己的建议,希望能够帮助到 git 的使用者。本文所介绍的内容基于 Git 2.8.2

git-merge 命令是用于将两个或两个以上的开发历史合并在一起的操作,通常也可写作:git merge。

转载:https://www.jianshu.com/p/58a166f24c81

阅读全文 »

安装插件
https://github.com/VSCodeVim/Vim

解决切换拼音输入法问题
https://github.com/daipeihust/im-select
https://www.zhihu.com/question/303850876/answer/822818615

"vim.autoSwitchInputMethod.enable": true,
"vim.autoSwitchInputMethod.defaultIM": "1033",
"vim.autoSwitchInputMethod.obtainIMCmd": "C:\\Users\\JIAHE\\Desktop\\im-select.exe",
"vim.autoSwitchInputMethod.switchIMCmd": "C:\\Users\\JIAHE\\Desktop\\im-select.exe {im}"