摘要:
参考资料: 《互联网大厂如何玩转代码评审》 梁松华 京东高级开发工程师 《学习Facebook真正发挥代码审查的提效作用》 葛俊 前Facebook内部工具团队Tech Lead 《代码审查哪种方式更适合我的团队》 葛俊 前Facebook内部工具团队Tech Lead 《聊一聊代码审查》熊燚(四火 阅读全文
摘要:
距离写作《软件开发模式:瀑布与敏捷》已经1年了,在新公司又带了1年新团队,中间陆续有看了一些软件工程的文章,是时候写点总结性的东西了。 我们知道要构建高质量软件,就要解决软件过程中的混乱,将软件开发过程中的沟通、计划、建模、构建和部署等活动有效地组织起来。 而软件过程,就是在软件项目的生命周期内,也 阅读全文
摘要:
作为一名开发者,你肯定经常听到像“我们采用了可伸缩的微服务架构”、“我们正在计划切换到微服务架构”之类的话,然后你寻思着:微服务到底是什么?近日,西达尔特·马霍特拉(Sidharth Malhotra)通过真实世界的比喻解释了什么是微服务架构,重点内容如下。 大冰激凌机——单体 冰激凌机由四个部件组 阅读全文
摘要:
一旦决定在开发实践中引入微服务架构,如何将积累下来的庞大的巨无霸系统润物细无声的过渡到微服务架构将是一个巨大的挑战。同程旅游微服务开发团队给出了他们的建议。 他们认为推倒重来不可取,架构师们最想通过微服务化取代的部分,往往是公司的主要盈利核心,改造难度不亚于飞行中更换引擎。从业界公开的信息来看还没有 阅读全文
摘要:
关于微服务架构是什么,没有一个明确的定义,每个实践者有自己的理解,但是有人给出的一个公式值得思考: 微服务架构 = 80% 的 SOA 服务架构思想 + 100% 的组件化架构思想 + 80% 的领域建模思想 不管怎样,微服务架构现在都很受欢迎,近日,一名博主 h4cd 在其博客中列举了当前最为火热 阅读全文
摘要:
微服务是软件架构的银弹吗?或许不是。这个世界上很少有东西是百分百正确的,微服务也不例外。最近,技术作家迈克尔·丘奇曼(Michael Churchman)发文分享了在设计或重构应用程序时,哪些场景可以使用微服务,哪些场景要避免使用微服务。以下为原文编译内容。 微服务是一个具体的软件服务,通常是基于应 阅读全文
摘要:
微服务是一种软件架构风格,以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础,利用模组化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关 (Language-Independent/Language agnostic) 的 API 集相互通讯。在过去 阅读全文
摘要:
虽然微服务概念流行已有一段时日,但任何技术都有其优缺点。看到微服务同时扮演正派和反派角色之后,ThoughtFocus 的技术架构师埃宾·约翰(Ebin John)发文建议开发者,如果你是倾向于将微服务作为默认架构的架构师或设计师,最好问自己以下几个问题。 1. 你的应用程序庞大得足以细分成微服务吗 阅读全文
摘要:
本文是学习颜群的《如何快速且深入的学习一门技术》的一篇记录文章,同时记录下我的一些个人感想,对方的很多观点让我很受启发,虽然自己平时对学习方法有些心得,但是真正去总结时间却很少。缺少盘点的结果就是任凭本能和生物钟状态,显然这种方法是不可持续的。为了提升个人或团队的学习效率,如何摸索一套针对技术类型的 阅读全文
摘要:
云原生是当下的热点话题,但是很多人对云原生有很多误解,特别是传统产业物联网或工控、物联网行业对云原生显得"后知后觉"。与其在这里说是预测,不如说是现在进行时,只是由于传统产业本身的技术包袱和组织个人认识程度差异,目前发展并不见快。目前大部分的系统还是停留在旧年代,只是不到火候,还没到尝鲜和推倒重来的 阅读全文
摘要:
如何确保一个方法,或者一块代码在高并发情况下,同一时间只能被一个线程执行,单体应用可以使用并发处理相关的 API 进行控制,但单体应用架构演变为分布式微服务架构后,跨进程的实例部署,显然就没办法通过应用层锁的机制来控制并发了。那么锁都有哪些类型,为什么要使用锁,锁的使用场景有哪些?今天我们来聊一聊高 阅读全文
摘要:
前言 多年的开发积累让我一直在思考一个问题:如何能拥有一个开箱即用的框架?或者说针对不同的业务规模,能有一系列相应的框架版本,这样每次新项目上线的时候,或者业务增长变更的时候,都无需重新造轮子,我们所要做的是对号入座,即根据业务实际拿一个相应的版本过来微调即可高效上路且不翻车?做到用最少的时间,最低 阅读全文
摘要:
目前公司系统多个应用分层结构各不相同,给运维和未来的开发带来了巨大的成本,分层架构看似很简单,但保证整个研发中心都使用统一的分层架构就不容易了。 那么如何保证整个研发中心都使用统一的分层架构,以达到提高编写代码效率、保证工程统一性的目的? 这里给出个人的规划设计,希望对你有所启发。 1.分层目标 简 阅读全文
摘要:
记得之前在规划和设计微服务架构的时候,张队长给了我一个至今依然记忆深刻的提示:『你的设计蓝图里为什么没有看到DDD的影子呢?』 随着对充血模型的领域认知的加深,我越加感觉到DDD的重要性。于是网上一顿海找,并做了学习笔记。 DDD内容繁多,个人浅见,它不同于传统贫血的最核心的一点就是把原先传统的贫血 阅读全文
摘要:
经常有同学问我,我的一个SQL语句使用了索引,为什么还是会进入到慢查询之中呢?今天我们就从这个问题开始来聊一聊索引和慢查询。 另外插入一个题外话,个人认为团队要合理的使用ORM,可以参考我的另外一篇<ORM的权衡和抉择>。合理利用的是ORM在面向对象和写操作方面的优势,避免联合查询上可能产生的坑(当 阅读全文
摘要:
此前,在由 ThoughtWorks 举办的领域驱动设计峰会 DDD-China 2019 上,InfoQ 记者就开发团队为何需要 DDD、目前业界实践 DDD 的挑战等问题对中兴通讯资深软件架构师张晓龙进行了采访。以下为重点内容,这里记录采访内容的学习笔记。 张晓龙认为,开发团队真的需要 DDD。 阅读全文
摘要:
很多做软件开发同学的梦想都是成为一名架构师,而架构师的核心工作就是做好软件设计。软件设计是软件开发过程中的一个重要环节,那么如何进行软件设计,其输出标准又是什么呢?软件设计过程中,如何和各个相关方沟通,使软件设计能同时满足用户的功能需求和非功能需求,并降低公司的开发成本? 前期思考 很多软件开发同学 阅读全文
摘要:
昨天写了一篇<微服务的时间和成本去哪儿了>,有人在底下留言: 我的回答是: "微服务可以不用服务发现和负载均衡吗?它是微服务一个核心组件。怎么能说没有关系?" 我觉得有必要来思考和总结一下服务发现技术是如何演进的。于是周末一通阅读和消化,希望能掰开揉碎在这里讲一下服务发现技术的演进历史。 催生的背景 阅读全文
摘要:
2019 中国.NET 开发者峰会目前在国内的.NET社区还是很有影响力的,宣传的内容也都是比较新潮和前言的技术栈。 有一个不争的现实是基本上主题都是关于.NET Core的,以及基于该主题之上的延展。比如ML.NET相关的机器学习;基于.NET Core的微服务实战;传统转型.NET Core的实 阅读全文
摘要:
本月的功能在踉跄中勉强上线了,这个月有实验的味道,有摸索的代价,有分工和衔接上的问题,有技术储备方面的不足,有业务梳理方面的欠缺,也有个人能力和意识上的不足,梳理整个开发流程,目前存在的几大问题: 一、代码质量问题: 描述分析 1.性能层面: 从综合维度看,代码质量好坏取决于开发人员整体的编程经验: 阅读全文