Hello,又到了每日掘金时间。酱酱们的每日掘金新增优质作者介绍和码上掘金板块,专注于发掘站内优质创作者和优质内容,欢迎大家多提宝贵意见!
本文字数2300+,阅读时间大约需要 15分钟。
- 【本期每日掘金】亮点:
- 【GitHub Action / Pages】自动化部署同步掘金平台
- 100行代码实现一个乞丐版webpack
- 深入探究 React 原生事件的工作原理
- 非侵入式入侵 —— Web缓存污染与请求走私
- 一种监控报警阈值确定的思路 —— 统计分布算法
- 如何衡量和改进 Android 应用启动时间
- ……
筛选规则:文章发布时间在本期「酱酱们的每日掘金」发布时间的 1-3 天内,且符合社区推荐标准,也会同步发布在掘金相关技术社群。
今日主理人|每日掘金
本期每日掘金由 帅气的法医 负责制作,法医是一个长期活跃于沸点的最佳摸鱼手,热爱Coding,喜欢分享,五湖四海皆兄弟,欢迎大家一起在沸点摸鱼,在掘金创作。
每日干货|每日掘金
主理人们会对近期(1-3 天)社区深度技术好文进行挖掘和筛选,优质的技术文章有机会出现在下方列表,排名不分先后。
『前端』
自动化同步文章平台(auto-sync-blog),自动化执行任务:获取掘金指定用户指定专栏的文章, 并将文章目录链接更新至GitHub Pages,自动化运行时间:北京时间下午
16:20左右,实现在写作平台(如掘金、CSDN、简书等)的每日能进行自动同步数据(文章标题和链接);同时,对文章进行友好的分类,并实现更直观的浏览那些年写过的文章。(目前仅支持掘金平台的同步,其他还在开发。)
今天来讲讲webpack的打包原理,以及简单实现吧~相信大家对webpack多多少少都有理解,说到webpack是什么基本上都能说出这是一个模块化打包工具,今天我就从模块化与打包入手来简单讲解一下
在前文中,我们一直在回避讲解Zone和ZoneDelegate之间的区别。尤其在上篇文章讲API的时候,我甚至让大家把这两者当成一回事。其实这两者并不是完全相等的。单从Delegate这个单词你也能看出,虽然Zone和ZoneDelegate的API很像,但是真正干活的是ZoneDelegate。我简单节选几段Zone的源码,大家不难发现,大多数Zone的API都直接或间接通过代理中相对应的API完成的。
RxJS,一个大部分前端人看似熟悉但是又陌生的东西。的确,目前主流技术除了Vue就是React,只有Angular在大量使用RxJS。我作为六年前从Java入行的程序员,做过后端,做过原生安卓,做过Java桌面,后来前后端分离流行了之后开始接触Angular直到现在。从RxJava用到RxJS,对这东西可以说是天天打交道,再熟悉不过了。
本文对应的 react 版本是 18.2.0ReactDOM 是
react的dom渲染器,它从react-dom/client中导出当我们调用ReactDOM.createRoot方法时,createRoot函数会调用listenToAllSupportedEvents方法 listenToAllSupportedEvents函数定义在 react-dom-bindings/src/events/DOMPluginEventSystem 文件中,当 DOMPluginEventSystem文件被执行时,react 会进行事件注册
五层网络模型是计算机网络的一个基本知识点,无论前端还是后端,面试的时候都有可能被问到,五层网络模型是比较抽象的,因为大家看不见,摸不着,但它却是每时每刻都在发生的,像微信聊天、浏览器打开一个网页等等,这些都是经过了五层网络模型,今天我们就来聊聊这个话题!
『后端』
本文介绍了两种攻击者无需直接接触服务端即可攻击和影响用户行为的安全漏洞 —— Web缓存污染与请求走私。Web缓存污染旨在通过攻击者向缓存服务器投递恶意缓存内容,使得用户返回响应结果而触发安全风险。HTTP请求走私旨在基于前置服务器(CDN、反向代理等)与后置服务器对用户请求体的长度判断标准不一致的特性,构造能够被同一TCP连接中其它用户夹带部分恶意内容的攻击请求,从而篡改了受害者的请求与响应行为。两种漏洞均需要通过针对中间件的合理配置与业务接口的合理设计进行排查和防御。
Buffer Pool:缓冲池,简称 BP。其作用是用来缓存表数据与索引数据,减少磁盘 IO 操作,提升效率。Buffer Pool 由缓存数据(Page) 和对缓存数据页进行描述的控制块组成,控制块中存储着对应缓存页的所属的表空间、数据页的编号、以及对应缓存页在 Buffer Pool 中的地址等信息
统计分布算法(Statistical Distribution Algorithm):这种算法是根据数据的概率分布进行阈值设置的。比如,计算出数据的均值和标准差,通过均值加减若干个标准差来确定阈值。根据数据的分布情况,阈值的精度和敏感度较高,常见的应用场景有金融风控系统等。
Go 这活不得劲,常被戏称,一个大型 Go 工程项目里 60% 的代码都是
if err != nil。咱们错误处理怎么不借鉴一下 Rust,高低也整个问号的语法特性,就可以简化这三行了,不香吗?
『移动端』
在这一篇文章里面将会进一步增加难度,在之前的基础上继续使用DSL开发一个登录页面,我们知道在安卓里面想要开发一个页面,必不可少的就是要写layout文件,然后通过setContentView设置进去,这种传统的布局方式虽说有它的优势之处,比如稳定,布局可预览等,但如今更多的是对这种方式吐槽,甚至是抱有一些抵触情绪,我想原因可能包括以下几点
让我们探索衡量和改进应用启动时间的不同方法,通过从 Instrumentation 开始,你可以发现还存在优化的机会,可以确定将工作集中在何处,并且可以看到优化后改进了多少。
进程保活是一把双刃剑,增加app存活时间的同时牺牲的是用户手机的电量,内存,cpu等资源,甚至还有用户的忍耐度,作为开发者一定要合理取舍,不要为了保活而保活,即使需要保活,也尽量采用白色保活手段,别让用户手机变板砖,然后再来哭爹骂娘。
SymbolTable:用来保存符号的,存放地址。StringTable:用来保存符号的名称。 Indirect Symbol Table:间接符号表。保存使用的外部符号。更准确一点就是使用外部动态库的符号,是Symbol Table的子集,不可进行strip。例如使用NSLog函数后,这个符号就会被放进此表。
类扩展extension在我们的开发过程中其实经常使用的,下图红框部分就是一个ViewController的类扩展。类扩展实际上是一个特殊的分类,也称作匿名分类,创建的类扩展只有.h文件,没有.m文件。
📖 投稿专区|每日掘金
大家可以在评论区推荐认为不错的文章,并附上链接和推荐理由,有机会登上下一期。文章创建日期必须在近 1-3 天内;可以推荐自己的文章、也可以推荐他人的文章。