V2EX - 技术 |
- 如何优雅的保存网页到本地,就算原网页失效了,依然不影响我查看这个网页
- 请教大家,关于 string 的 immutable
- 如何获取 windows 应用程序界面数据,非简单的使用句柄!
- 搞了个 Java 交流
- 大家来推荐一本对你思想观念影响最大的一本书
- 现在做新的 Java 项目用什么 jdk 版本比较好?
- 小米手机在误触广告时候, 如何禁自动安装 APP?
- 请问有没有好用的 clash for Linux GUI 客户端阿,求推荐一下
- Golang 有没有同时支持 HTTP2、TLS、JA3 指纹的 HTTP 客户端?
- 一个 webview 中包 video 标签的问题,在一个页面中 上下都有间隔 全屏播放正常的会铺满上下间隔之间;
- 请教安卓 11 的系统字体如何调粗
- 有没有什么开源好用的 Java 报表、电子单证 PDF 生成、设计工具啊
- 现在带公司内 Go 的开发工具中 VSC 和 Goland 哪个更流行呢?
- 想组建一个小群、6 到 10 人的 golang 小群
- 你们的 iPhone 是如何备份照片到 Google Photos 的?
- 目前安卓各个 ui 的应用抽屉好用吗
- Excelize 发布 2.4.1 版本,新增并发安全支持
- 什么样的国际化改造实现算是优雅的呢?
- GoogleDoc 没有好一点的 Add-on 用于对 markdown 进行 Preview 么?
- 局域网缓存的方案
- 想问一下,在大陆有没有人能够搞定微信的 fcm 推送
- [C#外包] 用 C#写一个 GUI 数据处理工具, 限深圳(需求之前发帖讨论过的)
- 如何选择最适合你的分布式事务方案
- 看了代码优雅实现的帖子想到的实践思路
- 码农故事会
- 有什么 Markdown 编辑器支持 github markdown 的折叠功能?
- Windows 设置文件夹共享怎么这么慢
- 想问问大家平时都是怎么学习的
- springboot 返回的字符串被自动转义怎么处理啊?
如何优雅的保存网页到本地,就算原网页失效了,依然不影响我查看这个网页 Posted: 17 Aug 2021 04:14 AM PDT 目前知道印象笔记可以, 但是我不想用印象笔记 因为它很卡,有没有更好的方案呢?最好有成品,安装即用的,可以是插件 也可以是软件 最好能方便整理 | ||||||||||||||||||||||||||||||||||||
Posted: 17 Aug 2021 04:13 AM PDT 大多数语言的 string 类型是 immutable 不可变的,这个不可变是单纯地由编译器类型检查保证,还是 string 所在的内存是 read-only 呢? 换句话来讲,是否可以在运行时,分配只读内存中的空间,创建不可变的变量呢? | ||||||||||||||||||||||||||||||||||||
如何获取 windows 应用程序界面数据,非简单的使用句柄! Posted: 17 Aug 2021 04:07 AM PDT 场景:目前公司开发了一款 windows 桌面应用程序,界面 UI 为自定义的 UI,目前使用 spy++与 inspect 等均无法抓取到界面上的文字内容,也无法复制修改这些业务数据,这些业务数据均是从服务器实时获取到的。 需求:现在有没有什么办法可以获取到这些数据,内存方法已经使用 ce 测试过,无法获取到。使用 ollydbg 同样无法获取到。 反思:即使是自定义的 UI,上面的静态文本数据是有的(该数据是以列表的形式显示在程序界面上),应该是有办法获取到的,windows 去熏染也要有数据才能熏染!也可能是使用 ce 与 ollydbg 方法不对。 恳请有懂的大哥指点一二 | ||||||||||||||||||||||||||||||||||||
Posted: 17 Aug 2021 04:05 AM PDT 在小公司,可交流的人几乎没有。 所以搞了个 Java 交流的群,避免闭门造车。聊聊各自生产环境的技术栈,碰到的问题,解决方案、薪资等等。 https://t.me/joinchat/xyS43npyxeo5MTI1 | ||||||||||||||||||||||||||||||||||||
Posted: 17 Aug 2021 04:04 AM PDT 哲学: 西方哲学简史 | ||||||||||||||||||||||||||||||||||||
Posted: 17 Aug 2021 04:00 AM PDT 一直都用的是 java8,后面的 jdk 版本都没怎么了解过,听说有的以后还可能要收费,大家一般都用什么 jdk 版本,是不是越新的版本越好用呢 | ||||||||||||||||||||||||||||||||||||
Posted: 17 Aug 2021 03:35 AM PDT 红米 Note10 作为副手机, 体验有一个不好的地方是: 在某些软件下,比如 51 虚拟机, 开屏广告的关闭按钮特别小而且不好找, 并且全面屏手掌经常蹭到屏幕边缘, 会误触广告(pdd/抖音极速版等广告).. 误触广告后直接跳转应用商店下载安装. 没反应过来就直接给我安装好了. 有没有简单的设置可以禁止这种跳转, 或者跳转后不要下载, 再或者下载后不要自动安装. 点击广告后返回原来 APP 会出现一个全屏的 web 广告页面(pdd 的网页,不是倒计时广告), 体验真的差. | ||||||||||||||||||||||||||||||||||||
请问有没有好用的 clash for Linux GUI 客户端阿,求推荐一下 Posted: 17 Aug 2021 03:12 AM PDT 最近需求变化,要换 Linux 。但是魔法必须要有 没有桌面环境的情况下 有没有那种 web gui 的客户端,类似 openwrt 上面的 openclash 那种的,能很方便管理订阅链接的那种 谢谢各位 | ||||||||||||||||||||||||||||||||||||
Golang 有没有同时支持 HTTP2、TLS、JA3 指纹的 HTTP 客户端? Posted: 17 Aug 2021 03:01 AM PDT 目前,https://github.com/CUCyber/ja3transport 可以解决 TLS 、JA3 指纹,但是它不支持 HTTP2 net/http 支持 HTTP2,但是配置 JA3 很麻烦。 | ||||||||||||||||||||||||||||||||||||
一个 webview 中包 video 标签的问题,在一个页面中 上下都有间隔 全屏播放正常的会铺满上下间隔之间; Posted: 17 Aug 2021 02:50 AM PDT 但是,如果我页面中用了 viewpager+fragment,把 webview 放在 fragment 中,点击全屏的时候就白屏了。 | ||||||||||||||||||||||||||||||||||||
Posted: 17 Aug 2021 02:32 AM PDT 请教各位安卓 11 的系统字体如何调粗
| ||||||||||||||||||||||||||||||||||||
有没有什么开源好用的 Java 报表、电子单证 PDF 生成、设计工具啊 Posted: 17 Aug 2021 02:30 AM PDT 现在调研的只有 Jasper Report(Studio)这一个,但想看看这块有没有更好用的、开源的工具。需要带 GUI 设计工具的 | ||||||||||||||||||||||||||||||||||||
现在带公司内 Go 的开发工具中 VSC 和 Goland 哪个更流行呢? Posted: 17 Aug 2021 01:48 AM PDT RT 1.17 发布后我想换个工具试试口味和"新思维",所以各位也可以说说自己的小偏好。hhh | ||||||||||||||||||||||||||||||||||||
Posted: 17 Aug 2021 01:24 AM PDT 关于我待过北京、去过广州、现在长期都会在深圳了 自己最早是做 PHP 的 对于 java spring boot 、spring cloud 有一点一点了解、一般维护可以 现在正在整 golang 、最近在搞 kratos 秒杀的接口(但是遇到好多问题)、github 地址就不放出来了、现在还没搞好 为什么想建立一个小群自己进了很多的群、群里人也很多、但是讨论的东西总是一下就会被刷走了 理想状态下组建这个群想达到的效果
加入有比较多的时间在学 golang 或工作正在用 golang 的 喜欢做笔记、有博客的、github 地点最好在深圳或广州、其他城市也可以 如果有想加入的话、 把你的 wx-id 和 github 地址还有 blog 地址发至邮箱 cGV0ZXItd293QGZveG1haWwuY29t 后面会加你的 | ||||||||||||||||||||||||||||||||||||
你们的 iPhone 是如何备份照片到 Google Photos 的? Posted: 17 Aug 2021 01:10 AM PDT 如题。本人有梯子,测速显示下载 60Mbps,上传 32Mbps 。 但是上传速度贼慢,照片还好,视频上传几乎都是失败的。 并且 VPN 还总自动断( Potatso Lite ),这是为什么? | ||||||||||||||||||||||||||||||||||||
Posted: 17 Aug 2021 12:36 AM PDT
| ||||||||||||||||||||||||||||||||||||
Posted: 17 Aug 2021 12:15 AM PDT Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。入选 2020 Gopher China - Go 领域明星开源项目(GSP)、2018 年开源中国码云最有价值开源项目 GVP (Gitee Most Valuable Project),目前已成为 Go 语言最受欢迎的 Excel 文档基础库。 开源代码GitHub: github.com/xuri/excelize 中文文档: xuri.me/excelize/zh-hans 2021 年 8 月 2 日,社区正式发布了 2.4.1 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,完整的更改列表可查看 changelog。 此版本中最显著的变化包括: 兼容性提示Go Modules 包引用地址调整为 新增功能
兼容性提升
问题修复
性能优化
其他
| ||||||||||||||||||||||||||||||||||||
Posted: 17 Aug 2021 12:10 AM PDT 举个栗子( java 码农没正经学过 C 艹,dalao 们轻点喷) 语言支持这方面,原项目仅支持日语,资源文件 code_page(932)+少量代码内嵌的日语,我维护的 mod 版本改为 utf-8 的 code_page(65001)资源文件,默认英语,文本全部通过控件 id 和文本 id 读取对应配置语种的语言文件(比如简中)获取。 感觉目前实现做的很恶心,比如说没法保证 id 在所有的窗口不出现意外的重复(虽然目前还没问题),把%s 这种要命的玩意儿放到配置文件里感觉是在玩火,语言地区标准码手动维护很不清蒸等等。如果按照 MFC 的那套好像应该是对不同地区准备不同的资源文件,感觉更恶心,可能我只是想加个无文字的按钮,结果要改一大堆的资源文件 这个项目下一步的改动大概是
那么一个优雅的国际化改造实现是什么样的呢?有没有什么案例可以直接进行一个习的学 | ||||||||||||||||||||||||||||||||||||
GoogleDoc 没有好一点的 Add-on 用于对 markdown 进行 Preview 么? Posted: 16 Aug 2021 11:40 PM PDT StackEdit 有两个不方便:
如果能够在 Google Drive 中用 Google Doc 打开,然后提供一个 SideBar 实时 render 这个 markdown 内容就好了。 有这样的插件工具推荐么? | ||||||||||||||||||||||||||||||||||||
Posted: 16 Aug 2021 11:40 PM PDT 在阿里 oss 上放了一些视频和 apk 安装包,然后软件部分写的也是阿里云的 oss 下载地址,想知道有什么方案,我可以在局域网环境下。通过类似 nginx 的方式,拦截这些 oss 请求到一个地方,并且反代缓存下载的资源以供请求使用。一直请求 oss 下载东西,感觉流量费 hold 不住啊。 | ||||||||||||||||||||||||||||||||||||
Posted: 16 Aug 2021 10:37 PM PDT 研究了好几天都弄不了 | ||||||||||||||||||||||||||||||||||||
[C#外包] 用 C#写一个 GUI 数据处理工具, 限深圳(需求之前发帖讨论过的) Posted: 16 Aug 2021 10:30 PM PDT
联系方式, 微信扫码: | ||||||||||||||||||||||||||||||||||||
Posted: 16 Aug 2021 08:32 PM PDT 之前我有一篇文章,介绍了分布式事务最经典的七种解决方案,这里我们从业务需求的角度,根据不同的业务场景,给出最适合的解决方案。 当我们采用服务 /微服务架构,对业务进行分拆解耦后,原先在一个单体内,使用本地数据库保证 ACID 的数据修改,因为跨了多个服务,就不再适用了,就需要引入分布式事务来保证新的原子性。 由于分布式事务方案,无法做到 ACID 的保证,没有一种完美的方案,能够解决掉所有业务问题。因此在实际应用中,会根据业务的不同特性,选择最适合的分布式事务方案。 业务分类下面是常见的几种业务分类,以及适合的解决方案介绍 多个微服务组合成原子操作有一类业务场景是需要把多个微服务组合成原子操作:假设您有一个活动业务,用户点击领取按钮后,会领取一张优惠券,和一个月的会员。优惠券和会员分别属于不同的服务,需要都被调用,不希望出现一个服务调用成功,另一个因为网络或者其他故障导致没有成功。 这个场景适合可靠消息方案,可以使用 rocketmq 、rabbitmq 等,发送给消息队列的消息,一定要等收到队列接收确认,再返回应用程序。 本地事务+多个微服务组合为原子操作有一类业务与前一种业务情况类似,但有一些差别:假设您有一个新用户注册成功后,领取一张优惠券和一个月会员。如果注册不成功,不希望调用领取;只有注册成功才领取。 这种情况,适合本地消息方案,或者事务消息方案。这两种方案都能保证本地事务和消息的原子性。 订单类对一致性要求较高的业务订单交易类业务,涉及资金、库存、优惠券等多个服务,完成一个订单,需要相关的各个服务组合成一个整体可回滚的事务。如果订单进行过程中金额先扣减,后续因为库存不够只能退款,把金额补偿加回来。在这个过程中用户看到了金额减少,又金额变回来,体验很差。一般这类业务都会先冻结资金,如果订单能成功,再扣减资金;不能成功,则解冻资金,这样能够让资金信息对用户更友好。 这种场景适合 TCC 方案,可以在 TCC 的 Try 中冻结资金,Confirm 中扣减资金,Cancel 中解冻资金 一致性要求不高的可回滚业务如果业务对事务中的一致性要求不高,允许用户看到中间状态,例如用户的积分数据等。 这种模式适用 SAGA 模式,SAGA 对比与 TCC,只有正向操作和逆向补偿操作,会更加简单 耗时较久的全局事务耗时较旧的全局事务适合可靠消息和 SAGA,不适合 TCC 和 XA,因为大多数的 XA 和 TCC 实现,为了方便用户灵活的定义事务,通常把事务的进度保存在应用程序,一旦事务进行中应用程序崩溃,无法往前进行下一步,只能回滚。 SAGA 和可靠消息,把事务进度保存在数据库或消息系统中,任何一个组件临时的失败,如果重试成功,能够让事务继续。 其中如果整个事务是需要回滚的,那么适合 SAGA,不需要回滚的,适合可靠消息 并发度较低的业务如果业务并发度不高,事务又需要支持回滚,那么适合 XA 方案。XA 方案,除了并发不高,也还需要本地数据库能支持 XA 接口。这个方案的优点是,使用上较简单,比较接近本地事务 实践上面介绍完各种业务类型,以及适合的事务方案,通常情况下,您需要选择合适的开源项目来实施技术方案。在分布式事务领域,应用比较广泛的有DTM、SEATA、RocketMq 其中 seata 用 Java 开发,支持 Java 语言的接入,支持 TCC 、SAGA 、XA 、AT(类似 XA,性能更高,但有脏回滚) RocketMq 用 Java 开发,支持各类语言的接入,仅支持可靠消息、事务消息模式 这里重点介绍 DTM,它用 GO 开发,基于 HTTP 协议,支持多种语言接入,支持 TCC 、SAGA 、XA 、可靠消息、事务消息模式。 可靠消息例子我们拿第一个最简单的业务场景"多个微服务组合成原子操作"来看 DTM 是如何解决问题的 假设领取优惠券和会员的处理函数分别是:ObtainCoupon 和 ObtainVip,那么处理领取逻辑的处理函数(用 Go 做示例)只用这么写: dtm 收到客户端提交的消息后,会保证 ObtainCoupon 和 ObtainVip 被调用,如果任何一个出现失败,会不断重试,直到成功。 假如您采用的是 rocketmq 方案,那么您需要做以下几个步骤:
对比 dtm 和 rocketmq 的方案,dtm 仅需要简单的几行代码即可( dtm 也提供 http 的接口,可以用任何语言直接发 http 请求),清晰简单。而 rocketmq 方案,涉及较多队列的知识,要做的工作较多 SAGA 例子假设我们有一个积分兑换课程的业务,一方面积分不属于非常核心的资产,中间状态允许用户看到,另一方面兑换课程可能出现课程已拥有权限,则需要回滚,因此该业务属于"一致性要求不高的可回滚业务"。 我们采用 SAGA 方案来解决这个问题,来看看 DTM 的解决方式,代码大致如下: dtm 收到客户端提交的 saga 事务之后,会按顺序调用 AdjustIntegral,AuthCourse,如果函数返回错误要求回滚,dtm 则会调用 AuthCourseRevert,AdjustIntegralRevert 进行回滚。 如果您没有采用 dtm 方案,那么您可以采用 SEATA 的 SAGA,涉及比较多的背景知识,接入较复杂。 更多的例子您可以访问https://github.com/yedf/dtm ,里面有很多的分布式事务例子 多种模式并存如果您的实际项目,涉及分布式事务的场景较多,一种事务模式,可能并不满足需求,可能需要使用 SEATA+Rocketmq,接入以及维护成本较高。而 DTM 提供了一站式的解决方案,对常见的各种业务场景都提供了便捷的支持。 小结dtm 作为一个新兴起的分布式事务框架,提供了强大的功能,以及简单易用的接口,极大的简化了微服务架构下,分布式事务的使用。 下面是 dtm 与 seata 的主要特性对比:
dtm 的项目地址为https://github.com/yedf/dtm ,欢迎大家访问、试用、点亮 star | ||||||||||||||||||||||||||||||||||||
Posted: 16 Aug 2021 12:12 PM PDT 前情提要:https://www.v2ex.com/t/796126?p=1#r_10794970 实践中,我们一般可以同时提供两种接口:一种是不依赖其他业务的"原子"接口;另一种是依赖其他业务的"组合"接口。 比如搜索,我可以同时提供:返回 id 集合的接口和返回 item 集合的接口。item 信息是我从 item 服务拿到的,这样我等于组合了 item 服务和搜索。反过来也类似,比如敏感内容过滤,我也可以提供两种接口:传参 id 集合和传参 item 集合,如果只传 id 我需要去 item 服务查 item 信息,就是组合接口;如果传给我 item 集合,我就不需要去依赖 item 服务。 这种做法有什么好处呢?我们可以先考虑这样一个问题,我们有底层服务 A ( atom ),有两个上层服务 C1 、C2 ( combination ),现在有个需求要调用 C1 的接口 C1.I1 和 C2 的接口 C2.I1 ,这两个接口都要调用 A 的接口 A1.I1 ,这样我们为何不先调 A1.I1 ,然后把返回的信息传给 C1 和 C2 呢?当然当我们没有这种冗余调用的时候,还是用原来的接口,这样更方便。 我分析下来这样做从性能方面应该是有利无害的。从 IO 方面来看,虽然直接传递 item 信息增加了传递参数的网络开销,但是由于不需要去查 item 服务,减少了一次 item 服务返回 item 信息的网络开销,这两者已经抵消了。而后者还减少了查 item 的请求网络开销,item 服务的计算开销,和依赖服务或 db 的计算和网络开销。所以性能无疑是提高了很多。 上面只讨论了最简单的情况,其实实践中远比这复杂。上层服务会依赖多个下层服务,组合是千变万化的,不可能为每种组合都开个接口。比如 C 依赖 A1 和 A2,那就要四个接口,依赖 A1 的接口( A2 信息通过传参);依赖 A2 的接口( A1 信息通过传参);都不依赖(全部信息通过传参);都依赖。假设依赖 n 个服务,就需要(排列组合 n 选 n 、n-1...1,0 加和)个接口(科里化?),所以还是要根据实际情况具体问题具体分析,只提供那些用户普遍需要的组合,必要的时候可以另起服务以维护业务模型的清晰性( message passing -> multiple dispatch?)。 XDM 觉得这种实践靠不靠谱,欢迎分享讨论 | ||||||||||||||||||||||||||||||||||||
Posted: 16 Aug 2021 10:52 AM PDT | ||||||||||||||||||||||||||||||||||||
有什么 Markdown 编辑器支持 github markdown 的折叠功能? Posted: 16 Aug 2021 08:11 AM PDT | ||||||||||||||||||||||||||||||||||||
Posted: 16 Aug 2021 06:50 AM PDT 这个目录里有很多子目录和小文件。 设置共享后点确定,一直在读硬盘。 默认是把所有子目录和文件遍历一遍吗? | ||||||||||||||||||||||||||||||||||||
Posted: 16 Aug 2021 05:25 AM PDT 原因最近比较焦虑,然后发现缓解焦虑的办法就是去学习.. 我自己学习的方式6 点下班,墨迹到 6 点 40 下楼吃个饭,吃完饭回家,到家 8 点多,躺尸一会儿,洗个澡,一般 9 点半-10 点开始学习,一般都是看到 12 点-1 点之间。 之前因为比较焦虑买了一堆课,也没怎么看(买了等于我看了.. ),现在捡起来一点一点的看.. 感觉自己看书看不进去.. 视频之类的稍微好一点.. (我不是一个人吧.. ) 想问
感谢~ | ||||||||||||||||||||||||||||||||||||
Posted: 16 Aug 2021 03:16 AM PDT "data":{"id":1,"description":"测试啊测试!\\n\\n 期待测试!"}} 数据库的数据是测试啊测试!\n\n 期待测试! 返回 json 后变成了\\n\\n 导致解析失败。 这种情况怎么处理啊 |
You are subscribed to email updates from V2EX - 技术. To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google, 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States |
No comments:
Post a Comment