• 博客(462)
  • 收藏
  • 关注

原创 我是如何成为一名全栈工程师的?

这篇文章讨论了全栈开发的好处和如何开始转型,以及在需求分析和架构设计中如何分层和隔离业务变化。作者分享了不同类型知识的学习方法和针对语言和框架的练习建议,以及通过结对编程和TDD加速学习的技巧。

2023-08-30 11:14:57 704

原创 如何利用链路追踪快速定位问题

随着微服务应用数量的增加,服务与服务之间的调用关系变得复杂,导致系统问题定位困难。链路追踪可通过唯一ID标记请求的整个调用链路,记录每个节点,快速定位问题。

2023-08-25 11:30:53 155

原创 咨询师需要具备同理心

合作的建立在于双方有共识和目标,共识不断扩大,目标一步步达成,双方产生信任,但这个过程可能会充斥着冲突和争议,最有效的方法就是建立理解和联结,也就是同理心。

2023-08-23 11:42:52 140

原创 DDD诊所——聚合过大综合症

“DDD诊所”是Thoughtworks DDD社区的一项活动,通过对同事们在实施DDD过程中遇到的问题进行分析和解答,共同提高开发水平。我们将其中一些典型案例整理成文供大家参考。之后也会考虑在适当的时候将这一形式对外部开放。

2023-08-18 14:21:45 148

原创 如何编写技术文档?

所谓编写技术文档,基本意味着以结构化的方式组织文档,传达出清晰明确的信息,来让用户正确的使用你的软件产品。结构化文档不仅仅是当前最为主流的文档组织方式,在可预见的未来也会如此。

2023-08-16 11:49:36 190

原创 你有“搜商”吗?

互联网信息检索是一个非常重要的能力。这里,我整理了一些常用的信息检索材料,希望能帮助到写作和需要在网络中获取数据的人们。

2023-08-11 11:42:20 185

原创 如何建立你的离岸交付团队?

这里有四种离岸交付合作模式:Team Extension Model,Hybrid Collaboration Model,E2E Collaboration Model和Onshore/Offshore Collaboration Model。每种模式都有其优势和挑战,需要根据组织自身情况选择合适的模式。其中E2E Collaboration Model是一种全面的离岸交付模式,适用于团队成熟度较高、业务模块相对独立的情况。

2023-08-09 12:04:04 178

原创 如何高效使用Gherkin

Gherkin语言有时候又被称为小黄瓜语言,它是第一种有着类似自然语言可读性的业务语言,用来描述业务行为,而不必关心具体的实现细节。它也是一种领域特定的语言,用来定义Cucumber格式的测试。

2023-08-04 12:01:17 201 1

原创 低碳 Web 实践指南

本文探讨了如何构建低碳 Web 应用来应对气候变化和碳排放问题。文章指出,通过精简压缩 Web 应用、降低数据传输量以及优化应用性能等措施,可以减少碳排放。文章还强调了在软件开发生命周期中落地相关举措的重要性,并提供了一些测试工具和实践经验。

2023-08-02 15:03:33 283

原创 简化Java单元测试数据

冗杂繁复的数据初始化代码会影响单元测试本身的代码质量,造成单元测试编写成本高、易读性差、易维护性低等问题。

2023-07-28 12:43:31 1237

原创 什么是多运行时架构?

随着微服务架构在大规模组织中成熟落地,服务化体系规模的不断扩张也带来了一些典型问题:服务如何有效治理和接入?团队如何高效协作?本文介绍了多运行时架构解决上述问题的思路,并通过几种开源方案探讨了在实现中遇到的挑战,最后提出了对演进的设想及展望。本文介绍了多运行时架构的概念以及一些实现方案,并讨论了目前的实现中存在的限制与挑战,最后设想了一种未来可能的架构形态。

2023-07-27 12:10:30 1089

原创 数据工程中的任务调度实践

数据工程的任务调度应该以“日志驱动”作为解决方案。而日志驱动的重要部分“日志解耦”正是提高系统健壮性的利器。

2023-07-24 15:10:17 125

原创 如何避免AWS的高额账单?

尽管Serverless架构在某些方面表现出色,但在当前轰轰烈烈的“微服务”进程中,它仍然不是一种主要的选择。除了由于本身特性导致的使用场景受限外,我想乏善可陈的关于Serverless最佳实践的总结也是一个重要的因素。

2023-07-21 11:06:48 430

原创 为什么企业要做大规模敏捷?

软件工程里一个重要的指标就是“可用的软件”,所以如何在提高代码质量,最大程度地减少软件中的Bug同时,平衡软件迭代速度与交付效率是我今天想跟大家讨论的问题。

2023-04-26 14:59:58 848 2

原创 数据离奇丢失案件的侦破与思考

数据出现问题相对比较严重,团队都会着急去排查原因,不过,在开始排查之前,有更重要的事情要做。我认为问题排查也分两个步骤:清晰识别问题、定位问题。

2023-04-21 09:21:54 534

原创 结对编程的十个场景

本文以真实项目实践总结为基础,选取了结对编程中的典型场景,叙述了在敏捷交付项目中,开发者在实践结对编程时经常遇到的挑战。

2023-04-19 09:00:00 566

原创 浅谈兼容性测试

兼容性测试是一种软件测试,用于确保构建的系统/应用程序/网站与其他各种对象(如其他网络浏览器、硬件平台、用户、操作系统等)的兼容性。这种类型的测试有助于了解产品在特定环境中的表现。

2023-04-17 10:38:49 392

原创 从“高内聚,低耦合”说起

做设计时,优先以满足条件的模式为指导,当模式无法满足设计时,以对应层次的原则作为指导。当低层原则无法指导设计时,向高层依次寻找原则。当新的设计方案能解决某一类问题时,它可能就是一种新的模式。

2023-04-13 18:00:00 685

原创 Mongo初遇回忆录

MongoDB 是一个操作简捷,面向文档存储的数据库。本文以一种独特的视角揭示了它的实践体验。

2023-04-11 10:00:00 582

原创 探索云原生安全测试

由于不同时代所使用的架构和技术的差异,云时代面临着一系列安全测试挑战。然而,传统的安全测试手段和工具由于其固有的缺点,无法很好地适应云时代的安全测试需求。

2023-04-07 11:18:39 413

原创 浅谈基于深度学习的漏洞检测

深度学习在图像处理、视频实体识别、自然语言处理等领域中已经取得了长足的发展和突出的成果,这自然驱使着安全研究员们将神经网络引入到安全领域中。

2023-04-06 10:44:50 787

原创 如何简单实现ELT?

ELT非常适合为数据湖仓或数据集市提供数据管道,并且可以用更低的成本,根据需求,随时对大量数据进行分析。本文主要介绍如何使用Airflow和dbt实现ELT流程,并与snowflake集成的方法。

2023-03-29 09:55:15 688

原创 Web性能评价指标

遇见用户抱怨性能时,不要先入为主地判定性能差,逐个排查系统可能有的性能问题,优化非最佳实践。而应该理性地以用户为中心,收集真实用户数据,衡量系统性能好坏。

2023-03-24 09:51:53 460

原创 当谈论引用透明时,我们在说什么

谈论到引用透明(Referential Transparency),我们都会聊函数式编程(FP),会聊Effect和Side Effect,会聊纯函数(Pure Function)等,这些概念相互关联,有时甚至彼此引用定义,能够真正理解它们的含义非常重要。

2023-03-22 15:22:33 336

原创 用技术应对气候危机

随着气候灾害,极端天气的频繁出现,关于气候变化的讨论已经越来越多。各国政府,各行各业也逐渐将可持续发展提上议程。软件作为日常工作生活中不可或缺的一部分,它和气候变化之间有什么关系呢?我们作为软件从业者,又可以做些什么来促进气候目标的达成呢?本文将从软件对可持续发展的影响出发,举例介绍软件如何从三个方面降低碳排放。然后就其中一个方向-软件自身碳排放进行介绍,再到绿色软件的定义,度量和原则。最后提出作为软件从业人员现在可以做些什么。那么到底什么是绿色软件呢?

2023-03-15 10:48:38 332

原创 一次有效沟通的组成

一个合格的职场人,所需要具备最重要的三项技能:沟通能力,时间管理能力和团队合作能力,其中沟通能力又是作为基础当中的基础。

2023-03-09 14:11:45 384

原创 AI测试的迷思

AI系统本身的发展还不足以很好地替代人在测试分析和测试设计方面的工作,导致AI实现的自动化测试的准确性以及可维护性比人工的方式更差,不过它的时间和成本优势却远远超过人工,这个也是其越来越火的根本原因。所以在测试领域,AI需要更加努力,才能真正替代人的工作。

2023-03-08 11:06:06 506

原创 Tech Lead如何引导团队成员解决问题?

在团队成员向Tech Lead寻求帮助时,Tech Lead首先要做的是明确提示期望,识别能力差距,其次是引导团队成员自己得出解决方案,最后制定培训计划以提升团队能力。

2023-03-03 18:00:00 604

原创 好代码的五个特质

如何衡量代码好坏?SOLID采用了一组原则来定义好的代码,但是原则更像是规则,要么符合,要么不符合。而软件开发过程非常复杂,其间充满了平衡和妥协,事实上并没有一种非黑即白的规则可以适用。

2023-03-01 08:42:41 225

原创 我希望早点知道的关于成长的建议

这篇准备了很久,又临时起意,而终于“完成”了的短文,旨在将一些我觉得重要的建议讲给渴望成长,又不知从何做起的同学们。这里分享的几个小的点,做起来难度应该都不算大,如果能持之以恒,我相信你可以看到自己成长的速度。

2023-02-24 09:40:25 298

原创 在DDD中建立领域模型

我们应该基于领域概念设计领域模型,然后再采用合适的模式降低领域模型的复杂度,进一步增加领域模型的表达能力。

2023-02-22 09:22:01 362

原创 使用契约测试得不偿失?试试契约先行开发

在一定场景下,使用契约先行的合作方式可能更高效,比如契约足够简单直接,开发使用的技术适用于生成的代码,开发过程中已经有足够的集成测试或组件测试时,契约先行可以缩短团队间的反馈闭环,减少等待时间,提升开发效率。

2023-02-17 09:26:34 404

原创 代码的简单设计五原则

简单设计五原则中,测试要确保通过(满足需求)、重复应该被消除、元素没必要就不要存在,这几条看起来相对具体,而且能见字如意。

2023-02-15 09:49:22 504

原创 测试左移之需求质量

测试左移之所以重要,是因为我们要在缺陷引入的最初阶段就发现它,把缺陷扼杀在摇篮里,而不是等着它像雪球一样越滚越大。

2023-02-10 18:33:46 717

原创 被遗漏的度量指标

度量软件开发生产力的指标维度和数量,需要取得平衡,既要少到能恰好代表软件开发生产力关键要素,也要多到恰好能提供用于持续改进的上下文。

2023-02-08 10:58:18 473

原创 前后端分离的陷阱

前后端分离本质上是技术的分离,而不是人员的分离。团队要不要分取决于你如何设计你的架构,也取决于你的业务模式,所服务的产品形态、团队能力、工程实践的成熟度。

2023-02-03 09:42:27 397

原创 怎样做好需求评审?

Bug 对于软件来说显而易见,需求则不同,不适当的需求往往并不明显,而且暴露的很晚。错误的需求会增加工程师的额外工作量,因此怎么评审需求合理性需要慎重考量。

2023-02-01 09:40:05 121

原创 关于性能测试需要知道的

什么是性能测试,性能测试的目的是什么、解决什么问题,性能测试都有哪些类型,相关指标有哪几类?性能测试流程是什么?有哪些工具推荐?本文一一揭晓。

2023-01-20 08:00:00 1597

原创 结对编程踩坑指南

结对编程也只是程序员工作中会用到的一项技能而已,那么只要是技能,通过时间的堆积,去磨炼,去思考,就会有所提升。

2023-01-18 10:02:20 511

原创 敏捷是知与行的功夫

敏捷的功夫是知行的功夫,实践要做,理论也要懂,丢了一个便是全丢。唯有在实践中丰富我们的认知,又用认知来指导实践,反复循环,培养既抽象也具体的知识,才能做到真正的敏捷。

2023-01-13 10:16:48 408

空空如也

空空如也

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

TA关注的人

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