本专栏持续更新中,内容还未完整的请稍安勿躁,部分内容有参考其他书籍或是网络文献,都会给出原始出处
如您购买了专栏,更多资料请参照博客左侧的联系方式加群分享:
软件架构师要做什么,what Software Architects do?
- 从工程的角度定义问题
- 分解系统、分配职责
- 关注大局
- 在质量属性之间做出取舍
- 管理技术债务
- 提升团队的架构技能
简介
坝陵河大桥全长2237米,主跨长1088米,东岸引桥长940.4米,西岸引桥长200米。钢桁梁加劲桁梁宽28.0米,高10.0米,节间长度10.8米,吊索间距10.8米;桥面行车道板厚16毫米,紧急停车带板厚14毫米,检修道桥面板后8毫米。索塔上横梁高10米,宽度7.5米,壁厚0.9米;下横梁高度10米,宽度9米,壁厚1.0米;东塔塔身高185.788米,西塔塔身高201.316米。主缆矢跨比为1:10.3,横向间距28.0米,每根索股含91根钢丝,主跨主缆索股数量为208股/缆,边跨主缆的索股数量为216股/缆;全桥共设198处吊点,每处吊点共2根吊索。东锚碇锚固段长度25米,长71米,宽45.5米,高71米;西锚碇隧洞总轴长74.34米,其中前锚室长31.34米,锚塞体长40米,后锚室长3米;洞口单洞断面尺寸为(10x10.8)米,洞底单洞断面尺寸为(21x25)米,左右洞最小间距7米,隧道锚轴线倾斜度45度,底面于水平面倾角达52度。
大数据AI系统解决方案与技术架构针对日益场景的机器学习系统从设计模式、解决方案,逻辑架构出发给出最终落地实现的技术架构与深入思考。
技术架构----Technical architecture,architecture 一词来源于建筑,在我们计算机领域也被称为架构。一个优秀的工程师,职业生涯发展必将面临管理或者技术道路的两方向选择。技术道路的顶尖职位就是技术架构师或者带头人的角色。
设计模式
总体概括:
1、结构型模式关注点:“怎样组合对象/类”,所以我们关注类的组合关系
2、类结构型模式关心类的组合,由多个类可以组合成一个更大的(继承)
3、对象结构型模式关心类与对象的组合,通过关联关系在一个类中定义另一个类的实例对象(组合)
4、根据“合成复用原则”,在系统中尽量使用关联关系来代替继承关系,因此大部分结构型模式都是对象结构型模式
创建型模式
单例模式
组合模式
结构型模式
架构模式
设计模式可以提高面向对象程序的可复用性和可维护性。架构模式和设计模式有所不同,架构模式定义了各种质量属性场景(包括设计属性、运行属性、感知属性)的解决方案,常常涉及软件系统的多个组件。架构模式关注的质量属性与抽象粒度都跟宽泛。
在实践中,区分设计模式与架构模式并不是那么重要。毕竟,一个的架构设计可能被另一个人用做详细设计。
- 分层模式
- 端口适配器模式
- 管道过滤器模式
- 面向服务架构模式
- 发布订阅模式
- 共享数据模式
- 多层模式
- 能力中心模式
- 开源贡献模式
- 大泥球模式
技术架构
大数据框架源码解析
spark 作为大数据机器学习事实意义上的最佳实践,非常值得我们学习借鉴
Spark 框架主要是由 Scala 语言实现,同时也包含少量 Java 代码。Spark 面向用户的编程接口,也是 Scala。然而,在数据科学领域,Python 一直占据比较重要的地位,仍然有大量的数据工程师在使用各类 Python 数据处理和科学计算的库,例如 numpy、Pandas、scikit-learn 等。同时,Python 语言的入门门槛也显著低于 Scala。为此,Spark 推出了 PySpark,在 Spark 框架上提供一套 Python 的接口,方便广大数据科学家使用。本文主要从源码实现层面解析 PySpark 的实现原理,包括以下几个方面:
- pyspark 原理、源码解析与优劣势分析(1) ---- 架构与java接口
- pyspark 原理、源码解析与优劣势分析(2) ---- Executor 端进程间通信和序列化
- pyspark 原理、源码解析与优劣势分析(3) ---- 优劣势总结
系统调试技巧
技术选型
Python 后端技术选型 – 实时消息通信
后端技术大佬们,越来越多的使用Python,因为可以在短时间内搭建可以验证原型的系统,节省人力物力。虽然我也是C/C++ 起家,国内软件企业作坊式的开发模式让java Python 这种依赖第三方库的软件语言大行其道。
对与Python 的技术选型来说,甚至会落入俗套,实现一个功能,有七八个不通的库,到底该用哪个?哪个才是业界最佳实践?
- Django channel 简要解析 与 ASGI 基本工作原理
- Django channel 使用说明 – 以聊天室为例(1)
- Django channel 使用说明 – 以聊天室为例(2)
- Django Channel layers – 实时应用程序的消息中间件
云平台
目前机器学习类,数据处理类的云平台如火如荼,如何雾里探花看透这些这些平台级产品呢?
系统实践案例
部署与全流程自动化 CI / CD
制定一个行之有效的信息安全管理制度都需要哪些内容呢?
生产系统中的机器学习
目前很多低代码化的机器学习案例非常值得大家学习,面向未来的案例则是基于自然语言处理的人工智能交互式机器学习系统。
全面、详细且可操作的机器学习/深度学习项目解决方案审查框架中,该框架将作为代码审查的前置步骤。
技术规范
参考文献
书籍:
- 《架构师修炼之道》
开源项目:
不到500行Python代码,你能写出什么东西?Github上一个名为“500lines”的开源项目集结了众多业内较为知名的开发者,同时,所有贡献项目的代码行数均在500行以内。完整版本每章包含一个程序演练,该程序在至多500条源代码行中解决了软件工程中的规范问题。非常值得学习
https://github.com/aosabook/500lines
The Architecture of Open Source Applications
建筑师在培训期间观察了数千栋建筑,并研究了大师们对这些建筑的评论。相比之下,大多数软件开发人员只能很好地了解少数几个大型程序,通常是他们自己编写的程序,而从不研究历史上的伟大程序。因此,他们会重复彼此的错误,而不是建立在彼此的成功之上。
我们的目标是改变这种情况。在这两本书中,40多个开源应用程序的作者解释了他们的软件是如何构造的,以及为什么。每个项目的主要组成部分是什么?他们如何互动?他们的建设者在发展过程中学到了什么?在回答这些问题时,这些书的作者提供了他们如何思考的独特见解。
如果你是一名初级开发人员,并且想了解经验丰富的同事是如何思考的,那么这些书就是开始的地方。如果你是一名中级或高级开发人员,想看看你的同事是如何解决设计难题的,这些书也可以帮助你。
http://aosabook.org/en/index.html