前一段时间写过一篇 《使用 lombok @Builder 注解,设置默认值时要千万小心!》 的文章,文章提到使用 @Builder 注解将会导致设置的默认值失效问题。 最近读了一篇文章:《Oh !! Stop using @Builder》[1]也颇受启发,发现很多人的确被 @Builder 注解的名字误导了。 大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder 并不是链式编程的最佳实践,它会额外创建内部类,存在继承关系时还需要使用 @SuperBuilder 注解[2],设置默认值时也需要额外的 @Builder.Default 去设置默认值[3],无疑增加了很多不必要的复杂度。 有些同学可能说如果你把这些问题都了解就不会遇到这些坑,没必要“因噎废食”,可是这些问题已经让无数人一次次趟坑,说明它并不是最佳实践,如果有更简便办法可以实现链式编程,又何必徒增这么多复杂度呢? 其实很多人选择使用 @Builder 实现链式编程,无非是它“更常见”和“最熟悉” !
本文介绍了Hologres RoaringBitmap的功能,希望可以帮助更多的业务利用Hologres RoaringBitmap能力,实现更快更准的画像分析。
技术PM如何在实际工作中正确精准表达出自己想要输出的信息,掌握底层逻辑---结构化思维就显得尤为重要。而培养结构化思维的有效工具即是---金字塔原理。
本文探讨了运筹学和组合优化方法在3D家居布局生成中的应用,并调研了AI生成3D场景布局的最新方法。文中结合了家居家装业务的实际应用场景,从算法建模和计算复杂度的角度上阐述了室内设计的布局问题中存在的难点,以及如何用简化和近似的思想来建模3D布局生成问题,最终展望了生成式AI技术对室内设计行业的推动作用。
学习Transformer,快来跟着作者动手写一个。 作为工程同学,学习Transformer中,不动手写一个,总感觉理解不扎实。纸上得来终觉浅,绝知此事要躬行,抽空多debug几遍! 注:不涉及算法解释,仅是从工程代码实现去加强理解。
「软件分析」与「软件设计」这样的词眼经常听到,然而要真正理解「软件分析」和「软件设计」的本质是比较难的,本文带你了解软件分析与设计的「逻辑性」到底是什么。
快速成长总共三篇,分别是《完成自我升级》、《自我成长的方法》、《学会自我培养或培养他人》。本文为第二篇,会从9个维度分享自我成长。