有意思的serviceWork、聊聊JDK的动态代理、如何阅读源码? | 每日掘金第201期

2,315 阅读7分钟

Hello,欢迎来到每日掘金时间。每日掘金专注于发掘站内优质创作者和优质内容,欢迎大家多提宝贵意见!

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

  • 【本期每日掘金】亮点:
  • 不要图片?CSS实现大屏常见不规则边框(系列一)
  • 微服务架构下你不得不知的3种部署策略
  • 分享一个修改了xml文件再也不用重启的项目mybatis-xmlreload
  • 深入理解 图片内存优化的常见方案和 AndroidBitmapMonitor 的原理
  • ……

筛选规则:文章发布时间在本期「每日掘金」发布时间的 1-3 天内,且符合社区推荐标准,也会同步发布在掘金相关技术社群。

今日主理人

本期每日掘金由  丘山子  负责制作,需要投稿每日掘金请私信我的助理 小岳

PS:主理人目前正在招募中,有感兴趣的掘友们可以联系Captain

每日干货

主理人们会对近期(1-3 天)社区深度技术好文进行挖掘和筛选,优质的技术文章有机会出现在下方列表,排名不分先后。

『前端』

入职这家公司之前,我是没有做过可视化项目的,最近可视化项目做的有点多,每一个可视化项目都不可避免地有一个地图,最初接手的可视化是Vue2 + 高德地图Api的,后来使用第三方可视化平台,而这个可视化平台使用的jsx语法封装组件,况且地图还要收费,对于我这种白嫖党绝对不能忍受!所以使用jsx又封装了一个地图组件,最近又有一个可视化项目,领导找我讨论继续用平台还是自己写,我义不容辞的选择了还是自己搞吧!然后技术选择了Vue3 + TypeScript + 高德地图Api,特来此分享一下整个实现流程。

CSS实现大屏常见不规则边框

  • 最近公司需要使用 antv/s2 去实现网页在线编辑表格的功能,在开发过程中发现 s2 自带的框选和复制 与 excel 的功能不一样, 不太能满足公司的需求,所以我就根据 s2 原本的方法进行功能增加
  • 主要增加功能

    • 自定义框选范围
    • 复制
    • 粘贴
    • 删除框选单元格值

观看文章之前看一下我们的目的,我想使用serviceWorker去拦截百度的请求,从而实现serviceWorker拦截请求的功能,是不是很有意思?

本文主要通过对微前端框架single-spa的基座应用加载子应用的single-spa-vue函数库进行分析,通过代码维度分析让大家了解在single-spa加载子应用的时候都做了哪些事情。如何通过优化single-spa-vue函数库保持子应用的状态。

『后端』

在这里给大家推荐一个实现了 Mybatis xml文件热加载的项目,mybatis-xmlreload-spring-boot-starter。它能够帮助我们在Spring Boot + Mybatis的开发环境中修改 xml 后,不需要重启项目就能让修改过后 xml 文件立即生效,实现热加载功能。

教一种阅读源码的方式

作为第一篇文章,就从jdk的动态代理说说吧。之前受到转转的一篇文章启发:转转支付网关之注解式HTTP客户端,最近也是开源了一个基于jdk动态代理的声明式http模块 slow-creator-http ,经验不足,写的不好,如果可以的话大佬们可以指点一下。
同时也非常感谢一些互联网大公司愿意分享他们自己在工作中遇到的问题、心得和技术,让我们这些人可以了解受到大公司考验的新技术,怎么用他们的经验、思路来处理我们的问题。

不知道大家有了解过你们公司的软件产品是如何部署的么?采用的什么部署策略?其实在软件开发生命周期中,部署是非常关键的一环,你需要考虑多方面的因素,如何保证你部署对用户无感知?如何把影响范围控制到最小?如何出现问题快速的实现回滚?

现在的大多数应用程序都是云原生、微服务的方式。例如,淘宝,它就是由许许多多的子服务组成的。服务数量越多,意味着出现问题的可能性更大。那么部署的策略极为关键,高效部署的期望达成的目标有如下几点:

  1. 零停机
  2. 快速部署
  3. 客户对新版本的快速反馈
  4. 出现问题容易回滚

那么本文和大家分享3种微服务部署比较常见的3种部署策略,滚动部署、蓝绿部署和金丝雀部署。

Docker:教你如何把服务器装进口袋里,让工资涨得明明白白

『移动端』

这篇文章主要包括三部分:

  1. 为什么要关注图片占用的内存

  • 很多人可能会觉得,都已经 2023 年了,大多数设备及 APP 都是 64 位的,为什么还需要关注内存?这一部分做一个简单的解答

  1. 图片内存监控、分析常见方案

  • 这一部分我们来探讨下目前社区里常用的一些图片内存监控方案,及优缺点。

  1. 介绍新方案的功能和原理

Apple 中很多后台执行都是用户从前台进入后台之后,依然保持了一段时间的活跃,最常见的比如使用UIApplication.shared.beginBackgroundTask() 来申请更长的代码执行时间,同时不同的线程后台申请执行任务的时间也不同,这一点在我的另一篇文章中亦有深入的探索。

在iOS 13.0之后,Apple出了新的框架 BackgroundTasks ,这个和前者是有很大的不同的,那就是它并不会从前台到后台之后立马执行,而是会规划后台任务执行的时间,系统自动选择合适的时间来执行该任务,比如手机充电或者闲置的时候

它一共提供了两个Task来执行,分别是 BGProcessingTaskBGAppRefreshTask

纵观iOS的后台任务的机制,基本可以分为两类,一类是立即执行的后台任务,比如从前台到后台申请后台执行时间完成前台任务、收到后台推送处理内容等等,这一类是立即执行后台任务的类型,还有一类就是延时执行的后台任务,由系统选择合适的时间来执行任务。

趣味码上掘金分享

作者简介
尼古拉斯阿柴坤坤的个人练习

📖 投稿专区

大家可以在评论区推荐认为不错的文章,并附上链接和推荐理由,有机会登上下一期。文章创建日期必须在近 1-3 天内;可以推荐自己的文章、也可以推荐他人的文章。