自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

顾宇的个人空间

顾宇的技术分享

  • 博客(75)
  • 资源 (7)
  • 收藏
  • 关注

原创 【翻译】函数式编程中的领域驱动设计

原文:https://www.thoughtworks.com/insights/blog/architecture/domain-driven-design-in-functional-programming领域驱动设计 (DDD) 提供了许多技术和模式来控制软件应用程序中的复杂性——即使这些是用函数式编程语言编写的。 不幸的是,用函数式编程语言实现 DDD 可以参考的资源非常有限。 即使...

2022-11-07 10:41:01 147

原创 【翻译】测试替身

原文:https://martinfowler.com/bliki/TestDouble.htmlGerard Meszaros 正在编写《xUnit测试模式》。他遇到的一件尴尬的事情是 stub, mock, fake, dummy 的各种名称的定义,以及人们用来替代测试系统的某些部分的其他东西。为了解决这个问题,他提出了自己的词汇表,我认为这个词汇表值得进一步传播。他使用的通用术语是测...

2022-07-12 09:55:25 189

原创 【翻译】蓝绿部署的起源

原文: http://timothyfitz.com/2009/02/08/continuous-deployment/蓝绿部署的故事,就像经常发生的那样,是关于辅导一个棘手的客户。我领导的构建团队发现测试环境和生产环境之间存在很多差异。(每个测试环境之间也存在差异,但这是另一类模式!)我们认为检查版本的最安全方法是将应用程序一起部署到与实时系统相同的物理机上。 我们的应用正在运行具有“域...

2022-07-12 09:54:04 173

原创 【翻译】持续交付 VS 持续部署

原文: https://continuousdelivery.com/2010/08/continuous-delivery-vs-continuous-deployment/Timothy Fitz 关于持续部署的博客文章(中文版)在我和 Dave 出版《持续交付》一书之前一年多就发表了。 为什么我们选择了不同的名字呢? 是实际上有区别还是我们心血来潮?我们决定把这本书叫做《持续交付》有...

2022-07-11 15:11:26 81

原创 【翻译】持续部署

❝原文: http://timothyfitz.com/2009/02/08/continuous-deployment/❞Alex 已经重构了一些网站后端的代码。当提交这个小任务的代码后,Alex 继续开发下一个特性。当代码部署到生产环境两周以后,这段代码让整个网站宕机。自动化测试没有测试到一个字符导致的拼写错误,连锁故障让人想起了 Twitter 刚刚发布的时候。人们花了8个小时隔...

2022-07-11 11:28:56 88

原创 【翻译】作为演进式架构的微服务架构

原文:https://www.thoughtworks.com/insights/blog/microservices-evolutionary-architecture本文翻译时《演进式架构》已由人民邮电出版社出版。微服务架构风格正在风靡全球。 2015年3月 O'Reilly 举办了第一次软件架构大会,委员会收到的大部分摘要都涉及微服务的某些方面。为什么这种架构风格突然风靡一时?微服...

2022-04-11 20:14:38 596

原创 【翻译】gRPC 的动机和设计原则

原文: https://grpc.io/blog/principles/动机十多年来,Google 一直在使用一个名为 Stubby 的通用 RPC 基础设施来连接数据中心内和跨数据中心运行的大量微服务。我们的内部系统长期以来一直采用今天流行的微服务架构。拥有统一的跨平台 RPC 基础架构可以在整个组织范围内推广效率、安全性、可靠性和行为分析,这对于支持该时期令人难以置信的增长至关重要。...

2022-04-06 09:16:28 570

原创 【翻译】微服务和分布式对象第一法则

本文源自 Martin Fowler 的 Bliki 上 2014 年的文章Microservices and the First Law of Distributed Objects当我写《企业应用架构模式》一书时,我提出了一个我称之为分布式对象设计第一法则:“不要分布你的对象”。最近几个月业界对微服务的热情增加,让一些朋友对在微服务场景下对这一法则产生疑问,并且如果法则仍然成立,为什么我...

2022-04-05 09:30:39 106

原创 【翻译】分布式计算谬误

原文: https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing分布式计算的谬误是L Peter Deutsch 和太阳微系统公司的其他人提出的一组断言,描述了分布式应用程序新手总是做出的错误假设。谬误谬误包括:网络是可靠的;零延迟;带宽是无限的;网络是安全的;网络拓扑不会变化;只有一个管理员;传输成...

2022-04-05 09:28:42 126

原创 采用 Multipass 管理本机虚拟 K8S 集群

在 通过 Vagrant 一键初始化 K8S 集群 之后,发现 VirtualBox 只支持 X86 芯片,对 Apple M1 不支持。加之 CentOS 的支持也将近尾声。而我在捣鼓 Provisioner 脚本的时候总要花大量的时间测试 CentOS 的兼容性,很耗时间。偶然发现 Multipass 可以支持在 Apple M1 虚拟 Ubuntu 实例,效果还不错。所以将 Provisi...

2022-03-30 10:26:47 409

原创 博客主题升级到 Congo 2.0

近期,发现我的博客一直使用的博客主题 Congo 升级到了 2.0 版本。新版本增加了一些新特性,并且和最新的 Hugo 保持一致。具体的升级参考可以参考官方升级说明 https://jpanther.github.io/congo/docs/version-2/upgrade/#paramstoml,这里我仅仅将自己的升级过程做一个简单的记录。由于我之前是下载主题并直接安装到 hugo 的 t...

2022-03-22 11:13:33 131

原创 【翻译】Terraform 最佳实践:模块组合

原文:https://www.terraform.io/language/modules/develop/composition在只有一个根模块的简单 Terraform 配置中,我们创建一组资源并使用 Terraform 的表达式语法来描述这些资源之间的关系:resource "aws_vpc" "example" { cidr_block = "10.1.0.0/16"}reso...

2022-03-22 10:50:39 2903

翻译 【翻译】Kubernetes 部署语言(Kubernetes Deployment Language)

title: “【翻译】Kubernetes 部署语言(Kubernetes Deployment Language)”date: 2022-02-15tags:kubernetes在网上搜索规范化的 K8S 的部署架构图画法时,发现了 Redhat 的一篇博客。觉得非常不错,遂翻译分享之。原文: https://github.com/raffaelespazzoli/kdl介绍这篇博文介绍了 Kubernetes API 对象的图形表示法:Kubernetes 部署语言(简称 KDL.

2022-02-22 09:41:25 143

原创 通过 Vagrant 一键初始化 K8S 集群

起因去年初我开始系统学习 K8S,就想能生成一个集群环境。查看了一下官方文档,步骤很多。网上的一些资源已经过期或者不可用,再加上各种资源的变更和国内不可访问。不得不说,在家按照官方文档搭建一个标准的 K8S 集群真是太难了!所以我就自己构建了一个最小的 K8S 集群环境,放在了我的 provisioner 代码库里。现在这个开源代码库可以自动一键建立一个拥有一个控制节点和两个工作节点的最小K...

2022-02-08 20:34:47 718

原创 采用 GitHub Actions 发布 Hugo 站点

最近把我的博客换成了新版本主题 Congo,并采用了 Github Action 发布我的博客,以下是迁移步骤:备份内容,并做一个全量删除提交采用 Hugo 新建一个新的博客安装 Congo 主题采用 Github Actions 部署博客覆盖配置,而不要修改迁移旧的文章和图片1. 备份内容,并做一个全量删除提交一个博客的核心内容是图片和文章。这些内容在static目录和con...

2022-01-04 14:48:00 469

原创 通过 Github Actions 部署 Mkdocs 文档

Mkdocs 是一个采用 Python 构建轻量级的静态 HTML 在线文档框架,内置部署到 Github Pages 的功能。我用来创建实践指南,用来做个人的知识积累。安装 Mkdocs 以及 Mkdocs 主题Mkdocs 以及主题都通过pip安装,例如我采用的mkdocs-material主题,如下所示:pip install --user mkdocs mkdocs-material...

2021-12-31 18:31:27 606

原创 2021年的总结

2021 年一眨眼就过去了,还没来得及写些什么就结束了。这篇总结在12月初就开始写,每日写一小部分,到12月底写完。总结是一个复杂的过程,工作中的复杂由于有周报就简单些,而生活中缺乏了积累,生活中则没有长进。生活也需要严肃对待。与其上班时认真扮演,下班后打回原型。不如下班后的生活认真一点,工作中则更佳从容。明年开始我会和夫人通过“家庭 OKR”经营家庭,并用“个人OKR”经营自己。按照往年惯例,...

2021-12-31 18:30:56 366

原创 咨询的秘密:当开始做咨询师的时候,就是开始正视自己愚蠢的时候

“你的下一个项目是咨询项目。”在听到这句话之前,我还是一个每天做程序设计的软件工程师(编写代码还是缺乏了“设计”这个精要)。当听到这句话开始,我就开始幻想那些广告中的咨询师:他们都是精英,留着精致的发型,穿着昂贵的西服套装,坐在机场的 VIP 候机厅。在头等舱看着目的地旅游的杂志,享受着空姐的一对一服务,也许偶尔还能和明星以及行业知名企业的领袖坐在一起交谈。住着高档的五星级酒店,享受着...

2021-08-16 19:58:34 197

原创 新连载:咨询的秘密

咨询师是一个神秘的职业好吧,我准备又开了一个新的连载系列,这是一个算是“新坑旧填”。这个系列的起因大概发生在五年前,那个时候我还在 ThoughtWorks 工作(Logo的大小写还是当初的模样)。我在给某个大型客户做咨询,这个客户启动了很多咨询项目(有钱)。其中一个项目,来了一个新入职的同事,他比我年长几岁,和我专注的领域不同,他在他的领域很资深。但并没有咨询项目经验,所以他的导师...

2021-08-12 14:41:27 212

原创 算了,锁定就锁定吧

很久没有在简书写东西了,过去一年都在忙于写自己的书。今年会再翻译一本书。今天回来看简书的内容,发现我之前的文章被锁定了。估计是宣传了公众号,于是我把我的公众号相关介绍内容删去了,再申诉,“千人规模组织级 DevOps 演进的 9 个实践及技巧”仍然不符合要求。我估计是“聘用”这样的字眼含营销意味,所以申诉失败。不知道简书还有哪些规定,未来还会不会增加新的规定。可以关注我的公众号或者个人主页...

2021-03-26 09:27:41 119 1

原创 2019 年的总结

2019 年的总结忘了发了,在这里补上感谢您的关注和阅读。2018 年的总结拖延到了 2019 写,所以 2019 年的绝不拖延到 2020 年。和去年一样,我依然采用看板的方式管理自己的个人事务,年末的时候把自己完成的事情进行一下梳理,最后来看看今年都有哪些收获,这已经是第三年。以下是今年的总结,向您报告:工作经历今年一共交付了两个项目:一个项目是大型研发组织的的 DevOps 转型。...

2021-03-26 09:27:27 77

原创 修复 IntelliJ IDEA 中 Cucumber 6.8.1运行找不到类的问题

我估计这是 Cucumber 插件和 Cucumber 旧版本的版本兼容 Bug,不知道官方什么时候做兼容性修复,我所用的版本是6.8.1。最近在写一个 Spring Boot 做 BDD 的例子,在用 IntelliJ IDEA 中安装了 Cucumber 插件后。运行 .feature 文件,会报以下错误:无法加载主类错误首先,除了在 pom.xml加入cucumber的依赖,...

2021-03-25 17:23:13 865

原创 千人规模组织级 DevOps 演进的 9 个实践及技巧

案例背景在 2018 年年底,我参与了某一个大型产品团队的 DevOps 转型。这个产品的团队分为三个组织:产品业务部门(50 多人),产品 IT 部门(250 多人),以及产品的外包团队(800 多人)。 经过产品化和微服务拆分后,组织开始以独立业务的方向划分。但是,由于之前的组织划分,团队并没有成为一个全功能的团队。而是采用原先的交付模式:业务部门提出需求,然后让 IT 部门...

2019-12-19 13:57:16 303

原创 DevOps 模式:引入 DevOps 顾问

很多企业并不是 DevOps 运动的早期玩家。当开始注意到 DevOps 的时候,想快速达到 DevOps 实践领先企业的效果,会引入有经验的 DevOps 顾问进行快速的转型。然而,短期的 DevOps 顾问合同如果不能帮助团队构建 DevOps 制度和 DevOps 文化,DevOps 转型的效果将随 DevOps 专家的离开而离开,使团队得到“De...

2019-07-13 23:43:00 182

原创 DevOps 模式与反模式索引

我今天把 DevOps 模式和反模式做了一个简单的总结。如果全职写,半年可以写完。如果周更,需要两年,我怕自己烂尾,夜长梦多。自己开的坑,含着泪也要把它填完。DevOps 策略模式模式:定义你的 DevOps反模式:DevOps 教条主义反模式:DevOps 复制者模式:DevOps 评估模式:DevOps 共识反模式:片面的 DevOp...

2019-06-02 20:50:00 418

原创 DevOps模式: 定义你的DevOps

遗憾的是,很少有人真的关心 “DevOps 是什么”,当然其实也不重要。比 DevOps 是什么来说,更重要的是 “DevOps 能做�什么”。据 John Willis 的说法,DevOps 运动的发起人 Patrick Debois 一直拒绝给 DevOps 下定义是一件了不起的事情。 Patrick Debois 他不希望把 DevOps 据为己有...

2019-05-26 18:03:00 369

原创 从星巴克店面运营学习 DevOps

某次在星巴克等咖啡的时候,闲来无事开始观察店员的的工作。可能是出于职业习惯,我开始观察和分析星巴克的工作流程。突然发现星巴克的咖啡交付过程很像一个敏捷软件开发团队的交付过程。后来通过进一步观察和细聊,发现星巴克的店面运营是一个 DevOps 运作的榜样。如果我们把星巴克的店员们看做是一个开发/运维团队,把咖啡的交付看作软件的交付,把店面的基础设施维护和清...

2019-05-10 23:47:00 773

原创 【翻译】微服务安全: 所有应该被问到的问题

本文节选自 Graham Lea 的博客:Microservices Security: All The Questions You Should Be Asking。以下是我的问题列表, 您和您的团队应该向自己询问有关微服务安全性的问题。它旨在用作评估您自己的系统和流程的清单。希望你会发现你已经涵盖了这些问题中的大多数, 但总是有更多的东西需要学习...

2019-03-22 15:59:00 269

原创 软件定义交付宣言(Software Defined Delivery Manifesto)

原文链接:https://github.com/sdd-manifesto/manifesto中文链接:https://github.com/wizardbyron/manifesto软件定义交付宣言(Software Defined Delivery Manifesto)我们认识到, 提供有用的软件塑造了我们的世界。我们认识到,代码是指定精确操作的...

2019-03-12 18:21:00 238

原创 微服务演进中的经验和反思

本文首发于 Gitchat,原文链接:微服务演进中的经验和反思转载请标明出处。大部分微服务的案例,我们往往都只能看到一个结果,很难看到其过程,特别是实践中的弯路。让人有一种“采用就会成功的错觉”。经过前三篇的探讨,我们通过一个成功案例的三方面分析对微服务成功度量、技术演进和组织演进有了一个基本的认识。本文试着把我在客户身上看到微服务落地中那些经验和...

2019-02-17 10:32:00 352

原创 2018 年总结

2018年12月31日 23点50分,我把最后一篇稿件发到 GitChat 上之后,我合上了电脑,准备入睡。这是我 2018 年的个人看板上的倒数第二件事。最后一件事就是这一篇年终总结。受“蔡加尼克效应”的影响,2018年1月1日开始,除了工作时间,剩下的一周所有我都在构思这篇年终总结该如何写。然而,几次起笔和修改都不能让我满意。简单总结如下:2018...

2019-01-07 22:33:00 177

原创 成功微服务实施的组织演进

在 成功微服务实施的技术演进里我们介绍了案例中微服务架构演进的技术背景,本文介绍一下这期间发生的组织演进。可以说,一个合适的组织结构是驱动微服务架构成功落地的必要能力。在我们如何衡量微服务实施的成功里面,我们介绍到系统的规模会因为维护成本达到极限。这个维护成本中最主要的一个部分就是人员成本和管理成本。而在这个案例里,我们可以看到两个特征:管理层的缩减和生...

2018-12-31 15:58:00 201

原创 从第19期技术雷达看 DevOps 的发展趋势

2018年下半年的技术雷达发布了。看过的朋友可能和我的感觉一样,会发现大部分条目都是和微服务和 DevOps 相关,但这些条目散落在不同的象限里。本文将这些散落在不同象限的条目采用以下 5 个主题进行重组:DevOps 合作新实践云计算新实践容器新技术微服务及其误区安全特别要提出的是,这期技术雷达采纳了 2018 年的 DevOps 报告 ...

2018-12-23 09:28:00 281

原创 成功微服务实施的技术演进

在上一篇文章《我们如何衡量一个微服务实施的成功》里,我们介绍了衡量一个微服务改造成功的七个特征,分别是:很多个代码库,以及一一对应的流水线。应用可以随时部署,并不需要等待。大量的自动化测试。更少的变更事故。更低的发布风险。可以按需扩展。更多的自动化手段。而本篇文章所介绍的案例,也符合这篇文章中对“微服务实施成功”的定义。不过,我们将通过...

2018-12-12 21:16:00 326

原创 我们如何衡量一个微服务实施的成功

本次介绍的案例来自于我曾经服务过的客户 R,到今天已经5年整了。2013年的国庆后,我加入了客户 R 的其中一个产品团队,这个团队有三个项目:一个项目做日常维护工作(BAU),这是一个长期项目。一个项目开发一些新的功能。另外一个项目就是将现有的 Java 遗留系统进行改造,把这个 Java 应用的一部分功能从 ESB 和内部调用的方式改成用 Sinatra...

2018-11-11 10:35:00 309

原创 讨论微服务之前,你知道微服务的 4 个定义吗?

关于“什么是微服务”的问题,其实并没有一个统一的认识。这些年在不同的场合里和不同背景的朋友都在探讨微服务。但聊得越多,就越发现大家聊的不是同一回事。和 DevOps 一样,“微服务”也是一个内涵十分广泛的词。本文从“Microservice“这个概念的源头出发,总结了 4 个常用的微服务定义。James Lewis 原始版的微服务 6 大特征这个版本起源于2012年,这里首先要注意年份,那...

2018-09-16 17:21:50 1179

原创 讨论微服务之前,你知道微服务的 4 个定义吗?

关于“什么是微服务”的问题,其实并没有一个统一的认识。这些年在不同的场合里和不同背景的朋友都在探讨微服务。但聊得越多,就越发现大家聊的不是同一回事。和 DevOps 一样,“微服务”也是一个内涵十分广泛的词。本文从“Microservice“这个概念的源头出发,总结了 4 个常用的微服务定义。James Lewis 原始版的微服务 6 大特征这个版本起...

2018-09-14 21:47:00 612

原创 公有云(AWS)上的生产环境架构优化案例和迁移套路

本文是我在 gitchat 上的文章云计算生产环境架构性能调优和迁移套路总结(以 AWS 为例)的后半部分,本文对原文有所修改和总结。交流实录请点击这里。在AWS 上的生产环境性能分析案例一文中,记录了我对客户应用生产环境的一次性能分析。接下来,我们要根据所发现的性能问题进行架构优化,以提升可用性和性能。同时,这篇文章也总结了应用迁移到云上的套路。设计...

2018-08-07 11:13:00 2200

原创 公有云(AWS)上的生产环境性能分析案例

本文是我在 gitchat 上的文章云计算生产环境架构性能调优和迁移套路总结(以 AWS 为例)的前半部分,本文对原文有所修改和总结。交流实录请点击这里。案例背景案例是一个泰国网站的生产环境(请脑补一句“萨瓦迪卡”,为了叙述方便,下文中均以"萨瓦迪卡"指代这个网站。)“萨瓦迪卡”是一个 采用 Wordpress + MySQL搭建的应用。这个遗留系...

2018-08-07 10:57:00 1135

原创 一怒之下,我写了一个开源流量测试工具

继一怒之下我写出了 Vivian(详见“测试驱动开发 Nginx 配置”)之后。又在等待客户审批流程的时间里自己写了一个流量测试工具。背景客户的站点是通过 Wordpress 搭建的,这个应用放在一台 EC2 虚拟机上。奇葩的是,这个应用的 MySQL 数据库也在这台虚拟机上,之前做过一次 RDS 迁移,失败了,原因未知。看起来这个应用和数据库就像筷子...

2018-07-05 23:50:00 934 6

OpenSVM 1.0.3 Beta DLL 补丁

OpenSVM 1.0.3 Beta DLL补丁,解压到OpenSVM安装目录下就可以了。

2009-04-04

NCURSES-Programming-HOWTO 中文版(第二版) PDF文档

NCURSES-Programming-HOWTO 中文版(第二版) 的PDF文档。等了好长时间才和大家见面,不好意思,以前的下载链接不能使用了。谢谢大家的支持和鼓励。

2008-04-16

经典版俄罗斯方块C#实现源代码

这是我自己用C#实现的俄罗斯方块的代码,看起来还比较粗糙,希望和大家交流下,交个朋友。<br><br>献丑了~~~呵呵

2008-04-13

OpenSVM-1.0.3Beta 源代码

OpenSVM-1.0.3Beta 源代码

2008-04-13

OpenSVM 1.0.3Beta

OpenSVM的最新稳定版。

2008-04-13

OpenSVM 1.0.0 beta源代码

OpenSVM 1.0.0 beta的源代码,请用Visual C++ 6.0直接打开workspace。OpenSVM源代码遵照BSD协议发布。

2007-09-25

OpenSVM 1.0.0 Beta

OpenSVM是一个基于libsvm的图形化支持向量机研究开发系统,它支持大多数libsvm的功能。并提供可视化的操作。

2007-09-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除