自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

架构未来

架构即未来,未来需架构

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

原创 程序员沟通offer的4个基本原则

你需要就一份新工作进行沟通时:比如你的薪水、福利,或者我个人最喜欢的每周工作时间缩短等,当公司问你“你想要多少?”或者“这是我们的报价,你说呢?”最后关于薪资的谈话可能是最伤脑筋的部分,但谈判过程开始得要早得多。这意味着你可以进入最后的对话,为自己的成功做好准备,同时也会感到更少的压力。实现这一点的方法是遵循某些基本原则,我将在本文中介绍这些原则。我将以薪资谈判为例,但同样的原则也适用于缩...

2019-12-03 21:08:31 834 1

原创 软件工程:说透软件5种常见的部署策略

hi,我是熵减,见字如面。在软件工程中,最终的价值交付,都是要通过软件的部署上线来完成的。那如何将新的或改进的软件功能交付给用户,同时还要确保高质量、稳定性和用户体验,选择适当的部署策略变得至关重要。复杂软件工程中,新功能的部署,成为了软件价值交付的重要环节,今天我们就来聊聊关于部署的5种常见的策略。5种策略概述在现代软件工程领域,有五种常见的部署策略:大爆炸、滚动、蓝绿、金丝雀和功...

2023-06-14 15:46:00 3163

原创 微服务之道:8个原则,打造高效的微服务体系

hi,我是熵减,见字如面。现在,在大型的软件工程系统中,微服务化的系统设计,成为了大部分时候的必然之选。而如何将微服务做有效的设计,则是需要每一个团队和工程师都需要考虑的一个问题。在保持系统的一致性、可理解性、可维护性和可扩展性上,需要有一些基本的指导原则。下面分享微服务设计和实践中的8个基础原则,具体如下:基本原则概览在微服务中,设计API时可以遵循以下原则:单一职责原则(Si...

2023-06-01 16:17:00 901

原创 技术团队要小心,那些技术过早优化的迹象

hi,我是熵减,见字如面。在软件行业内,有一句关于技术实用性的名言:“过早优化是万恶之源。”在局部代码层面上的追求先进,是无可厚非的事情。但是,在一些小公司中,技术过早优化的现象又是很常见的。当小公司为了追求技术的先进性和高效性,往往会采用一些不适合自己的技术方案,导致开发成本增加,维护难度提高,甚至影响业务的稳定性和发展。所以,公司在做技术选型和决策时,更需要足够的理性和慎重思考。以...

2023-05-23 15:15:00 660

原创 阿里拆了中台,中台还有未来吗?

hi,我是熵减,见字如面。近日,阿里在继年初3月份的1+6+N的战略变革的基础上,对持续建设和运营8年的中台的调整终于落地了。阿里对中台的这一举措,引发了外界对于中台战略是否还有意义的大量质疑和讨论。甚至有人将中台战略称之为自欺欺人的一场骗局。中台战略真的是一场骗局和闹剧吗,中台还有没有未来呢?这个问题是非常值得我们思考的,下面说说我的一些方法。阿里拆中台阿里集团的整个中台体系,被...

2023-05-22 17:30:00 2682

原创 API架构的选择,RESTful、GraphQL还是gRPC

hi,我是熵减,见字如面。在现代的软件工程中,微服务或在客户端与服务端之间的信息传递的方式,比较常见的有三种架构设计的风格:RESTful、GraphQL和gRPC。每一种模式,都有其特点和合适的使用场景,今天,我们主要来对三种风格做一个深入的理解和对比,以方便我们在做技术选型时,能够做出有效的决策。RESTful什么是RESTful?RESTful是一种软件架构风格和设计模式,它是...

2023-05-19 10:56:00 966

原创 微服务不是软件工程银弹的10个原因

hi,我是熵减,见字如面。微服务是一种软件架构风格,其旨在通过将应用程序拆分为小型、独立的服务,来增强应用程序的可伸缩性、可维护性和可测试性。虽然微服务可以为软件开发提供许多好处,但它们并不总是适用于所有情况的最佳选择。换句话说,微服务架构,也不是软件工程的银弹。所以,技术团队再考虑是否使用微服务架构时,有以下10个点,是需要慎重考虑的。增加了复杂性世界上没有免费的东西。实现微服务架...

2023-05-10 15:52:00 93

原创 软件工程:左移策略,决策和工作要前置,是提效的关键

hi,我是熵减,见字如面。在软件开发的中,你是否也遇到过类似的场景:团队的目标是在1个月内,开发出一款新的社交媒体应用程序。由于时间比较紧,任务重,所以在开发的初期,方案设计、质量保障和安全性等上面,都是未能充分的考虑,以此来节省开发成本,并保持快速开发的节奏。然而,当该程序在测试阶段,却出现了严重的设计缺陷和安全漏洞,团队不得不耗费更多的时间和资源来修复这些问题,最终,也不得不推迟产...

2023-04-25 09:27:00 410

原创 软件工程:阿姆达尔定律,性能设计和优化的指导原则

hi,我是熵减,见字如面。在软件开发中,你是否做过性能的优化,譬如:有一个图片处理的程序,其中包含一个函数用于对图片进行滤镜处理。该函数中包含两个部分:一个可并行化的部分和一个串行部分。可并行化的部分用于对图片的每个像素进行计算,而串行部分用于对处理后的图片进行保存操作。我们通过优化可并行化部分的代码来提高程序的性能。经过优化后,可并行化部分的执行时间从原来的1秒降低到了0.5秒,那么整...

2023-04-24 10:27:00 276

原创 世界读书日:推荐15本AI从入门到放弃的书

hi,我是熵减,见字如面。在世界读书日即将到来的前,以及借着ChatGPT的火热,各种AI大模型的创业东风,今天给大家推荐一些AI相关的图书,希望大家能从入门到放弃,找到适合自己的热爱。本次推荐图书分三个档次,详细如下:入门科普型《给孩子的人工智能通识课》是一本帮助孩子了解人工智能的科普型的读物。书中用了大量的图片,来帮你弄懂人工智能到底是什么。孩子或普通人读完,就可掌握人工智能的...

2023-04-23 20:11:00 967

原创 架构师,别再扯淡了!

hi,我是熵减,见字如面。对于从事软件开发的工程们来说,都有一个成为架构师的梦想。可以说,不想当架构师的程序员,不是好的工程师,人人都想成为架构师。而为什么要成为架构师,可能每一个人都有不一样的理解和出发点。譬如,有的人觉得架构师是一个非常高大上的职位,或者架构师能够获得不错的报酬,或者架构师在行业内更有声誉等等,不一而足。所以,我们对架构师的预期目的和理解认知,对程序员职业的发展来说,...

2023-04-21 10:56:00 215

原创 软件工程:波斯特尔定律,输入输出的平衡之道

hi,我是熵减,见字如面。在软件开发中,你是否遇到过这种情况:你正在开发一个文件上传的功能,用户可以上传各种类型的文件。按照用户的需求场景,程序应该能够宽容地接受各种类型和格式的图像文件。如果用户上传了一个非常大的图像文件,你无法正常的处理,程序也不应该直接的奔溃,而是要给用户一个友好且有效的错误提示。在这个案例中,对功能的有效处理,就是一个典型的波斯特尔定律的具体实现场景。在软件开发...

2023-04-19 08:54:00 241

原创 软件工程:墨菲定律,潜在问题管理的艺术

hi,我是熵减,见字如面。在软件开发中,你是否遇到过这种情况:你正在开发一个新的软件,你已经完成了测试并发布了软件。然而,在用户开始使用软件之后,你开始接到了大量的错误报告。你发现用户遇到的问题并不是你测试过程中遇到的问题,这些问题可能是因为用户使用了不同的操作系统、浏览器或设备等原因。这个案例说明了墨菲定律在软件开发中的应用,即任何可能出错的地方,最终都会出错。即使你进行了彻底的测...

2023-04-18 14:35:00 282

原创 软件工程:帕金森定律,项目工期的那点事儿

hi,我是熵减,见字如面。在软件开发中,你是否遇到过这种情况:团队要开发一个简单的购物车应用,项目预期时间是2周工期。负责开发的工程师默认利用完整的2周时间来完成任务。在第一周,工程师会认为任务很轻松,有充足的时间来完成任务,所以会采取气定神闲的节奏。然而,在第二周,却发现了重要的设计缺陷,工程师需要更多的时间来修复问题。为了保证deadline,只能采取加班等方式来弥补。上面这个小...

2023-04-17 08:55:00 293

原创 中台,真的是一场自欺欺人的骗局吗?

hi,我是熵减,见字如面。在上周,随着阿里集团CEO张勇的公开信发布,阿里集团也做出了历史上最大的一次组织调整。随着新的1+6+N的组织阵型的调整和落地,阿里曾经的中台战略,变得有点非常的尴尬了,似乎成为了一个巨大的争议。譬如,有人在脉脉匿名发言:中台,是阿里首先提出,并在15年写进集团战略中的重点。同时,也带动了整个互联网行业内,各个组织的如火如荼的中台建设潮流。而7年后,阿里却...

2023-04-05 08:14:00 106

原创 软件开发定律:海勒姆定律(Hyrum's Law)

hi,我是熵减,见字如面。在软件开发中,你是否遇到过这种情况:你正在开发一个购物车的功能,需要在用户添加商品到购物车时,将商品的信息存储到数据库中。你设计了一个简单的方法,如下所示:public void addToCart(Item item) { // 将商品信息存储到数据库中}在这个方法中,你假设了将商品信息存储到数据库的操作总是会成功,而没有考虑到可能会出现任何错误。然...

2023-04-04 08:38:00 457

原创 软件开发定律:霍夫施塔特定律,为什么项目交付总是会延期?

hi,我是熵减,见字如面。在软件项目中,你是否遇到过这种情况:一个软件工程师,要开发一个系统功,这个系统需求有点复杂,需要新增多个模块,同时也需要和多个系统交互。工程师会按照自己的经验,做一个粗略的工期评估,同时在加上一点缓冲时间,从而得出一个开发工期的总时长。但最终的结果,可能会大大的超过预估的,会导致交付的deadline一再的延期。为什么项目交付总是会延期呢? 那就需要先了解一下...

2023-04-03 10:24:00 207

原创 软件开发的定律:康威定律

康威定律是由计算机科学家 Melvin Conway 提出的。是一条关于组织设计和系统架构的经验法则。“组织设计产生系统设计的影响”“系统的结构受到设计它的组织结构的影响”。“在一个组织中,任何一个设计出来的系统,其结构都会与该组织的沟通结构保持一致。换句话说,如果一个组织的结构是分为多个小组分别独立开发某个系统的各个模块,那么最终这个系统的结构也会被划分为许多模块,并呈现出分布式的特点。

2023-03-31 15:47:17 285

原创 软件开发的定律:布鲁克定律

布鲁克定律(Brook’s Law)是一种关于软件项目管理的观察,由弗雷德里克·布鲁克斯(Frederick Brooks)在他的1975年出版的著作《人月神话》(The Mythical Man-Month)中提出。在一个已经延期的软件项目中,增加人力反而会使项目更加延期,而不是加快进度。布鲁克定律提醒我们,在软件开发中,人并不是一个简单的可替代资源,而是一个复杂的系统组成部分。我们需要根据项目的实际情况和需求,要能够灵活地管理和利用好人力资本,以实现项目成功的最终目标。以人为本,未雨绸缪。

2023-03-31 15:41:44 167

原创 软件开发定律:布鲁克定律

hi,我是熵减,见字如面。在软件项目开发中,你是否遇到过这种情况:你的项目进度落后了,你的老板或客户不满意,你的团队压力很大,你觉得需要增加一些人手来加快速度。但是,当你增加了新的成员后,你发现项目的进度并没有提高,反而变得更慢了,而且出现了更多的问题和冲突。这就是布鲁克定律(Brook’s Law)的一个典型例子。什么是布鲁克定律(Brook’s Law)?布鲁克定律(Brook...

2023-03-31 09:30:00 488

原创 结构优于制度,软件开发中的康威定律

hi,我是熵减,见字如面。从事软件开发的人,都非常的清楚:大部分的软件工程不是一个人的英雄之旅,而是一项非常依赖团队的协作的、共同创造的系统性的工程。在复杂的团队协作中,仅仅依赖软性的制度和流程规范,在很多的时候,可能不一定能很好的解决问题。在涉及到人的部分,就需要考虑到人们协作的职责结构,能否更加有利于目标的达成,这就涉及到康威定律。什么是康威定律康威定律是由计算机科学家 Melvin...

2023-03-28 09:12:00 261

原创 技术团队:研发中的短跑冲刺和马拉松游戏

hi,我是熵减,见字如面。对于技术团队来说,开发软件产品,是一项长期的工作。就如同马拉松一样,要完成这样的游戏,需要的多个迭代周期和很多冲刺的不断地积累。在游戏的过程中,需要持续的、有节奏的向着目标前进,并在此过程要不断地做出调整和改变。然而,在现实中,今天有不少的团队,是无法如此有效的开展工作的。其背后的原因是:团队将冲刺(Sprints)的数量和周期作为了目标。将短期的冲刺做为团...

2023-03-10 16:26:00 96

原创 掌握4C原则,设计高效的系统架构

hi,我是熵减,见字如面。在软件开发中,设计一个好的架构是非常重要的,好架构能够影响整个系统的质量和可维护性。而要设计出好架构,就需要遵循一些设计原则。其中,架构设计的4C原则是一种常用的架构设计基础原则,4C原则强调架构设计的清晰性、简洁性、一致性和可改性。这些原则可以帮助我们评估和优化架构,使系统更具可维护性、可扩展性和适应性。接下来,我们将深入探讨4C原则的具体内容,并了解它的价...

2023-03-06 17:44:00 395

原创 2023年,消失的金三银四

hi,我是熵减,见字如面。今天结束后,马上就进入跳槽涨薪的旺季 “金三银四”啦。但今年的这个旺季,可能会让很多人跳槽涨薪梦不那么顺利哦。虽然,兔年的“金三银四”,比往年承载了更多的期待。毕竟,这是疫情结束后的第一个黄金窗口期。而,现实是,在几重因素的作用下,我们预期的旺季可能不会出现,这是一个消失的金三银四。不乐观的“旺季”无论是22年已经失业的人,还是22年的毕业生们,甚至在职等待...

2023-02-28 09:48:00 224

原创 TikTok 推荐引擎强大的秘密

作者:Heorhii Skovorodnikov深入研究TikTok令人惊叹的实时推荐系统的内部工作原理,了解是什么使它成为该领域最好的产品之一。为什么TikTok的feed如此让人上瘾?秘诀在于他们的推荐引擎,这正是使TikTok成为最大的社交媒体平台之一的原因。似乎feed可以读取你的思想,让你在应用程序中停留更长时间。最近,TikTok决定让每个人都知道一个秘密,并在一篇题为 “Mo...

2023-02-27 08:13:00 397

原创 求职中,写好简历的那些事儿

hi,我是熵减,见字如面。虽然23年的金三银四,再也不会出现19年和之前那样的行情了。但对于很多的职场人来说,无论是被动,还是主动,换工作求职都是刚需,而其中的写简历,写好简历,都是非常重要的一件事。所以,今天就聊一下:如何写好个人简历,以提升求职的有效性。什么是简历?首先,我们要来看的第一个问题就是:什么是简历?相信每个人都会脱口而不,不就是个人工作,学习的经历和能力经验的信息文档...

2023-02-24 20:35:00 134

原创 用ChatGPT,绘制一个账号系统的C4架构图

hi,我是熵减,见字如面。昨天我们用ChatGPT来设计一个账号系统,并尝试输出:模型表,类关系图,序列图,状态图等常用的架构设计中常用的元素。今天,我们继续向更高层级延伸一下,看ChatGPT能不能更进一步释放工程师的生产力,创造更多的可能性。所以,这次我们就来尝试用ChatGPT,来构建账号系统的C4模型的架构图啦。由于ChatGPT不能直接输出图像,所以我们转化为用Mermaid的...

2023-02-24 20:33:00 8269

原创 用ChatGPT,快速设计一个真实的账号系统

hi,我是熵减,见字如面。用ChatGPT,可以尝试做很多的事情。今天我们就来让ChatGPT做为架构师,来帮我们设计一个账号系统吧。我的实验过程记录如下,与你分享。用户故事首先,我们从用户故事开始吧。提示:我们从用户故事开始,需要设计一个网站的账号系统模型,其中包括账号基础信息实体,邮箱验证实体,手机号验证实体,三方社交绑定实体,密码安全实体,登录记录实体。ChatGPT反馈为:...

2023-02-23 11:32:00 3077

原创 C4模型,架构设计图的脚手架,你值得拥有

hi,我是熵减,见字如面。对于软件开发团队来说,写软件设计文档,花架构图,是日常工作中的关键一项。而其中,如何画好系统设计的架构图呢? Simon Brown 就 提出 C4 模型,来解决这个问题。基于C4模型的脚手架,架构师们就可以统一团队内的不同层级的视角,交付一个成体系的架构设计。下面具体看一下C4模型吧。什么是C4模型?C4 模型是一种轻量级的软件架构图的表示法,旨在帮助团队...

2023-02-22 20:40:00 609

原创 ChatGPT 背后核心技术的白话版

本文是关于ChatGPT 背后核心技术实现的一个通俗白话版,不涉及到的AI具体实现的技术细节哦。在编排上增加了一些分割,内容具体如下:LLMs(大型语言模型)如果将ChatGPT比作是动物,它就像一只饥饿的毛毛虫一样,毛毛虫喜欢啃食树叶,并不断的长大。LLMs(大型语言模型)也喜欢吞噬大量的文本数据,并利用这些数据来学习,然后变得更加的聪明,更加的强大。LLMs消耗的文本数据越多,它们对...

2023-02-09 16:28:00 2472

原创 用GC的策略,管理团队的技术债务

在数字化时代,每一个组织的经营都是建立在数字化的系统之上的,而数字化系统的构建,必然就会带来技术债务,这是每一个数字化团队都要面临的一个问题,如何有效的管控技术债务。技术债务的产生,是技术团队不断迭代构建系统过程中,无法一次性预设所有的需求,而随之产生了系统设计上的扭曲失真。在了解了技术债务产生的原因后,就可以将技术债务和团队的作为或不作为联系起来,使用一些有效的策略和方法,来最大限度的减少...

2023-02-08 15:58:00 101

原创 中台建设:中台有效落地的6脉神剑

在数字化时代,数字化体系的建设需要的是系统化的规划和产品化的迭代的模式,基于企业核心业务能力体系,做中台化的持续建设与落地,则是一种不错的选择。所以,企业业务中台的建设和落地,是关系到企业数字化战略成功实施的关键所在,一个有价值的数字化中台体系,可以为业务的发展提供有效的支撑。而中台能否有真正有价值:关键不在于建设,而在于在业务体系的落地和有效运营。中台有效落地的 6 招今天要分享的是 ...

2022-08-31 11:25:00 421

原创 技术团队:有效开展复盘会议5条建议

对于技术团队来说,在项目结束后,或者发生了重大的事情时,团队通过组织复盘会议,来一起反思和总结,发现团队之前有那些做的好的,那些值得改进的地方,来共同的讨论、反馈和总结。复盘,是团队共同成长的一个非常不错的方式。通过有效的复盘,可以建立有效的沟通场域,团队内彼此扩大公开象限,获得有效的反馈,避免重复的犯相同的错误,改进整体的协作流程等。虽然复盘会议好处不少,但并不是每个人都喜欢的。特别是团...

2022-07-27 18:32:00 827

原创 技术团队:提升团队效能,从不做3件事开始

团队的本质是杠杆。因为一个高效的团队,才会产生1+1>2的价值。高效的团队,是每一个组织都期望拥有的,而提升团队的效能,各有各的不同,要根据具体的情况,来逐步的构建和探索合适的方式,一步步的才能达到一个理想的状态。而损害一个团队的效能,则可能容易的多,几个不合适的行为,就可能将团队的效能拉到水平线之下,陷入低效的忙碌之中。下面是3个常见的提升团队效能的行为,希望对你有启发哦。不拉大...

2022-07-22 18:53:00 323

原创 技术团队:给代码评审发起者的4个建议

代码的创造者是代码评审过程中的最重要的角色,是代码评审的发起者,也是最大受益者之一,而如何让代码评审为发起者带来更大的好处,下面是4个有效的建议。改动范围要小每次评审的代码变动的范围,要保持尽可能的小。当一次评审的代码中,有超过3个,或者5个以上的关键变动时,就要考虑是否将其分解为更小的变更请求。因为一次评审中,如果涉及到的改动越小,参与评审的人的认知负担也会更小,也就越能快速的评审、快速...

2022-07-21 13:53:00 112

原创 在代码评审中用好这7招,很容易就能建立起你的反对同盟

在软件开发中,代码评审是一个关键的流程。一个团队,代码评审开展的好,可以大不度的提升团队整体的交付质量,同时团队内的成员也可以很好的提升能力。另一个方面,如果评审走歪了,代码评审可能就变成了大型踩踏的事故现场,彼此互相攻击,破坏信任等。下面是如何搞砸一次代码评审,来为你树立敌人的7个招数:1、代码风格的反馈在代码评审中,对毫无戒心同事发起攻击,最好招式就是:不断指出其不符合编码规范的问...

2022-07-20 18:29:00 93

原创 代码评审中用好这7招,成功建立起你的反对同盟

如何通过代码评审的神级操作,在团队内成功树敌,建立反对同盟。

2022-07-20 18:13:02 177

原创 【翻译】编写代码注释的最佳实践

著名的麻省理工学院教授哈尔-艾贝尔森(Hal Abelson)曾说过:代码首先是写给人看的,只是计算机拿去运行了而已虽然他可能故意的低估了计算机运行代码的重要性,但他说的是非常正确的。我们的成型有两个非常不同的受众。编译器和解释器不会关注代码的注释,对于计算机来说,所有语法正确的程序都是同样的容易理解的。而对于阅读代码的人来说,则完全是不一样的。我们发现有些的程序代码非常难以理解,我们希望通过...

2021-08-15 13:17:00 195

原创 Edgar:Netflix分布式系统的可视化问题诊断平台实践

Edgar通过对请求追踪(tracing)、日志(logs)、分析(analysis)和元数据(metadata)的总结展示,帮助Netflix团队有效地对分布式系统进行故障诊断。每个人都喜欢未解之谜。总有人看起来像是罪魁祸首。有一个明确的动机,一个完美的机会和一个遗留下来的犯罪痕迹。然而,这是个未解之谜!事情从来没有这么简单。无论是电视机后面的一张神秘的便条,还是关键时刻来自未...

2020-09-16 09:56:00 306

原创 Uber的API生命周期管理平台边缘网关(Edge Gateway)的设计实践

设计边缘网关(Edge Gateway),一个高可用和高可扩展的自助服务网关,用于配置、管理和监控 Uber 每个业务领域的 API。Uber 的 API 网关的演进2014 年 10 月,优步开始了规模之旅,最终将成为该公司最令人印象深刻的增长阶段之一。随着时间的推移,我们每个月都在以非线性方式扩大我们的工程团队,并在全球范围内获得数百万用户。在本文中,我们将介绍 Uber 的 ...

2020-09-16 09:44:00 993

空空如也

空空如也

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

TA关注的人

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