版本的故事(五)闯关旅程

摘要: 对于代码的任何一次修改都会形成一个“版本”,其中的大部分版本是没有必要发布的,它们只是普通的提交。当开发人员完成一个里程碑计划,就在这个提交上创建一个基线(具体操作在 Git 平台上创建一个 Tag),标记这个特殊的提交,形成一个正式的“版本”。 一些研发团队使用“持续集成”开发过程,对每一个提交, 阅读全文
posted @ 2020-11-01 22:00 小陆 阅读(353) 评论(0) 推荐(0) 编辑

从技术谈到管理,把系统优化的技术用到企业管理

摘要: 很多技术人员在职业上对自己要求高,工作勤奋,承担越来越大的责任,最终得到信任,被提拔到管理岗位。但是往往缺乏专业的管理知识,在工作中不能从整体范围优化工作流程,仍然是“个人贡献者”的工作方式,遇到问题自己上,经常耽误了本职工作。于是翻了很多书,看了很多文章,学习了很多“为人处世的艺术”和“企业发展的 阅读全文
posted @ 2020-09-17 14:55 小陆 阅读(12839) 评论(32) 推荐(58) 编辑

版本的故事(四)版本号有多重要

摘要: 上一篇谈了怎样给版本取个好名字,也就是版本号。说明了“语义化版本”的命名规范,也说明了这一种命名规范在依赖管理中发挥的重要作用。今天继续谈语义化版本号,说明一下这种命名方式的重要性,以及对研发和运维过程的影响。 开发人员每一次向下游工序交付一个版本,都必须为这个版本编一个号码,这就是版本号(也称作版 阅读全文
posted @ 2020-09-13 18:45 小陆 阅读(1306) 评论(0) 推荐(1) 编辑

版本的故事(三)取个好名字

摘要: 当我们发布一个版本的时候,需要为这个版本取一个名字,也称作版本号。本文说明编制版本号的方法。 版本编号有很多不同的方法,其中最常见的是“三段式”版本号,我们使用的操作系统、开发工具、编译器、库函数、中间件,很多都使用这种版本编号方式。比如:Zookeeper 3.4.13、Maven 3.6.2、T 阅读全文
posted @ 2020-09-02 22:26 小陆 阅读(570) 评论(0) 推荐(1) 编辑

版本的故事(二)版本的诞生

摘要: 研发人员不断修改代码,在代码库上形成一个 Commit 链条,每一个 Commit 记录了所有文件在某一时刻的状态,这个状态称为一个“快照”。在所有提交中,我们认为其中一些提交具有特殊的意义,比如我们完成了里程碑任务,这时可以发布版本了。对于这些特殊的提交,我们创建一个标签(Tag)与之关联。这个标 阅读全文
posted @ 2020-08-30 11:11 小陆 阅读(478) 评论(0) 推荐(1) 编辑

版本的故事(一)为什么要写版本的故事

摘要: 随着组织的发展,开发人员越来越多,很多公司开始建立专门的技术部门开发共用组件。能不能做出好用的共用组件,技术能力当然是必不可少的。但是经历了很多项目的生生死死,越来越觉得版本管理也是一个十分重要的因素。很多基础组件做的时候红红火火,做了两年就恍恍惚惚了。有很多老的版本漂流在外,新的项目和老的项目开始 阅读全文
posted @ 2020-08-29 21:17 小陆 阅读(457) 评论(0) 推荐(3) 编辑

程序配置的原则和实践以及 Spring Boot 支持方式

摘要: 原则 软件需要在不同的环境中部署,代码是保持不变的,但是不同的运行环境存在差异,所以需要使用配置适应不同的环境。比如: 数据库,Redis,以及其他 后端服务 的配置; 第三方服务的证书,如 oAuth、支付接口 等; 每份部署特有的配置,如域名等。 配置的原则是:代码与配置要严格分离,不允许在代码 阅读全文
posted @ 2019-01-07 14:23 小陆 阅读(797) 评论(0) 推荐(0) 编辑

全文检索基本概念

摘要: 全文搜索1.索引过程索引过程如下: ┏━━━━━┓ ┏━━━━┓ ┏━━━━━━┓ ┃ 预处理 ┃┈┈→┃ 分词 ┃┈┈→┃ 反向索引 ┃ ┗━━━━━┛ ┗━━━━┛ ┗━━━━━━┛ 2.预处理2.1 去标点标点符号对文本检索没有作用,可以去除。2.2 去停止词停止词一般是虚词、语气词。极度高频词对检索没有意义。英文停止词一般有:a an and are as at be b... 阅读全文
posted @ 2016-08-18 11:05 小陆 阅读(2342) 评论(0) 推荐(0) 编辑

Elasticsearch升级1.5版本暴露jdk的bug

摘要: 把测试环境的Elasticsearch升级到1.5.1版本,启动的时候报错: [root@node2 elasticsearch-1.5.1]# bin/service/elasticsearch startStarting Elasticsearch…Waiting for Elasticsear 阅读全文
posted @ 2016-04-24 22:15 小陆 阅读(786) 评论(0) 推荐(0) 编辑

以后还是要多写点博客

摘要: 我还在搞技术呢。这几年也搞了点别的,最后才发现还是技术工作自己最喜欢(其实搞别的也很失败,没被老板开掉都应该谢天谢地)。如果有一个工作能让我想事情想的睡不着,半夜爬起来写点东西,只有写代码了。既然自己喜欢,也能给公司挣钱(公司也能给我发工资),还是继续干吧。人应该干自己擅长的事情。 前两天把自己写的 阅读全文
posted @ 2016-04-24 18:15 小陆 阅读(340) 评论(1) 推荐(1) 编辑

DateTime类型的一个Bug

摘要: 先说一个历史故事,关于我们现在的阳历:现行的公历是格利戈里历法,这个历法的是1582年教皇格利戈里根据恺撒大帝引进的算法改进的。它采用的是闰年制也就是现行的制度,不过有一个需要注意的地方就是,这个历法并不是连续的,中间缺少了11天。1752年9月2日之后的那一天并不是1752年9月3日,而是1752年9月14日。也就是说,从1752年9月3日到1752年9月13日的11天并不存在。抹掉这11天是由... 阅读全文
posted @ 2009-06-04 17:32 小陆 阅读(996) 评论(1) 推荐(0) 编辑

完全命令行.NET开发

摘要: 很久没写日记了,今天走一个Windows系统的GUI太好用了,以至于很多Windows开发者都不知道还有更好用的命令行模式。命令行模式可以把自己经常使用的功能写成脚本,一个命令就可以全部工作执行掉,实在是广大程序员同志的福音啊。NAntJava的开发者都知道Ant,但是.net的开发人员却很少有使用NAnt的。大部分程序员同志都习惯了按下F7,然后把生成物复制到部署文件夹下面,注册dll,修改配置... 阅读全文
posted @ 2008-04-01 14:22 小陆 阅读(5176) 评论(16) 推荐(1) 编辑

.NET初学者架构设计指南(四)Model-View-Controller

摘要: Model-View-Controller简称为MVC,这是图形界面(GUI)应用程序的一种架构形式。Model是业务领域层,比如我们在前面两篇里面提到的Account、Entry、Bill、Invoice之类的对象,这些类构成了一个电信账务系统的业务领域层;View就是用户界面;Controller是指用户界面和业务对象之间的控制器,控制器的作用是从业务对象中获取数据显示到用户界面上,并且从界面... 阅读全文
posted @ 2007-03-13 09:05 小陆 阅读(15454) 评论(34) 推荐(5) 编辑

.NET初学者架构设计指南(三)设计模式

摘要: 在上一篇里面,我们初步了解了OO设计,OO设计的最独特之处在于他看待需求的方式。用这样的方式,我们不需要急于确定软件需要实现哪些流程、设计哪些功能点、制作哪些画面,而是要关注需求中一些更加基本的概念。首先根据这些概念开发出一些零件,然后把这些零件组装起来实现需要的功能。用这样的方式,我们不需要一开始就去知道所有的业务需求,只需要知道一些比较重要的需求,就可以开始开发了。这样开发出来的程序不仅可以实... 阅读全文
posted @ 2007-02-15 17:15 小陆 阅读(13285) 评论(13) 推荐(3) 编辑

.NET初学者架构设计指南(二)OO设计初次见面

摘要: 我使用OO技术第一次设计软件的时候,犯了一个设计者所能犯的所有错误。那是一个来自国外的外包项目,外方负责功能设计,我们公司负责程序设计、编码和测试。 第一个重要的错误是,我没有认真的把设计说明书看明白。功能点设计确实有一些问题,按照他们的设计,一个重要的流程是无法实现的。于是我在没有与投资方沟通的情况下,擅自改动了设计,把一个原本在Linux系统上开发的模块改到了Windows系统上。结果流程确实... 阅读全文
posted @ 2007-01-25 00:10 小陆 阅读(16819) 评论(32) 推荐(3) 编辑

.NET初学者架构设计指南(一)Hello world的时代

摘要: 中学的时候,学校里开设了电脑课。当时的电脑还是一种比较希罕的东西,学校里的电脑一共就十几台,还专门找了一个大厅摆放这些机器。厅里面铺着厚厚的地毯,整天都拉着重重的窗帘。每次上课前一天,我们需要沐浴更衣,剪好指甲。上课时大家都穿上鞋套,排好队伍,列队进入机房。然后各位同学坐在座位上,在老师的指挥下,拿出一张五英寸的软磁盘,磁盘里安装着DOS操作系统,插入电脑的A驱动器。然后依次打开显示器、主机电源,... 阅读全文
posted @ 2007-01-10 20:44 小陆 阅读(16281) 评论(41) 推荐(2) 编辑

软件的逻辑层次

摘要: 基本层次软件的逻辑结构可以划分为下面四个基本层次:从下往上依次是:1:基础设施层——这个层次是纯技术层次,解决的是系统的物理问题,比如database gateway、网络通信、对象容器……这个部分与业务需求关系不大,是系统的物理条件。2:business对象——在这个层次上,业务要素出现了,业务领域中的概念在这里实现。比如一个航运公司的系统,这里就应该有航线、航班、座位、... 阅读全文
posted @ 2006-12-19 12:37 小陆 阅读(6977) 评论(6) 推荐(0) 编辑

无痛苦的软件维护——被遗忘的需求

摘要: 先说一个小笑话。有一个生产队队长,他对专家说:“现在我们生产队的地越来越多,牛越来越忙不过来了。我想要这么一种牛,他吃的草和普通牛一样多,但是干的活是普通牛的十倍。”专家说:“这种牛是可以造出来的,现在有基因工程。”队长说:“好吧,你给这造几头这样的牛。”于是专家找到了生物实验室,让生物实验室的人搞一个基因工程,把牛造出来。于... 阅读全文
posted @ 2006-11-13 12:08 小陆 阅读(3903) 评论(16) 推荐(0) 编辑

无痛苦的软件维护——文档和代码

摘要: 程序维护的时候经常遇到两个困难:1、不知道这段代码是实现什么功能的(code —— function);2、不知道这个功能是实现什么需求的(function —— business)。解决第一个问题是比较容易的,大家都是搞技术的,一头扎进代码里去,看上几十分钟,通常就能明白:原来这段代码是从数据库里面找到前三个月一直处于停机状态的号码,然后把这些号码放到一个叫做QUIT_USER的数据表里面去。第... 阅读全文
posted @ 2006-11-03 16:00 小陆 阅读(10869) 评论(13) 推荐(0) 编辑

NGOSS的一点简单概念

摘要: NGOSS(Next Generation Operational Support Systems)是由TMF(Tele Management Forum)提出的,他用于电信领域,是构建下一代OSS/BSS系统的框架。TMF提供了技术中立构架(TNA)作为NGOSS解决方案的技术构架,这样就把NGOSS建立成了一种标准,这个标准与实现他的技术相互独立。TMF还提供了一组测试方法,用于验证解决方案是... 阅读全文
posted @ 2006-09-27 15:45 小陆 阅读(5055) 评论(4) 推荐(0) 编辑