V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lewis89  ›  全部回复第 2 页 / 共 83 页
回复总数  1645
1  2  3  4  5  6  7  8  9  10 ... 83  
2021-04-06 09:31:45 +08:00
回复了 shubiao 创建的主题 Java 求“领域驱动设计“ Java 项目教程?已全网搜索无果
去看项目代码没有任何意义,领域驱动设计其实都是吸收了现有的软件开发原则例如 SOLID DRY

例如六边形架构 其实就是接口隔离原则,它提倡高层次的业务逻辑不要跟低层次技术细节代码耦合,
两者都要依赖接口,例如发送消息到消息队列,从业务层面上来看应该抽象出一个接口,
至于具体怎么发不应该依赖具体的实现例如 kafka 跟 rabbitMQ,这样以后你更换消息中间件不需要改写业务代码,
但是实际上在 CRUD boy 的眼中,耦合什么的都不是问题.. 反正就是 Controller 捅到 Service 跟 DAO 一把梭

例如共享内核跟界限上下文 其实本质上的核心思想就是单一职责原则跟适配器模式,如果你在大型系统中建模,
总想用一个模型概念去解决所有的领域问题,那么你的模型概念就难以理解,
以我上家为例,我们实践 DDD 做了一套护士教育考试系统,但是有的医院硬是要塞进去一个护士排班系统,
这样在建模的时候 就要应用共享内核,

在考试系统上下文我们关心的是护士的职业级别,因为根据一些公立医院的规则
护士通过考试,应该在批准后得到晋升,这样在这个上下文我们关注的是护士的 职业等级相关的属性

在排班系统上下文,我们关注的是护士的工作时长,护士的请假,医院的排班规则等

如果你想建一个大一统的护士模型,那么对不起,这个护士模型没有任何人能理解透,这还是两个系统,
如果再涉及到医院护士 护士长等审批流程系统之类的,那么这个模型的职责会大到你难以理解。

所以共享内核跟界限上下文的根本思想就是 单一职责原则,做开发如果有多年经验的,一般都会把注意力放在建模跟概念最小完整性,这样的系统会更容易维护,至于填空写 CRUD 的人,招几个 2-3 年的年轻人就行了。
2021-04-04 01:51:48 +08:00
回复了 Frankhong 创建的主题 Java 刚学多线程,请问下面这段程序为什么停不下来啊?
2021-04-04 01:51:03 +08:00
回复了 Frankhong 创建的主题 Java 刚学多线程,请问下面这段程序为什么停不下来啊?
@ignor
@wwqgtxx
@az467

反汇编看一下就知道是虚拟机 JIT 的问题,
这种问题本来就是匪夷所思的,对于 static 非 volatile 变量,JVM 编译成本地代码的时候偷懒了,
JVM 认为 static 非 volatile 变量不值得 反复通过内存寻址到堆内存去读取它的值,
所以只读取了一次 放到 CPU 的寄存器里面就完事了,这样 CPU 永远观测不到最新的值,
在某些低版本的 JDK8 或者 ARM 平台 这个代码是可以退出的

具体参考我写的这篇文章 jmm-research
里面有详细的反汇编代码
2021-04-04 01:41:57 +08:00
回复了 Frankhong 创建的主题 Java 刚学多线程,请问下面这段程序为什么停不下来啊?
是虚拟机的激进编译的问题,虚拟机编译的时候 认为 ready 是一个非 volatile 的 static 变量,

激进编译后的汇编代码就只从堆内存里面取了一次这个变量的值放到寄存器里面,
然后寄存器的值不会再被更新,所以就造成了死循环

具体参考这个 https://github.com/jonwinters/jmm-research 的第一节部分,有详细的汇编代码解释
2021-04-04 01:35:40 +08:00
回复了 Frankhong 创建的主题 Java 刚学多线程,请问下面这段程序为什么停不下来啊?
@iseki 激进编译的问题,我已经研究过了
2021-04-01 21:23:25 +08:00
回复了 lewis89 创建的主题 程序员 我是不是一个弱智, 不适合当程序员??
@lawsiki 不至于吧.. 这些厂.. 本科应该就可以了
2021-03-30 16:21:23 +08:00
回复了 bthulu 创建的主题 MySQL 西数蓝盘批量写入, 主键 uuid, 无限掉速
@ch2 可能楼主新买的蓝盘吧,现在市面上清一色的蓝盘 都是 SMR 写入一次要刷写 0-4 个磁道 ,确实随机写的话,如果缓存写满了,掉速是难以避免的..
2021-03-30 15:59:18 +08:00
回复了 bthulu 创建的主题 MySQL 西数蓝盘批量写入, 主键 uuid, 无限掉速
不好说 可能蓝盘转速太差了吧 会不会是这样...
@th00000 老哥,我请教一下,ZGC 在停顿优化的问题的上

是不是用 mfence 做可见性,这样在标记整理 标记复制的时候 用 mfence 避免因为引用对象的内存地址发生改变 而需要暂停业务线程的时间..

据我所知 mfence 这些可见性的指令 开销很大.. 会让很多 L1 L2 失效吧..
2021-03-29 13:43:38 +08:00
回复了 Gaopf 创建的主题 Java 异步调取其他微服务接口问题求助
看看是不是 有线程上下文 没有传过去的
2021-03-29 11:11:20 +08:00
回复了 ychost 创建的主题 Java FastAop,一款基于 Java 编译时的 Aop 框架
@bthulu 能做到透明,其实还好,看能不能支持 aspectJ 的 切点语法 以及环绕监听...
其实.. 说白了 还是上 SpringBoot 吧.. 现在这些框架 AOP 以及各种组件 都做的非常好了,搞 Java 的根本不在乎轻量化这个东西,关键是思维负担上的轻量化,至于本身生成的代码尺寸,我觉得都不是什么大事..
2021-03-27 17:08:06 +08:00
回复了 killy 创建的主题 Java 关于线上 oom 问题的排查,请教大佬们!
像 OOM 这种问题 用 MAT 分析一下基本上就能定位到泄漏点了,然后上网找找是不是有类似的泄漏情况,找不到最后再去处理,一般泄漏点都是 框架的代码,业务仔自己 new 的对象 一般活不过两轮 GC
2021-03-27 17:06:39 +08:00
回复了 killy 创建的主题 Java 关于线上 oom 问题的排查,请教大佬们!
你能确认 DataResultSet 就是 GCRoots?
2021-03-27 17:05:41 +08:00
回复了 killy 创建的主题 Java 关于线上 oom 问题的排查,请教大佬们!
找到泄漏点的数据结构 通常是 GCRoots,
然后升级一下依赖的版本 看看之前的依赖版本 release log 里面是不是有解决 OOM 的问题
2021-03-26 18:04:53 +08:00
回复了 denonw 创建的主题 投资 我也来说说我对量化投资的看法
@shpkng 光是能坚持机械化头寸风险管控这块就不知道能吊打多少散户了..
2021-03-26 18:03:03 +08:00
回复了 myd 创建的主题 Redis Cache Aside Pattern,代码怎么组织?
用切面做吧,不知道你用不用 Java,一般推荐非业务代码 都放在切面里面做掉,这样业务只要关心业务就好了
2021-03-26 17:04:05 +08:00
回复了 RedBlackTree 创建的主题 程序员 请教大家关于多核并发编程中, cache 一致性的问题
看下 TSO 宽松内存模型,多核并发的时候,肯定要用机器提供的 mfence lock 等指令来进行强制同步
1  2  3  4  5  6  7  8  9  10 ... 83  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2920 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 00:29 · PVG 08:29 · LAX 16:29 · JFK 19:29
Developed with CodeLauncher
♥ Do have faith in what you're doing.