洋蔥

贪婪,找不到比这更好的词了,是件好事。

上一期我们讲到在并发场景中,因可见性、原子性、有序性导致的问题常常会违背我们的直觉,从而成为并发编程的Bug之源。这三者在编程领域属于共性问题,所有的编程语言都会遇到,Java在诞生之初就支持多线程,自然也有针对这三者的技术方案,而且在编程语言领域处于领先地位。理解Java解决并发问题的解决方案,对于理解其他语言的解决方案有触类旁通的效果。

阅读全文 »

如果你细心观察的话,你会发现,不管是哪一门编程语言,并发类的知识都是在高级篇里。换句话说,这块知识点其实对于程序员来说,是比较进阶的知识。我自己这么多年学习过来,也确实觉得并发是比较难的,因为它会涉及到很多的底层知识,比如若你对操作系统相关的知识一无所知的话,那去理解一些原理就会费些力气。这是我们整个专栏的第一篇文章,我说这些话的意思是如果你在中间遇到自己没想通的问题,可以去查阅资料,也可以在评论区找我,以保证你能够跟上学习进度。

阅读全文 »

并发编程并不是一门相对独立的学科,而是一个综合学科。并发编程相关的概念和技术看上非常零散,相关度也很低,总给你一种这样的感觉:我已经学习很多相关技术了,可还是搞不定并发编程。那如何才能学习好并发编程呢?

其实很简单,只要你能从两个方面突破一下就可以了。一个是“跳出来,看全景”,另一个是“钻进去,看本质”。

阅读全文 »

你好,我是王宝令,资深架构师,目前从事电商架构的设计工作。从毕业到现在,我前前后后写了15年的程序,刚毕业的时候从事证券业务的开发,开发语言是C/C++,之后从事ERP产品的研发,开发语言主要是C#和Java,最近几年主要是从事Java开发平台和基础中间件的设计开发工作。

阅读全文 »

你好,我是李运华。

最近科技圈大火的事件就是ChatGPT的全球火热流行。这款由OpenAI公司在2022年11月底推出的聊天机器人,创造了史上消费应用最快达成1亿用户的历史,在推出仅仅两个月后,月活跃用户估计已达1亿,成为历史上增长最快的消费应用。与之对比,TikTok达成1亿月活目标耗费了9个月,而Instagram则耗时两年半。

阅读全文 »

你好,我是华仔。

我们架构课的第18讲第19讲主题是单服务器高性能模式,我们讲了PPC与TPC、Reactor与Proactor,从理论上跟你详细讲述了不同模式的实现方式和优缺点,但是并没有给出详细的测试数据对比,原因在于我自己没有整套的测试环境,也不能用公司的服务器做压力测试,因此留下了一个小小的遗憾。

阅读全文 »

你好,我是华仔。
你现在看到的这篇文章,是我在2022年新写的。《从0开始学架构》这门课更新结束后,我又探索了很多和架构相关的事情。这期间新的经历和尝试,也让我有了更多的思考。
所以,有了今天这篇文章,把我在软件系统架构图上的实践分享给你。

很多同学技术能力很强,架构设计也做得很好,但是在给别人讲解的时候,总感觉像是“茶壶里煮饺子,有货倒不出”。

其实,在为新员工培训系统架构、给领导汇报技术规划、上技术大会做演讲或者向晋升评委介绍工作贡献的时候,如果你能画出一张优秀的软件系统架构图,就可以大大提升自己的讲解效果,让对方轻松地理解你想表达的关键点。

这一讲,我就会为你分享软件系统架构图的画图技巧。

阅读全文 »

在前面的专栏里,有同学留言说想看看具体的架构设计文档。由于信息安全的原因,再加上稍微复杂的系统,设计文档都是几十页,因此专栏无法直接给出详细的文档案例。但我认为提供一个架构设计文档模板还是很有必要的,可以方便你在实际进行架构设计的时候更好地编写相关文档。我还以前面讲过的“前浪微博”消息队列为例,给出架构设计中最重要的两个文档的模板和关键说明。这个案例文档仅给出一些关键内容供你参考,部分细节无法全面覆盖或者完全保证正确。

阅读全文 »

专栏截止到上一期,架构设计相关的理念、技术、实践已经基本讲完,相信你一路学习过来会有一种感觉,这些内容主要都是讲后端系统的架构设计,例如存储高可用、微服务、异地多活等,都是后端系统才会涉及。事实上确实也是如此,通常情况下我们讲架构设计,主要聚焦在后端系统,但这并不意味着App、前端就没有架构设计了,专栏所讲述的整套架构设计理念,虽然是来源于我的后端设计经验,但一旦形成完善的技术理论后,同样适应于App和前端。

首先,先来复习一下我的专栏所讲述的架构设计理念,可以提炼为下面几个关键点:

  • 架构是系统的顶层结构。
  • 架构设计的主要目的是为了解决软件系统复杂度带来的问题。
  • 架构设计需要遵循三个主要原则:合适原则、简单原则、演化原则。
  • 架构设计首先要掌握业界已经成熟的各种架构模式,然后再进行优化、调整、创新。

复习完我们就可以进入今天的正题,我来谈谈App架构的演进,以及上面这些架构设计关键点是如何体现的。

阅读全文 »
0%