V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  nothingistrue  ›  全部回复第 96 页 / 共 108 页
回复总数  2160
1 ... 92  93  94  95  96  97  98  99  100  101 ... 108  
2022-07-14 10:23:06 +08:00
回复了 coala 创建的主题 Java [ Java ] 代码质量糟糕, 是常态吗?
跟 Java 无关,国内是常态。这跟办事风格有关,国内压根就不留代码质量改善的时间。代码质量别说提高了,就是维持,也很占开发成本,并且这占得还是团队成本而不是个人成本(意味着 10 个人中即使 9 个人愿意加班维持代码质量,只要有 1 个人不原因那整体质量就没法维持)。

就拿阿里巴巴规范来说,看着很规范是吧,但你要么 007 要么写出来看着遵守规范实际上质量糟糕的代码(并且还得 996 )。可以比较以下阿里巴巴 Java 规范跟 google java 规范,你会看到在规范之外的不同办事风格。
2022-07-14 09:40:07 +08:00
回复了 MuXia 创建的主题 Java 询问一个关于 Java 日期在数据库存储的格式问题
@dcsuibian 你到现在还没发现问题吗,同一个 Unix 时间戳值,在读取 /显示的时候,不同时区是不一样的。

你局限在数值的不变上,但一个显示值随时区变化的数值,压根就不能成为数据,完整的数据,要是数值+时区。这就是数值型时间戳必须额外带时区,或者说数值型时间戳跟时区相关的原因。

你也局限在了 Java 上,java.util.Date 及其相关类的内部值,是存储的自 1970-1-1T00:00:00+0 到现在的毫秒数,但这只是 Java 的规范。Unix 时间戳不是国际标准,其他语言、数据库都可能定义自己的规范,比如有的语言会把时间戳定义为当前时区自 1970-1-1T00:00:00 到现在的毫秒数。结合使用的时候就容易出坑。
2022-07-13 17:54:05 +08:00
回复了 MuXia 创建的主题 Java 询问一个关于 Java 日期在数据库存储的格式问题
@dcsuibian System.currentTimeMillis() 生成的是 UTC0 时间戳,隐式 UTC0 ,不代表没有 UTC 0 。这个区别很重要,因为有些工具生成的当前时间不是 UTC0 的。

试试 Mysql 下执行这个 SELECT CURRENT_TIMESTAMP(),LOCALTIMESTAMP(),UTC_TIMESTAMP(),NOW() FROM DUAL;

另外实际上只有 UNIX 时间戳才是从 UTC 1970 年 1 月 1 日 0 时 0 分 0 秒起至现在的总秒数,ISO 8601 时间戳就是年月日时分表时区的组合。
2022-07-13 12:09:35 +08:00
回复了 MuXia 创建的主题 Java 询问一个关于 Java 日期在数据库存储的格式问题
@dcsuibian #21 并不是,你所谓的无关,其实是隐含了 UTC 0 。数值型的时间戳,都是基于 UNIX 时间戳,而 UNIX 时间戳的定义是:从 UTC 1970 年 1 月 1 日 0 时 0 分 0 秒起至现在的总秒数。单独的一个数值,不是时间戳,带上时区,最起码要隐含 UTC 0 ,才是时间戳。

其实时间戳最大的问题,不是带时区,而是这个时区怎么带,根本没有统一规范。有的总是存储 UTC0 , 有的读写时跟随随环境变量(会发生因不同时区导致的读写不一致问题),有的将时区跟数值一起保存。
2022-07-13 10:32:49 +08:00
回复了 MuXia 创建的主题 Java 询问一个关于 Java 日期在数据库存储的格式问题
@MuXia #17 若不考虑国际化,就用 java.time.LocalDateTime 对应 Mysql DateTime ,只要保证 JVM 、Mysql 、JDBC 连接配置都是东八区,其他时候就都不用考虑时区问题。
2022-07-13 10:20:28 +08:00
回复了 MuXia 创建的主题 Java 询问一个关于 Java 日期在数据库存储的格式问题
@MuXia 不要用单一的数值类型存时间戳,那实际上隐式存了一个 JDBC 时区,该时区依赖于 JVM 时区和 JDBC 驱动,当 JVM 时区、JDBC 驱动、或者只是 JDBC 连接配置( Mysql 就是个典型)发生变化的时候,会发生很难处理的时间偏移问题。要存时间戳,必须用数据库的带时区 Timestamp ,或者数字列+时区列两列存储时间。
2022-07-13 10:14:09 +08:00
回复了 MuXia 创建的主题 Java 询问一个关于 Java 日期在数据库存储的格式问题
一般来说,不考虑国际化的时候,还是要用 java.time.LocalDateTime ,这个更贴近需求,而且就算狗屎 Mysql 也能正好提供实现。

考虑国际化的时候,应当用 java.time.OffsetDateTime/java.time.ZonedDateTime ,但是在数据库映射上要做特殊处理,不是所有的数据库都支持这种映射,比如 Mysql 。
2022-07-13 10:05:04 +08:00
回复了 MuXia 创建的主题 Java 询问一个关于 Java 日期在数据库存储的格式问题
@MuXia 忽略我之前的回复,有错误。各数据库的日期时间保存格式,都不相同,我说得只在 Mysql 上是正确的。映射那里也写错了,与 JDBC 规范不符合。

正确的应该是:
java.time.LocalDateTime ,无时区日期时间(显示值即值,没有内部值,对应的现实时间随时区浮动),JDBC 类型是 TIMESTAMP ;
java.time.LocalDate ,无时区日期(显示值即值,没有内部值,与现实时间没有直接对应关系),JDBC 类型是 Date ;
java.time.LocalTime ,无时区当天时间(显示值即值,没有内部值,对应的现实时间随时区+天浮动),JDBC 类型是 Time ;
java.time.OffsetDateTime ,偏移量日期时间(对应现实完整时间,内部值固定,显示值随时区偏移),JDBC 类型是 TIMESTAMP ;
java.time.OffsetTime ,偏移量当天时间(对应现实当天时间,内部值固定,显示值随时区偏移),JDBC 类型是 TIMESTAMP ;
java.time.ZonedDateTime ,基本等同于 OffsetDateTime ,区别只是一个是 CST 时区,一个是+/-数字时区。

详细可见 : https://docs.jboss.org/hibernate/orm/5.6/userguide/html_single/Hibernate_User_Guide.html#basic-provided 表 2 。注意上面的 Date 、Time 、TIMESTAMP 都是 JDBC 类型,具体是什么类型取决于各数据库厂商提供的 JDBC 驱动。另外 TIMESTAMP 是时间戳 + 时区,不是只有时间戳。

这里面 Mysql 提供了个狗屎。它的 DateTime 只是歪打正着的跟 java.time.LocalDateTime 对应,但也只在 JVM 时区跟 数据库时区一致的情况下才这样,不一致的时候要出问题。而它的 Timestamp 则完全无法使用。
2022-07-13 09:10:51 +08:00
回复了 James369 创建的主题 程序员 一直有个疑问,软件开源出去,就不怕竞争对手抄走吗?
要是抄来的东西很容易能超过原作者,那国内软件行业早就是全宇宙老大了。软件行业重要的从来都是编码的人,不是代码。
2022-07-12 17:53:26 +08:00
回复了 MuXia 创建的主题 Java 询问一个关于 Java 日期在数据库存储的格式问题
常规数据库有两种日期时间格式,一种是年、月、日、时、分、秒、毫秒组合存储,另一种是时间戳存储,即自 1970 年 0 点开始的毫秒数,内部是数值类型。第一种类型没有时区(查询出来的显示值,不随环境变量当中的时区而改变),Mysql 还细分为 Date 和 DateTime ,Oracle 则统一为 Date ,对应的 Java 类型是 java.time.LoacalDate 和 LocalDateTime 。第二种类型有时区(查询出来的显示值,随环境变量当中的时区的不同而不同),有的数据库单位直到毫秒,有得能到微秒,对应的 Java 类型是 java.sql.Date 或 java.sql.Timestamp (取决于要哪个单位)。

一般来说,如果是新项目,一律考虑使用 Date / DateTime - java.time.LocalDate / LocalDateTime ,即使要国际化(时区上你可以在程序层面再控制转换成 ZonedDateTime ,甚至还可以将时区国际化直接交给前端处理),在数据库上处理时区会是个灾难。
2022-07-12 16:24:07 +08:00
回复了 YasinJingyun 创建的主题 Windows 各位大佬请教一下, win10 重置删除的文件可以恢复吗
@ysc3839 #10 你的测试,并不能说明啥情况,影响的因素太多了,比如这是因系统自带而重新安装的驱动,又比如这是恶意软件已经入侵的系统文件里面的东西。你用 LTSC 测试也不靠谱,因为 LTSC 虽然叫做企业版但实际上是官方精简版,出现各种莫名其妙问题是正常的。

Windows 的 100M 隐藏分区必然存在,除非是私改的 Windows 。然后 Windows 重置,是运行在 Window RE 环境上,与主系统无关,它不需要主系统的任何驱动。

如果考虑到恶意软件,以及病毒对系统的破坏,这个时候重置确实不如格盘重装,但这个时候不用提醒,一般人也不会考虑重置。而通常情况下,重装并不比重置好多少。
2022-07-12 14:52:05 +08:00
回复了 yazinnnn 创建的主题 Java spring reactive web 与 quarkus resteasy reactive 的简单对比
docker 镜像下损耗真大,连原来的 1/10 都不到。
2022-07-12 13:56:23 +08:00
回复了 YasinJingyun 创建的主题 Windows 各位大佬请教一下, win10 重置删除的文件可以恢复吗
@ysc3839 #8
我如果不是看了驱动程序位置的位置——C:\windows\System32\DRIVERS\***.sys ,我就准备找时间自己去测试了。你还是放出你的测试实况吧。至于你说得网络相关文件损坏,去了解一下自从 Win7 就有的隐藏分区。

OEM 密钥我没试过,但要真如你说的,Windows 重置功能压根就不用出,因为该功能跟直接重装系统的最大区别,就是 OEM 系统不好重装。
2022-07-12 11:04:12 +08:00
回复了 microxiaoxiao 创建的主题 程序员 兄弟们听说过自愈嘛?
@julyclyde #5 消息丢失是订阅方的问题,不是发布方的问题。RabbitMq Exchange 就是个典型,消费方下线的时候,生产方发布的消息就奔向太空了。

说轮询弥补消息丢失其实不完全对,真正弥补消息丢失的,是发布方保存(暂存)消息+订阅方轮询。
2022-07-12 10:54:57 +08:00
回复了 ChenGangS 创建的主题 Java maven 多模块拆分导致循环依赖问题
简单得很(不简单),把 OA 依赖得用户授权也拆成独立模块。拆分从来都是业务拆分,不是物理位置拆分。你这个系统(含用户)、OA 的拆分导致业务双向依赖,是很不好的拆分。业务依赖方向应该是:应用程序,OA ,系统底层。其中只有应用程序是可启动的,后面的都是不可启动的库。
2022-07-12 10:42:17 +08:00
回复了 w4n9hu1 创建的主题 程序员 微服务架构下 MDM(主数据管理)和业务表数据有什么最佳实践
关键词:子域、限界上下文、值对象、最终一致性。
2022-07-12 09:52:19 +08:00
回复了 documentzhangx66 创建的主题 程序员 看了站内很多不小心把数据库清空或误删数据的
这两个提醒属于费工夫不讨好的提醒。

用在生产库上没用:1 ,这种备份作用很有限,一天一备份间隔时间太长,热机备份不能直接用来恢复,冷机备份又要先停机; 2 ,啥都备份等于啥都没备份,这种备份压根没法用来恢复数据。

用在个人库徒增工作量。

对于在程序之外动生产库的操作,一减少二增加操作审查流程,要比上面的方式有效多了。
2022-07-12 09:40:30 +08:00
回复了 YasinJingyun 创建的主题 Windows 各位大佬请教一下, win10 重置删除的文件可以恢复吗
会楼主一下,如果是动了磁盘分区,那神仙也救不了。
2022-07-12 09:39:10 +08:00
回复了 YasinJingyun 创建的主题 Windows 各位大佬请教一下, win10 重置删除的文件可以恢复吗
重置别说其他盘,默认情况下连用户文件都能保留。我猜你选择了最高级别的格盘重置,并且还动了磁盘分区。
@ysc3839 #2 重置就是重装。OEM 系统你用其他安装方式会丢失激活凭证,更别说你要选择保留 windows.old 那就跟重置没啥区别。要想彻底干净,必须格盘,跟你是重置还是重装没关系。
2022-07-12 09:28:19 +08:00
回复了 bsg1992 创建的主题 程序员 码农想入手个游戏主机 PS 还是 XBOX
首先来说,经历了几个次世代之后,两个平台都没啥缺点了了,所以入门级别选哪个都行,发烧友级别要两个都要。

再次就看你要哪个风格了,XBOX 代表欧美风格——开放但不时弄些骚套路,PS 代表日系风格——严谨但也极度保守。
1 ... 92  93  94  95  96  97  98  99  100  101 ... 108  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1499 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 23:59 · PVG 07:59 · LAX 16:59 · JFK 19:59
Developed with CodeLauncher
♥ Do have faith in what you're doing.