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

LiveData 正确使用姿势以及反模式

比如我们实现收款到账提醒功能,我们希望每次有新收到账时候,发送一个到账通知提醒,假设我们监听之前,已经有到账记录了,这时候如果才开始监听,然后提醒有新到账(实际上是上一次到账),这就有问题了...LiveData 常见几种错误使用姿势 前文之所以花费这么大篇幅介绍 LiveData 「粘性消息」特性,一是为了大家对 LiveData 有更深一步认识,了解其设计之初目的才知道什么时候该用...小明是在之前付款了 100 元,而我是在之后才开始监听,此刻并不需要通知之前发生事情 这种情况下其实是不建议使用 LiveData ,虽然使用各种 workaround 方式(此处可参考另一篇文章...:LiveData 非粘性消息探索和尝试 )可能可以满足需求,但是 LiveData 有自己特定使用场景,如果非要突破限制去使用的话,会 LiveData 变得更让人难以理解 此处引用另一篇博客原文...使用 Architecture Component 实现 MVVM 正确姿势 自定义生命周期以及实现生命周期感知能力

81720

使用Repository模式支持产品客户化

本篇博客简单描述了Repository模式在OEA中应用。 不使用Repository时问题     OEA框架中使用了DDD思想,面向领域对象进行开发。...OEA是基于产品线开发,如果采用前面的开发模式,当客户化版本扩展了主干版本中实体类时,由于主干版本中代码直接使用静态方法,所以无法获取到扩展后新类型对象。...基于以上原因,团队决定使用Repository模式进行代码重构。...小结     在OEA中使用Repository模式重构后,到目前为止已经使用了一个月左右,大家反应比起原来调用模式好多了,同时还支持了客户化及其它实体框架引入可能。...总体上来说,重构还是比较成功。     在以前其它系统开发中,基本上也都使用到了Repository模式,这种模式在数据库应用程序开发中,确实十分常用。

65650
您找到你想要的搜索结果了吗?
是的
没有找到

正确使用 acme.sh, 网站永久使用 ssl 证书,Its free!

--nginx 注意, 无论是 apache 还是 nginx 模式, acme.sh在完成验证之后, 会恢复到之前状态, 都不会私自更改你本身配置....注意, 默认生成证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下文件, 例如: 不要直接 nginx/apache 配置文件使用这下面的文件....正确使用方法是使用 --install-cert 命令,并指定目标位置, 然后证书文件会被copy到相应位置, 例如: Apache example: acme.sh --install-cert...并且可以指定 reloadcmd, 当证书更新以后, reloadcmd会被自动调用,服务器生效....请确保 cronjob 正确安装, 看起来是类似这样: crontab -l 56 * * * * "/root/.acme.sh"/acme.sh --cron --home "/root/

1.2K10

怎样正确使用函数式接口@FunctionalInterface,代码更优雅!

,默认都继承了Object类,包含了来自java.lang.Object里对这些抽象方法实现; 如下代码不会报错: JDK自带常用函数式接口 目前JDK自带一些函数式接口已经够我们基础使用,当然你也可以自己定义使用...常用函数式接口主要有四种类型,是通过其输入和输出参数来进行区分。定义了编码过程中主要使用场景 Java8中对于接收两个参数场景提供了相关函数式接口。...如下: 开发案例分享 最近在开发一些分片规则使用和一些附件应用分片上传功能,一下是一部分代码。 对于函数式接口使用,其实这个东西有好有坏。一些人都习惯用申明接口,然后调用!...这样逻辑去实现自己业务,当然这样方式没有问题。但是一些抽象逻辑只有内部方法里面使用到,但是自己又想抽离优化自己代码解构体。这个时候可以考虑下函数式接口使用。...如上面的注释逻辑,完全可以将分片上传函数抽到执行逻辑上去,但是这样一来。整个执行逻辑和代码设计非常臃肿(个人观点) 小结 如果你要自己定义函数式接口要注意哪些?

1.9K30

《上瘾:用户养成使用习惯四大产品逻辑》

如果你想互联网创业,或者想了解互联网爆品背后秘密,这四大产品逻辑会给你很多启发。 第一步:触发。 所谓触发,就是吸引用户,他认识你产品,有使用欲望。...---- 第二步:行动 触发,是为了解决动机问题,用户想用。但是,只有触发还不够,我们要结果是用户真正使用这款产品,需要用户实实在在行动。...如果触发做很好,用户有了行动动机,但是行动门槛太高太复杂,那么用户可能就一直停在心动这一步了。所以,当你开发一款产品,你不仅要让别人想用你产品,还要降低使用门槛,一切简单化。...如果你产品需要用户花大量时间、大笔金钱,耗费太多体力和脑力,那么用户想要拥有使用产品,难度自然就很大。...想用户上瘾,你产品还需要满足用户需求,从而激起他们更强烈使用欲望。这就是酬赏。 酬赏可以分为三种。第一种是社交酬赏,用户使用产品之后可以用作社交分享。第二种酬赏是自我酬赏。

77620

使用 PostCSS 插件网站支持暗黑模式

最近公司需要给多个 webapp(大概20+)加上多皮肤功能,原先默认是白色皮肤,我们先从暗黑模式入手,从而逐渐实现多皮肤功能。本篇记录下实现思路。...换肤方案 css variables css variables 是 Web 标准实现了对深色模式支持, 以下代码通过 CSS 媒体查询,最简单实现。...使用新值调用时,将重新编译较少文件,而无需重新加载。...目的 当前有一份 less 样式和 2 份颜色变量,需要生成如下样式: 这样就可以在 html 跟节点 添加和删除 dark 这个样式来实现换肤了。...小结 1、本篇总结了前端换肤几种常用方式,通过最对比发现通过 PostCSS 生成皮肤样式在我们项目中最为方便,也最容易网站支持暗黑模式将 postcss-multiple-themes

79310

使用 PostCSS 插件网站支持暗黑模式

最近公司需要给多个 webapp(大概 20+)加上多皮肤功能,原先默认是白色皮肤,我们先从暗黑模式入手,从而逐渐实现多皮肤功能。本篇记录下实现思路。...换肤方案 css variables css variables 是 Web 标准实现了对深色模式支持, 以下代码通过 CSS 媒体查询,最简单实现。...使用新值调用时,将重新编译较少文件,而无需重新加载。...小结 1、本篇总结了前端换肤几种常用方式,通过最对比发现通过 PostCSS 生成皮肤样式在我们项目中最为方便,也最容易网站支持暗黑模式将 postcss-multiple-themes...最后 如果大家也在给 webapp 做换肤工作,被前端多皮肤问题困扰,希望这篇文章对大家有所帮助,也可以参考往期文章或者在评论区交流你想法和心得,欢迎一起探索前端。

78220

使用装饰器模式 fetch 更强大

目的是采用一种不同方法,从这两个方面都得到了最好结果——使用装饰器模式来增加fetch() API易用性和灵活性。...准备 Fetcher 接口 装饰器模式非常有用,因为它支持以灵活和松散耦合方式在基本逻辑之上添加功能(换句话说——装饰)。 如果你不熟悉装饰模式建议您阅读它是如何工作。...此外,由于新接口和新类出现,事情变得更加复杂!稍等片刻,你会发现当装饰者模式被引入到行动中时所带来巨大好处。 3. 给提取 JSON 数据方法添加装饰器 装饰器模式主要是装饰器类。...这就是为什么需要为网络请求设置一个超时,并在8秒后通知用户网络问题原因。 装饰器模式伟大之处在于,可以使用任意多装饰器来装饰你基本实现!...然而,使用像axios这样第三方库会增加应用包大小,同时你也会与之紧密结合。 另一种解决方案是在fetch()上面应用装饰器模式。您可以创建从请求中提取JSON、超时请求等等装饰器。

76830

使用Spring AISpring Boot应用快速拥有生成式AI能力

之前分享了关于Spring新项目Spring AI介绍视频: 视频里演示了关于使用Spring AI将Open AI能力整合到Spring应用中操作,但有不少读者提到是否有博客形式学习内容。...所以,本文就将具体介绍如何使用 Spring AI 快速Spring应用拥有生成式AI强大能力。 动手试试 第一步:使用你最喜欢IDE来生成一个基础Spring Boot项目。...aiClient; public OpenAIController(AiClient aiClient) { this.aiClient = aiClient; } } 第四步:使用...PromptTemplate创建一个模版,然后根据用户输入使用模版来创建具体Prompt生成结果。...下面是一个更复杂使用方式: @GetMapping("/completion") public List completion(@RequestParam(value = "message

28510

产品小姐姐做一个登录模块、赶紧打开了自己这篇文章

SpringBoot整合Shiro完成用户认证 前言 最近在做一个管理系统,神奇是最后发现登录模块竟然没有安排人去做(不得不吐槽一下公司开发流程emm),好在这个管理系统是内部使用,目前基本没什么用户...于是产品小姐姐就把这块需求直接划分给了我。 ?...技术选型 第二天一大早就开始考虑方案:脑海中第一反应就是使用shiro来做权限认证,因为之前接触过shiro,但是不是自己开发,而且开发完成后几乎没有过这方面的改动,因此自己对shiro也始终处于一知半解程度...需求分析 由于时间紧迫、产品小姐姐对这块要求也没那么严苛、跟我说只需要可以通过用户名+密码实现登录功能就完事了(其实是CV)。但是作为一条有梦想、有追求程序员,怎么能甘心于此?...这样也不至于后面接手兄弟骂自己不是。于是按照经典五张表重新设计了这个需求。时间有限,准备先完成用户认证、动态菜单这两个功能。 表结构设计 趁着年轻还有头发、赶紧设计出了如下几张表。

50920

AlpineJS作者:不上班,一年站着赚10w刀

大家好,是卡颂。 今天为大家介绍一位坦诚老哥。有多坦诚呢?他在推上实时公布自己赚了多少钱。 到去年6月,老哥年收入是10w刀。关键是:老哥从19年1月就不上班了。...与Vue渊源 不得不说Livewire语法很类似Vue2。这也难怪,毕竟Laravel社区与Vue是有渊源(Laravel创始人在推上一波推广当时名气还不大Vue有了出圈影响)。...虽然经常有用户表示希望他开通Patreon(一个打赏艺术家、创作者网站),但这种「只有少数人每月打赏你5刀」感觉,「Caleb」觉得并不好。...Github Sponsors Github Sponsors是Github推出一项开源项目投资计划,他理念是: 向那些你日常业务使用开源项目投资,使他们团队有精力更好维护项目,从而使你业务从中受益...总结 凯文·凯利曾提出「1000粉丝」理论: 他认为,创作者,如艺术家、音乐家、摄影师、工匠、演员、动画师、设计师、视频制作者,或者作家,换言之,也就是任何创作艺术作品的人,只需要拥有1000名铁杆粉丝便能体面的生活

1.5K30

是什么节省了60%编码时间?使用MBG

它可以根据数据库表自动为项目生产对应实体类、Mapper、DAO,包括简单CRUD数据库操作(创建、查询、更新、删除)。解放了我们双手,不必做重复性机械工作。...节省下不少时间,不用再苦哈哈加班了,还可以和妹纸去约会。...datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 创建一个SpringBoot项目 以使用...--defaultModelType用于指定生成对象样式,flat表示每一张表只生成一个实体类,这个实体类包含表中所有字段。...在Maven插件工具栏中,可以看到mybatis-generator插件,双击其中generate选项即可,如下图: 构建成功以后,就可以看到生成代码了,如下图: 验证自动生成代码 验证之前还有一个步骤不要漏掉

35130

【JS】1797- 使用 File System Access API 浏览器拥有操作本地文件能力

它提供了一种简单且安全方法,用户在不离开 Web 应用情况下,从本地文件系统中操作文件。 这项 API 为 Web 应用程序提供了更多灵活性和功能,使其更接近于本地应用程序体验。...如果用户授权,则应用程序可以使用该 API 访问用户选择文件和目录。...如何使用 File System Access API 不是很喜欢概念性东西,上面的内容是网上借鉴(文化人),更喜欢直接上代码,所以我们直接上代码。...下面是来自caniuse[2]兼容性数据: 虽然Firefox还不支持,但是在一些实验性项目上我们可以使用这些API,指定用户使用Chrome浏览器来访问。...可以发现这次讲解并不是很详细,因为这个API还在实验阶段,所以我只是简单介绍了一下,如果大家想要了解更多的话,可以参考下面的参考资料。

69041

使用了这个神器,代码bug少了一半

最近一段时间,我们团队在生产环境出现了几次线上问题,有部分比较严重,直接影响用户功能使用,惹得领导不高兴了,想办法提升代码质量,这时候项目工程代码质量检测神器——SonarQube,出现在我们视线当中...刚开始我们为了省事,安装了 7.6版本,因为mysql数据库我们已经在用了,无需额外安装其他数据库,并且JDK8也在使用,安装成本最小。...,在这里就不过多介绍了,网上有很多教程。...除了免费和开源之外,PostgreSQL也是高度可扩展。例如,您可以定义自己数据类型,构建自定义函数,甚至可以使用不同编程语言编写代码,而无需重新编译数据库。...此外,还有mybatis插件 gitee地址:https://gitee.com/mirrors/sonar-mybatis 个人用过,觉得作用不大,不过可以基于这个代码扩展自己需要功能。

1.1K10

使用了这个神器,代码bug少了一半

最近一段时间,我们团队在生产环境出现了几次线上问题,有部分比较严重,直接影响用户功能使用,惹得领导不高兴了,想办法提升代码质量,这时候项目工程代码质量检测神器——SonarQube,出现在我们视线当中...在典型开发过程中: 开发人员在IDE中开发和合并代码(最好使用SonarLint在编辑器中接收即时反馈),然后将其代码签入ALM。...,在这里就不过多介绍了,网上有很多教程。...除了免费和开源之外,PostgreSQL也是高度可扩展。例如,您可以定义自己数据类型,构建自定义函数,甚至可以使用不同编程语言编写代码,而无需重新编译数据库。...此外,还有mybatis插件 gitee地址:https://gitee.com/mirrors/sonar-mybatis 个人用过,觉得作用不大,不过可以基于这个代码扩展自己需要功能。

2K40

推荐几个常用Chrome插件 —— 使用Github效率翻倍

以下文章来源于code秘密花园 ,作者ConardLi 推荐几个常用Chrome插件 —— 使用Github效率翻倍 Chrome 可以说是全世界最受欢迎浏览器了,其快速、稳定性能...个人安装了非常多 Chrome 插件,这些插件可以在使用浏览器各个方面帮助我提升效率,今天就推荐一些 Github 相关 Chrome 插件。...点击按钮跳转到更清晰 git 历史页面,展示该文件历史变更情况。相比直接使用 git log ,这种方式更友好。...下载方式:Chrome 商店搜索 Octotree Sourcegraph 让你能在浏览 GitHub 时也能拥有智能提示、转到定义、查找参考,支持20多种语言和其他流行代码宿主。...下载方式:Chrome 商店搜索 Enhanced GitHub OctoLinker 你看代码时候,可以进行更高效代码连接跳转。

1.1K10

推荐几个常用Chrome插件 —— 使用Github效率翻倍

推荐几个常用Chrome插件 —— 使用Github效率翻倍 Chrome 可以说是全世界最受欢迎浏览器了,其快速、稳定性能,简洁设计以及多平台同步功能都深受用户推崇,然而很多人成为他忠粉还是因为它强大拓展性...个人安装了非常多 Chrome 插件,这些插件可以在使用浏览器各个方面帮助我提升效率,今天就推荐一些 Github 相关 Chrome 插件。...点击按钮跳转到更清晰 git 历史页面,展示该文件历史变更情况。相比直接使用 git log ,这种方式更友好。...下载方式:Chrome 商店搜索 Octotree Sourcegraph 让你能在浏览 GitHub 时也能拥有智能提示、转到定义、查找参考,支持20多种语言和其他流行代码宿主。...下载方式:Chrome 商店搜索 Enhanced GitHub OctoLinker 你看代码时候,可以进行更高效代码连接跳转。

74020

《上瘾:用户养成使用习惯四大产品逻辑》读书笔记

是否有一种潜在模式能让技术将我们吸引,欲罢不能?” 01 如何用户上瘾使用产品用户习惯使用产品,将用户遇到问题和设计者解决方案频繁联系在一起,帮助用户形成一种习惯。...产品进入用户“习惯区间”,极其简明上瘾模型(the Hook Model):触发——行动——多变酬赏——投入。通过4步骤来养成用户使用习惯。...(投入) 02 习惯力量:如何产品维生素变成止痛药 习惯养成类成产品改变用户习惯,按照产品设定好行为模式对我们一举一动产生巨大影响,无需在其他外部诱因就开始某项活动,用户一而再,再而三接近产品...行动阶段使用户即时获得满足,而投入阶段主要与用户对未来酬赏期待有关,用户只有在享受了各种酬赏之后才会对产品进行投入。要想用户产生心理联想并自动采取行动,首先必须他们对产品有所投入。...,服务存储价值越大 关注者:用户拥有的关注者越多,twitter提供服务价值越高 信誉:一切通过信誉决定 技能:用户投入时间和精力学习使用一项产品是投资和存储价值,获得此项技能,变得不被轻易改变 加载下一个触发

26930

读书笔记——上瘾:用户养成使用习惯四大产品逻辑

行动: 行动三要素 魔兽世界 写博客 动机(快乐和痛苦、希望和恐惧、社会接纳和排斥) 快乐与成就感、好奇心、社会接纳 成就感、社会接纳 能力(时间、金钱、体力、脑力、社会接受、常规) 大量时间投入,...产品中获取资源、信息、体验 游戏体验;为提升体验学习到游戏内大量信息(打发、配装) 技术总结中获取大量信息;经过思考加工后信息; 产品中获取成就感、操控感、终结感 游戏中有大量反馈机制 文章被更多人看到...、认可、对问题交流都带来成就感 保障自主选择权 让玩家感受到对角色完全控制 完全自主 有限多变性使产品丧失神秘感、吸引力 持续更新 无 基本使用需求 投入游戏可以快速打发时间 技术总结是基础功能...最后 游戏产品往往在多变酬劳这一部分做了大量设计,例如魔兽世界天赋系统多次改革、橙装特效、套装等等。...在游戏中思考、付出,会被自我认知放大很多倍,例如经过自己思考改变输出手法结果DPS提升,可能只是解决了简单2*2>3问题,但在游戏中会得到很强成就感和自我认同感(仿佛付出了很多时间脑力才得到别人得不到结果

23510
领券