自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

架构未来

架构即未来,未来需架构

  • 博客(169)
  • 论坛 (1)
  • 收藏
  • 关注

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

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

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

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

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

2021-08-15 13:17:00 6

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

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

2020-09-16 09:56:00 94

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

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

2020-09-16 09:44:00 337

原创 UBer面向领域的微服务体系架构实践

介绍最近,人们对面向服务的系统架构和微服务系统架构的缺点进行了大量的讨论。尽管仅仅在几年前,由于微服务体系架构提供了许多好处,如独立部署的灵活性、明确的所有权、提高系统稳定性以及更好地分离关注点等,但近年来,人们开始谴责微服务的倾向极大地增加了复杂性,有时甚至使微小的特性也难以构建。随着 Uber 已经发展到大约 2200 个关键微服务,我们亲身体验了这些折衷。在过去两年里,Ub...

2020-09-11 13:59:00 154

原创 技术团队:问题被过度的夸大小题大做,你该怎么办?

点击蓝色“常柱”关注,一起成长这是公众号2020年的第040篇原创内容在技术团队工作过程中,经常会反复出现一些的经典的问题,这些问题会严重影响团队的工作效率,同时也会给团队的士气带来重大的影响。接下来,我们来讨论一下这些问题发生的具体场景,造成的问题原因,以及如何预防和解决这些问题方法技巧。今天来讨论第 4 个常见问题:在软件开发过程中,一个问题的影响范围被过于夸大,给团...

2020-09-10 09:45:00 91

原创 技术团队:当指责抱怨满天飞时,你该怎么办?

点击蓝色“常柱”关注,一起成长这是公众号2020年的第039篇原创内容在技术团队工作过程中,经常会反复出现一些的经典的问题,这些问题会严重影响团队的工作效率,同时也会给团队的士气带来重大的影响。接下来,我们来讨论一下这些问题发生的具体场景,造成的问题原因,以及如何预防和解决这些问题方法技巧。今天来讨论第 3 个常见问题:持续高压的工作让整个团队都进入一个乱遭的状态,...

2020-09-09 13:14:00 132

原创 技术团队:绕过流程提问题“干私活”,怎么办呢?

“在技术团队工作过程中,经常会反复出现一些的经典的问题,这些问题会严重影响团队的工作效率,同时也会给团队的士气带来重大的影响。接下来,我们来讨论一下这些问题发生的具体场景,造成的问题原因,以及如何预防和解决这些问题方法技巧。今天来讨论第2个常见问题:需求方总是绕过技术团队的正常流程来解决问题,也就是俗称的开发人员“干私活”,该怎么办呢?不走流程的问题我们知道,一个相对成熟...

2020-09-07 13:55:00 61

原创 技术团队:当所有需求都是第一优先级时,你该怎么办?

技术团队做项目需求的工作过程中,经常会出现一些反复不断的问题,这些问题会严重影响团队的工作效率,同时也会给团队的士气带来重大的影响。接下来,我们来讨论一下这些问题发生的具体场景,造成的问题原因,以及如何预防和解决这些问题方法技巧。今天来看第一个常见的问题:当所有的需求或任务都是第一优先级的时候,你该怎么办呢?一切都很重要紧急这是指每个需求、任务和问题都被定义为最高优先级,技术...

2020-09-06 13:51:00 86

原创 背锅的艺术:需求临时变更上线后出事故谁的锅

按照已确认的需求,代码都快要上线了,产品提出需求变更,匆匆改完代码上线后导致重大 bug,锅(责任)应该是研发还是产品来背呢?工作中背锅是常态。柱哥想说:背锅不可怕,背了无数口锅还没有一点长进才是最可怕的。下面我们聊聊如何更有效的背锅:分锅原则首先,我们需要明确责任原则:谁执行谁负责。这种场景下,代码开发和最终上线的的是研发同学(RD 和 QA)的执行的,事故的主要责任是在研...

2020-06-01 10:19:00 185

原创 征服乔布斯的男人的10条领导原则

《一生的旅程:迪士尼CEO自述批量打造超级IP的经营哲学》,被书名严重误导值得反复阅读的书。本来以为是讲如何打造IP的方法的书,阅读后发现是一个经理人45年职场成长的经验的总结,是十分值得反复阅读和学习。作者罗伯特·艾格是华特迪士尼公司的董事长兼首席执行官。从2005年10月起,他开始担任公司的总裁兼首席执行官,之前他曾在2000年到2005年之间担任总裁兼首席运营官。罗伯特·艾...

2020-05-29 18:26:00 410

原创 相信时间的力量:三个行动开启个人成长飞轮

当我们在骑单车时会有这样的感受,在刚开始起步的时候都会很费劲,但是在瞪了几圈后,就轻松了很多。这种感觉在加速后缓下来的时候会格外的明显,你的脚可能只是轻轻的放在踏板上,轮子也会带着你脚转起来。这就是飞轮效应。飞轮效应飞轮效应: 是指为了使静止的飞轮转动起来,一开始你必须使很大的力气,每转一圈都很费力。但是每一圈的努力都不会白费,飞轮会转动得越来越快,达到某一临界点后,飞轮的重力和...

2020-05-27 13:34:00 351

原创 管理者的陷阱:总是试图维护自己的正确性

三国演义,曹操和杨修的故事:曹操作为统帅,在打仗过程中,有将军进帅帐,问晚上巡逻的口号。曹操说到了鸡肋,杨修立马明白了什么意思,就是这次行动像鸡肋,食之无味弃之可惜,估计退兵就不远了。于是让身边的人收拾行李,结果曹操看到很多人收拾行李。知道了原因,把杨修杀了。这个故事里,杨修是那个时代的精英人物的典型代表,但他有个最大的毛病就是爱刷存在感。为了证明自己的正确性,最后丢掉了自己的性...

2020-05-26 14:27:00 214

原创 快速成长从写一份走心的周报开始

上一篇我们唠了唠开晨会的目的,方法和实践的经验。总体上看有效的晨会对个人的成长和团队效能提升都是一个不错的实践。今天,我们来聊聊工作周报的一些思考和实践,看为什么要写周报,如何写一份走心的周报来帮助我们快速成长。现在大部分团队都会要求写周报来做阶段性的工作汇报和总结,但对于为什么要写周报,每个人都有自己不同的认知,例如一些常见的看法:有觉得就是leader事儿多,一周辛辛苦苦做了...

2020-05-20 11:25:00 210

原创 研发团队开晨会真的是浪费时间吗?

对于研发团队,要不要开晨会,每个人都有不同的看法。有的同学觉得多次一举,纯属浪费时间,还不如去写几行代码呢。有的同学觉得很有必要,可以解决很多问题,带来不错的收益。谁对谁错其实没有一个明确的答案,我们需要从多个维度去看这个问题。根据十多年的研发从业经验来说,个人觉得一个真正有效的晨会,无论对个人还是对团队都是有一定的价值的。当然,流于形式不解决实际问题的晨会都是耍流氓,就是在浪费团队的...

2020-05-15 10:38:00 510

原创 Code Review 常见的5个错误模式

原作者:Trisha GeeCode Review 的时候,每个人都会关心最佳实践,但最坏的实践有时可能会更有启示意义。Code Review是研发团队必不可少的,但并不总是正确的。这篇文章指出了所有开发者在Code Review时或提交拉取请求时可能都会遇到的一些常见的错误模式,并对这些错误模式进行了总结:错误模式:挑毛病想象一下下面的场景。代码作者花了几个小时,甚至几天的时间...

2020-05-13 11:45:00 117

原创 从团队管理视角看重复建设问题:轮子小造怡情,大造伤身,全局出发成就更好的你...

在一定规模的软件研发团队内,经常出现的情况是对同一个问题领域,会有多个人或多个者团队蒙头再重复做系统或方案来解决相同问题。甚至,在一些团队内,技术人员为了职位晋升,会通过重复建设相关的系统来展示其能力,并名其名曰面向晋升编程。对于个人来说,重复造轮子其实是人之本性,特别是对于优秀的研发工程师来说,自己的方案和代码永远都是最好的,别人的都是垃圾。对于研发团队最高负责人而言,就需要认真...

2020-04-24 17:00:00 136

原创 不要给领导惊喜或惊吓

在职场中,你是否曾经遇到过这样的情况:你负责工作出现了严重的错误,例如系统停机,你希望在问题更广泛地传播之前找出问题的原因或解决方案?我知道这就是我的感受,特别是如果保持这个系统正常运行是我或我的团队的责任,不希望给领导造成麻烦,期望尽快解决问题。应对之道当问题发生时,人都会有一种自然的本能是去隐藏或否认问题是一个问题,甚至它根本就没有发生。我们想要将我们的责任最小化,毕竟我们工作的...

2020-01-10 11:00:00 89

原创 坦诚,不要对领导说谎

引子你是否曾经遇到过这样的情况,当你在向你的经理或更高级的领导汇报工作时,你说了一些错误的事情而错过了一些很好的机会?在我的十几年职场经历中,我遇到过很多这样的场景,在高压下,因为提供信息不准备,或者含糊其词,都会给领导留下不好影响。四步之法当你在开会的时候,有人问你一个问题。这个问题在你的责任范围内,并且你应该知道答案,而你只是不确定答案。当然,最明显的回答是“我不知道。”,...

2020-01-09 15:38:00 93

原创 软件设计的哲学:增加复杂度的12中危险信号

软件系统的设计和开发过程中,增加系统复杂性的12中危险信号:危险信号1:浅层模块浅层模块的接口相对于它提供的功能来说是复杂的。浅层模块在与复杂性的斗争中帮助不大,因为它们提供的好处(不需要了解它们内部如何工作)被学习和使用它们的接口的成本所抵消。小模块往往是浅层的。危险信号2:信息泄漏当在多个地方使用相同的知识时,例如两个不同的类都理解特定类型文件的格式,就会发生信息泄漏。危险...

2020-01-04 10:08:00 52

原创 软件设计的哲学:第二十一章 结论

目录 结论 最重要的软件设计原则 结论这本书讲的是一件事:复杂性。处理复杂性是软件设计中最重要的挑战。它使系统难于构建和维护,并且常常使它们变慢。在这本书中,我试图描述导致复杂性的根本原因,比如依赖性和模糊性。我已经讨论了可以帮助您识别不必要复杂性(如信息泄漏、不必要的错误条件或过于通用...

2020-01-02 09:41:00 68

原创 软件设计的哲学:第二十章 性能设计

目录 20.1 如何考虑性能 20.2 修改前的测量 20.3 围绕关键路径进行设计 20.4 一个示例:RAMCloud缓冲区 20.5 结论 到目前为止,软件设计的讨论都集中在复杂性上,我们的目标是使软件尽可能的简单和易懂。但是,如果您正...

2019-12-31 14:40:00 144

原创 软件设计的哲学:第十八章 代码的可见性

目录 18.1 使代码更简单的东西 18.2 使代码不那么明显的事情 18.3 结论 晦涩是2.3节中描述的复杂性的两个主要原因之一。当系统的重要信息对新开发人员来说不明显时,就会出现模糊现象。模糊问题的解决方案是用一种简单易解的方式来写代码。本章讨论了一些使代码或多或少变...

2019-12-30 11:47:00 53

原创 软件设计的哲学:第十七章 一致性

目录 17.1一致性的例子 17.2 确保一致性 17.3 别做过了头 17.4 结论 一致性是降低系统复杂性和使其行为更加明显的强大工具。如果一个系统是一致的,这意味着相似的事情以相似的方式完成,而不同的事情以不同的方式完成。 一致性创造了认知杠杆:一旦你...

2019-12-28 07:17:00 97

原创 软件设计的哲学:第十六章 修改现有代码

目录 16.1 保持战略 16.2 维护注释:将注释放在代码附近 16.3 注释属于代码,而不是提交日志 16.4 保留注释:避免重复 16.5 维护注释:检查差异 16.6 更高级别的注释更容易维护 第1章描述了软件开发是如...

2019-12-27 13:40:00 134

原创 软件设计的哲学: 第十五章 先写注释

目录 15.1 延迟的注释是糟糕的注释 15.2 先写注释 15.3 注释是一个设计工具 15.4 早期的注释很有趣 15.5 早期的注释代价高昂吗? 15.6 结论 许多开发人员将编写文档的工作推迟到开发过程的末尾,即编码和...

2019-12-26 10:04:00 60

原创 软件设计的哲学:第十四章 选个好名字

目录 14.1例子:不好的名字会导致错误 14.2 创造一个形象 14.3 名字要准确 14.4保持一致性 14.5 不同的观点:Go style guide 14.6 结论 为变量、方法和其他实体选择名称是软件设计中最被低估...

2019-12-25 10:01:00 46

原创 软件设计的哲学:第十三章 注释应该描述代码中隐藏的内容

目录 13.1 选择约定 13.2 不要重复代码 13.3 低级注释增加了精确性 13.4 更高层次的注释增强直觉 13.5 接口文档 13.6 建议:什么和为什么,而不是如何 13.7 跨模块设计决策 13.8 结论 ...

2019-12-24 09:50:00 241

原创 软件设计的哲学:第二十章 为什么要写注释

目录 12.1 好代码是自我解释的 12.2 我没有时间写注释 12.3 注释会过时并产生误导 12.4 我所看到的一切注释都是毫无价值的 12.5 良好的注释的好处 代码内文档在软件设计中起着至关重要的作用。 注释对于帮助开发人员理解系统和...

2019-12-23 13:40:00 90

原创 软件设计的哲学:第十一章 两次设计

目录 设计软件是困难的,所以你对如何构建一个模块或系统的最初想法不太可能产生最好的设计。如果您为每个主要的设计决策考虑多个选项,您将得到一个更好的结果:设计两次。假设您正在为GUI文本编辑器设计管理文件文本的类。第一步是定义类将呈现给编辑器其余部分的接口;与其选择第一个出现在脑海中的想法,不如考虑几种可能性。一种选择是面向行的接口,它具...

2019-12-22 07:25:00 69

原创 软件设计的哲学: 第十章 定义不存在错误

目录 10.1 异常增加复杂性的原因 10.2 例外情况太多 10.3 定义不存在的错误 10.4 示例:在Windows中删除文件 10.5 示例:Java子字符串方法 10.6 屏蔽异常 10.7 异常聚合 10.8 事...

2019-12-21 07:13:00 141

原创 软件设计的哲学: 第九章 合并还是分解

目录 9.1 如果共享信息,则将信息集合在一起 9.2 如果可以简化接口,就一起使用 9.3 消除重复 9.4 通用代码和专用代码分开 9.5 示例:插入光标和选择 9.6示例:日志记录的单独类 9.7示例:编辑器撤销机制 ...

2019-12-20 08:00:00 135

原创 软件设计的哲学:第八章 降低复杂性

目录 8.1 示例:编辑器文本类 8.2 示例:配置参数 8.3 做过了头 8.4 结论 本章介绍了另一种思考如何创建更深层次类的方法。假设您正在开发一个新模块,并且发现了一个不可避免的复杂性。哪个会更好呢:应该让模块的用户处理复杂性,还是应该在模块内部处理...

2019-12-19 07:51:00 66

原创 软件设计的哲学:第七章 不同层不同抽象

目录 7.1 传递方法 7.2 接口复制什么时候可以? 7.3 修饰符 7.4接口与实现 7.5传递变量 7.6 结论 软件系统是分层组成的,其中较高层使用较低层提供的功能。在一个设计良好的系统中,每一层都提供了不同于其上下层...

2019-12-18 15:48:00 86

原创 软件设计的哲学: 第六章 更深的通用模块

目录 6.1 使类具有一定的通用性 6.2 示例:为编辑器存储文本 6.3更通用的API 6.4 通用性使得信息隐藏效果更好 6.5 问自己的问题 6.6 结论 在设计新模块时,最常见的一个决定就是以通用方式还是特殊方式实现它...

2019-12-18 15:42:00 80

原创 软件设计的哲学 第五章 隐藏信息

目录 5.1 信息隐藏 5.2 信息泄漏 5.3 时间分解 5.4示例:HTTP服务器 5.5 示例:类太多 5.6 示例:HTTP参数处理 5.7 示例:HTTP响应中的默认值 5.8 隐藏在类中的信息 5...

2019-12-17 19:39:00 185

原创 软件设计的哲学:第四章 深度封装模块

目录 4.1 模块化设计 4.2什么是接口? 4.3 抽象 4.4 深度模块 4.5浅模块 4.6 类拆分 4.7示例:Java和Unix I/O 4.8 结论 管理软件复杂性最重要的技术之一是...

2019-12-17 19:36:00 179

原创 软件设计的哲学【翻译】--目录

2020年必读书籍推荐:软件设计的哲学(A Philosophy of Software Design),本书190多页,豆瓣的点评分在9分以上,目前只有英文版本,中文版还未上市,英文好的同学建议去直接阅读原版。作者简介John Ousterhout是斯坦福大学计算机科学教授。他目前的研究重点是新的软件堆栈层,以允许数据中心应用程序利用具有微秒级延迟的通信和存储技术。Ous...

2019-12-17 06:35:00 315

原创 软件设计的哲学:第三章 编程的战术和战略

“作者简介:常柱,微信公众号【架构未来】作者,十多年一线互联网研发从业经验;前五八同城商业会员技术负责人,宝驾租车技术总监,现58 到家业务中台技术负责人。好的软件设计最重要的元素之一是在处理编程任务时采用的思维方式。许多组织鼓励一种战术心态,专注于让特性尽可能快地工作。然而,如果你想要一个好的设计,你必须采取一种更有策略的方法,投入时间来产生干净的...

2019-12-16 15:09:00 135

原创 软件设计的哲学:第二章 复杂性的本质

“作者简介:常柱,微信公众号【架构未来】作者,十多年一线互联网研发从业经验;前五八同城商业会员技术负责人,宝驾租车技术总监,现58到家业务中台技术负责人。这本书是关于如何设计软件系统来最小化它们的复杂性。第一步是了解敌人。到底什么是“复杂性”?你怎么知道一个系统是不是不必要的复杂?什么导致系统变得复杂?本章将在较高的层次上讨论这些问题;接下来的章节将向您展示如何在较低的层...

2019-12-16 15:05:00 142

空空如也

求一正则表达式

发表于 2007-09-30 最后回复 2007-10-06

空空如也

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

TA关注的人 TA的粉丝

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