正文内容加载中...
posted @ 2020-03-03 09:29 李福春 阅读(307) 评论(1) 推荐(1) 编辑
正文内容加载中...
posted @ 2019-08-16 15:01 李福春 阅读(160) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2019-08-16 15:00 李福春 阅读(1) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2015-09-18 03:25 李福春 阅读(3547) 评论(0) 推荐(1) 编辑
正文内容加载中...
posted @ 2014-07-01 10:23 李福春 阅读(41677) 评论(0) 推荐(5) 编辑
正文内容加载中...
posted @ 2014-06-27 14:53 李福春 阅读(36566) 评论(2) 推荐(2) 编辑
正文内容加载中...
posted @ 2014-03-13 17:02 李福春 阅读(909) 评论(1) 推荐(1) 编辑
正文内容加载中...
posted @ 2014-03-11 21:11 李福春 阅读(630) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2014-03-10 17:48 李福春 阅读(594) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2014-03-10 17:36 李福春 阅读(491) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2014-03-07 15:57 李福春 阅读(243) 评论(0) 推荐(1) 编辑
正文内容加载中...
posted @ 2014-03-07 15:05 李福春 阅读(2715) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2014-03-05 14:16 李福春 阅读(14565) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2014-03-05 09:47 李福春 阅读(650) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2014-03-03 14:43 李福春 阅读(5918) 评论(1) 推荐(0) 编辑
正文内容加载中...
posted @ 2013-11-20 17:52 李福春 阅读(518) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2013-11-20 14:48 李福春 阅读(326) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2013-06-18 18:35 李福春 阅读(4455) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2012-10-05 12:12 李福春 阅读(5833) 评论(4) 推荐(3) 编辑
正文内容加载中...
posted @ 2012-07-18 23:17 李福春 阅读(171) 评论(0) 推荐(0) 编辑
摘要:纸上得来终觉浅,实操一遍吧! 把所有开发的后端服务先在打成镜像,传到私有镜像仓库; 然后在任意的远程机器拉取镜像,然后可采用docker或者docker-compose的方式运行,本节先按照docker的方式运行; 后面补充docker-compose和k8s的方式运行镜像; 问题 回答 where 阅读全文
posted @ 2020-12-30 22:23 李福春 阅读(142) 评论(0) 推荐(0) 编辑
摘要:背景 harbor即docker的私服;管理公司内部输出的镜像制品; 是VMware公司中国团队为企业用户设计的镜像注册服务器,用途:存储和分发docker镜像; 在官方的docker registry服务中增加了安全,访问控制,审计,管理页面,发现,高可用等功能; 安装 找一台linux机器:提前 阅读全文
posted @ 2020-12-30 00:06 李福春 阅读(182) 评论(0) 推荐(2) 编辑
摘要:假如你使用的是spring-cloud-alibaba微服务技术栈 单个服务独有配置文件 即去除应用程序的状态,配置统一外部化管理,方便进行水平的伸缩。 集成步骤: 假如我有一个应用app-design; 1,引入依赖: <dependency> <groupId>com.alibaba.cloud 阅读全文
posted @ 2020-10-09 23:50 李福春 阅读(719) 评论(0) 推荐(0) 编辑
摘要:程序员,如果系统突然报了一个空指针异常,你肯定像吞了一只苍蝇一样尴尬。 那么如何在日常开发过程中降低NPE? 问题 回答 现状 返回空值会出现大量的空指针异常 目的 改进方法的返回值,降低出现空指针异常 实现路径 方法返回空集合或者空数组 跟我来! 背景 下面的方法看起来很常见。 private f 阅读全文
posted @ 2020-09-15 23:39 李福春 阅读(325) 评论(0) 推荐(0) 编辑
摘要:作为程序员的你,代码中最多的就是各种方法了,你是如何对参数进行校验的呢? 背景 大部分的方法和构造函数对传入的参数值有一些限制,比如:常见的索引值必须是非负数,对象引用不能为空。 你应该使用清晰的文档来标注所有的这些限制,然后在方法体开始的地方强制他们检查。 应该在错误发生的时候尽快的检查出来,这是 阅读全文
posted @ 2020-09-14 23:35 李福春 阅读(602) 评论(0) 推荐(1) 编辑
摘要:上图为常见的台式机,程序员,你看了有啥启发? 台式机生产线 我的maven代码工程 xxx 显示器 xxx-web 主机 xxx-app 键盘 xxx-domian 鼠标 xxx-infrastration 台式机 xxx-all.jar 虽然不能完全对应的上,我拿开源的dubbo描述一下我的问题。 阅读全文
posted @ 2020-09-05 01:26 李福春 阅读(157) 评论(0) 推荐(0) 编辑
摘要:上图为常见的台式机,程序员,你看了有啥启发? 台式机生产线 我的maven代码工程 xxx 显示器 xxx-web 主机 xxx-app 键盘 xxx-domian 鼠标 xxx-infrastration 台式机 xxx-all.jar 虽然不能完全对应的上,我拿开源的dubbo描述一下我的问题。 阅读全文
posted @ 2020-09-05 01:18 李福春 阅读(304) 评论(0) 推荐(1) 编辑
摘要:作为一个程序员,假如让你绘制当前正在开发的项目的架构图,你会怎么绘制? 背景 先来同步一个理念。架构图的作用是什么? 我回答一下: 提供了一个简单的方法给到开发团队(从开发工程师,测试工程师,架构师,测试,项目经历,产品经理,交互设计师,用户)能够更简单的描述和沟通软件架构,让团队每个人脑子里的架构 阅读全文
posted @ 2020-09-03 23:32 李福春 阅读(1506) 评论(0) 推荐(5) 编辑
摘要:作为程序员的你,能胜任运维的工作吗? 背景 那么运维主要解决那些问题呢? 答:1.部署,但是大部分工作可自动化; 2.维护产线系统稳定; 作为程序员的你,清晰自己的程序如何部署上线非常重要,出问题了才知道如何修复。 作为程序员的你,设计的时候就要规避部署带来的问题。 作为程序员的你,如果能胜任运维, 阅读全文
posted @ 2020-09-01 20:46 李福春 阅读(281) 评论(0) 推荐(1) 编辑
摘要:背景 作为程序员,跳槽或者被跳槽都是寻常事,那么当你成功入职一家新公司,你会如何快速适应新工作? 即快速的融入团队,尽快发挥价值。 按照基本的思考框架。先来思考一下。 思考问题 回答问题 where are we?现状 刚入职,对业务了解很少 where are we going?目的 快速上手,至 阅读全文
posted @ 2020-08-31 21:36 李福春 阅读(211) 评论(0) 推荐(0) 编辑
摘要:假如我们有一个叫shiny的项目,它是由一个程序Shiny-Server 和一个数据库 Shiny-DB组成的; 简单结构图如下: 但是很多时候,现实开发团队是这样的: 我们的项目shiny项目的运行环境是有多套的, 我们擅长解决代码层面的问题。 版本控制工具git非常普遍而且好用 我们有持续集成和 阅读全文
posted @ 2020-08-30 21:54 李福春 阅读(253) 评论(0) 推荐(0) 编辑
摘要:上图是一张普通地图,最刺眼的就是边界? 非常好奇地图绘制工程师是如何描绘如此弯曲多变的边界的?强制行政区域还是人群历史原因自然的人以群分? 我们再换个视角,对工程师或者架构师来说,微服务的边界如何划分呢? 基于DDD设计方法论中的概念 限界上下文 来划分微服务的边界; 背景 架构师小李正在团队推行D 阅读全文
posted @ 2020-07-22 22:15 李福春 阅读(474) 评论(1) 推荐(0) 编辑
摘要:聚合就是归类的意思,把同类事物统一处理; 聚合根也就是最抽象,最普遍的特性; 背景 领域建模的过程回顾: 那么问题来了? 为什么要在限界上下文和实体之间增加聚合和聚合根的概念,即作用是什么? 如何设计聚合? 按照一般的研究和学习思路,先弄懂概念,然后结合实际例子理解概念,然后再回答提出的问题。 聚合 阅读全文
posted @ 2020-06-07 17:13 李福春 阅读(1182) 评论(0) 推荐(0) 编辑
摘要:图中是一个别墅的模型,代表实体,可以真实的看得到。那么在DDD设计方法论中,实体和值对象是什么呢? 背景 实体和值对象是领域模型中的领域对象,是组成领域模型的基础单元,一起实现实体最基本的核心领域逻辑。 那么问题来了: 1, 他两在领域模型中的作用是什么? 2,在系统中跟代码模型和数据模型是怎么对应 阅读全文
posted @ 2020-06-04 11:26 李福春 阅读(487) 评论(1) 推荐(0) 编辑
摘要:图中是暗黑领域,非常牛逼的技能。 背景 DDD中出现的名词: 领域,子领域,核心域,通用域,支撑域,限界上下文,聚合,聚合根,实体,值对象 都是关键概念,但是又比较晦涩,在开始DDD之前,搞清楚这些关键概念名词非常的重要。 那它们作用体现在哪里呢? 领域-子领域 领域是: 从事专门活动或者事业的范围 阅读全文
posted @ 2020-05-30 23:39 李福春 阅读(270) 评论(0) 推荐(0) 编辑
摘要:背景 名词解释 如果你的团队目前正是构建微服务架构风格的软件系统,问自己两个问题? 软件架构演进 软件架构大致经历了从单机架构,集中式架构,分布式微服架构,程序的层次图如下所示。 单机架构 特点如下: 1, 面向过程的设计方法; 2, 结构为CS; 3,程序的层次分两层,即UI层和数据库层; 4, 阅读全文
posted @ 2020-05-30 15:49 李福春 阅读(638) 评论(3) 推荐(0) 编辑
摘要:简介 scalable open financial architecture stack , 可扩展开放的金融架构栈; github: https://github.com/sofastack/sofa-boot 快速构建金融级别云原生架构的中间件。 特点: 开放,金融级别,云原生; 微服务体系组 阅读全文
posted @ 2020-05-26 22:56 李福春 阅读(380) 评论(0) 推荐(0) 编辑
摘要:cola扩展点使用和设计初探 封装变化,可灵活应对程序的需求变化。 扩展点使用 步骤: 定义扩展点接口,类型可以是校验器,转换器,实体; 必须以ExtPt结尾,表示一个扩展点。 比如,我定义一个云枢的组织结构的扩展点接口,消息发送扩展点,二开扩展点,webapi的rest接口扩展点点。 定义扩展点接 阅读全文
posted @ 2020-05-25 23:23 李福春 阅读(368) 评论(0) 推荐(0) 编辑
摘要:导弹拦截,精准防御。 背景 拦截器:在不修改应用程序业务逻辑的情况下,一组基于事件的可插拔的逻辑处理链; 类比springMVC的拦截器: 这些都是通过配置拦截器,插入到应用程序中,实现可插拔的修改业务逻辑; kafka在0.10.0.0版本中开始引入拦截器。分为生产者拦截器和消费者拦截器,类似责任 阅读全文
posted @ 2020-05-06 14:09 李福春 阅读(355) 评论(0) 推荐(0) 编辑
摘要:如何设计出核心功能稳定,业务功能不断扩展的软件系统,我想到了微内核架构。 定义 微内核架构又叫做插件架构,是面向功能进行拆分的可扩展架构。 比如:Eclipse插件,Linux ; 架构图 插件管理 插件注册表机制:名字,位置,加载时机; 插件连接 指的是插件如何连接到核心系统。 插件间通信 插件之 阅读全文
posted @ 2020-04-27 20:08 李福春 阅读(210) 评论(0) 推荐(0) 编辑