从ORDER BY RAND\(\)踩坑,看透SQL性能优化 从手册规约看 ORDER BY RAND \(\) 禁用 如果你曾翻阅过《阿里巴巴 Java 开发手册》,在 MySQL 数据库规约那一栏,想必对这条规定印象深刻:【强制】不得在 database 中使用 ORDER BY RAND \(\) 进行随机排序 。当大家第一眼看到这条强制规约的时候,心里或许都充满了疑惑,随机排序在很多场景都很实用呀,为啥阿里要强制禁用呢?别急,接下来就让我们一探究竟。要知道,《阿里巴巴 Java 开发手册》可是阿里内部众多 Java 技术精英经验的结晶,历经了无数次大规模一线实战的检验与完善。它...
从MVC到MVI:一文吃透架构模式进化史 架构模式:软件开发的基石 在软件开发的广袤领域中,架构模式就如同建筑蓝图之于高楼大厦,是构建稳固、高效软件系统的关键所在。想象一下,若没有精心设计的蓝图,建造出的房子可能杂乱无章,难以满足居住者的需求;同理,缺乏合理架构模式的软件,在功能实现、维护与扩展等方面也会面临重重困境。 从早期的简单程序到如今复杂的大型应用,软件架构模式不断演进,以适应日益增长的业务需求和技术挑战。在这个过程中,MVC、MVP、MVVM 和 MVI 这几种架构模式脱颖而出,成为开发者们手中的得力工具 ,接下来就让我们深入探索它们的奥秘。 MVC:经典架构的基石 ...
Spring Boot启动慢?这5个优化点带你起飞 Spring Boot 启动慢的痛点 作为一名后端开发,日常工作中经常与 Spring Boot 框架打交道。在项目开发初期,Spring Boot 凭借其 “约定优于配置” 的理念,确实极大地提高了开发效率,快速搭建起基础框架。然而,随着项目的不断迭代和功能的持续增加,一个令人头疼的问题逐渐凸显出来 ——Spring Boot 的启动速度越来越慢。 在本地开发环境中,每次修改代码后重启项目,都需要漫长的等待时间。有时候只是修改了一个小功能,想要快速验证效果,却不得不花费数分钟等待项目启动完成,这严重打断了开发思路,降低了开发效率。...
从0到1,开启Android音视频开发之旅 音视频开发的 “热” 与 “难” 在当今数字化时代,音视频早已融入我们生活的方方面面。打开手机,短视频 APP 里精彩纷呈的视频内容令人目不暇接;电商直播中,主播们通过音视频实时展示商品,吸引着无数消费者下单;在线教育平台上,老师借助音视频为学生们传道授业解惑 ;还有远程会议,让人们即便相隔千里也能 “面对面” 交流。音视频开发的重要性不言而喻,其需求也在持续攀升。 从薪资水平来看,音视频开发岗位的待遇相当可观。在 BOSS 直聘等招聘平台上,Android 音视频开发相关岗位薪资普遍高于许多其他常规开发岗位。这主要是因为音视频开发领域人...
Robots\.txt:互联网爬虫世界的“隐形规则” 从一个神秘文件说起 作为一个在互联网内容海洋中 “摸爬滚打” 的博主,每天与各种网站和数据打交道,我对互联网的奇妙之处早已习以为常。但前段时间,一个看似不起眼的文件 ——robots\.txt,却引发了我极大的兴趣。那是在为新的内容项目做调研时,我像往常一样深入探索一个目标网站的架构,偶然间注意到了这个位于网站根目录下的文件。起初,我对它的了解仅仅停留在表面,只知道它似乎与网站的访问规则有关,但随着进一步的研究,我发现它背后隐藏着一个关于互联网爬虫与网站之间复杂而微妙关系的世界。 这个小小的文本文件,静静地躺在网站的根目录里,却掌...
Android开发神器:AndroidAutoSize,轻松搞定屏幕适配 屏幕适配之痛,你中招了吗? 作为一名 Android 开发者,相信大家都有过被屏幕适配折磨的经历。在这个 Android 设备碎片化严重的时代,不同品牌、不同型号的手机,屏幕尺寸、分辨率、像素密度千差万别。 曾经在我开发一个项目时,在设计图上看着完美的布局,在不同的测试设备上一跑,简直是 “惨不忍睹”。有的手机上,按钮变得巨大,文字被拉伸得变形;有的手机上,界面元素挤作一团,留白过多,完全失去了原本的美感和可用性。为了解决这些问题,我尝试过各种方法,创建不同的布局文件适配不同的屏幕尺寸,使用各种复杂的单位换算公...
告别臃肿!Elasticsearch平替Manticore登场 Elasticsearch 的困境 在大数据搜索和分析领域,Elasticsearch 一直是备受青睐的工具,它凭借强大的全文搜索、实时分析能力以及分布式架构,在日志分析、电商搜索、企业信息检索等众多场景中广泛应用。然而,随着业务数据量的不断增长和应用场景的日益复杂,Elasticsearch 的一些问题也逐渐浮出水面。 资源占用过高是 Elasticsearch 较为突出的问题。当数据量达到一定规模,其对内存、CPU 和磁盘的需求急剧上升。例如在一些大型电商平台,随着商品数量突破千万级别,Elasticsearch 集...
Kotlin类型魔法:Any、Unit、Nothing 深度探秘 Kotlin 类型体系中的独特存在 在 Kotlin 的编程世界里,有三位 “神秘嘉宾”——Any、Unit、Nothing,它们如同隐藏在代码深处的密码,掌握它们,你就能解锁 Kotlin 更强大的编程能力。这三个特殊类型在 Kotlin 的类型体系中占据着独特而关键的位置,理解它们,是从 Kotlin 初学者迈向进阶开发者的必经之路。它们或是作为所有类型的根基,或是代表着特殊的语义,亦或是在类型推断中发挥着神奇的作用。接下来,就让我们一起深入探索这三位 “嘉宾” 的奥秘。 Any:类型世界的 “万能基石” 1...


