0%

升级吧,我的博客系统

个人是从 3.4 的版本升级到 4.0 版本的,以下内容主要适用于这种情况。

升级 hexo 到 4.0 版本,首先修改 package.json

1
2
-  "hexo": "^3.4.0", # 这儿是你原来的 hexo 版本
+ "hexo": "^4.0.0", # 修改为新的版本

升级脚手架工具

因为是从 3.4 直接升级过来的,所以用 hexo-cli 工具重新生成了一份空的项目,然后复制了文件,发现主要是主题发现了变化。增加了一个分析工具,并没有啥大的变化。

首先得安装 hexo-cli 工具。

1
npm install hexo-cli -g

安装完成后,使用指令查看 hexo-cli 版本,为 3.0.0 。ok。

1
2
3
4
5
6
hexo --version


hexo: 4.0.0
hexo-cli: 3.0.0
...
阅读全文 »

正式开练

This Kata is presented in Robert C.. Martin’s book “Clean Code”, chapter 14.

按照惯例,先放出题目地址 传送门

任务清单

  • 需要做到完成第一阶段先

    • 判断 l 的 Boolean 参数
    • 判断 p 的 数字 参数
    • 判断 d 的 string 参数
  • 进行编码

    • 解析 -l 参数
    • 解析 p
    • 解析 d

完成它吧

先放上 unclebob 的 ruby 版本的 传送门

初次完成, 用时在 50 分钟左右。

代码还没有上传,后续更新博客。

一些思考

TDD 的测试驱动方式就是要以最少d的代码量来完成工作,这就要求有测试思维。个人觉得是目标思维,如何使用最少的工作量来
完成,而不是写一大坨代码。然后重构。

一开始完成的代码,总是很烂,不过能完成需求,这就已经是 ok, 算是完成了第一步。

代码是写给计算机用的,但是最终还是给人看的。重构是必不可少的一步,不然 WTF,It is my code!

这个和语言也是有关系,在 Clean Code 上,作者也提到了用 ruby 就让代码少至 1/7 这个就很厉害了。

再重头

曾经的“待重头,收拾旧山河,朝天阙。”而如今,我就重头再来一遍 FizzBuzz 吧!

时间会证明一切

5 分钟,是个人能做到的最好(现阶段)。

说起来,确实是提速了不少,总结一下提速的原因吧。

  1. 熟练使用了一些快捷键。当然 vim 的便捷远不止于此。
  2. 对一些操作需要用到方法熟悉,不需要额外查阅文档
  3. 花时间去学习其他兄弟的做法,提取对自己有用的信息,这儿主要是在测试的方法上改进了。【利用 Run 来执行用例】

速度与质量并存

如果说只是单纯的提速,而忽略质量,肯定是非常不可取的。

这次的练习,同时提高了测试的质量以及便捷性。同时对重构有了新的认识。

能抽象出来的,就抽象出来吧。让方法说明一切。并且利用 idea 的重构快捷方式,也提高了重构的效率和正确性。【当然,我在这儿用的是 GoLand,不过都是一家产品】

不要让精力白白消散

越来明白了一件事,把时间花费在有用的东西上。努力提高专注度,刻意练习。

整理工作环境

俗话说,磨刀不误砍柴工,今天我们就从工作环境入手。

编辑器本人用的是 vim,这儿使用的语言是 Golang

具体来说是 MacVim,然后针对 Golang,安装一下对应的插件 vim-go。另外对应的文档可以在这儿查看 vim-go-tutorial

在这儿要说明一下的是,虽然 Vim 作为编辑器很强,但是重构的话,还是推荐使用 GoLand。这个也是大牛告知的,Vim 确实不是很适合做重构。(欢迎反对意见)。

快捷键,让行动如飞

这个就让我想到以前练打字的游戏,“金山打字通”了。那段日子是真难熬啊,尤其是像我这种多动的人,每天练习打字半个小时到一两个小时不等,再加上天资驽钝,现在打字依旧不快,不过已经是可以实现完全的盲打了。我想快捷键的熟练使用,目的也在此吧,就是要大幅度的提高编程效率。

Vim 的快捷键,个人觉得是多如牛毛,今天的联系依旧是昨天的内容,更多的为了实现无鼠标操作,这个倒不是很难,难就难在查文档的时候,没有鼠标,操作起来确实费劲。

谈点儿自己的理解

Vim 给个人的感觉就是,总有新奇在等你,看书上提到过一个说法,不要重复你自己。

这句话也真真印证了编程的一个思想。就举一个很简单的例子,也是本次练习中的一点儿收获。

重复操作键 .,这个可以快速帮你重复上一次的操作,没想到很快就利用上。

回现一下问题吧,不同的编程语言,对 "' 的区分是不一样,本次的使用就是在这种情况下。有几个字符串并不能使用单引号。需要修改,就用到了这个重复操作快捷键,确实好用。当然,肯定还有更方便替换的方式,下次继续学习吧!

推荐一下学习资料

以上资料来自网络

FizzBuzz

首先,放出地址FizzBuzz

任务清单

stage 1

  • 测试代码 验证输出是否正确 从1到100的输出
  • 编写代码 循环1到100, 判断是否满足3和5的倍数, 3 的倍数, 5 的倍数, 并输出相应的值

stage 2

  • 测试代码 利用几个极限的数字的判断是否满足被3整除或包含3 以及被5整除或包含5
  • 编写代码 利用一个函数来处理这个问题
    • 判断是否被3/5 整除 或包含 3/5

My Code

我的代码

一些思考

TDD,测试驱动开发,先编写测试代码,再编写功能代码。

从这次的题中也发现了一个问题,就是在阶段二时,同时满足的情况如何处理,不是很懂。

时间是耗费了很多了。大体来说前前后后耗费了一两个小时,包括安装环境调试代码等过程。