@源碼學習

Stories List
@nortyr

「NIO源碼」JavaNIO源碼 & JNI分析二:Java NIO源碼分析

沒看過的建議先看上一篇,本來打算講講linux內核,也看了一些書籍,可是c放了太久了,看代碼實在頭疼,就先放棄了,寫寫業務也沒必要卷這麼深吧。就講到調用底層api為止我覺得剛剛好。不太擅長將源碼結合講故事,所以整片略顯枯燥,將就看下吧~~ demo public class ServerConnect { public static void main(String[] args)

nortyr Avatar

@nortyr

Nickname 山間小僧

@crow_5c1708a9c847d

一個關於React數據不可變的無聊問題

對於一個React的開發者來説不知道你有沒有想過為什麼React追求數據不可變這個範式; 一個月前我想過一個問題如果我在使用useState這個hooks的時候傳入的是一個改變後的引用類型對象會發生什麼? 例如: import {useState} from "react" function App() { const [list,setList] = useState([0,1,2])

crow_5c1708a9c847d Avatar

@crow_5c1708a9c847d

Nickname 龍騎士尹道長

@fsjohnhuang

React魔法堂:size-sensor源碼略讀

前言 echarts-for-react在對echarts進行輕量級封裝的基礎上,額外提供圖表尺寸自適應容器尺寸的這小而實用的功能,而這功能的背後就是本文想介紹的size-sensor了。 源碼介紹 size-sensor源碼十分精簡,主要是對原生APIResizeObserver方案和object元素方案進行檢測和API統一化而已。 代碼首先會檢測當前運行時是否支持原生APIResizeObse

fsjohnhuang Avatar

@fsjohnhuang

Nickname 肥仔John

@cbuc

AST 初探深淺,代碼還能這樣玩?!

大家好,這裏是 菜農曰,歡迎來到我的頻道。我們今天的主題是 AST (抽象語法樹) AST 聽起來好像是個很新的東西,那麼具體有什麼用,好不好用就在這篇文章中找到答案吧~ 我們簡單將這個詞拆分抽象、語法、樹,如果我們能夠順利將這個詞拆分,那麼我們也就掌握了其核心所在 抽象:抽象的反義詞是具象,也就説明抽象的事物關注點不在於細節,而在於整體 語法:語法一組詞法的表達式,具備某種指定的規則,具有

cbuc Avatar

@cbuc

Nickname 寫做

@kanjianliao

【ol】事件類型

本文主要學習openlayers的Event模塊相關源碼 BaseEvent Openlayers根據W3C DOM Level 2 Event接口簡化實現了自己的事件類,它只提供了type和target屬性以及preventDefault和stopPropagation方法。 class BaseEvent { /** * @param {string} type Type. *

kanjianliao Avatar

@kanjianliao

Nickname 看見了

@lazytimes

【RocketMq】RocketMq-NameServ 源碼分析(Ver4.9.4)

引言 RocketMq3.X的版本和Kafka一樣是基於Zookeeper進行路由管理的,但是這意味着運維需要多部署一套Zookeeper集羣,後來RocketMq選擇去ZK最終出現了NameServ。NameServ作為RocketMq源碼閲讀的切入點非常不錯,本文將會介紹Ver 4.9.4 版本的NameServ源碼分析。 NameServer主要有兩個功能,Broker管理和路由信息管理。

lazytimes Avatar

@lazytimes

Nickname 阿東

@jdcdevloper

Dubbo架構設計與源碼解析(二) 服務註冊

作者:黃金 一、Dubbo簡介 Dubbo是一款典型的高擴展、高性能、高可用的RPC微服務框架,用於解決微服務架構下的服務治理與通信問題。其核心模塊包含 【RPC通信】 和 【服務治理】 ,其中服務治理又分為服務註冊與發現、服務容錯、負載均衡、流量調度等。今天將重點介紹Dubbo的服務註冊與發現。 二、SPI機制 在介紹服務註冊發現之前,先簡單介紹一下貫穿整個Dubbo源碼,也是Dubbo實現自適

jdcdevloper Avatar

@jdcdevloper

Nickname 京東雲開發者

@nebulagraph

讀 NebulaGraph源碼 | 查詢語句 LOOKUP 的一生

本文由社區用户 Milittle 供稿 LOOKUP 是圖數據庫 NebulaGraph 的一個查詢語句。它依賴索引,可以查詢點或者邊的信息。在本文,我將着重從源碼的角度解析一下 LOOKUP 語句的一生是如何度過的。 本文源碼閲讀基於內核源碼的 v3.3.0 版本,詳見 GitHub https://github.com/vesoft-inc/nebula/releases/tag/v3.3.

nebulagraph Avatar

@nebulagraph

Nickname NebulaGraph

@chuyang_596e1bd19bf8c

【Python爬蟲項目實戰】Python爬蟲批量下載網易雲飆升榜音樂保存本地

前言 今天給大家介紹的是Python爬取音頻數據並保存本地,在這裏給需要的小夥伴們幫助,並且給出一點小心得。 開發工具 Python版本: 3.6.4 相關模塊: requests模塊 re模塊 os模塊 環境搭建 安裝Python並添加到環境變量,pip安裝需要的相關模塊即可。 爬蟲基本思路分析 1.頁面數據 瀏覽器中打開我們要爬取的頁面 按F12進入開發者工具,查看我們想要的數據在哪裏

chuyang_596e1bd19bf8c Avatar

@chuyang_596e1bd19bf8c

Nickname 黑客Roman

@zengh

【源碼&庫】在調用 createApp 時,Vue 為我們做了那些工作?

在使用Vue3時,我們需要使用createApp來創建一個應用實例,然後使用mount方法將應用掛載到某個DOM節點上。 那麼在調用createApp時,Vue再背後做了些什麼事情呢?今天就來扒一扒Vue3的源碼,看看調用createApp發生了些什麼。 大家好,這裏是田八的【源碼庫】系列,Vue3的源碼閲讀計劃,Vue3的源碼閲讀計劃不出意外每週一更,歡迎大家關注。 首發在掘金,如果想一起

zengh Avatar

@zengh

Nickname 田八

@zengh

【源碼&庫】Vue3 中的 nextTick 魔法背後的原理

在使用Vue的時候,最讓人着迷的莫過於nextTick了,它可以讓我們在下一次DOM更新循環結束之後執行延遲迴調。 所以我們想要拿到更新的後的DOM就上nextTick,想要在DOM更新之後再執行某些操作還上nextTick,不知道頁面什麼時候掛載完成依然上nextTick。 雖然我不懂Vue的內部實現,但是我知道有問題上nextTick就對了,你天天上nextTick,那麼nextTick為什麼

zengh Avatar

@zengh

Nickname 田八

@wric

源碼閲讀:go-zero的core/conf包

這個代碼庫主要用於加載和解析配置文件,支持 JSON、TOML 和 YAML 格式。主要功能包括從文件或字節數據中加載配置、填充默認值以及處理配置數據的鍵大小寫。代碼的主要結構和函數如下: fieldInfo 結構體:用於表示字段信息,包括子字段和映射字段。 從文件或字節數據加載配置的函數:Load, LoadConfig, LoadFromJsonBytes, LoadConfigFrom

wric Avatar

@wric

Nickname wric

@starrocks

StarRocks 源碼實驗室 EP.1—— 內置函數

​什麼是 StarRocks 源碼實驗室? 引用 閲讀源碼是開發者深入瞭解一個項目的好方法,不僅可以更好地理解程序的邏輯和實現方式,對於調試和修改代碼也非常有幫助。對於想要加入 StarRocks 社區貢獻的小夥伴來説,這是必要的學習之一,因為了解 StarRocks 內部運作機制有助於快速上手並參與到開發工作中。 為此,StarRocks 社區推出了 StarRocks 源碼實驗

starrocks Avatar

@starrocks

Nickname StarRocks

@starrocks

技術內幕|StarRocks 標量函數與聚合函數

作者:徐嘉 StarRocks Active ContributorStarRocks 函數就像預設於數據庫中的公式,允許用户調用現有的函數以完成特定功能。函數可以很方便地實現業務邏輯的重用,因此正確使用函數會讓讀者在編寫 SQL 語句時起到事半功倍的效果。 StarRocks 提供了多種內置函數,包括標量函數、聚合函數、窗口函數、Table 函數和 Lambda 函數等,可幫助用户更加便捷

starrocks Avatar

@starrocks

Nickname StarRocks

@best_6455a509a2177

直播源碼錄製技術的實現

在上網看直播或者視頻的時候,你有沒有這樣一個煩惱:當遇到想看的直播但卻沒時間去看,或者想把喜歡的視頻存到手機上分享給別人,但卻不能下載存入手機。每到這時候我們都會使用目前市場上非常流行的一個直播源碼技術功能:錄製功能。他非常有效的解決了這些煩惱,今天我就給大家分享直播源碼技術之錄製功能有關知識。 一、直播源碼技術錄製功能的定義與作用 直播源碼技術錄製功能大致意思就是説將媒體的聲音形象或是畫面的一舉

best_6455a509a2177 Avatar

@best_6455a509a2177

Nickname 山東布穀科技

@best_6455a509a2177

直播系統開發知識,軟件二維碼的生成

直播的火爆促進了直播源碼開發平台的火爆,許許多多的公司加入了開發直播平台的隊列中來。當一個公司去開發完直播平台的時候,宣傳就成了這個公司的重中之重,在宣傳中,讓對方下載其中的重點之一,下載有許許多多的方式,不知道大家有沒有見過這樣的事情,在奶茶店或是商場中,都有由他們店裏自己的二維碼,當你拿出手機掃描的時候,手機裏就會出現提示,讓你下載他們的app,那大家知道他們是如何將自己的app加入到這個小小

best_6455a509a2177 Avatar

@best_6455a509a2177

Nickname 山東布穀科技

@yongxinz

微服務架構|go-zero 的自適應熔斷器

原文鏈接: go-zero 的自適應熔斷器 上篇文章我們介紹了微服務的限流,詳細分析了計數器限流和令牌桶限流算法,這篇文章來説説熔斷。 熔斷和限流還不太一樣,限流是控制請求速率,只要還能承受,那麼都會處理,但熔斷不是。 在一條調用鏈上,如果發現某個服務異常,比如響應超時。那麼調用者為了避免過多請求導致資源消耗過大,最終引發系統雪崩,會直接返回錯誤,而不是瘋狂調用這個服務。 本篇文章會介紹主流熔斷器

yongxinz Avatar

@yongxinz

Nickname alwaysbeta

@mannayang

Java深入研究String字符串

提及String字符串,我們更多的是用於文本的傳輸與存儲,在JDK源碼中也被申明為final類型,同時也不屬於Java中基本的數據類型,例如以直接雙引號申明的常量String nameStr="Manna Yang";或者採用構造函數創建String nameStr=new String("Manna Yang");下面將逐步揭開其神秘面紗... class字節碼文件結構 在探究String字符串

mannayang Avatar

@mannayang

Nickname MannaYang

@mannayang

Android系統Launcher啓動流程

本文基於android13-release源碼閲讀整理 系統源碼地址:init.h - Android Code Search 前言 以往我們開發Android應用都在系統桌面點擊打開,但桌面Launcher進程是如何加載並展示應用窗口未能深入瞭解,由此去窺探Android系統整體啓動流程以加深對Android開發體系的理解 1.Android系統啓動核心流程 當開機鍵按下時Boot Rom激

mannayang Avatar

@mannayang

Nickname MannaYang

@da_miao_zi

redigo連接池的源碼分析

redigo連接池的源碼分析 今天我們來看一看redigo(https://github.com/gomodule/redigo)是如何實現連接池的。 概述 連接池部分的代碼在redis/pool.go中,相關結構體和接口的UML圖如下圖所示 Pool結構體定義了連接池的屬性和行為,包括以下主要參數: Dial func() (Conn, error):指向用於新建連接的函數,由redigo

da_miao_zi Avatar

@da_miao_zi

Nickname da_miao_zi