“Kotlin很棒,我真的很想用它。但是我怎么能说服我的管理层?“这是我在谈话后被问到的最常见的问题。在这篇文章中,我解释了我们如何介绍Kotlin并展示可以增加成功机会的论据,策略和技巧。我保持手指交叉!
说服您的管理层介绍Kotlin
TL; DR
- 解释Kotlin的优点
- 提高生产力
- 更少的错误
- 有动力的开发人员
- 提高申请人的吸引力
- 澄清引入Kotlin的风险很低。
- 重用有关Java生态系统的现有知识
- Kotlin不是一门复杂的语言。
- Kotlin易于学习 - 尤其适用于Java开发人员。没有范式转变。
- 可逐步迁移。可以并行使用Kotlin和Java。
- 知道有关Kotlin的有效保留。当他们出现时做好准备。但保持诚实和平衡。
- 进一步发展取决于JetBrains
- Eclipse和NetBeans中的支持不佳
-
踏上门。
- 开始在具有较小代码库和较少业务影响的项目中引入Kotlin。
- 测试套件项目或内部工具是很好的起点。
- 管理层更有可能同意这种妥协。
- 使用所收集的经验来争论扩展的Kotlin用法。
传播服饰中的Kotlin故事
在Spreadshirt,我们在大约2年前,即2016年8月开始介绍Kotlin。我们开始在一个测试项目中使用Kotlin。这是一个很好的起点,因为我们没有接触任何有效的代码,但仍然能够收集经验。我们对Kotlin如此热情,我们扩大了它的使用范围。之后,我们开始了第一个纯粹用Kotlin编写的服务。其他团队一点一点地开始采用Kotlin并将其用于新服务。截至今天,Kotlin已采用以下方式:
<figcaption style="box-sizing: inherit; font-style: italic;">
Spreadshirt的Kotlin适应(2018年5月)
</figcaption>
但是,大多数Kotlin服务都是中小型或内部工具。Java仍然是我们的养家糊口的人。
对我来说,有两个因素可以简化 Kotlin在Spreadshirt 的推出:
- 微服务架构:由于我们的平台由可独立部署的单元组成,因此在开始新项目时使用新技术和语言要容易得多。
- 自组织团队:在选择技术方面,我们的团队拥有许多自由。他们自己决定,但如果某项技术在维护或操作方面表现不佳,也必须承担后果。只有一些指导方针。例如,我们通常坚持使用JVM生态系统。
总而言之,我声称今天Kotlin是Spreadshirt许多团队新服务的首选。
简而言之,这就是我们的故事。根据我们的经验,我想向您提供一些建议,策略和技巧,这些建议,策略和技巧可能会增加您在说服Kotlin的管理层或架构师方面取得成功的机会。
解释Kotlin的优点
- 提高生产力
- 例如,数据类和表达式支持大大减少了样板并导致简洁的代码。
- Kotlin 内置了对许多Java最佳实践和设计模式的支持。
- 更少的错误
- 例如,由于不变性和可空性。
- 这很难客观衡量,但我可以根据自己的经验来证实这一点。
- 开发人员的动机。快乐的开发人员很有成效,不会放弃。
- 提高申请人的吸引力。现代语言吸引熟练的开发者 我们Spreadshirt已经有申请人明确要求Kotlin。
澄清引入Kotlin带来低风险
- 重用功能强大且着名的Java生态系统。我们坚持我们心爱的JVM生态系统,可以重用我们关于Java库,框架,构建工具,工件存储库,CI,CD,IDE,监控,日志记录,JRE,测试工具,部署,配置和JIT编译器的知识。这是一个巨大的优势,不应低估。这大大缩短了学习曲线并使您高效。介绍Kotlin并不会破坏公司的技术堆栈。
- 简单易学。
- 特别是对Java开发人员。
- 没有范式转变。与Java一样,Kotlin是一种面向对象的语言。它只是具有更多功能。
- 使用Kotlin参考可以在一到两天内学习Kotlin的基础知识。这不是一个复杂的语言 - 这很棒。
- 与Java的互操作性。
- 可逐步迁移。您可以在项目中同时使用Kotlin和Java。
- IntelliJ IDEA支持Brilliant IDE。
了解Kotlin的预订
首先,不要将你的管理层或怀疑同事视为你的邪恶敌人。他们通常只是想保护项目免受额外的复杂性,或者不想承诺“未知未来的炒作语言”。认真对待有效的预订并表达您的理解。尝试了解他们的意图和观点。否则,他们将保持阻止立场。诚实地对待风险和后果并提供妥协。所以是的,这也是关于心理学的。
话虽如此,让我们从两个最重要的预订开始,进行一些典型的预订。
Kotlin的不确定的未来
“Kotlin只是下一个大肆宣传的JVM语言”
“Kotlin的进一步发展取决于JetBrains”
好点子。JetBrains不是一家小公司(700名员工),他们很健康,但绝对不是甲骨文,微软或谷歌。这是一个有效而严肃的论点。至少,您可以提出以下异议:
- Kotlin根据开源许可证Apache 2获得许可。它不是专有的,可以在没有JetBrains的情况下开发 - 至少在理论上是这样。
- Google承诺将Kotlin作为Android开发的官方语言(在Google I / O 2017上宣布)。例如,他们正在开发专用的Kotlin API(如Android KTX)。
- Java生态系统包含Kotlin。
- Spring 5引入了Kotlin支持(专用的Kotlin DSL和扩展API,可空性支持)
- Gradle提供了一个Kotlin DSL,用于编写Gradle构建脚本作为Groovy的替代方案。
- JUnit5也支持Kotlin。他们甚至在官方用户指南中将Kotlin命名为更改默认测试实例生命周期的动机。
- 谷歌搜索趋势显然显示出对Kotlin的兴趣稳定增长。
● Kotlin ● Scala ● Groovy ● Clojure
Google搜索趋势中对Kotlin的兴趣不断增加
<figcaption style="box-sizing: inherit; font-style: italic;">
Google搜索趋势中对Kotlin的兴趣不断增加
</figcaption>
总而言之,Kotlin肯定会留下来。
IntelliJ IDEA作为固定IDE
“我想坚持使用Eclipse。”
“我们必须使用IntelliJ IDEA。”
是的,这是真的。您必须使用IntelliJ IDEA。其他IDE中的Kotlin支持很差,期间。在Eclipse或NetBeans中使用Kotlin并不是很有趣。是的,有一个由JetBrains开发的官方Eclipse插件。但对我来说,它几乎无法使用。老实说:你可以想象JetBrains有兴趣在他们自己的商业产品旁边提供一个完全成熟的Kotlin工具。销售许可证是开发Kotlin的主要动机。
关于“最佳”IDE的讨论在Java社区中具有情感性和近乎宗教性。每个营地都有狂热者和狂热者(包括我)。因此,如果您的团队由已确认的Eclipse用户组成,说服他们将非常困难。老实说,我相信这几乎是不可能的。不幸的是,这可能会成为引入Kotlin的重要阻力。即使在Spreadshirt,由于这个原因,一支球队拒绝了Kotlin。
至少,请记住,IntelliJ IDEA 的社区版已经包含Kotlin工具。因此无需购买许可证。顺便说一下:我使用社区版很长一段时间,效果很好!我什么都没错过。
需要培训
“每个开发人员都必须学习一门新的编程语言。”
是的,根据您的团队结构,这可能是真的。但是,通过指出Kotlin的优势,可以很容易地调整这个论点。让我们回顾一下:
- Kotlin很容易学习。学习基础知识需要一到两天的时间。之后,它正在边做边学。
- 重用有关Java生态系统的现有知识。
- Kotlin与Java类似。
- Kotlin不是一门复杂的语言。
- 没有范式转变。
- 学习一门新语言对于开发人员来说非常有趣并且是一种巨大的动力。
踏上门:从小处着手,收集自己的经验
网络充满了Kotlin提供的无穷无尽的优势 - 就像我的上面一样。这几乎听起来像救赎的承诺。最有可能的是,第三人的这些说法不会说服你的管理层或建筑师。成功的关键是与Kotlin一起收集自己的经验。有了这些经验,你就更可信了,可以更好地争辩:
“嘿管理层,我们尝试过Kotlin,并且经历了具体的优势。我们可以使用数据类和表达式显着减少样板。此外,我们还认为由于不变性和零安全性而不太可能引入错误。最后,这很有趣!迫不及待明天上班!“
具体经验具有说服力。但是,如果我们不允许首先使用Kotlin,你怎么能收集这些经验呢?简单地重新编写现有服务而不具备具体的商业利益将无法销售。我建议妥协。一些选择:
- 在测试项目中开始使用Kotlin。所以你没有触及任何高效的代码。Kotlin代码不会对业务产生直接影响。因此影响相对较小,代码库和复杂性具有可管理的大小。在Spreadshirt,我们采用了这种方法,效果非常好。
- 内部工具也是一个很好的选择。
- 在同一个项目中将Kotlin与Java并行使用。您只使用Kotlin获取新功能,并保持现有Java代码不变。由于Kotlin与Java很好地协同工作,这是可能的。但是请注意,您现在将强制此项目的所有开发人员学习Kotlin并使用IntelliJ IDEA。此外,对于在同一项目中使用多种语言也有一定的保留意见,因为它增加了项目的复杂性。这就是为什么我声称这种方法可能难以出售。
称之为“实验”。这也可能会提高接受度。所以管理层仍然觉得这个决定每次都是可逆的。事实上,这是事实。但至少,你走进了门。在您开始使用它之后,扩展Kotlin的用法要容易得多。
你的故事很重要
我真的对你在公司介绍Kotlin的故事感兴趣。或者,如果你尝试过,你无法说服管理层或你的开发人员。在这两种情况下,请发表评论。













网友评论