博客 RSS 訂閱

南玖 - Docker從入門到部署項目

Docker概念 Docker是一個開源的應用容器引擎,它是基於Go語言並遵從Apache2.0協議開源。Docker可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後發佈到任何流行的linux機器上,也可以實現虛擬化。通過容器可以實現方便快速並且與平台解耦的自動化部署方式,無論你部署時的環境如何,容器中的應用程序都會運行在同一種環境下。並且它是完全使用沙箱機制,相互之間是隔離

容器 , 工程化 , Docker

收藏 評論

hea1066 - node 項目讀取環境變量

node 項目從 process.env 讀取環境變量時,process.env 有哪些來源? 命令行 使用 cross-env 處理跨平台環境變量設置。 { "scripts": { "dev": "cross-env MY_ENV=hello node ./index.js", "start": "cross-env MY_ENV=hello webpack" } }

node.js , 工程化

收藏 評論

範文傑 - NPM 依賴管理的複雜性

這是一個很少被提及的話題 —— 依賴管理(Dependencies Management) 。 在開源文化盛行的現代,多數時候我們都不必從零開始搭建一套軟件系統,轉而可以藉助諸多開放的代碼片段及其他資源更快速高效開發軟件應用,這算的上軟件工程發展史上一次巨大革命,因為它能大幅提升軟件工業的生產效率,我們不必再從底層開始編寫所有代碼,大部分問題與常見的編程模式都能在社區找到相應的解決方案,且這些被反

工程化 , 前端

收藏 評論

南玖 - 【性能監控】如何有效監測網頁靜態資源大小?

前言 作為前端人員肯定經常遇到這樣的場景:需求剛上線,產品拿着手機來找你,為什麼頁面打開這麼慢呀,心想自己開發的時候也有注意性能問題呀,不可能會這麼誇張。那沒辦法只能排查下是哪一塊影響了頁面的整體性能,打開瀏覽器控制枱一看,頁面上的這些配圖每張都非常大,心想這些配圖都這麼大,頁面怎麼快,那麼我們有沒有辦法監測頁面上的這些靜態資源大小,從而避免這種情況的發生。 Performance Perform

性能監控 , 工程化 , 前端 , Javascript

收藏 評論

南玖 - 淺析Vite本地構建原理

前言 隨着Vue3的逐漸普及以及Vite的逐漸成熟,我們有必要來了解一下關於vite的本地構建原理。 對於webpack打包的核心流程是通過分析JS文件中引用關係,通過遞歸得到整個項目的依賴關係,並且對於非JS類型的資源,通過調用對應的loader將其打包編譯生成JS 代碼,最後再啓動開發服務器。 瞭解到webpack的耗時主要花費在打包上,Vite選擇跳過打包,直接以以 原生 ESM 方式提供源

vite , 工程化 , 前端

收藏 評論

JackZhouMine - 前端項目如何規範文件命名

前端項目如何規範文件命名 ls-lint 是一個非常快的文件和目錄名稱 linter,可方便約束項目目錄和文件的命名。 特點: 快速 依賴少 適用所有文件 配置簡單 安裝依賴 npm install @ls-lint/ls-lint -D 在 husky 加入 git hook: "husky": { "hooks": { "pre-commit": "ls-lint

vue.js , 工程化 , HTML , 前端 , Javascript

收藏 評論

南玖 - Vite本地構建:手寫核心原理

前言 接上篇文章,我們瞭解到vite的本地構建原理主要是:啓動一個 connect 服務器攔截由瀏覽器請求 ESM的請求。通過請求的路徑找到目錄下對應的文件做一下編譯最終以 ESM的格式返回給瀏覽器。 基於這個核心思想,我們可以嘗試來動手實現一下。 搭建靜態服務器 基於koa搭建一個項目: 項目結構如上,服務使用koa搭建,bin指定cli可執行文件的位置 #!/usr/bin/env node

vite , 工程化 , 前端 , Javascript

收藏 評論

範文傑 - 前端工程化系列一:序言

1. 關於這個系列 我認為,工程化是前端各類細分技術領域中最為基礎而關鍵,最具有知識廣度與深度因而學習曲線較為陡峭,但同時也是對整體開發效率、質量增益最大因而對個體而言最具有學習價值的高階技能之一。 具體來説,工程化領域向上可以探索學習各種構建工具、靜態代碼分析工具、CI/CD 與開發工作流等具象工具;橫向可認真研判、梳理、落地各類研發規則,提前幫助業務開發者做出技術選擇,以實現更高效而規範地業務

工程化

收藏 評論

BioCrossCoder - 六邊形架構最佳實踐探索

在工作中,我接觸到的產品均採用了微服務架構,後端項目開發普遍採用了六邊形架構:六邊形架構提供了一套良好的設計思想,但它缺乏對項目代碼組織細節的指導;同時,項目中並沒有使用專門的微服務框架,而是普遍使用Gin框架,這使得代碼組織過於靈活,沒有提供充分的編碼約束,以致於在過去的業務需求實現中,後端服務的項目代碼組織充斥着各種各樣的問題;為了解決這些問題、提高開發效率、保障工程質量,基於工作一年的實踐和

架構設計 , 工程化 , 開發規範 , go , 後端

收藏 評論

Steven - browserslist 使用簡介

頁面為了能在各個品牌、各個版本的瀏覽器上正常顯示,需要處理各種兼容問題:將現代的 JavaScript 語法(ESNext)轉譯為舊版的 JavaScript 語法(ES5);為不兼容的 CSS 樣式添加瀏覽器前綴(-webkit-、-moz-);等等。 現代的前端頁面開發流程,都有相應的工具為開發者自動地處理這些兼容問題:Autoprefixer - 為 CSS 樣式,自動添加不兼容的瀏覽器前綴

browser , 兼容性 , 工程化 , 前端

收藏 評論

specialcoder - 一文讀懂 NPM 版本

這是前端工程化的系列文章 版本號組成 node package 版本號由四部分組成:major.minor.patch[-prerelease],比如:1.0.2-beta.1,其中 prerelease 可選。 major:代表主版本號,通常在需要提交不能向下兼容的情況下對該版本號進行升級 minor:代表次版本號,通常在新增功能時才對該版本號進行升級 patch:代表修復版本號,升級該

工程化 , npm , 前端

收藏 評論

specialcoder - 認識包管理工具: npm、yarn和pnpm

包管理工具的發展 2010 年 1 月,一款名為 npm 的包管理器誕生。它確立了包管理器工作的核心原則。 npm 的發佈誕生了一場革命,在此之前,項目依賴項都是手動下載和管理的。npm 引入了文件和元數據字段,將依賴項列表存儲在 package.json 文件中,並且將下載的文件保存到 node_modules 文件夾中。 後來因為 npm 的缺陷或者舊版本的不足,又出現了一個個替代

工程化 , npm , 前端

收藏 評論

南玖 - 深入瞭解Vite:依賴預構建原理

前言 前面我們有提到Vite在開發階段,提倡的是一個no-bundle的理念,不必與webpack那樣需要先將整個項目進行打包構建。但是no-bundle的理念只適合源代碼部分(我們自己寫的代碼),vite會將項目中的所有模塊分為依賴與源碼兩部分。 依賴: 指的是一些不會變動的一些模塊,如:node_modules中的第三方依賴,這部分代碼vite會在啓動本地服務之前使用esbuild進行預構建。

vite , 工程化 , 原理 , 前端

收藏 評論

amc - 騰訊 tRPC-Go 教學——(1)搭建服務

2023 年底騰訊統一的 RPC 框架 tRPC 正式開源。遍觀全網,似乎大部份是對 tRPC 概念上的宣傳、架構上的設計,而如何開發、如何部署的文章鳳毛麟角。於是筆者小試牛刀撰此文,或許會成為一系列,希望能拋磚引玉。 系列文章 騰訊 tRPC-Go 教學——(1)搭建服務 騰訊 tRPC-Go 教學——(2)trpc HTTP 能力 騰訊 tRPC-Go 教學——(3)微服務間調用 騰

grpc , 騰訊 , HTTP , rpc , go

收藏 評論

amc - 騰訊 tRPC-Go 教學——(2)trpc HTTP 能力

上一篇文章 中我們快速搭建了一個 http API 服務,並且我們可以看到,對外提供了 URL query 和 application/json 兩種服務模式。那麼實際上,我們到底實現了什麼、並且能夠做些什麼?讀者可能還是沒有直觀的感受,因此必要先來簡單 review 一下。就讓我們先放下敲代碼的小手,一起看看剛剛寫出來的都是些什麼玩意兒吧。 系列文章 騰訊 tRPC-Go 教學——(1)搭建

騰訊 , HTTP , rpc , go

收藏 評論

amc - 騰訊 tRPC-Go 教學——(3)微服務間調用

前兩篇文章(1、2),我構建了一個簡單的 HTTP 服務。 HTTP 服務是前後端分離架構中,後端最靠近前端的業務服務。不過純後台 RPC 之間,出於效率、性能、韻味等等考慮,HTTP 不是我們的首選。本文我們就來看看騰訊是怎麼使用 tRPG-Go 構建後台微服務集羣的。 本文我們將開始涉及 tRPC 的核心關鍵點之一: tRPC 服務之間如何互相調用 系列文章 騰訊 tRPC-Go 教

騰訊 , HTTP , rpc , go

收藏 評論

amc - 騰訊 tRPC-Go 教學——(4)tRPC 組件生態和使用

之前我花了三篇文章來介紹 tRPC 怎麼用。而 tRPC 給開發者帶來的便利, 在整整三篇文章中,我也只是介紹了它可以方便服務在 HTTP、trpc、grpc 三種協議之間靈活切換。誠然, tRPC 作為能夠統一騰訊內開發框架的一個生態級產品,它的能力顯然不止這些。這一篇文章,咱們來一起初窺 tRPC 的周邊生態有哪些, 以及其中的第三方組件使用方法。 系列文章 騰訊 tRPC-Go 教學—

騰訊 , HTTP , rpc , go

收藏 評論

註銷 - 如何設計一個 RPC 框架

RPC(Remote Procedure Call,遠程過程調用)框架是一種在分佈式系統中常見的通信方式。它允許程序調用位於另一台計算機上的函數或過程,就像調用本地函數一樣。RPC 框架的核心職責是在不同計算機或不同網絡環境中實現程序間的通信和數據交換。 RPC 框架的設計目標在於隱藏遠程通信的複雜性,讓開發者像使用本地對象一樣方便地使用遠程對象。這種設計可以大幅簡化分佈式系統的開發流程,因為開發

rpc

收藏 評論

倔強的鉛筆 - JMeter 如何快速實現 gRPC 接口請求?

JMeter 是一個強大的開源工具,因其在軟件開發領域內提供性能和壓力測試的能力而受到讚譽。它因兼容 gRPC 服務而展現出其多功能性,感謝可獲得的插件,這進一步增強了其實用性。 使用 JMeter 進行 gRPC 測試的起步 準備階段 為了充分發揮 JMeter 對 gRPC 測試的潛力,首先需要正確設置環境。這包括下載基礎的 JMeter,然後集成關鍵的 gRPC 插件,一個旨在將 JMete

jmeter , grpc , rpc , 測試工具

收藏 評論

amc - 騰訊 tRPC-Go 教學——(5)filter、context 和日誌組件

本文咱們來介紹一下在 tRPC 中的 filter 機制、context 用法,以及在相關機制上可以實現的 tracing log 能力。 説實話,這一部份是我個人最不喜歡的 tRPC 的實現模式,不過這不妨礙咱們使用它——只要把它封裝成讓人更為舒服的模式也未嘗不可。 系列文章 騰訊 tRPC-Go 教學——(1)搭建服務 騰訊 tRPC-Go 教學——(2)trpc HTTP 能力 騰

騰訊 , HTTP , rpc , go

收藏 評論

amc - 騰訊 tRPC-Go 教學——(6)服務發現

距離上一篇文章居然已經過去兩個月了,畢竟苦逼打工人忙得一點空都沒有…… 本文我們來講一講對於微服務架構來説,最重要的一個點了:服務發現及其對應的名字服務功能。 系列文章 騰訊 tRPC-Go 教學——(1)搭建服務 騰訊 tRPC-Go 教學——(2)trpc HTTP 能力 騰訊 tRPC-Go 教學——(3)微服務間調用 騰訊 tRPC-Go 教學——(4)tRPC 組件生態和使用

騰訊 , HTTP , rpc , go , 後端

收藏 評論

amc - 騰訊 tRPC-Go 教學——(7)服務配置和指標上報

系列文章 騰訊 tRPC-Go 教學——(1)搭建服務 騰訊 tRPC-Go 教學——(2)trpc HTTP 能力 騰訊 tRPC-Go 教學——(3)微服務間調用 騰訊 tRPC-Go 教學——(4)tRPC 組件生態和使用 騰訊 tRPC-Go 教學——(5)filter、context 和日誌組件 騰訊 tRPC-Go 教學——(6)服務發現 騰訊 tRPC-Go 教學——

騰訊 , HTTP , rpc , go , 後端

收藏 評論

火爆的鍵盤 - 瞭解 gRPC 狀態碼及其重要性

gRPC 是什麼? gRPC(gRPC Remote Procedure Call)是一個高性能的開源框架,它通過遠程過程調用(RPC)機制促進應用程序之間的通信。 gRPC 框架使客户端應用程序能夠調用不同機器上的服務器應用程序的方法,就好像它是本地對象一樣。因此,該框架通過抽象網絡通信的複雜性,簡化了分佈式系統的開發。 gRPC 的關鍵特性 語言中立性 RPC 是平台無關的,並支持多種編程語言

grpc , 微服務 , rpc , 程序員 , 後端

收藏 評論

chaokunyang - Apache Fury 0.5.1 版本正式發佈

大家好,非常高興向大家發佈 Apache Fury 0.5.1 版本。該版本包含了來自七個 contributor的37個PR的貢獻,可以參考[安裝]()文檔獲取最新版本。 Release Notes:https://github.com/apache/incubator-fury/releases/tag/v0.5.1 Apache Fury簡介 Apache Fury 是一個基於JIT動

序列化 , 大數據 , 微服務 , rpc , JAVA

收藏 評論