首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >进入番石榴

进入番石榴
EN

Software Engineering用户
提问于 2013-04-23 15:58:53
回答 1查看 738关注 0票数 4

因此,我最近开始在我的应用程序客户机/服务器通信中使用Netty,我发现我喜欢可列表的Futures的想法。我不知道为什么我不知道Java能够做到这一点,当然,它不能。

经过一些搜索,我意识到这是番石榴的并发工具提供的特性,这让我浏览了它的用户指南。这听起来很棒,但我有些担心:

  1. 我已经有了大量使用JDK并发的代码。迁移到这里有多难?
  2. 换句话说,开始成为一名“番石榴程序员”的风险是什么?在番石榴方式和核心Java方式之间来回反弹有多难呢?
    • 如果在现有的项目中,我用Guava类编写新类而不迁移其余代码,那么会有什么潜在的危害呢?

  3. 是否有一个好的指南来慢慢开始使用番石榴特性,而不必停止我的实际工作来训练自己几天/星期?
  4. 还有什么是我事先应该知道的,我还没有想到呢?
EN

回答 1

Software Engineering用户

回答已采纳

发布于 2013-04-23 16:40:41

我认为您所面临的根本问题是,您将番石榴视为一个完整的框架或DSL (特定于域的语言)。番石榴是另一个类同Apache的库,它提供了与JDK库相辅相成的公共抽象、数据结构和方便方法。

对你的问题的回答:

  1. 如果您的代码设计得很好,那么应该不难使用Guava的并发库。
  2. 正如我所提到的,Guava并不是DSL或JVM语言(比如Scala/Groovy),因为在这种语言中,您将以不同的方式编写代码。
  3. 除了你在网站上找到的维基,JavaDocs和PDF之外,你还会发现很多关于使用番石榴的博客文章。我不知道有什么其他的书或出版物。你不应该超过几天。
  4. 不是的。

我在上面看到的唯一例外是,您希望使用番石榴的功能成语,并将其用作Java中功能程序设计的介绍。然后,我可以看到一个范式的转变,您将以不同的方式编写代码。在这种情况下:

  1. 有一本叫做"Java的函数式编程“的书是由迪恩·瓦普勒写的,书中提到了FP预Java-8。有一个由贝塔书发布的PragProg,它讨论了使用Java8特性的FP。
  2. Guava wiki本身警告您要明智地使用函数式成语:过度使用Guava的函数式编程习惯用法会导致冗长、混乱、不可读和低效的代码。这些是目前为止最容易(也是最常见)被滥用的番石榴的部分,当你为了使你的代码成为“一行代码”而付出荒谬的长度时,番石榴团队会哭泣。

通过阅读上面的文章,您会发现FP (preJava-8)可能非常笨拙和冗长(因为缺少一流的函数,并且不得不使用内部类)。相信我,我们的代码库中有一些代码(Ab)使用这些成语,团队一直在抱怨它(很难阅读和理解),尽管在总体上并不讨厌FP。

票数 7
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/195858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档