V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  nothingistrue  ›  全部回复第 104 页 / 共 108 页
回复总数  2148
1 ... 96  97  98  99  100  101  102  103  104  105 ... 108  
2022-05-20 11:20:47 +08:00
回复了 aguesuka 创建的主题 Java 分享 Lombok 一个有意思的 Issue
@dreamlike #8 绝对遵照标准,跟不遵照标准,没有区别——死板的标准必然产生为了遵守标准的非标准代码,最终导致标准失效。要说锁版本,几年前 JDK (非 JRE )放弃向下兼容,要比 lombok 更锁版本。
2022-05-20 11:10:55 +08:00
回复了 lotusp 创建的主题 程序员 为什么每个微服务要有自己独立的数据库?
@LowBi #4
@yumerdev93 #5

微服务首要解决的是业务解耦,性能是其次。要业务解耦首先要做的是去关联,不去关联就不要做微服务。去关联的方法多得很,就是门槛比较高(其实门槛本身不高,而是 Sun 带起来又被国内发扬光大的"J2EE——>三层架构——>CRUD”风格,把门直接给隐藏了)。
2022-05-19 14:01:19 +08:00
回复了 MagnificentCxx 创建的主题 程序员 测试与开发的攻防
先别管咋改善的,你们这个 bug 的原因定位到了吗。内部测试无 BUG ,到现场测试出现 BUG ,最可能的原因是环境不同造成的内部漏测,次可能的原因是为了零 BUG 上线故意造成的内部漏测,测试结束以后改个 BUG 出来是最不可能的原因(脑残才会故意弄个 BUG 出来,除非是为了修复之前隐藏的 BUG 的时候除了新 BUG )。

至于如何改善吗,很简单,你们需要一个软件开发 QA ,真正管过程那种 QA ,不是顶个质量管理员头衔的测试。
2022-05-19 10:46:00 +08:00
回复了 3kkkk 创建的主题 程序员 谈谈阿里系员工写的技术书籍感受
搞实践的人写理论,都会变成这样。国内这些大厂,除了自己干活,就是往外输出干活,总归都是干活的,属于开发实践的范畴。开发实践,只要是大团队,那首先重要的是团队协作,团队协作上首先最重要的就是团队内部通用语言,团队内部通用语言最常见的表现就是团队内部规范——直白点说就是团队开发第一重要的就是制定和遵守团队内部规范。请注意这个“内部”,放在团队内部那是优点,拿出来放到外面就是缺点。搞实践的人写理论,很容易把内部规范当成通用(外部)规范来说。

如果写的人不注意改善这点,甚至还刻意这样,就容易写出米田共出来。我看过的书不多,大师的书要么抛弃自己的规范采用常见规范来写,要么会在标清楚自己的规范并附上其他方案。而阿里的书,作者是刻意表现自己的规范的。
2022-05-19 09:48:45 +08:00
回复了 lankunblue 创建的主题 程序员 前端可以拿到一个请求的 ip 地址吗?
你这个需求,源需求是当前服务器( A 域名),想通过访问它的某个页面的浏览器,去获取 浏览器到 B 域名 之间的通讯信息。这特么就是网络攻击,不是无法实现,而是不能实现。
WIN 端、安卓端、苹果端,是对消费者、或者依赖于移动应用的团队来说的。但是当你把范围提升到应用开发之后,就不是这么分了,该分成普通应用、适配 Android 的应用、苹果系统的扩展应用。普通应用基于但不依赖底层操作系统或厂商,苹果系统的扩展完全受制于苹果,Android 介于前两者之间。楼主这里比较的还不是全平台应用,你要看看全平台开源应用就会发现(比如 project V ),平台支持优先级一般都是先 Linux + Windows ,再特殊 Linux ,再 Android ,最后才是 IOS 和 Mac ,有些干脆直接不支持移动端。
2022-05-18 14:14:18 +08:00
回复了 wym7223645 创建的主题 程序员 多表联查 group by order by 优化问题请教
TASK_ID IN (从其他查询拿到的结果,数据量在 5000 左右) ,我感觉时间都耗在这里,这你怎么优化都没用。

鉴于你这里要去重的都是 LIST 表,可以先用子查询去重(相关 WHERE 条件要跟进去,不然就成全表去重了)到 LIST2 ,再用 LIST2 当主表去做后面的连接。此项提升有限或者没提升,不过会让 SQL 更易读。

ORDER BY 只放到最外层,里面除非要 LIMIT 否则都是无用功。

说点题外话,GROUP BY 去重要慎用,因为 GROUP BY 本质上是只取第一条丢弃其它的,不是去重。比如:假设 SELECT A,B,C GROUP BY A,B ,且 C 不是 A,B 派生的,那么当出现 A1-B1-C1 ,A1-B1-C2 这样数据的时候,你就只能查询出 A1-B1-C1 或 A1-B1-C2 ,而丢失另外一条。看楼主这个 ORDER BY LIST.PROJECT_CODE,LIST.TASK_CODE DESC ,感觉上 PROJECT_CODE 并不是它 GROUP BY 那几个字段的派生字段,大概率要丢失数据。
2022-05-18 11:12:19 +08:00
回复了 feitiantiny 创建的主题 程序员 有没有什么好用的流程图软件?
要有钱的话,就只有一个选择:Microsoft Visio ,一个大版本将近 5000 ,没有个人版订阅(只有团队订阅)。
免费的我推荐 yEd Graph Editor ,算是个乞丐版的 Visio ,勉强能用。
要是喜欢编码形式的,考虑 plantUML 。

不推荐其他大型 UML 画图工具,因为他们可能比 Visio 还贵。

不推荐便宜的付费版,跟乞丐版比强不了多少。

极度不推荐亿图,用过一段时间,这东西就是个山寨货,虽然功能很齐全也便宜,但付费起来就是不爽。
2022-05-17 14:03:20 +08:00
回复了 movq 创建的主题 程序员 vim 里面为什么用:s 来替换$$$$为$$,却会替换成$$$?
替换有两个参数,第一个是用于查找的正则表达式,第二个是替换内容。替换内容也不是普通文本,也有特殊字符,但又跟正则表达式的特殊字符不是一套规则。然后不同语言的实现规则还不一定一样,比如说用的用$0-9 ,有的用&0-9
2022-05-17 13:50:15 +08:00
回复了 movq 创建的主题 程序员 vim 里面为什么用:s 来替换$$$$为$$,却会替换成$$$?
要么归档历史数据减小数据量,要么在业务逻辑上拆能 7 个主表。这么大的数据量,你优化也最多 10 小时变半小时的程度,都不会满足实时查询。
2022-05-17 09:17:51 +08:00
回复了 isSamle 创建的主题 程序员 万表归一靠谱吗?
都这样了你为啥还要类似 Excel ,直接用 Excel 不就行了。你这里想到的,以及还有好多你没想到的数据处理,包括服务器客户端模式,Excel 都能做——在不考虑使用的易用性和开发的便利性的情况下,Excel 是万能的。
2022-05-16 10:42:22 +08:00
回复了 skyworker 创建的主题 Java 在 Java 业内, 难道多表联合查询都是复杂问题吗?
@skyworker #2 见你楼上的回复,当你使用 Spring Data JPA 以后,多表联合查询没那么复杂,只需要接口中定义一个方法,方法名旁边用注解再定义一个 SQL (用原生 SQL 而不用 HQL/JPL 都没问题)。(前提是实体类和接口已经定义过了,这个相对于 PHP 这些可能还是麻烦一些,但这是一次定义终审省事,并且这已经涉及强类型语言跟弱类型语言的对比了。)

@rykinia #3 现在用 Spring Data JPA 的并不多,如果是用 Mybatis ,即使是 Mybatis Plus, 那楼主说得是没错的。
H5 ,原本它该代表的 HTML5 ,这个标准仍然是 HTML——超文本传输语言的范畴,它主要面向的是“资源浏览”,不是 UI ,不是客户端。即使是 HTML5+( ES6+),即常规意义上的 H5 开发,它的核心仍然是资源浏览。再加一个 PWA ,勉强才具备资源浏览外的一些客户端的东西,但至少目前来说还不够。

与其说 H5 是跨平台,不如说 H 是无平台的,因为它的核心是服务器,浏览器端是完全从属于服务器,没有自主能力的。所以如果要搞些单独靠服务器做不了的功能,比如搜集数据(隐私),P2P 传输给服务器分压等,那就得整客户端( PC 客户端或者手机 APP )。要搞跨平台,就得用其他技术。
2022-05-11 14:30:05 +08:00
回复了 babyoung 创建的主题 职场话题 如何看待团队里“自尊心”过强的同事
楼主跟你说的同事没啥区别,只不过一个不准别人提异议,一个不准别人对自己提异议这件事有异议。

提异议,要么能让人服,要么被反向干服撤回异议,要么碰见大疙瘩惹不起躲得起。找领导强压已经是下策,网上寻找安慰那是下下策的下下策。
2022-04-29 13:45:08 +08:00
回复了 461da73c 创建的主题 浏览器 油猴脚本怎么云同步
我是手动同步,导入导出,外加导出文件放到 Onedrive 上。因为我用的 Firfox ,用不了浏览器同步,自带的网盘同步又老容易失败。
Windows Server 允许多用户同时登录,但是你还需要另外准备一个能够用 Windows RDP 的客户端(平板就行,不追求操作性的话手机也可以)。公版虚拟机方案不太好,因为你要么另外准备一个能够连接虚拟机的电脑(或 WIndows RDP 客户端),要么准备第二套显卡、键鼠、显示器。
Java 里面,三目运算符不是用来赋值的,或者赋值加三目表达式加起来超过一行或换行,是要被打死的。

三目运算符当逻辑操作,还有逻辑运算符里面参杂赋值操作( a is not null && a=2 这种),在脚本语言,还有追求最少操作(并忽略可读性)的算法里面,用得还是很多的。但我不相信 typescript 会把这当核心用法。
2022-04-29 09:27:19 +08:00
回复了 devswork 创建的主题 Java Java 中的 VO、DTO、PO、DO 是如何定义和互相转换的?
@hjahgdthab750 #19 后缀是由架构或规范决定的,没有特定规则。光凭“只有 getter setter ”这一个特点,是不知道这个类是干啥的,还要结合其他特点才能确切直到这个类是干啥的,之后才能命名。

@lessMonologue #20 没有。就算有也不具备参考意义,因为这本来就是规范不是规则,是随团队变化的。

@MakHoCheung #21 再严格一点,上下层之间不管调用还是返回都只能是 DTO ,DTO 负责对象的转换。例:Service 利用 DTO 的静态方法或者工厂方法将 BO 扔进 DTO ,再用这个 DTO 作为调用 DAO 的参数;反过来就是 DAO 将 Entity 利用工厂方法将扔进 DTO ,再返回 DTO 。这三者内容不可能一致的,Entity 是 ORM 的托管对象会带有 ORM 的信息,DTO 要负责数据转换会带有业务逻辑,BO 为 Service 服务会有业务逻辑的中间数据。然而,这随不是重复操作,但是属于杀鸡用牛刀的操作。

@leeg810312 #25 你这个好,用 DTO 把数据转换和数据对象都给包了,就只剩下 Entity 和 DTO 两种,没有纯数据的 Data 了。
2022-04-28 17:11:33 +08:00
回复了 devswork 创建的主题 Java Java 中的 VO、DTO、PO、DO 是如何定义和互相转换的?
这个已经过时了,除非你是在改当前项目,不建议再去深究了。

现在,不管是 Hibernate 还是 Mybatis plus ,不管是 DDD 还是非 DDD ,Entity 都是一个特殊的对象类型,这个很好区分,他是跟数据库的表映射或者绑定的(如果是 DDD ,它还有行为方法)。

DTO 在是一个重对象,它还会一直用下去,但是很少会使用。它的区分也很简单,它是一个重对象,自带数据转换逻辑,并且通常跟工厂一起使用。只有 Getter/Setter 的轻对象,不会是 DTO 的,国内有些人把上下层之间传输的参数一律叫做 DTO ,这是很大的误区。

然后剩下的,VO 、PO 、DO 什么的,它们原本的定义是跟层绑定的,一个层使用一种 O ,禁止跨层使用(层与层要额外通过 DTO 来隔离,比如 VO 经 DTO 转换成 DO )或者只允许上层使用下层的。这些已经死翘翘了。前面已经说了,DTO 很重,没有人会采用“禁止跨层使用”的方式,都是采用“只允许上层使用下层”方式。然后,既然允许上层调用下层了,那为什么不直接调用 Entity 呢,所以最后全部都用 Entity 了。

简单来说,除了 Entity 、DTO ,剩下的本质上都是 Data ,为了层解耦才定义了那么多 O 。随着垂直分层模式的崩溃,这些 O 也崩溃了。

至于楼主的其他问题。2 ,如果你要负责任的话,那就必须手动转换,再痛苦也要转,业务太多变了,这玩意工具的作用很有限,当然有缓解的手段,对于一些纯内部使用的类,你可以考虑 lombok 的 chain 或 fluent 模式。3 ,是,专项专用,但是你可以通过合理规划查询 SQL ,使得多个 SQL 公用一个参数类。4.如果你要负责任的话,那必须给 Swagger ,或者说 Web 这一层,定义专门的数据对象( Swagger 叫做 model ,内部可定义为 value object VO ,也可以就叫做 Data )。
1 ... 96  97  98  99  100  101  102  103  104  105 ... 108  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2183 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 41ms · UTC 02:00 · PVG 10:00 · LAX 19:00 · JFK 22:00
Developed with CodeLauncher
♥ Do have faith in what you're doing.