Go 语言的“魔法”时刻:如何用 -toolexec 实现零侵入式自动插桩?
本文永久链接 – https://tonybai.com/2026/01/19/unleashing-the-go-toolchain 大家好,我是Tony Bai。 “Go 语言以简洁著称,但在可观测性(Observability)领域,这种简洁有时却是一种负担。手动埋点、繁琐的初始化代码、版本升级带来的破坏性变更……这些都让 Gopher 们痛苦不已。 ...
本文永久链接 – https://tonybai.com/2026/01/19/unleashing-the-go-toolchain 大家好,我是Tony Bai。 “Go 语言以简洁著称,但在可观测性(Observability)领域,这种简洁有时却是一种负担。手动埋点、繁琐的初始化代码、版本升级带来的破坏性变更……这些都让 Gopher 们痛苦不已。 ...
每次看完《程序员》杂志都会有些新的收获,这次看的是《程序员》2005年第4期,顺便把一些阅读过程中产生的想法记录了下来。 [软件建模,大势所趋] 看完微软、IBM、Borland等公司的最新动态,感觉软件建模是大势所趋,以前虽然也有众多建模工具,但是由工具支持得不好,建模的各个阶段彼此脱节,使用户体验(user experience)很差。随着Microsoft VSTS(Visual Studio Team System)的发布在即、随着Borland的ALM(Application Lifecycle Management )工具及基于Eclipse的产品计划的实施,相信在不久的将来软件建模会有一个很大的改观。 ...
微软又推出新语言了!最近在csdn上围绕着C-Omega和G#的话题有很多。每当我们看到一门新语言诞生时,特别是诞生在微软这样的软件帝国中,很多人都会冒出一身冷汗并大喊“Oh,My God! How fast the technology is going, I can not catch it up!” after that they still have to learn these new languages. 当今软件行业的两大主流平台Microsoft的.NET和Sun、IBM以及开源组织的支持的Java平台。抛开技术细节,从技术大方向来说两个平台除了竞争之外,在技术上呈现出一种融合的趋势。微软新推出的这两种语言就是一个很好的例证。众所周知在Java界AOP这种概念正在迅速的占领着Java开发者们的思维领地,几个著名的开源组织也都发布了自己的AOP product,如JBoss AOP,Spring AOP,eclipse组织接纳AspectJ等。另外XML->Object , Object->XML以及ORM等技术也蓬勃发展。相比之下软件帝国微软的.net的步伐似乎有些慢了。C-Omega和G#的出现仿佛给生存在.NET平台下的人们带来了些生气。我们看到了.NET向Java学习的态度。其实Java 5.0的发布又何尝不是一种学习的结果呢,例如annotation、enhanced for loop grammar等。 ...
看了透明发表在《程序员》杂志2005年第一期上的“动态代理的前世今生”,让我不仅了解了“动态代理”这门技术,更让我知道了一段Java技术的发展史。带着对Rickard Oberg的钦佩之情,怀着对Rod Johnson敬仰之义我踏上了动态代理再思考之路。 ...
AOP的核心概念是关注点,我开始关注AOP。 一、Why AOP? a) AOP一般观点 一般在开发系统时,我们可以大致的把系统的需求分类为核心模块级需求和系统级需求。很多系统级需求一般来说是相互独立的,但它们一般都会横切许多核心级模块。以一个电信领域的短信网关系统为例,系统的核心级需求是短信的收发,话单处理等,而其系统级的需求包括日志,校验以及性能问题等。像日志这种系统级的需求就横切短信收发、话单处理等几乎所有网关核心级需求。虽然横切需求会跨越多个模块,但目前的技术倾向于使用一维的方法学来处理这种横切需求,把对应需求的实现强行限制在一维的空间里。这个一维空间就是核心模块级实现,其他横切需求的实现被嵌入在这个占统治地位的空间,换句话说,需求空间是一个n维空间,而实现空间是一维空间,这种不匹配导致了糟糕的需求到实现的映射。 ...
论坛上有人评价Java在过去的2004有两大值得称赞的技术发展,一个是Java在IOC模式上的成熟应用,再就是Java的AOP框架。 一、好消息 2005年一月份传来好消息,AspectJ与AspectWerkz合力打造AOP框架,两个开发团队将合力开发一个全新的面向方面编程(Aspect-Oriented Programming,AOP)平台,在其中融合双方的长处和经验。这两家都是业界重要的开源AOP实现,不过走了不同的技术路线:AspectJ一直坚持“预编译+源码生成”,AspectWerkz则是“元数据+运行时织入”的代表。关于两种技术路线、两种产品的争论一直是AOP社群的热点话题,如今两个开源组织决定彻底解决这个困扰。两家合并之后的第一个产品将是AspectJ 5,其中既有AspectJ风格的、基于语言扩展的AOP,也有AspectWerkz风格的、基于XML(和JSR-175 annotation)的AOP。随后,双方还会继续融合各自的长处和经验,努力提供一个完善而统一的AOP平台。 ...
大家都是对软件充满无限激情的人,大家都致力于能开发出能被大家所广泛接受和使用的软件。可是激情归激情,我们还得脚踏实地。项目遇到了障碍,我们需要改变思路。 ...