Seven's blog

你不会找到路,除非你敢于迷路

0%

前言

Unix 用户的配置文件一般存储在以 . 开头的文件中,这些文件被统称为 “dotfiles”。

本文讲述了一种极其优雅的通过 git 备份和恢复 dotfiles 的方法。

备份

  1. 初始化 git 仓库

    1
    2
    3
    4
    5
    6
    # 初始化 git 仓库
    git init --bare $HOME/.dotfiles
    # 指定 git 仓库和工作树路径并创建指令别名,简化操作
    cp -a .bashrc{,.bak} && echo "alias dotfiles='git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'" >> .bashrc && source .bashrc
    # git status 不显示未跟踪的文件
    dotfiles config status.showUntrackedFiles no
  2. 创建远程仓库,比如 git@github.com/seven/dotfiles

  3. 添加文件

    1
    2
    3
    4
    dotfiles add .zshrc
    dotfiles commit -m "add .zshrc"
    dotfiles remote add origin ${git_repo}
    dotfiles push
阅读全文 »

持续交付 36 讲

持续交付是提升软件交付速率的一套工程方法和一系列最佳实践的集合。它的关注点可以概括为:持续集成构建、测试自动化和部署流水线。
持续交付最核心的几个部分包括:配置管理、环境管理、构建集成、发布及监控、测试管理。

基本概念

持续集成、持续交付和持续部署的关系

  • 持续集成

    从编码到构建再到测试的反复持续过程。“持续集成”一旦完成,代表产品处在一个可交付但并不是最优的状态。

  • 持续交付

    在“持续集成”之后,获取外部对软件的反馈,再通过“持续集成”进行优化的过程叫作“持续交付”。“持续交付”是“持续集成”的自然延续。

  • 持续部署

    将可交付的产品,快速且安全地交付用户使用的一套方法和系统。它是“持续交付”的最后一公里。

“持续交付”是一个承上启下的过程,它使“持续集成”形成闭环,有了实际业务价值;又为将来达到“持续部署”的高级目标做好了铺垫。

持续交付的价值不仅仅局限于简单的提高产品交付的效率,它还通过统一标准、规范流程、工具化、自动化等等方式,影响着整个研发生命周期。

阅读全文 »

前言

IntelliJ IDEA 提供了强大的插件系统,并且有着完善的插件生态。

成千上万追求极致的开发者们为 IDEA 开发了不计其数的插件,可以极大程度地帮助开发者提升开发速度、代码质量、以及开发的舒适度等等。

本文收集了最受开发者喜欢的一些插件,罗列至此,希望能够对你有所帮助。

插件的安装和卸载章节被我放在了文章较后的位置,如果你需要查看这些内容,翻看文章后面的 安装卸载 章节即可。

精选插件

Rainbow Brackets

这款插件名为彩虹括号,可以帮助我们更好地匹配括号和定位代码块。
主要功能包括:

  • 使用不同颜色渲染多层嵌套的括号;
  • 通过高亮显示帮助我们更好地定位代码块(ctrl + 鼠标右键单击 触发);

idea-plugin-rainbow-brackets-highlines

阅读全文 »

IDEA 的设置项中提供了 Live Templates 和 File and Code Templates 的设置。其中:

  • Live Templates 用于配置方法注释模板和代码模板,这类模板需要在写代码的过程中通过关键字手动触发;
  • File and Code Templates 用于配置文件模板,新建文件时 IDEA 会自动填入我们配置的模板内容。常用于配置类注释、接口注释等。
阅读全文 »

前言

之前接触过的项目大都是单体应用,各应用之间有功能重合但无代码共用。同样的功能,要么重复开发,要么代码拷贝,开发繁琐且效率低下。一但在多个应用中均有使用的相同的代码出现了 bug,开发人员更是要在多个应用中逐个修复,劳神伤身。

故引入模块化开发概念,把相对独立的功能抽离成组件开发,完成之后再组合到一起服务业务。一来开发有了积淀,新项目不必从零开发;二来 bug 的修复也会简单很多,只需修复一次,升级版本即可。提高了工作效率,才会有更多的时间去做技术研究和价值创造。

简单查询了使用 Intellij IDEA 进行 maven 多模块项目的创建过程,只是模块化开发中很小的一部分,记录于此,用以备忘。

阅读全文 »