Terry

Terry

技术

TransmittableThreadLocal 使用

TransmittableThreadLocal 使用

1. TransmittableThreadLocal 是什么? TransmittableThreadLocal 是一个 Java 类,它是 ThreadLocal 的扩展版本。它的主要作用是在多线程环境下,将某个变量的值从一个线程传递到另一个线程。与普通的 ThreadLocal 不同,Tran
291
0
0
2024-04-16
从 0 开始,Vue 的搭建与开发

从 0 开始,Vue 的搭建与开发

最近刚好在学习 Vue 开发相关知识,发现这篇文章可以做为基础入门操作手册,标记以作记录。 1 Vue 介绍 Vue.js 是一套构建用户界面的 “渐进式框架”。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整
115
0
0
2024-03-20
微服务下分布式事务模式的详细对比

微服务下分布式事务模式的详细对比

本文最初发表于 RedHat 博客网站,转载至 InfoQ 中文站翻译。 作为 Red Hat 咨询架构师,我有幸参与了大量客户项目。虽然每个客户都面临自己特有的挑战,但是我发现其中有一些共同点。大多数项目都想知道如何协调对多个记录系统的写入。要回答这个问题,一般会涉及长篇累牍的解释,包括双重写入(
79
0
0
2024-03-18
从 Paxos 到 Raft,分布式一致性算法解析

从 Paxos 到 Raft,分布式一致性算法解析

最近在看分布式一致性原理的书籍,对后台架构的发展有了更全面的认识。后台服务架构经过了集中式、SOA、微服务和服务网格四个阶段,目前互联网界大都使用微服务和服务网格。服务从集中式、中心化向分布式、去中心化不断演进,服务也变得更灵活,能够自动扩缩容、快速版本迭代等。但是分布式架构也将集中式下一些问题放大
94
0
0
2023-10-11
对抗软件复杂度的战争

对抗软件复杂度的战争

您的文章详尽地讨论了软件复杂度的来源、影响以及应对策略,非常具有深度和广度。软件复杂度是软件开发过程中一个非常重要的主题,它涉及到软件工程、项目管理、团队管理等多个方面。您提出的观点和分析非常到位,以下是我对您文章的一些反馈和讨论: 1. 您提到的本质复杂度和偶然复杂度的概念非常重要。在软件开发过程中,我们需要明确哪些复杂度是问题域本身带来的,哪些是解决方案带来的。这有助于我们在设计系统时做出更明智的决策,避免过度复杂化系统。 2. 在微观层面控制软件复杂度方面,您提到的使用函数式思维和注重单元测试的方法非常实用。这些实践有助于我们编写更清晰、更易于维护的代码,从而提高代码质量和研发效率。 3. 系统架构对软件复杂度的影响也是非常重要的。一个好的系统架构可以有效地控制软件的复杂度,避免系统的过度膨胀和混乱。而组织结构和沟通模式对软件架构的影响也是不可忽视的,这也是康威定律所揭示的事实。因此,在构建软件系统时,我们也需要考虑到组织层面的因素。 4. 关于技术战略的选择,您提到通过购买成熟的商业产品来降低系统复杂度是一种有效的策略。这可以避免我们陷入自己研发和维护的泥潭,将更多的精力投入到增加业务价值的工作上。但是,我们也需要注意到,过于依赖外部产品可能会带来其他风险,如供应商锁定、数据安全等问题。因此,在选择技术战略时需要进行全面的考虑和权衡。 5. 在谈论软件道德观时,您提到了高质量软件中间产物的交付对于研发团队的重要性。这实际上是软件工程中一个非常重要的理念,即注重软件质量的文化。这种文化可以促使团队成员更加注重代码质量、注重用户体验、注重系统的可维护性,从而不断提升软件的质量和用户体验。 6. 最后,您提到的有良知的架构师特质非常有价值。一个有良知的架构师会始终选择做正确的事情,为公司和团队创造真正的价值。这也是我们在软件开发过程中需要不断追求的一种精神境界。 总的来说,您的文章非常有深度和广度,涵盖了软件复杂度的多个方面和应对策略。我认为这对于软件工程领域的从业者来说非常有价值。同时,我也期待看到您在未来关于软件工程领域的更多文章和见解。
63
0
0
2023-08-04