写点什么

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

2017 年 8 月 09 日

相信不少 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 年 8 月 09 日 19:002916
用户头像

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

关注

评论

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

还在头疼C艹中的智能指针吗?

linux亦有归途

指针 C/C++

首家支持阿里云函数计算 APM技术为Serverless环境赋能

BonreeAPM

阿里云 Serverless 运维 APM 函数

Vim - 可能是投资回报率最高的 Editor

star_fx

vim

架构师训练营第二周框架设计学习总结

Geek_xq

对于CRM之于现代化企业的影响以及作用的分析

Marilyn

敏捷开发 快速开发 企业开发 CRM 企业应用

【行业分享】叮咚课堂邱明丰:在线教育的最终形态的探索

ZEGO即构

LeetCode题解:121. 买卖股票的最佳时机,暴力法,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

区块链电子票据解决方案--区块链赋能纳税服务

13530558032

智慧警务大数据决策指挥平台,警务大数据可视化平台开发

13530558032

RocketMQ 很慢?引出了一个未解之谜

阿里巴巴云原生

开源 云原生 中间件 Java 25 周年 Arthas

顶层设计已基本完备 数字货币将进入加速推进阶段

CECBC区块链专委会

数字货币

从应用迁移到平台微认证:鲲鹏技术解读

华为云开发者社区

鲲鹏 代码迁移 arm

打工人、打工魂、高效MES助力打工者都是人上人

Learun

敏捷开发

区块链商品溯源系统开发,区块链防伪追溯系统

13530558032

架构师训练营第十一周总结

邓昀垚

利用 Arthas 解决启动 StandbyNameNode 加载 EditLog 慢的问题

阿里巴巴云原生

阿里云 开源 云原生 中间件 Java 25 周年

牛批!阿里P8大牛写了一份Spring Boot2教程已整理成文档免费分享。谁学谁真香系列!

Java成神之路

Java 程序员 架构 面试 编程语言

怎么保护自己的音乐作品不被盗用,用FL制作防盗水印片段。

奈奈的杂社

Spring+MySQL+数据结构+集合+注解+NIO+多线程进阶学习思维脑图总结!

Java成神之路

Java 程序员 架构 面试 编程语言

Arthas 实践——生产环境排查 CPU 飚高问题

阿里巴巴云原生

开源 云原生 中间件 Java 25 周年 Arthas

时空碰撞系列·终

誓约·追光者

数据分析 Sparksql

业务中台建设 - 自底向上演进

孝鹏

架构 中台 业务线 数字化转型 沟通

深入了解物理内存管理-伙伴(Buddy)算法

ShenDu_Linux

Linux 算法 内存管理 内核

多线程源码明白了吗?不明白的话来看腾讯大牛给你画的面试重点

996小迁

Java 学习 编程 架构 面试

架构师训练营第十一周作业

邓昀垚

区块链如何助力精准扶贫?

CECBC区块链专委会

区块链 扶贫

阿里P8大牛总结整理的精选技术好文:Redis+Nginx+设计模式+Spring全家桶+SQL+Dubbo

Java成神之路

Java 程序员 架构 面试 编程语言

蘑菇街Java大牛熬夜半个月纯手打肛出的一份《多线程源码学习笔记》文档资料,赶紧收藏学习!

Java成神之路

Java 程序员 架构 面试 编程语言

数字货币——货币的第四次革命

CECBC区块链专委会

数字货币

架构师训练营第 1 期 第 10 周作业

李循律

MindSpore手写数字识别初体验,深度学习也没那么神秘嘛

华为云开发者社区

人工智能 学习 手写识别

NLP领域的2020年大事记及2021展望

NLP领域的2020年大事记及2021展望

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