7/8月金选作者出炉、油猴脚本开发教程|掘金一周 09.07

3,306 阅读10分钟

本文字数 3300+,阅读时间大约需要 8 分钟。

【掘金一周】本期亮点:

  • 油猴脚本开发教程
  • 面向个人开发者应该打造的CICD部署系统
  • 为全局请求添加 TraceId ,看日志再也不懵逼
  • 深入理解synchronized关键字
  • Flutter + Dart三端一体化动态化平台实践
  • 美团组件化事件总线方案改进:ModularEventBus
  • ……

上榜规则:文章发布时间在本期「掘金一周」发布时间的前一个月内;且符合各个栏目的内容定位和要求。

一周“金”选

image.png

内容评审们会在过去的一周内对社区深度技术好文进行挖掘和筛选,优质的技术文章有机会出现在下方榜单中,排名不分先后。

前端

「油猴脚本」是一段脚本代码,通过它可以让浏览器实现各种各样的扩展功能,和浏览器扩展的作用类似。 比如获取链接重定向、微博页面精简、去广告等,相当于给浏览器开了个挂,可以说是浏览器的辅助神器了!

笔者之前也写了几个油猴脚本,接下来我就分享下写脚本的经验,一起来看看吧。

uni-app 是一个使用 Vue.js (opens new window)开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。是目前全端开发框架的佼佼者。

本文想分享的是作为一个个人开发者如何能搭建一套适合个人使用的cicd,而不是企业级别,对于个人开发者而言,我们大多只有一台服务器,而在企业当中一般都会搭配集群使用,两种的差别相对较大,而对于开发者如果只要一台服务器的场景下,我们需要考虑到一些其他问题,比如:端口占用,多项目部署等问题,所以,本文是一个从0到1快速构建个人cicd的教程

后端

相信各位 Javaer 在面试中或多或少肯定被问到过线程池相关问题吧,线程池是一个相对比较复杂的体系,基于此可以问出各种各样、五花八门的问题。这篇文章主要跟大家聊下 Java 线程池面试中可能会问到的一些问题。

HTTPS是安全通道,但是Charles却能抓到HTTPS的包,这是为什么呢?

不知道大家有没有一堆日志就是定位不到那块是异常部分,接口错误无法复现,也找不到报错信息等比较棘手的问题。

其实解决上面的问题很简单,只要我们为每一个请求都分配一个唯一的 RequestId 或者叫 TraceId ,一旦出了问题,只需要拿着 Id 去日志里一搜,妖魔鬼怪立马原形毕露。

对于分布式链路追踪,有很多开源中间件,本文主要通过 logback 的 MDC 实现。

如果你了解过 Liunx ,了解过 Liunx 的中管道命令 | ,那么你会发现,其实 Java 8 的 stream 和 Liunx 非常类似的。本文主要聊的是如何使用 stream 流。

“正常使用看起来没毛病”的代码,但是输出结果是 “Infinity” ...

在 Java 里面, 最基本的互斥同步手段就是 synchronized 关键字, 这是一种块结构(Block Structured) 的同步语法。它解决的是多个线程之间访问资源的同步性,synchronized 关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。synchronized 关键字保证了原子性、可见性和有序性,相较于 volatile 关键字功能更加强大,本文将对该关键字进行深入学习。

本文为深入理解TCP的上篇,主要分为:概述、状态机、三握四挥、粘包拆包等内容进行讲解。

Android

FairPushy 是基于Flutter+Dart三端一体化打造的动态更新平台。主要由Web + Server + Native全部使用Flutter+Dart编写,为Flutter动态化场景提供动态分发能力,全方位降低上手成本,提升开发体验。实现了动态化资源产物自动化打包和动态分发的能力,让开发者摆脱了技术栈的壁垒,并且系统轻量化、简单易用,目前项目已在Github开源。

在各大厂的组件化方案中,美团收银团队分享的组件化总线框架 modular-event 让笔者印象深刻。然而,美团并未将该框架开源,我们只能望梅止渴。

在学习和借鉴美团 modular-event 方案中很多优秀的设计思想后,笔者亦发现方案中依然存在不一致风险和不足,故我决定对方案进行改进并向社区开源。项目主页为 Github · ModularEventBus,演示 Demo 可直接下载: Demo apk

对界面呈现来说,最重要的逻辑有两个部分:业务数据的维护逻辑界面布局的构建逻辑 。其中应用运行中相关数据的获取、修改、删除、存储等操作,就是业务逻辑。而界面的构建逻辑主要体现在界面如何布局,维持界面的出现效果。

本文主要介绍如何通过状态管理分离 业务逻辑 构建逻辑

本文从飞书 Android 升级 JDK 11 意外引发的 CI 构建性能劣化谈起,结合高版本 JDK 在 Docker 容器和 GC 方面的新特性,深挖 JVM 和 Gradle 的源码实现,抽丝剥茧地介绍了分析过程和修复方法,供其他升级 JDK 的团队参考。

笔者整理了一篇文章写写Kotlin协程启动,挂起和恢复的原理,这篇文章的目的在于希望读完后能够清晰明了地了解 Kotlin 这部分的原理,提高效率。

笔者从 0 开始一步一步写作,细致讲解,值得研读。

IOS

图片展示,在各大APP中不可或缺,众所周知云音乐是一款带有社交属性的音乐软件,那么在任何社交场景,都会有展示图片的诉求,并且常常会有重图片场景,比如一个云音乐中Mlog的Feed流场景全都是图片,或者就是Mlog中的图集,都需要展示大量的图片,要是图片无法及时的展示出来,不能及时的被用户消费,那么会造成用户浏览信息不顺畅,导致用户的流失,因此优化图片下载迫在眉睫。

人工智能

事件分析在金融领域广泛,应用场景众多,一个完善的覆盖金融事件体系和核心技术的金融事件分析框架,为金融领域的信息理解提供了强有力的支持。

热点观察

image.png 搜集行业热点,洞察技术趋势。

Flutter 3.3版本正式发布!

本次更新带来了 Flutter Web 平台、桌面端平台、文本处理的性能和其他更新内容。

同时本文也会介绍 go_router package、DevTools (开发者工具) 和 VS Code 扩展相关的更新内容。一起阅读详细了解它们吧!

掘金万花筒

image.png 根据内容质量、创意维度来筛选掘金社区的宝藏文章,你是那个宝藏吗?

Compose 怎么照亮手机里面的文本内容呢?

程序人生

image.png

社区活动日历

image.png

活动日历

活动名称活动时间活动主理人
金石计划一期 | 参与挑战 10万现金等你来瓜分!9月3日 - 9月30日@小斗金
码上掘金挑战赛来了,show出创意赢大奖!9月5日 - 9月25日@ 掘金Troy

社区官方公告

2022.7-8月金选作者名单

本期「金选作者」为2022年7月至8月登上过 「掘金一周」三期及以上 的作者。 登上「掘金一周」的所有文章,官方都进行了曝光加量,并加入了APP弹窗推送池。恭喜所有持续创作优质的内容的作者,欢迎更多同学加入好文推荐与创作,未来一起携手成长!

金选作者uid上榜次数
恋猫de小郭8176923799857526
张风捷特烈1491892811947665
字节跳动技术团队18380391723872625
架构悟道10287986167092944
why技术37028108933643503
我不是外星人24185813136873903
宁在春28591425582675593
唐子玄30870843781356133
ShowMeAI5546057670470533
货拉拉技术17684892418150703

奖品

金选作者奖品:索尼颈挂入耳式耳机+实体证书

image.png

上榜作者奖品: 稀土掘金—Who Cares系列「丢掉包袱」杜邦特包

image.png

领奖方式

请关注系统消息,系统消息最晚将于 9月8日23:59 前发出,请于9月13日晚23:59分前填写问卷。

📖 投稿专区

大家可以在评论区推荐认为不错的文章,并附上链接和推荐理由,有机会登上下一期。文章创建日期必须在下期掘金一周发布前一个月以内;可以推荐自己的文章、也可以推荐他人的文章。