产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

Spring Boot 美女开发者:编程不是男孩子的专属游戏

  • 2017-08-09
  • 本文字数:2440 字

    阅读完需:约 8 分钟

相信不少 Java 开发者都不会对 Spring 陌生,作为开源项目,Spring 备受关注也与时俱进。在各个公司开始尝试落地微服务的过程中,Spring Boot 是不可不研究 。为了更好地了解 Spring Boot,InfoQ 专门对 Spring Boot 团队开发者 Madhura Bhave 进行了采访,这位来自 Pivotal 的美女程序员进行了专业而又深入浅出的解答。

受访者简介

Madhura Bhave, Pivotal 的 Spring Boot 团队中的开发人员。在加入 Spring Boot 团队之前,Madhura 曾从事 UAA 相关的工作(UAA 是适用于 Cloud Foundry 的身份验证和授权组件,用 Spring 编写)。Madhura Bhave 将作为分享嘉宾出席 8 月 26 日于北京召开的 Spring Summit,进行《魔术揭秘:深入挖掘 Spring Boot 的内在潜力》的主题分享。

InfoQ:能否用您自己的方式向我们介绍下 Spring Boot 和 Spring 框架?

Madhura Bhave:Spring Framework 是一个可用于创建企业级应用程序的 Java 平台。 Spring 专注于企业应用程序的“管道”,使团队可以专注于应用程序级的业务逻辑。它有超过 20 个模块,如 Web、数据访问 / 集成等等,这可能使 Spring 成为构建应用程序的一站式服务。Spring Boot 基于 Spring 框架,使应用程序开发人员可以快速创建生产级应用程序,而不需要进行太多配置。它会尝试根据您添加的 Jar 来自动配置应用程序。

可以将 Spring 框架视为车辆的部件,并将 Spring Boot 作为制造车辆本身。根据个人选择车辆部件,获得汽车、卡车、飞机等。

InfoQ:Spring Boot 的设计原则是怎样的?

Madhura Bhave:Spring Boot 的设计原则之一是配置的约定哲学。它旨在帮助创建一个可以“运行”,让开发者快速运行应用程序。它被设计为高度开箱即用,但用户也同样可以根据自己需求进行设置。

InfoQ:能否解释下 Spring Boot 与 Spring Cloud 之间的关系?

Madhura Bhave:Spring Boot,Spring Cloud 和 Microservices 都可以混淆,但三者之间的关系其实是正交。

微服务架构是将软件应用程序构建为一套小型、可独立部署的服务的一种方式。其目标是通过将应用程序分成多个可组合的部分,使应用程序更易于构建和维护。

Spring Cloud 构建在 Spring Boot 之上,重点是为分布式应用程序提供良好的开箱即用体验。 Spring Cloud 包含了一些增强应用程序行为的库、配置属性、服务发现、断路器,这些都是 Spring Cloud 对分布式系统的支持。刚才所说的这些模式都是微服务架构的重要组成部分,因此 Spring Cloud 非常适合开发微服务器。

InfoQ:与已有同类项目、自行编写方案相比,Spring 的特点是怎样的?

Madhura Bhave:与同类项目相比,我认为 Spring 可以很好地管理两个矛盾的目标:长期的可用性即 API 稳定性 vs 对最新技术(JDK 和库版本)和趋势的支持。

与自编码解决方案相比,Spring 拥有大量用户群体,可以帮助 Spring 提供恰到好处的 API 和编程模型,而这些几乎可以覆盖所有的需求场景。

InfoQ:Spring 一直在不断改善丰富,但这是不是也意味着越来越复杂?您怎么看待这件事?您如何设想 Spring Boot 的未来?

Madhura Bhave:今年 Spring Boot 2.0 版本即将问世。Spring 确实很大,因为它与很多不同的技术相结合。但是,尽管 Spring 辐射的技术区域不断增加,但我并不认为这意味着更复杂。Spring 是高度模块化的设计,开发者只需要关心他选择的组件。Spring Boot 正是为简化 Spring 配置而设计的,这本身就是一个很好的例子。

软件开发是一个迅速发展并且充满挑战的行业。Spring 一直在努力地跟进优秀的新范式,比如最近的响应式编程(reactive programming)。同时,Spring 提供了一致的模型,并允许开发者将积累的知识用于新范例的使用。 Spring Boot 2.0 主要新特性集成了 Spring Framework 5 中对响应式编程的支持。

InfoQ:如何掌握 Spring Boot 等 Spring 项目?有哪些推荐入门的资料?

Madhura Bhave:入门 Spring 和 Spring Boot 有很多学习资源。 Spring 团队撰写很多使用方法和技巧指南 https://spring.io/guides。 Josh Long 也有一个 Spring Tips 视频系列: https://www.youtube.com/playlist?list=PLgGXSWYM2FpPw8rV0tZoMiJYSCiLhPnOc。

InfoQ:请谈谈 Pivotal 在 Spring 的贡献,如何使其成为一个开放源码,同时又是商业产品?

Madhura Bhave: Spring 本身是开放的源码,拥有大量的贡献者。 Pivotal 是 Spring 的主要赞助商,并且大部分 Spring 的社区贡献者都在 Pivotal 工作。 Pivotal 还拥有 Pivotal Cloud Foundry(PCF),它是一个基于开源 Cloud Foundry 的平台即服务(PaaS)。 Spring 为 PCF 提供了一些商业产品,使 PCF 成为运行 Spring Boot 和 Spring Cloud 应用程序的最佳选择。

Spring Cloud 项目中有服务器端组件,包括 Spring Cloud Netflix 和 Spring Cloud Config 等,这些可以作为 PCF Marketplace 中的提供服务。 PCF Apps Manager UI 与 Spring Boot 致动器端点集成,可以更轻松地监控和管理云中的应用程序。当然,由于商业产品建立在现有的开源项目之上,社区的反馈和贡献在塑造 Spring 项目方面发挥了重要作用。

InfoQ:人们说,“编程是男孩子的游戏”。您对此怎么看?可以结合您的亲身经历谈谈吗?

Madhura Bhave:我认为你的编码能力与你的性别无关。在 Pivotal 的工作中,我曾与女工程师合作,他们的工程能力与他们最好的男性不相上下。不可否认的是,这个行业中男性占了大多数,而且女性数量略显缺乏。还有一些技术强的女性并不是很积极地为开源项目贡献,可能是对自己的能力没有足够信心、担心不被接受。然而,依据我的所见所闻,女性技能并不差。同时,并不是所有人都歧视女生,以我亲身经历举例,在我的团队中,我的意见和其他同事一样被受到重视。

InfoQ:能告诉我们“什么是一个好的软件工程师”?成为一个好的程序员的基本能力是什么?

Madhura Bhave:要在任何领域取得成功,你必须爱上你所做的事情。这同样适用于编程,你的热情和奉献会陪伴你走很长很远的路。当然,我也认为沟通和同理心也很重要,特别是在开源项目 (OSS,Open-source software) 中,共同协作的人们分布在世界各地。

2017-08-09 19:003937
用户头像

发布了 58 篇内容, 共 43.8 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

实践丨SpringBoot整合Mybatis-Plus项目存在Mapper时报错

华为云开发者联盟

spring 容器 Spring Boot 测试 Mybatis-Plus

对于金融机构而言,为什么选择私有化IM比企业微信、钉钉更好?

WorkPlus

你的“数学潜意识”原来可以被唤醒!

博文视点Broadview

ABAP 文件上/下载

Jasen Ye

upload abap download template GRAPHICS

【愚公系列】2022年03月 Docker容器 Kafka集群的搭建

愚公搬代码

3月月更

从0到1落地电商小程序之微服务设计

晨亮

「架构实战营」

加快云原生技术转型, 智能调度登陆华为云DevOps: 增速,节源

华为云开发者联盟

软件 DevOps 代码托管 智能调度 华为云DevOps

ABAP excel数据上传函数改造

Jasen Ye

Excel upload abap

Nginx限速模块初探

喀拉峻

nginx

无监控不运维—浅述各种监控方案使用场景

穿过生命散发芬芳

3月月更

一首古诗带来的图数据库大冒险

NebulaGraph

知识图谱 实践案例 分布式图数据库

java培训如何用反射做简易 Spring IOC 容器

@零度

Java springloc

【直播回顾】OpenHarmony知识赋能第四期第三课——I2C驱动开发

OpenHarmony开发者

OpenHarmony 驱动开发

速度和质量不可兼得,为什么DevOps落地如此困难?

SoFlu软件机器人

知识管理在企业竞争发展中的作用

小炮

知识管理

Kubernetes中API的不同版本, Alpha, Beta, Stable 都是什么?

工程师薛昭君

Kubernetes API

手把手教你从Apk中取出算法

奋飞安全

android 安全 java

Python 的排序方法 sort 和 sorted 的区别

AlwaysBeta

Python

Facebook 开源 Golang 实体框架 Ent 现已支持 TiDB

PingCAP

Meetup预告|云原生时代热门监控利器解析与应用

云智慧AIOps社区

运维 云原生 安全 监控工具

windows下C与C++执行cmd命令并实时获取输出

DS小龙哥

3月月更

微服务架构下消息服务多通道设计思路

全象云低代码

微服务 低代码 后端开发 消息中间件 后端技术

从HDFS的写入和读取中,我发现了点东西

华为云开发者联盟

hdfs HDFS写入 HDFS读取 文件读取

数仓如何设置大小写不敏感函数

华为云开发者联盟

MySQL DWS GaussDB(DWS) 大小写不敏感函数 GUC参数

云原生时代已来,计算机教育如何因「云」而变?

阿里云弹性计算

云原生 ECS 计算机教育

从多快好省到好快省多,您的项目管理走对了吗?

禅道项目管理

项目管理

如何升级到 React 18

CRMEB

web前端培训如何用CSS来实现透明方格

@零度

CSS web前端

网络安全入门5天速成教程: WEB安全渗透攻防技术

网络安全学海

网络安全 安全 信息安全 渗透测试 WEB安全

项目管理标准化的武林秘籍

大智若愚

团队管理 项目管理 标准化 软技能 标准框架

揭秘!网易有道技术岗实习生都在做什么?

有道技术团队

招聘 实习 网易有道

Spring Boot 美女开发者:编程不是男孩子的专属游戏_语言 & 开发_木环_InfoQ精选文章