0%

本文是webpack教程的第一篇文章,会介绍

  • 创作这个系列教程的原因
  • webpack是什么
    • 构建工具
  • webpack CLI(命令行交互)的基本使用
    • webpack <入口文件> -o <目标文件> --mode <模式>
    • webpack --config <配置文件>
  • webpack CLI与npm结合使用
    • scripts添加与npm run build

涉及到的代码有不使用webpack版本使用webpack和npm版本

阅读全文 »

本文是star-history项目源码阅读的第一篇文章,会包含:

  • 作者对项目的介绍,这个系列博文的目的
  • Github的stargazers接口
  • Github接口的分页策略
  • 获取star历史的思路

本次对代码的分析基于Commit - first commit deecd92 timqian

阅读全文 »

本文记录了作者在使用goland提供的提取方法(Extract Method)功能时,由于...interface{}的类型问题而遭遇到的bug和一点感悟,简单来说:

  • 可变长的参数会被goland的Extract Method转化为切片(slice),比如...interface{}会被转化为[]interface{}
  • 由于interface{}的特殊性,需要额外注意
阅读全文 »

本文介绍了作者了解到的三种常见的单仓库的git工作流,它们是:

  1. Centralized工作流
    • 仅使用master一个分支
  2. Feature Branch工作流
    • 使用一个master分支管理稳定版本
    • 使用多个feature分支管理需求开发
  3. Gitflow工作流
    • 使用一个master分支管理发布版本历史
    • 使用一个develop分支管理开发流程
    • 使用多个feature分支管理需求开发
    • 使用多个release分支管理版本发布
    • 使用多个hotfix分支修复紧急bug
阅读全文 »

这篇文章是在我完成了oop大作业之后,重新审视自己的开发流程与系统设计的一点总结与展望,简单来说:

  1. 这是个”154/“(一无是处)的项目
  2. 好在能够让我感受到一些努力的方向

代码就不开源了,实在太差了,就在这里口嗨一下就好

阅读全文 »

本文记录了作者由于不了解goland中Run与Debug配置中working-directory含义而引起的bug,简单来说:

working directory就是golang项目编译好后的二进制文件执行的文件夹路径

情景

项目框架中存在conf这样的专门放置配置文件的文件夹,当使用项目框架自带的build.sh构建脚本时,会将编译好的二进制文件和conf中的配置文件分别拷贝到output/binoutput/conf这两个文件夹下,将output试做发布文件夹

但是,在goland中如果想要配置Run或者Debug,是不能使用build.sh脚本的,只能配置原始的go编译命令

在配置的同时,我将working-directory很随意地设置为了output文件夹

出现问题

当我修改了配置文件并进行Run或者Debug时,发现修改没有生效

思考

没有生效是因为,working-directory被设置为output文件夹,那么goland在执行goland本身编译好的二进制文件时,会引用output/conf下的配置文件

但是,conf文件夹下的修改是不会自动同步到output/conf里的(对源代码的修改会同步到goland上,因为goland会重新编译),必须执行./build.sh脚本才可以

解决

可以每次修改配置文件是都先执行./build.sh,然后再goland使用Run或Debug

也可以将working-directory设置为./而不是设置为./output,这样以后goland编译执行引用的就是./conf中的配置文件,修改也就能直接同步了

本文记录了作者使用bash过程中,为了解决去除前缀后缀的问题而了解到的bash的字符串操作,简单来说

  1. string:position或者string:position:length进行子串提取
  2. string#pattern进行最短匹配前缀去除,string##pattern进行最长匹配前缀去除
  3. string%pattern进行最短匹配后缀去除,string%%pattern进行最长匹配后缀去除
  4. string/pattern/string进行首个pattern替换,string//pattern/string进行全部pattern替换
  5. 以上的pattern指的都是wildcard而不是regular expression
阅读全文 »

本文记录了作者在使用mongoose的过程中,因为箭头函数与普通函数的区别而引起的一个bug,以及因此而学会的有关箭头函数与普通函数的区别,简单来说:

  1. 箭头函数不能使用arguments参数,普通函数可以
  2. 箭头函数的this关键字是lexically bound,也就是this是和最近的外层普通函数所具有的this一致(如果没有这样的函数,就和文件本身代表的对象绑定);普通函数的this是dynamically bound,视运行时环境而确定

其实还有什么new之类的,作者觉得不大重要,就算了

阅读全文 »