QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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:004031
用户头像

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

关注

评论

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

PageHelper

BitSea

推荐几款有意思的小众App(05.30)

静陌

产品 App

不忘初心,继续努力

一周思进

ARTS 打卡计划

k6新崛起的性能测试工具

风中之心

DevOps 性能 性能测试

原创 面试官:你说对MySQL事务很熟?那我问你10个问题

程序员柠檬

MySQL 数据库

你真的清楚 Nginx 指令的规则吗?

子杨

nginx 运维

Java 底层基础笔记(一)硬件

奈何花开

Java Linux 计算机基础

2020年南京第十三届物联网应用展览会

南京专业智博会

展览会 论坛会 博览会 智博会

2020年亚洲南京大数据产业展览会

南京专业智博会

展览会 论坛会 博览会 智博会

思维模型 - 概念篇

石云升

学习 高效 思维模型 决策

分布式锁🔒是个啥❓ 其实就这么点事

山中兰花草

Java redis 后端 分布式锁 开发

ARTS-week-1

saddamwilson

ARTS 打卡计划

面试造飞机系列:说下微服务接口设计原则?

程序员柠檬

分布式 微服务 后端 架构设计

Markdown 几行字符就可以生成思维导图了!

JackTian

markdown 思维导图 markdown语法 markdown编辑器 Markmap

10分钟白嫖我的常用的在线工具网站清单

JavaGuide

设计 在线工具 工具类网站 PDF

游戏夜读 | 记忆里的老游戏

game1night

用大数据分析了一线城市1000多份岗位招聘需求,告诉你如何科学找工作

程序员柠檬

Python 数据分析

2020亚洲南京第十三届人工智能机器人服务展览会

南京专业智博会

展览会 论坛会 博览会 智博会

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (十二)编写测试-简单测试

编程道与术

Java 编程 TDD 单元测试 JUnit

Linux下程序出问题不要慌,资深程序员教你6招搞定!

程序员柠檬

Linux 程序员 后台开发

Jupyter最佳实践

pydata

Wireshark的使用与数据分析(一)

姬翔

github看代码效率提高10倍!因为用了sourcegraph这个工具

程序员柠檬

GitHub 程序员 效率工具

如何优雅地实现泛型类的类型参数化

KAMI

Java 编程 反射 泛型

这可能是 Markdown 写微信公众号的一款神器了!

JackTian

效率工具 markdown markdown编辑器 markdownnice 神器

ARTS打卡-01

Geek_yansheng25

ARTS 打卡计划

如何衡量产品需求效果

黄大路

产品经理 产品设计 运营

使用 PCA 进行降维可视化,了解特征分布

黄大路

数据挖掘 数据分析 可视化

2020南京第十三届智慧工地装备展览会

南京专业智博会

展览会 论坛会 博览会 智博会

2020年南京第十三届智慧停车展会

南京专业智博会

展览会 博览会 智博会 展览会论坛会

2020亚洲智能家居全屋智能展会-南京站

南京专业智博会

展览会 论坛会 博览会 智博会

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