1. 国内好用的maven镜像库

    使用maven给自己写代码时一到打包编译的时候都要下载好半天,国内访问官方的maven库非常慢。曾经有OSChina的maven镜像库,可惜现在莫名其妙的关闭了,最近无意间发现了阿里的maven镜像库,速度非常快,感谢阿里。 找到~/.m2目录下maven的settings.xml,如果没有则从maven的安装路径下的conf目录拷贝一份到~/.m2目录,在其中的mirrors节点下添加以下配置即可: <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central<…

    on maven maven镜像

  2. Agile常见术语

    术语名称 术语解释 接收标准 一组可测试的标准,用以确定某个工作项的目标是否已达成;通常关联至一个产品列表项 敏捷(敏捷方法) 日益流行的一种管理软件开发和项目的方式;描述了一种迭代的、增量的、价值驱动的、写作的和客户聚焦的工作方式;起源为一组价值观和原则,是Scrum、Kanban防范、XP编程和DSDM等敏捷方法家族的根基;又见“敏捷价值观和原则” 敏捷教练 教练是在敏捷方面拥有渊博知识和实践经验的人;可能已经在几家公司做过一个或多个敏捷项目,并取得了不同程度的成功;通常负责引导或辅导一个组织使用敏捷 敏捷价值观和原则 敏捷宣言所定义的4项价值观:- 个人和互动高于流程和工具- 工作软件高于理解文档- 客户协作高于合同协商- 变化响应高于计划遵循12项原则:- 通过早期和连续型的高价值工作交付满足“客户”- 大工作分成可以迅速完成的较小组成部门- 识别最好的工作是从自我组织的团队中出现的- 为积极员工提供他们需要的环境和支持,并相信他们可以完成工作- 创建可以改善可持续工作的流程- 维持完整工作的不变的步调- 欢迎改变的需求,即时是在项目后期- 在项目期间每天与项目团队和业务所有者开会- 在定期修正期,让团队反映如何能高效,然后进行相应地行为调整- 通过完成的工作量计量工作进度- 不断地追求完善- 利用调整获得竞争优势…

    on agile 敏捷开发 敏捷流程

  3. 领域驱动设计

    什么是领域驱动设计 传统的软件设计中,一般存在以下问题: 业务人员只懂业务,不懂架构和设计; 架构人员专注于设计看似美好的架构; 开发人员想当然的去实现业务逻辑; 在整个软件生命周期中的每一个环节和每一个参与的角色都是割裂的,互相拥有自身对系统的理解,如同盲人摸象般,这种割裂会带来很大的沟通成本。由于任何沟通都是一种信息的转换,而任何转换带来的都是信息的丢失,因此系统最终的实现跟原始的需求可能会差之甚远,甚至导致系统的失败。为了解决这个问题Eric Evans提出了Domain-Driven Design领域驱动设计,简称DDD。 领域驱动设计是一套综合软件系统分析和设计的面向对象建模方法。领域驱动设计的核心是领域模型,所谓领域模型,是关于某个特定业务领域的软件模型,一般通过对象模型来实现,这些对象同时包含了数据和行为,并且准确的表达了业务含义。 领域驱动设计思想的关键之处在于将人们在建模时从关注于将需求转换为数据改变为专注于业务,通过使业务人员、架构师和开发人员一起协作,让团队中的每一个人都关注于业务的抽象,从而将业务问题简化,做出更符合业务场景的战略设计和战术设计。 领域驱动建模、数据库建模和Smart UI的区别 传统的软件开发中一般使用数据库驱动建模,在软件开发的早期,从业务需求的抽象中建立符合数据库(一般是关系型数据库)的数据的组织格式,在代码中建立Java Bean,包含一些getter、setter方法,通过调用这些getter、setter方法来实现业务逻辑。甚至一些系统为了利用数据库的事务来保证业务的原子性,将业务逻辑通过数据库的存储过程来实现。 Smart UI是将大量的业务逻辑直接放到UI层,…

    on DDD 领域驱动设计

  4. Java中的比较器

    本文基于JDK 1.8.0_45 在Java中我们经常需要对数据进行排序,比如Collections.sort(list)或者Arrays.sort(array)。对于Java中的基本数据类型可以很简单的使用<,>,来进行比较,比如 int[] array = new int[]{2, 5, 3}; Arrays.sort(array); for (int i : array) { System.out.print(i + ", ");// 2, 3, 5, } 但是对于对象而言使用只是进行比较对象的内存地址是否一样,如果重写了equals方法则可以使用自定义的规则进行判断两个对象是否一样。 Object o1 = new Object(); Object o2 = new Object(); System.out.println(…

    on java JDK8 Java8 函数式编程 functional programming 比较器 Comparator Comparable

  5. Jenkins简介

    什么是Jenkins Jenkins是一个开源软件项目,是世界上最流行的自动化工具,并且提供了成千上百的插件来支持打包、部署等事情,可以用于自动化持续集成、自动化持续部署等。 安装 在jenkins官网下载对应的操作系统的包,按步骤安装即可。 OS X MAC机器可以很简单的使用以下命令来安装: brew cask install jenkins Docker 最简单的安装方式当属Docker,使用以下命令即可安装: docker pull jenkins 以下命令即可启动jenkins,端口是49001,/var/jenkins_home是jenkins在本机的挂载目录: docker run -d -p 49001:8080 -v $PWD/jenkins:/var/jenkins_home -t jenkins 初始化 在浏览器中打开localhost:port,按步骤操作即可。管理员密码可以从jenkins的log中找到,如果是docker安装可通过以下命令查看log: docker ps…

    on jenkins 持续集成 持续部署 CI CD pipeline