《软件开发原则》之“给中国软件工程师的寄语”

Posted OOQ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《软件开发原则》之“给中国软件工程师的寄语”相关的知识,希望对你有一定的参考价值。

                                                给中国软件工程师的寄语

致我的兄弟姐妹们: 
        和你们一样,我的职业生涯始于软件工程师,那是1975年,将近半个世纪之前。我认为我们在时间和国家方面的差异相当微不足道,让我解释一下原因。

  • 对比1975年与今天:是的,我们使用的语言和工具已经进化;是的,我们开发的应用程序变得更加复杂。但是,我们所执行的关键任务基没有变化。无论我们是忙于开发软件给青少年进行娱乐,构建让人们快乐与安全的控制系统,还是构建使世界变得越来越小的通信系统,我们今天都肩负着与50年前相同的责任,即,使用我们拥有的最好的知识来构建我们有能力构建的最安全、最可靠、最稳定的系统。
  • 对比国家:美国政客们希望我们相信中国和美国在某种程度上有所不同,我不同意。我相信所有的政府结构都是可以接受的,它们的有效性仅由负责人的领导能力所决定。我不认同某些国家仅因其政府类型看起来不同而可能成为敌人的观点。就我个人而言,我去过95个国家,从那些经历中我学到的是,各地的人们都是一样的。所有的父母都希望他们的孩子有最好的机会,人人都爱自己的国家。虽然与中国和美国没有特别的关系,但我个人的看法是,拥有最少的人最"富有”,拥有最多的人往往最"贫穷”。而被美国经济学家称作"生活在贫困线以下”的人们尤其"富有”。就我来说,生活在这种条件下的人们是最先邀请我去他们家并为我提供食物和住所的。依鄙人愚见,他们的热情和分享他们所拥有的少许东西的意愿,让他们变得"富有"。

        所以,我像和我的朋友、我的同龄人一样与你交谈。在你的职业生涯中不断进步!努力工作,也要找时间玩乐!在美国,我们是“为工作而生活”,我猜想在中国也是一样。当我住在西班牙时,我了解到他们是“为了生活而工作”。我从未学会这样做,但我羡慕西班牙人的生活方式。我认为我们都应该为此努力。

        当你做软件架构设计或"抛出代码”时,不要忽视真正重要的事情。那是什么呢?是你的正直,这是你对自己的看法。如果有人要求你做一些你知道是错误的事情,你有义务阻止它。构建软件时会出现什么问题?这里有一些例子: 

  • 同意一个你知道不可能的交付日期(只是为了满足某人错误的承诺)。
  • 交付你知道尚未经过彻底测试的软件。
  • 构建不遵守那些可能造成严重后果的原则的软件。
  • 某些系统违背你的道德或伦理信仰,而你贡献的软件将在其中发挥作用。

        做这些事情的惩罚可能很严重,但回报是巨大的:知道你做了正确的事,晚上就能睡个好觉。我因坚持这些原则只被解雇过-次。当时我是一个技术中心的主任,被我的副总裁上司解雇了。这在当时是非常痛苦的。但是现在回想起来,我对坚持我认为正确的事情感到非常高兴。我不是提倡你们所有人都被解雇,我是提倡你对正在做的工作有一个广阔的视野。着眼大局,看看你的贡献如何体现,并忠于自己。软件工程是一个美妙的职业,它使你能够进入数百个以软件为支柱的专业领域。正如斯波克所说,"生生不息,繁荣昌盛。”

        好好享受!
                                                                                                                 Alan M. Davis 2021年9月

Java开发基础不牢?mysql创建联合索引语句

微服务架构

第1章 微服务概述

  • 什么是微服务
  • 常见的微服务组件
  • 常用的微服务框架
  • 微服务架构设计模式
  • 如何实施微服务

从微服务的起源和现实业务的角度探讨微服务

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

第2章 微服务设计原则

  • 设计原则之分层架构
  • 设计原则之统一通信协议
  • 设计原则之单一职责
  • 设计原则之服务拆分
  • 设计原则之前后端分离
  • 设计原则之版本控制
  • 设计原则之围绕业务构建
  • 设计原则之并发流量控制
  • 设计原则之CAP
  • 设计原则之EDA事件驱动
  • 设计原则之CQRS
  • 设计原则之基础设施自动
  • 设计原则之 数据一致性
  • 设计原则之设计模式
  • 设计原则之DevOps
  • 设计原则之无状态服务

针对微服务的设计理念进行整理,包括服务如何拆分、前后端分离、CAP理论和CQRS等,是一个高层次的指导原则。

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

第3章 微服务之Spring Boot

  • 一切从简单开始
  • 快速集成第三方的Starter
  • 降低开发复杂度之面向切面
  • 并不复 杂的持久化.
  • Web开发
  • 懒人的接口文档管理.
  • 优化的调度
  • 健康是永恒的主题
  • 强强联合之整合Dubbo

详细地介绍SpringBoot的开发,包括使用它的优缺点,以及在企业级开发中常用的工具包的整合,包括面向切面编程、Web开发、文档管理和调度管理,最后结合Dubbo完成一个示例性的分布式工程。

第4章 微服务之Docker

  • Docker原理
  • 更轻量级的虚拟化
  • 三个概念理解Docker
  • Dockerfile定制一切
  • Docker网络
  • Docker 数据卷
  • Spring Boot与Docker
  • 搭建自己的镜像仓库
  • Kubernetes
  • 私有云整体架构

主要讲解Docker的基础操作,介绍微服务中所用到的容器相关的技术,最后给出通用的基于容器的私有云架构。

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

第5章 微服务之Spring Cloud

  • 注册中心
  • 负载均衡
  • 微服务容错 (Hystrix)
  • 分布式配置中心
  • API 网关
  • 消息总线(Spring Cloud Bus)

对SpringCloud实现微服务的几个重要框架进行展开描述,让读者了解注册中心、负载均衡、容错、分布式配置、网关和消息总线,能够完成开发层面的微服务架构。

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

第6章 微服务之Spring Cloud其他框架

  • Spring Cloud Consul
  • Spring Cloud ZooKeeper
  • Spring Cloud archaius
  • Spring Cloud Task
  • Spring Cloud Security
  • Spring Cloud Sleuth
  • Spring Cloud Stream
  • Spring Cloud Data Flow

对Spring Cloud的非核心框架进行介绍,包括Consul、ZooKeeper、安全框架和数据流框架。

第7章 微服务之自动化测试与质量管理

  • 微服务测试
  • 单元测试
  • API测试
  • A/B测试
  • 冒烟和回归测试
  • 静态代码分析
  • SonarQube 质量监控

主要对测试和质量管理进行介绍,测试部分包括单元测试、A/B 测试、冒烟和回归测试,质量管理部分主要使用静态代码分析,并且基于SonarQube对代码进行静态检查,以及分析代码的总体质量。

第8章 微服务之JHipster

  • JHipster技术列表
  • Angular简介
  • 快速开始JHipster
  • 目录结构
  • 构建微服务应用
  • 基础配置

对微服务的最佳实践JHipster进行系统的介绍,并且对JHipster 部分内容做了处理,还将在国内不是很流行的部分进行了处理,尽可能详细地介绍JHipster的应用和配置。

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

第9章 微服务之自动化部署

  • 私有仓库搭建
  • Ansible
  • 持续集成
  • 灰度发布

主要对自动化部署进行介绍,因为微服务的目的不仅仅是简化开发,而且能够提高整个团队的运行效率。所以私服的使用和自动化运维就显得非常重要。

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

第10章 微服务之日志收集与监控

  • ELK搜集与分析
  • 系统监控
  • 运维监控
  • APM监控
  • Pinpoint 的安装与使用

主要讲解日志收集和APM监控,对于线上系统来说,出现问题的概率还是非常大的,如何快速定位并第一时间找到问题所在的点就显得非常重要。APM部分对常用的监控工具进行列举,重点介绍Pinpoint,对使用和邮件告警也进行了重点介绍。

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

第11章 完整示例

  • 安装 Lombok
  • PiggyMetrics
  • 整体架构
  • 安装和运行

通过对PiggyMtrics的全面讲解,让读者能够了解一个简单的微服务架构所包含的技术点和构建原则,并且实际部署微服务,完成业务的基础操作。

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

第12章 微服务核心功能推荐

  • 工作流引擎
  • 规则引擎
  • 调度系统
  • 消息推送
  • 网关中间件
  • 分库分表中间件
  • 报表引擎
  • 数据处理
  • 并发编程
  • 分布式配置
  • CAS
  • WebFlux

对在微服务构建过程中可能涉及的技术点进行讲解,包括工作流引擎、规则引擎、调度系统、分布式配置及单点登录。

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

这份实战文档从微服务的思想基础、设计原则,延伸到Spring Boot. Docker. Spring Cloud及其他框架的介绍,不仅涉及微服务的自动化测试与质量管理、自动化部署、日志收集与监控,还提供完整的实战示例。全书清晰、透彻地剖析了微服务的整个生态,有助于大家快速提升对微服务的认知,构建自己的架构体系。

微服务架构设计模式

这份文档围绕微服务的架构设计,深入浅出地介绍了微服务与SOA等其他架构的区别,软件系统服务的拆分策略,微服务的同步和异步通信模式,如何使用微服务进行事务管理,如何在微服务架构中设计业务逻辑。同时详细描述了微服务架构中的测试和生产部署策略。对设计微服务架构有很好的指导作用。

由于篇幅限制就不细细展开文档内容了,这份文档总共有13个章节

  • 第1章 逃离单体地狱

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

  • 第2章 服务的拆分策略
  • 第3章 微服务架构中的进程间通信

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

  • 第4章 使用Saga管理事务
  • 第5章 微服务架构中的业务逻辑设计

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

  • 第6章 使用事件溯源开发业务逻辑
  • 第7章 在微服务架构中实现查询

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

  • 第8章 外部API模式

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

  • 第9章 微服务架构中的测试策略(上)

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

  • 第10章 微服务架构中的测试策略(下)
  • 第11章 开发面向生产环境的微服务应用

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

  • 第12章 部署微服务应用
  • 第13章 微服务架构的重构策略

Github标星67.9k的微服务架构以及架构设计模式笔记我粉了

写在最后

以上就是我的面试过程,为了这次面试,也收集了很多的面试题,反正我已经面过了,那就免费分享出来吧!

需要的朋友:关注一下,然后点击这里即可免费领取

以下是部分面试题截图

章 部署微服务应用

  • 第13章 微服务架构的重构策略

[外链图片转存中…(img-mEBTRrs2-1626165714366)]

写在最后

以上就是我的面试过程,为了这次面试,也收集了很多的面试题,反正我已经面过了,那就免费分享出来吧!

需要的朋友:关注一下,然后点击这里即可免费领取

以下是部分面试题截图

Java程序员秋招三面蚂蚁金服,我总结了所有面试题,也不过如此

以上是关于《软件开发原则》之“给中国软件工程师的寄语”的主要内容,如果未能解决你的问题,请参考以下文章

每日一书丨一部亚马逊4.5高分的领域经典,首次落地中国

6大设计原则之开闭原则

设计原则之开闭原则Open Close Principle

要想富先练功,设计模式之六大原则

跟着盒子的代码设计示例,一起对面向对象的设计模式之SOLID原则加深理解

跟着盒子的代码设计示例,一起对面向对象的设计模式之SOLID原则加深理解