背景 各种事情夹杂在一起,身心疲惫,躺在床上的下一秒,就已呼呼大睡 忙的杂乱无章,忙的没有方向,看似很忙,却感觉什么也没收获到。我知道我需要一点独处的空间,静静地思考 寻找空间 这个空间要去哪里找?在寻找空间之前,我梳理了一下我的需求: * 安静 (required) * 网络畅通(required) * 安全(required) * 方便的电源位置(optional) * 距离住处近 (optional) * 开销小(optional) 字段结构已定,那就要将寻找到的空间 schema 带入逐一验证,寻找最优解 咖啡厅 作为都市小青年,我首先想到的是咖啡厅,路过咖啡
前言 不知道你的 team 当中是否采用敏捷开发,总之我们的 team 贯彻敏捷方法很彻底 随着敏捷方法的步伐加快,如何加快软件的交付速度变得极为重要,快速交付离不开 DevOps,而 DevOps 技术栈中,Jenkins 绝对是 CI 过程的核心角色。要充分高效的使用 Jenkins,自然离不开 Jenkinsfile 什么是 Jenkinsfile? 其实在前两篇文章中大家已经和 Jenkinsfile 照过面,只不过他们不是当时的主角: * Jenkins 使用环境变量 * Jenkins 动态使用分支名称 终于不用跑龙套了,在 Jenk
前言 上一篇文章 IntelliJ IDEA 高级调试之Stream Trace 算是 IntelliJ IDEA 高级调试技巧的开胃菜,小伙伴们被这个小技巧征服,趁热打铁,今天给大家带来几个大家日常工作以及阅读源码必备的高级调试技巧 断点处添加 log 很多程序员在调试代码时都喜欢 print 一些内容,这样看起来更直观,print 完之后又很容易忘记删除掉这些没用的内容,最终将代码提交到 remote,code review 时又不得不删减这些内容重新提交,不但增加不必要的工作量,还让 log tree 的一些节点没有任何价值 IntelliJ IDEA 提供 Evaluate and
前言 自从 Java 8 开始,作为程序员的我们都离不开 Stream 相关功能的使用,书写起来那叫一个流畅(这个 feel~~)。但总是有一些时候,我们对 stream 的操作所要的结果和预期不符,这就需要我们逐步调试,定位问题 常规调试 先来看下面这段代码: 1 2 3 4 public static void main(String[] args) { Object[] res = Stream.of(1,2,3,4,5,6,7,8).filter( i -> i%2 == 0).filter( i -> i>3).toArray(); System.out.printl
前言 在上一篇 Jenkins 使用环境变量 中,帮助大家使用一条 Docker 命令就可以快速玩转 Jenkins,同时用最简单的方式解释了 Jenkins 中让人混乱的环境变量,本文还是接着变量说点事情 一般成熟的项目流程都会通过 Jenkins Pipeline 来做 CI 部分,在默认 Jenkins 环境配置中,Jenkins Pipeline 分为两种: 1. Pipeline (单分支 Pipeline) 2. Multibranch Pipeline (多分支 Pipeline) 如下图: 如果使用了多分支 Pipeline,就不会存在动态使用分支名称的问题了。
知识回顾 并发工具类我们已经讲了很多,这些工具类的「目标」是让我们只关注任务本身,并且忽视线程间合作细节,简化了并发编程难度的同时,也增加了很多安全性。工具类的对使用者的「目标」虽然一致,但每一个工具类本身都有它独特的应用场景,比如: * 我会手动创建线程,为什么要使用线程池? 介绍了使用线程池管理线程将一个大任务分解成多个子任务来简单执行,借助 不会用Java Future,我怀疑你泡茶没我快, 又是超长图文!! 的 Future 特性获取子任务执行结果——二者结合使用就可以处理简单的并行任务 * 搞定 CompletableFuture,并发异步编程和编写串行程序还有什么区别? 借助
前言 Jenkins, DevOps 技术栈的核心之一,CI/CD 离不开编写 Pipeline 脚本,上手 Jenkins ,简单查一下文档,你就应该不会被 agent,stages,step 这类关键词弄懵,也能很快构建出 pipeline 的骨架 但是当向骨架中填充内容的时候,尤其如何利用环境变量(系统内置 | 自定义),多数人都会变得比较混乱,浪费很多时间,本文就帮助大家快速通关环境变量 准备 如果你想一边阅读本文,一边实践,但是没有 Jenkins 服务可用,又想快速尝试,可以应用 Docker 一个命令快速搭建 Jenkins 服务 1 docker containe
大家对 Docker 都应该有了或多或少的认识了,相信大家都是从这两张图来粗旷的理解 Docker 及容器概念的 那我们如何更轻松的理解容器 Container 呢?说白了 Container 就是一个进程 比如我们 run 一个 mongo 的镜像 image 然后我们通过下面命令列举出正在运行的容器 (以下两个命令等同) 1 2 3 4 # 旧命令 docker ps # 新命令 docker container ls 个人建议使用新命令 如果你对上述等同命令有所疑惑,或者好奇动图中的命令自动补全是怎么实现的,以及为什么建议使用新命令,请看 Docker 命令



Copyright 2018-2019 Tanθ's Blog   |   辽ICP备19017651号-1   |     站点总字数: 277.7k 字   |   载入天数...载入时分秒...   |  站点地图   |  站长统计
  总访问量:  次  总访问人数:  人

博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议