首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么不应该使用Observable.create

Observable.create是RxJava中的一个方法,用于创建一个自定义的Observable对象。然而,尽管Observable.create具有一定的灵活性,但在实际开发中,不建议频繁使用它,原因如下:

  1. 复杂性:使用Observable.create需要手动管理订阅、取消订阅、错误处理等过程,这增加了代码的复杂性和维护成本。相比之下,使用RxJava提供的操作符和工具类可以更简洁地实现相同的功能。
  2. 容易出错:由于Observable.create需要手动管理订阅和取消订阅,容易出现内存泄漏和资源未释放等问题。在复杂的场景下,正确地处理订阅的生命周期变得困难,容易导致bug的产生。
  3. 可读性差:使用Observable.create创建Observable对象时,需要编写大量的回调代码,使得代码可读性较差。相比之下,使用RxJava提供的操作符和函数式编程风格可以更清晰地表达业务逻辑。

推荐的替代方案是使用RxJava提供的操作符和函数式编程风格来创建Observable对象。例如,可以使用just、from、interval等操作符来创建Observable对象,或者使用map、filter、flatMap等操作符对Observable进行转换和处理。

对于推荐的腾讯云相关产品和产品介绍链接地址,由于不能提及具体的品牌商,无法给出具体的链接地址。但腾讯云作为一家知名的云计算服务提供商,提供了丰富的云计算产品和解决方案,可以根据具体需求在腾讯云官网上查找相关产品和文档。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

企业物联网为什么不应该使用WiFi

对于企业物联网解决方案,无论使用情况如何,都不应使用WiFi。 11.18.19-Using-Customer-Wifi.jpg 您正在构建IoT解决方案,并准备选择连接方法。您应该使用蓝牙吗?...对于企业物联网解决方案,无论情况如何,都不应使用WiFi。 乍一看,WiFi是一个诱人的选择,因为它的广泛使用,这意味着: 1)市场上有许多支持WiFi的传感器/设备的廉价选择。...这就是为什么连接必须可靠和一致的原因。 不幸的是,企业WiFi在物联网解决方案方面既不可靠也不一致,而且很难排除故障。...客户不在乎为什么他们闪亮的新物联网解决方案不起作用,也不在乎这不是你的错,他们只在乎它不起作用。如果无法端到端地控制整个系统,这将使您处于一个危险的位置。...结论:不要将WiFi用于企业物联网 使用企业WiFi作为物联网解决方案的连接骨干网,缺乏可靠性、一致性和控制,最终导致这种方法风险太大、成本太高。

64100

为什么不应该使用ZooKeeper做服务发现

在这边文章中,我们将用我们在实践中遇到的问题来说明,为什么使用ZooKeeper做Service发现服务是个错误。 请留意服务部署环境 让我们从头开始梳理。...但是别忘了,ZooKeeper是分布式协调服务,它的职责是保证数据(注:配置数据,状态数据)在其管辖下的所有服务之间保持同步、一致;所以就不难理解为什么ZooKeeper被设计成CP而不是AP特性的了,...(注:这也是为什么ZooKeeper不满足CAP中A的原因) 更深层次的原因是,ZooKeeper是按照CP原则构建的,也就是说它能保证每个节点的数据保持一致,而为ZooKeeper加上缓存的做法的目的是为了让...Knewton平台很多故障就是由于ZooKeeper使用不当而导致的。...但是,如果使用ZooKeeper你必须自己来实现这些功能。Eureka的所有库都是开源的,所有人都能看到与使用这些源代码,这比那些只有一两个人能看或者维护的客户端库要好。

1.7K100
  • 为什么数据库不应该使用外键

    转自:真没什么逻辑 作者:Draveness 为什么这么设计(Why’s THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点...我们在前面的文章中曾经分析过 为什么 MySQL 的自增主键不单调也不连续,这篇文章我们来分析关系型数据库中另一个重要的概念 — 外键(Foreign Key)。...当我们考虑应不应该在数据库中使用外键时,需要关注的核心我们的数据库承担这部分计算任务后会不会影响系统的可用性,在使用时也不应该一刀切的决定用或者不用外键,应该根据具体的场景做决策,我们在这里介绍了两个使用外键时可能遇到的问题...,大多数公司的 DBA 都会对数据库系统的使用有比较明确的规定,但是我们要清楚做出使用外键和不使用外键这一抉择的原因。...到最后,我们还是来看一些比较开放的相关问题,有兴趣的读者可以仔细思考一下下面的问题: 数据库中还有哪些特性是我们在生产环境中不会使用的?为什么

    3.2K10

    为什么不应该使用div作为可点击元素

    但我们经常倾向于使用其他HTML元素,如 div span 等作为 clickable 元素。 但通过这样做,我们错过了许多内置浏览器的功能。 我们缺少什么?...无障碍问题(空格键或回车键无法触发按钮点击) 元素将无法通过按Tab键来聚焦 权宜之计 我们需要在每次创建可点击的 div 按钮时,以编程方式添加所有这些功能 更好的解决方案 始终优先使用 button...作为可点击元素,以获取浏览器的所有内置功能,如果你没有使用它,始终将上述列出的可访问性功能添加到你的div中。...虽然,直接使用按钮并不直观。我们必须添加并修改一些默认的CSS和浏览器自带的行为。 使用按钮的注意事项 1. 它自带默认样式 我们可以通过将每个属性值设置为 unset 来取消设置现有的CSS。...无论何时使用按钮,如果它不在表单内,请始终添加 type='button' ,因为 submit 和 reset 与表格有关。

    25741

    为什么不应该重写service方法?

    : 从前,有一个程序猿,他语重心长地对孙子说:“孩子,要是你以后写servlet,最好不要重写service方法啊” 孙子大为不解,程序猿又说:“听爷爷的,准没错,爷爷的爷爷就是这么说的……” 为什么不应该重写...(见图二) 如果资源没有被修改,server返回304状态码,并不会再次将资源发送给浏览器,浏览器则很知趣的使用本地的缓存文件。...有了缓存协商的知识,理解为什么我们不应该重写service就很容易了。还是从代码出发,这次我们看一个复杂一点的例子。...现在你也许已经清楚了,为什么不应该重写service方法,似乎是为了保留HttpServlet默认实现的缓存协商的机制;其实还有另外一个原因:就是禁用你没有在servlet中重写的方法,例如post、head...好了,如果你有耐心看到这里,我想你也许会对service有了新的理解,为什么我们不应该重写这个方法。 万事有例外,如果你需要实现一个前端控制器的话,就是另外一回事了,这留给大家自己思考。

    39520

    为什么不应该重写service方法?

    从前,有一个程序猿,他语重心长地对孙子说:“孩子,要是你以后写servlet,最好不要重写service方法啊” 孙子大为不解,程序猿又说:“听爷爷的,准没错,爷爷的爷爷就是这么说的……” 为什么不应该重写...(见图二) 如果资源没有被修改,server返回304状态码,并不会再次将资源发送给浏览器,浏览器则很知趣的使用本地的缓存文件。...有了缓存协商的知识,理解为什么我们不应该重写service就很容易了。还是从代码出发,这次我们看一个复杂一点的例子。...现在你也许已经清楚了,为什么不应该重写service方法,似乎是为了保留HttpServlet默认实现的缓存协商的机制;其实还有另外一个原因:就是禁用你没有在servlet中重写的方法,例如post、head...好了,如果你有耐心看到这里,我想你也许会对service有了新的理解,为什么我们不应该重写这个方法。 万事有例外,如果你需要实现一个前端控制器的话,就是另外一回事了,这留给大家自己思考。 结束

    45420

    为什么不应该重写 service 方法?

    故事通常是这样开始的: 从前,有一个程序猿,他语重心长地对孙子说:“孩子,要是你以后写servlet,最好不要重写service方法啊” 孙子大为不解,程序猿又说:“听爷爷的,准没错,爷爷的爷爷就是这么说的……” ——为什么不应该重写...(见图二) 如果资源没有被修改,server返回304状态码,并不会再次将资源发送给浏览器,浏览器则很知趣的使用本地的缓存文件。...有了缓存协商的知识,理解为什么我们不应该重写service就很容易了。...现在你也许已经清楚了,为什么不应该重写service方法,似乎是为了保留HttpServlet默认实现的缓存协商的机制;其实还有另外一个原因:就是禁用你没有在servlet中重写的方法,例如post、head...好了,如果你有耐心看到这里,我想你也许会对service有了新的理解,为什么我们不应该重写这个方法。 万事有例外,如果你需要实现一个前端控制器的话,就是另外一回事了,这留给大家自己思考。

    40920

    为什么不应该重写 service 方法?

    从前,有一个程序猿,他语重心长地对孙子说:“孩子,要是你以后写servlet,最好不要重写service方法啊” 孙子大为不解,程序猿又说:“听爷爷的,准没错,爷爷的爷爷就是这么说的……” ——为什么不应该重写...(见图二) 如果资源没有被修改,server返回304状态码,并不会再次将资源发送给浏览器,浏览器则很知趣的使用本地的缓存文件。...有了缓存协商的知识,理解为什么我们不应该重写service就很容易了。...现在你也许已经清楚了,为什么不应该重写service方法,似乎是为了保留HttpServlet默认实现的缓存协商的机制;其实还有另外一个原因:就是禁用你没有在servlet中重写的方法,例如post、head...好了,如果你有耐心看到这里,我想你也许会对service有了新的理解,为什么我们不应该重写这个方法。 万事有例外,如果你需要实现一个前端控制器的话,就是另外一回事了,这留给大家自己思考。

    20830

    CSS样式组件:为什么你应该(或不应该使用

    由于您使用的是模板文字,因此您可以使用 props 动态调整组件。这使您可以非常轻松地更改因数据更改而导致的组件的外观。...提示: 如果您使用快照测试,动态生成类可能会很烦人。...由于样式组件的动态特性,使用样式组件比使用经典 CSS 更容易实现这一点。在每个样式组件中,您都可以访问主题对象,例如,为每个输入指定 6px 的边框半径。...例如,如果您使用外部库中的表单,但您不喜欢输入字段周围的填充。那么就无法避免使用包装组件。...就像使用常规 CSS 一样,您可以使用类名或 id 等内容访问其他元素,但您也可以调用其他样式组件。

    10010

    为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)lock(string) 或者 lock 任何非私有对象?

    如果你编写线程安全代码时为了省事儿直接 lock(this),或者早已听说不应该 lock(this),只是不知道原因,那么阅读本文可以帮助你了解原因。...---- 原因 不应该 lock(this) 是因为你永远不知道别人会如何使用你的对象,永远不知道别人会在哪里加锁。于是稍不注意就可能死锁! 实例 看看下面的两段代码。...} } } 第二段代码使用了这个类的一个实例。为了响应放到了后台线程中,但为了线程安全,加了锁。...—— 死锁 在 DouB_Walterlv 方法中完全看不出来为什么死锁,只能进入到 DoSafety 中才发现试图 lock 的 this 对象刚刚在另一个线程被 lock (_foo) 了。...如果你试图实现某些接口中的 SyncRoot 属性,却遇到了上述矛盾(这样的写法不安全),那么可以阅读我的另一篇博客了解如何实现这样的“有问题”的接口: 为什么实现 .NET 的 ICollection

    50610

    到底应不应该使用 lombok

    使用 lombok 还是有很多争议的,有些公司不建议使用,有些公司又大量使用。我们的想法是:可以使用,但是不要滥用。...如何使用如果使用 Maven 的话,直接添加下面的依赖到 pom 文件中就可以了。...随后就是在代码中使用注释就可以了。如下面的代码,我们直接简化使用注解就可以了。需要注意的是,使用 log 来标记日志。这样看起来,代码就优雅很多,也能减少不少不需要的代码。...如果上游系统中提供的fegin client 使用了 lombok,那么下游系统必须也使用 lombok,否则会报错,上下游系统构成了强依赖。...哪怕就是为了使用 @Slf4j 来考虑的话,也是值得的。https://www.ossez.com/t/lombok/14036

    41640

    为什么你永远不应该在CSS中使用px来设置字体大小

    在Josh Collinsworth的博客文章“永远不要用px作为字体大小”中,作者讨论了为什么不应该使用像素(px)作为网页字体大小的单位[1]。...这意味着,如果我wu7的样式表使用像素单位,可能导致访问网站的用户难以阅读。 因此,作者建议使用相对单位,如em、rem或百分比,而不是像素。...我们要非常清楚:在CSS中使用的单位绝对很重要。并且在设置时 font-size 应尽可能避免使用 px 。 我们在谈论什么单位,它们是做什么的?...在我们讨论为什么应该避免使用 px 作为 font-size 之前,让我们确保我们都清楚我们正在谈论哪些单位,以及它们的一般行为。...现在让我们回答为什么使用哪个单位很重要。 为什么这一切都很重要 再次强调的误解是:既然 1em 和 16px 相等,那么选择哪个单位并不重要。

    1.8K20

    为什么企业不应该担心公共云供应商的锁定

    “供应商锁定”是指客户依赖特定供应商提供产品和服务,并且在不产生实质性转换成本或运营影响的情况下无法使用其他云计算供应商的云服务。...AWS、Azure和谷歌云的云计算设计使客户只有在看到价值时才使用服务,并且可以自由使用选择的技术。现收现付的定价为客户提供了关闭环境、导出数据和虚拟机(VM)以及离开的能力,而无需支付任何其他费用。...许多企业都熟悉与传统企业公司打交道时的供应商锁定,企业开始使用服务,并且意识到这种关系的条款在成本、附加功能和服务方面会给他们带来什么。...当企业使用给定的云平台的新功能和内部部署工具时,很难避免某种形式的依赖性。但是,这很有可能将企业的业务设置为保持足够的自由度并减轻风险,因此会带来一定的灵活性。 那么,这是一场真正的危机吗?...企业是否应该担心使用公共云而面临供应商锁定?实际上这并不是主要问题,因此不必为此担心。

    93810

    使用Python时绝对不应该做什么?

    在本文中,我们将学习在使用 Python 时不应该做什么。 谨慎使用类变量 在 Python 中,类变量用作字典,称为方法解析顺序 (MRO)。此外,如果一个类缺少一个属性,则该类缺少一个属性。...Python 在线使用缩进,不像 Java、C++ 和其他编程语言使用大括号来构造代码块。许多属性受缩进的影响。某些 Python 缩进问题比其他问题更难检测。...但是,Python使用独特的编程范式来克服这一点。 如果使用得当,范式可以简化然后简化代码,确保不会意外删除和迭代重要项目。 变量绑定 这是一个学习者难以掌握和欣赏的话题。Python 支持后期绑定。...它绑定其变量的外壳或周围的全局范围,因此在调用内部函数时会查找闭包中使用的变量值。 误用“_ _ del _ _” “_ _ del _ _”方法只能在某些情况下使用,而不是所有时间都可以使用。...使用 () 更改模块。 不使用注释和文档字符串 注释是编程的重要组成部分。注释提高了代码的可读性和自我解释。如果不使用注释或文档字符串会怎样?太可怕了!

    1.2K40

    205K+程序员关注过的问题:为什么不应该使用Java的原始类型?

    在逛 Stack Overflow 的时候,发现了一些访问量像熊耳山一样高的问题,比如说这个:为什么不应该使用Java的原始类型?访问量足足有 205K+,这不得了啊!...为什么不要使用原始类型?如果不能使用原始类型,有什么更好的选择呢? 如果大家也被这个问题困扰过,或者正在被困扰,就请随我来,咱们肩并肩手拉手一起梳理一下这个问题,并找出最佳答案。...extends Number> 02、为什么不要使用原始类型? 大家可能会有一个疑惑,原始类型用起来很爽啊!因为不用关心放入 List 的元素到底是什么类型,想放什么就可以放什么,不要太爽啊!...如果不能使用原始类型,有什么更好的选择呢? 为了让 List 能够容纳任意类型的元素,我们可以使用 List,尽管这并不是一个最优的选择。...04、为什么 Java 允许使用原始类型? 既然原始类型是不安全的,那为什么 Java 一直允许使用原始类型呢?并且泛型擦除后仍然是个原始类型呢? 答案很简单、很无厘头、很苍白——为了版本兼容!

    50330

    不应该使用inline-block代替float

    特别是处理内部容器中的浮动,比如对一排图片使用浮动后对齐出现问题。Inline-block是我们的另一种选择。使用这种属性可以模拟部分浮动的特征,而不需要处理一些浮动带来的问题。...什么时候使用inline-block,什么时候使用float 什么时候使用,取决于你的设计稿跟解决方法。如果你需要文字环绕容器,那浮动是不二选择。...使用inline-block:当你需要控制元素的垂直对齐跟水平排列时,使用inline-block。...使用浮动:当你需要让元素环绕某一个元素时,或者需要支持旧版本ie,或者不想处理inline-block带来的空白问题时,使用浮动。...同样我想说的,这不是什么新东西,但我会通过这篇文档还有demo来介绍一些应该使用但有些人尚未使用inline-block的场景。

    1.5K10

    业界 | 为什么不应该成为一名数据科学通才

    以下是他以第一人称的论述,enjoy 我在公司帮新手规划数据科学职业发展的时候,通常首先建议他们先去考虑一下自己想成为什么样的数据科学家,而不是直接推荐一个新的库或工具,或者一些写简历的技巧给他们。...例如,一些公司将简单模型应用于大型数据集,一些公司将复杂模型应用于小型数据集,一些公司需要动态地训练他们的模型,还有一些公司根本不使用传统的模型。...为什么它很重要:如果你只处理过相对小的(<5Gb)保存为.csv或.txt文件的数据集,那么你可能很难理解为什么会有一些人的全职工作是构建和维护数据管道。...要求:你将使用的技术包括Apache Spark、Hadoop和/或Hive,以及Kafka。你很可能还需要有一个扎实的SQL基础。...为什么它很重要:纯技术人员通常很难理解为什么数据分析员如此重要,但事实是他们就是很重要。这些人需要将经过训练和测试的模型和大量用户数据转换为让人易于理解的形式,以便根据数据分析结论设计业务策略。

    37720
    领券