自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蔡超的专栏

架构师之路

  • 博客(44)
  • 资源 (3)
  • 收藏
  • 关注

原创 Docker真的被Kubernetes放弃了吗?

引子随着Kubernetes 1.20的发布,关于“kubernetes不再支持Docker!Docker不能用了!以前的Docker镜像不能用了!”等声音不绝于耳,事实真的是这样吗?“Docker support in the kubelet is now deprecated and will be removed in a future release.The kubelet uses a module called "dockershim" which implements C...

2020-12-20 18:34:37 979

原创 非技术随笔--“长期主义”真相与“复利”谎言

引子“长期主义”,“复利谎言” 是最近商业及个人成长类文章中最热门的话题。近期又读了几篇推荐的相关好文,但做为一个彻底的唯物主义者,尤其深信邓小平同志的“实践是检验真理的唯一标准”,由于对文章作者不熟悉,所以对于文中的很多观点只能保持审慎怀疑的态度。不过在文章的阅读过程中的确让我联想到了一些曾经深深触动过我的,来自真正成功实践者(目前已是全球财富的前两名)的感悟以及在个人成长方面的切身体会。长期与不变性作为一个曾经的Amazon老员工,每当在Starbucks听道人们讨论对于下一个风口的预.

2020-12-20 18:30:19 337 1

原创 高效并发模式 -- Half-Sync/Half-Async vs. Leader-Follower

并发是提高系统吞吐量的关键手段,但是构建高性能的并发系统并非易事。通过利用经典的模式可以使我们站在巨人的肩上,Half-Sync/Half-Async和Leader-Follower正是两种最经典的并发模式。在实际中模式学习的难点往往在于好像看懂了,但是却总不能在正确的场景中使用。为了使大家能更好的理解和在实际中正确的使用这两种模式,下面将通过构建高性能网络通信的场景(Java NIO)来对模...

2020-02-22 15:07:14 534

原创 云原生定义解析—不可变基础设施 (immutable infrastructure)

云原生技术的不断发展,2018年,CNCF扩展了云原生技术的定义,以下是云原生技术的新定义:“云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师们能够轻松地对系统作出频繁和可预测的重...

2020-01-03 21:31:59 7803

原创 通过Kubernetes架构来重温一些经典理念

除了利用kubernetes来高效的管理我们的集群,通过分析和学习Kubernetes的内部架构,也会让我们重温很多架构设计的经典理念并看到他们在实际中的合理运用,为我们的架构设计工作带来启迪。

2019-08-30 21:43:20 1899

原创 掌握Go语言要跨越的几个误区

课程链接:https://time.geekbang.org/course/intro/160

2019-03-13 21:10:34 353 1

原创 在Amazon Tech(o) 上的主题演讲--软件致简之道

来自资深软件架构师的经验和感悟分享。演讲者蔡超拥有十多年软件开发经验,曾任天融信安全管平台架构师,HP软件架构师等,现为亚马逊中国资深工程师.

2015-01-31 09:05:58 1288

原创 Spring OSGI 快速入门中文教程

厌倦了那些厚书(特别是那些为了赚钱而特意写厚的书),很多时候这些书让我们找不到技术要点,甚至丧失了学习的兴趣,而最终变成那些拒绝新技术的“顽固派”。其实掌握技术的最佳方式是实践,在实践中不断的深入学习。本教程旨在帮助哪些已经掌握了OSGi和Spring技术基础的开发人员,迅速将Spring DM应用于实际开发,这是一份入门教程,不求全面,但求简单。并请配合本教程的实例代码一同学习。下载教程和示

2008-04-03 17:42:00 1783

原创 让GPT学会使用工具,拓展技能

我们都清楚GPT的训练数据基于过去的信息,且或许并未涵盖您所需场景的所有相关数据。如何让GPT使用实时数据在你的场景中工作,并完成一些语言模型完成不了的事情,如:生产图片,启动机器。

2023-04-22 21:01:07 1091

原创 云端俭省之道 — 竞价实例篇

云端构建大规模系统的挑战云计算平台“按需获取”的特性使得用户可以随时获取所需计算资源,实现计算资源与业务规模的动态匹配。云计算时代计算资源已不再是构建大规模系统的瓶颈,多数情况下成本成为了企业在构建大规模应用时的最大挑战。如何降低云端系统的成本降低云端系统的成本,最核心的就是要充分利用云计算的特点,尤其是“按需获取”和“按使用付费”。例如,根据业务量变化来及时伸缩计算资源就是常见...

2020-04-17 15:06:49 1172

原创 是时候转向 Go 语言编程了

根据 3 月 2 日,Hired 发布的《2019 软件工程师状态》报告中指出,具有 Go 经验的候选人是迄今为止最具吸引力的,平均每位求职者会收到9 份面试邀请。二、三、四分别是 Scala、Ruby 和 TypeScript。让人费解的是 Java 仅排在第九,平均每位求职者只能收到 6.5 份邀请。C++、C 和 C# 的邀请次数更低,垫底的 R 语言使用者甚至平均只能收 3 份。...

2019-03-09 21:48:59 447

原创 简化你的微服务开发

简化微服务开发,旨在减少你80%的工作量开源项目https://github.com/easierway/service_decorators Simplify microservice developmentWhat’s the most complicated part of implementing a microservice except the core busines...

2019-01-03 22:22:18 484

原创 Simplify Transfer Learning (简化迁移学习)

深度神经网络在很多领域中都体现出了令人吃惊的能力。但是在实际工作中应用深度神经网络时,我们往往会遇到以下问题:1. 缺乏标识数据。由于深度网络中存在大量权值,所以需要用大量的数据进行训练,通常是百万级的。然而实际工作中这样的标识数据往往有是非常有限的。2. 难以确定适宜的网络结构。目前深度学习技术尚处于发展阶段,没有成熟的理论及方法来根据不同问题确定网络细节。例如,我们知道卷积神经网络在图像识别中较为有效,但我们并不知道适用于不同问题的网络结构,如层数。迁移学习(Transfer learning)

2017-10-29 22:19:07 399

原创 Moving to “Micro-service” and “Serverless”

本文是作者在AWS Summit 2017中的演讲总结,是亚马逊开发团队对于Microservice及Serverless架构的真实经验分享。

2017-08-24 09:55:54 537 1

原创 解密JVM GC

最受欢迎的Amazon培训视频之一。详细介绍不同GC的工作原理,讲解GC过程分析和调优的基本方法。并讲解了如何编写GC友好的代码

2016-04-17 10:42:17 3054 1

原创 XPath implementation in Clojure

The functions to support using XPath in Clojure.Source Code 1 ;The code was implemented by [email protected] 2 ;You could use the code anyway, but should keep the comments 3 ;Created 2012.1

2012-10-15 10:15:40 981

原创 The Clojure Program To solve N Queens Problem

The following program is about solving N-Queens problem (http://en.wikipedia.org/wiki/Eight_queens_puzzle) by Clojure. If you have the better solution in Clojure or Haskell, welcome to provide your so

2012-08-05 23:20:40 1459

原创 JBehave in Practice

ATDD (Acceptance Test Driven Development) is the extension of TDD, which helps us deliver exactly what the customer wants. Now ATDD has already been the hot spot in the software development world. There are several variations of ATDD including BDD, EDD and

2011-02-26 14:02:00 1647

原创 TDD Tips

How to design the testable software? You may always find some best practices about designing for scalable, extensible or maintainable. To be testable, the best way should be TDD. Followings are some tips from my real practices on TDD.

2011-01-09 17:29:00 1753

原创 弹性编程原则

1 SRPSRP(Single Responsible Principle), 单一职责原则,这是面对的最基本原则,也是实现弹性设计的最基本原则。每个类或接口定义应该只包含一种明确的职责,同时仅有一种原因会导致这种定义的修改。一个复杂的类或接口的定义包含多个责任,很容易使你的设计失去弹性,很多因素都会导致这个类或接口的变更,由于它含有多种职责,这就意味着它是多种服务的提供者,会有多种依赖于

2009-09-14 20:38:00 1168

原创 DSL的实现要点(2)

 实现外部DSL与上一篇中所提及内部DSL不同,使用者不是通过API调用来使用DSL,而是通过我们定义的特定语法的领域语言来使用DSL。1 XML形式的DSL脚本文件process name="Auto-Door">      state name="Open">            transition event="time-out" next_state="Cl

2009-08-25 16:32:00 1145

原创 DSL的实现要点(1)

引言DSL(domain-specific language)并不是什么新的概念和技术,但是目前它已成为了一个技术热点,近期各种类型的技术交流或研讨会上你都可以看到关于DSL的主题。DSL似乎也在一夜间成为了大师们关注的焦点(Martin Fowler,Eric Evans等等)。应用DSL可以有效的提高系统的可维护性(缩小了实现模型和领域模型的距离,提高了实现的可读性)和灵活性,并且提供

2009-08-24 15:55:00 2175

原创 Spring多数据源解决方案

在很多大型应用中都会对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性。而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时的请求及系统状态来动态的决定将数据存储在哪个数据库实例中,以及从哪个数据库提取数据。详细内容参见我的另一Bloghttp://www.blogjava.net/chaocai 

2009-08-24 12:04:00 1065

原创 Double Dispatch模式

本文介绍了常见面向对象语言(Java,C#等)OverLoad对于运行时执行的方法邦定的局限,并且如何通过Double Dispatch来实现运行时行为邦定。 1 根据对象来选择行为问题 public interface Event {} public class BlueEvent implements Event { } public class R

2009-02-19 21:04:00 1609

原创 基于Spring DM的WEB应用开发

 Spring DM 1.1.x的最大特性便是它可以支持在其中部署WEB应用,我使用后感觉这是个很酷的特性,我甚至觉得用这种方式开发基于OSGi WEB应用比使用Spring DM Server更好,至少目前你可以获得更好的便携性(可以在多个Spring DM支持的OSGi平台上运行),并且Spring DM Server并没有提供更多的企业应用支持。不过对于刚使用Spring DM进行W

2008-12-22 17:32:00 2378

原创 OSGi实现动态特性的关键模式

 OSGi平台为我们提供了强大的动态特性,通过分析我们可以发现这些动态特性的实现与很多常用的设计模式相关,了解其中原理直接将这些模式用于我们的应用开发,也可以有效地实现动态特性。1 Broker模式:实现服务提供者与服务使用者的分离及解耦。Bundle通过所能提供的服务将自己注册至Framework,调用者通过Framework查找所需的服务。Bundle的服务注册是实现服务自动发现的基础。 2

2008-10-15 21:48:00 1057

原创 DAO模式最佳实践

 DAO看似是一个非常简单的模式,但这个模式却十分重要,它可以帮助我们实现持久化逻辑和业务逻辑的分离;它可以帮助我们实现对多种持久化实现的支持。同时,DAO模式并没有看起来这么简单,要真正发挥它的威力需注意的方面很多,而这些方面常常被大家忽略,以下是本人总结的一些最佳实践。1 不要在DAO上控制事务的边界应该在Façade层控制事务的边界,这样可以提高DAO的复用性,使它适用于不同

2008-06-24 20:28:00 1358

自己实现IoC,AOP容器

Mini-Container 开发者手册(Mini-Container Beta 0.9)下载地址:http://www.blogjava.net/Files/chaocai/mini-container-beta-0.9.rar 源码下载http://www.blogjava.net/Files/chaocai/mini-container-beta0.9-src.rar...

2008-06-02 20:34:45 112

原创 自己实现IoC,AOP容器

         Mini-Container 开发者手册(Mini-Container Beta 0.9)下载地址:http://www.blogjava.net/Files/chaocai/mini-container-beta-0.9.rar  源码下载http://www.blogjava.net/Files/chaocai/mini-c

2008-05-30 20:14:00 1681 1

原创 Spring OSGI 快速入门中文教程

厌倦了那些厚书(特别是那些为了赚钱而特意写厚的书),很多时候这些书让我们找不到技术要点,甚至丧失了学习的兴趣,而最终变成那些拒绝新技术的“顽固派”。其实掌握技术的最佳方式是实践,在实践中不断的深入学习。本教程旨在帮助哪些已经掌握了OSGi和Spring技术基础的开发人员,迅速将Spring DM应用于实际开发,这是一份入门教程,不求全面,但求简单。并请配合本教程的实例代码一同学习。下载教程和示

2008-04-03 17:42:00 1652

原创 分层模式中的常见问题

引言分层结构是目前复杂应用系统开发时普遍使用的模式,软件中层之间的依赖关系约束是比较宽松的,并不要求上层仅可以依赖于直接下层,而是上层可以依赖于它的所有下层。设计中我们会把各种系统的各种组件映射至不同层中,而在我所接触的一些实际项目中设计人员在映射这种组件和层间的关系时经常无意中破坏了层结构的依赖关系约束。图表 1 典型分层结构设计中的常见问题问题一:数据传输对象(DT

2008-03-16 17:04:00 1570

原创 EJB3使用注意

http://dev2dev.bea.com.cn/blog/chaocai/200710/12_459.html朋友们,记得帮我投上您宝贵的一票,谢谢!http://dev2dev.bea.com.cn/bbs/ext/dev2devperson/ 

2007-11-19 09:27:00 1017

原创 我的另一个Blog

http://dev2dev.bea.com.cn/blog/chaocai/ 

2007-11-10 12:01:00 856

原创 黑板模式的常见实现方式

 黑板模式是一种常用的架构模式,应用中的多种不同数据处理逻辑相互影响和协同来完成数据分析处理。就好像多位不同的专家在同一黑板上交流思想,每个专家都可以获得别的专家写在黑板上的信息,同时也可以用自己的分析去更新黑板上的信息,从而影响其它专家。在实际应用中常见的实现模式有:A 利用数据库利用数据库充当黑板,不同的应用共享数据库中信息,并且可以更新数据信息。这也是最常见的实现方式。特

2007-11-06 21:16:00 4147 1

原创 SWF一个简单工作流引擎

 你是否已经被像JBPM,XFLow等那样的复杂编程和配置搞头昏脑胀;被他们所依赖的大量jar和容器搞得不知所措。如果这样就试试笔者开发的这个简单工作流引擎吧,配置和编程都很简单,也不依赖任何容器。马上会推出支持spring的版本。下载地址:http://www.blogjava.net/Files/chaocai/swf-beta-1-bin.zip内附用户手册(SWF开发设计:蔡超,北京天融信

2007-10-08 11:01:00 2229 1

原创 懒对象加载模式

 问题随着轻量级持久化框架的流行(如:Hibernate,JDO,JPA),领域对象取代了传统的DTO直接作为值对象,而在这种架构应用的开发过程中,开发人员常会遇见这样的异常LazyInitializationException。上述问题是由于Hibernate对于领域对象的关系域对象采取了懒加载策略所导致的(即在关系域被访问时才真正加载创建这些相关对象,Hibernate提供的懒加载策略

2007-09-20 21:37:00 1174

原创 Spring集成XFire开发WebService

 Spring是目前最流行的JavaEE Framework,但是使用Spring的Spring-WS开发WebService却十分繁琐。XFire是一个简化WebService开发的开源项目,通过Spring和XFire的结合可以大大简化基于Spring Framework的应用中的WebService开发。Spring和XFire可以通过多种方式结合,下文介绍的是笔者常用的一种简单而实

2007-09-17 18:03:00 747

原创 Spring构建应用系统的最佳架构与模式实践(1)

蔡 超SCEA,SCBCD,MCSD,IBM RUP Specilist北京天融信软件架构师SUN,Microsoft培训中心特邀高端教师常年提供架构咨询服务[email protected] ,010-82776427 引言在使用Spring构建应用时和采用EJB构建应用一样同样也存在不少常用模式和最佳实践,当然很多Core J2EE Pattern

2007-05-07 14:51:00 950

原创 “桥模式”与“极限分割”

蔡 超SCEA,SCBCD,MCSD北京天融信软件架构师SUN,Microsoft培训中心特邀高端教师常年提供架构咨询服务[email protected] ,010-82776427很多设计模式的书中都用这样的语言来描述”桥模式”(GOF 95) –“把抽象与实现分开”(”Prefactoring”, Ken Pugh,2006),这样的描述实在有些让人很难

2007-03-05 09:44:00 928

原创 EJB3使用注意(1)

1 java.rmi.RemoteException由于EJB3中的远程接口没有间接或直接的基础Remote接口,也不需要抛出RemoteException异常,所以客户端所接受到的都是EjbException。2 ServiceLocator模式由于EJB3中省去了Home接口,所以如果使用ServiceLocator模式会出现异常,同一JNDI每次获得都会是同一对象即便是有状态的Bean3

2007-02-04 21:14:00 729

Learn Haskell

通俗易懂的Haskell书籍, 图文并茂

2012-10-23

Apache Felix - A Standard Plugin Model

介绍如何使用Felix开发OSGi应用。第一部分还包含了对于OSGi技术的介绍。最后总结了最佳实践。

2009-08-12

blazeds_devguide

BlazeDS Developer Guide If this guide is distributed with software that includes an end-user agreement, this guide, as well as the software described in it, is furnished under license and may be used or copied only in accordance with the terms of such license. Except as permitted by any such license, no part of this guide may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, recording, or otherwise, without the prior written permission of Adobe Systems Incorporated. Please note that the content in this guide is protected under copyright law even if it is not distributed with software that includes an end-user license agreement.

2009-02-17

空空如也

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

TA关注的人

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