又是一次客户問題,客户生產上服務一直無緣掉線,瞭解了半天,大概率是oom導致的,因為系統自動打出來了內存dunp(會心一笑);如果別的故障導致的問題,系統日誌早提示了,還能找我們幫忙看嗎! 拿到客户的dump文件廢了一天的時間,這裏吐槽一下,就不能搞一箇中轉系統什麼的,只能通過一個備案過的移動硬盤來考東西,一個部門那麼多人想借用一下等了老半天,還是等人家下班後,才輪到我們借用了一下。要是生
作者:Miłosz Piechocki 初級工程師關心什麼? 他們關心如何編寫程序。他們最看重的是軟件質量,採用最佳實踐,並嘗試採用最前沿的技術。他們投入了大量時間去學習新技術。對他們來説,最終目標是編寫出優雅、高性能、可維護的軟件。 高級工程師關心什麼? 他們關心如何構建系統。對他們來説,創建軟件只是一系列流程中的一步。 第一步,他們質疑這個軟件是否值得創建,這是首要的。他們會問,這個軟件解
利用 Homebrew 和 Mackup 優雅的備份和恢復電腦開發環境 遇到的問題 每次更換電腦都要重新安裝開發環境和初始化各類常用軟件的配置 最頭疼的是常用軟件的插件及個性化配置的遷移 如下流程我三年經歷了六次😣😣😣: 安裝 Homebrew 再用 Homebrew 安裝常用軟件:vscode,iTerm,nvm,Chrome…… 增加配置文件,配置環境變量,如 nvm
日期 作者 版本 備註 2022-10-06 dingbinthu@163.com V1.0 本文敍述在Linux Centos7系統下,在任意非標準目錄(意味着不需要root或sudo權限)通過官方源碼包編譯安裝Python3.9的快速安裝指南。 因編譯安裝P
源代碼下載: learngo-cn.go 發明Go語言是出於更好地完成工作的需要。Go不是計算機科學的最新發展潮流,但它卻提供瞭解決現實問題的最新最快的方法。 Go擁有命令式語言的靜態類型,編譯很快,執行也很快,同時加入了對於目前多核CPU的併發計算支持,也有相應的特性來實現大規模編程。 Go語言有非常棒的標準庫,還有一個充滿熱情的社區。 // 單行註釋 /* 多行 註釋 */ // 導
源代碼下載:learnfortran-cn.f95 Fortran 是最古老的計算機語言之一。它由IBM開發於1950年用於數值運算(Fortran 為 “Formula Translation” 的縮寫)。雖然該語言已年代久遠,但目前仍用於高性能計算,如天氣預報。 該語言仍在持續發展,並且基本保持向下兼容。知名的版本為 Fortran 77, Fortran 90, Fortran 95, Fo
作者:賈世聞 日誌是應用程序的重要組成部分。無論是服務端程序還是客户端程序都需要日誌做為錯誤輸出或者業務記錄。在這篇文章中,我們結合[log4rs](https://github.com/estk/log4rs)聊聊rust 程序中如何使用日誌。 [log4rs](https://github.com/estk/log4rs)類似java生態中的log4j,使用方式也很相似 log4rs中的基本概
1 yyg-cli 是什麼 yyg-cli 是優雅哥開發的快速創建 vue3 項目的腳手架。在 npm 上發佈了兩個月,11月1日進行了大升級,發佈 1.1.0 版本:支持創建 vue3 全家桶項目和 vue3 組件庫項目。具體如下: vue3 全家桶項目 使用 yyg-cli 創建的 vue3 全家桶項目,底層基於優雅哥編寫的開源項目 vue3-vite-archetype,默認整合如下庫: -
無論是 vue2 全家桶還是 vue3 + vite + TypeScript,組件庫的使用幾乎大家都會,但自己開發一個獨立組件庫就不是每個人都掌握的,因為搭建組件庫的基礎開發環境,就會讓很多同學望而卻步。一個組件庫應該至少要包括三個方面: 組件庫的開發和打包; 組件庫文檔的開發和打包; 命令行工具 cli 快速創建新組件。 這幾天 程序員優雅哥 搭建了一個組件庫的基礎腳手架: vue3
結構體筆記(結構體嵌套、自引用,結構體指針) 結構體(struct) 1、基本概念 結構體-----將不同類型的數據成員組織到統一的名字之下,適用於對關係緊密,邏輯相關、具有相同或不同類型的數據進行處理 2、結構體定義格式 定義結構 為了定義結構,您必須使用 struct 語句。struct 語句定義了一個包含多個成員的新的數據類型,struct 語句的格式如下: struct 標籤名
源代碼下載:learncpp-cn.cpp C++是一種系統編程語言。用它的發明者,Bjarne Stroustrup的話來説,C++的設計目標是: 成為“更好的C語言” 支持數據的抽象與封裝 支持面向對象編程 支持泛型編程 C++提供了對硬件的緊密控制(正如C語言一樣), 能夠編譯為機器語言,由處理器直接執行。 與此同時,它也提供了泛型、異常和類等高層功能。 雖然C++的語法可能比某
更方便的在微信公眾號閲讀文章可以關注公眾號:海生的go花園 在我們寫protobuf最基礎的是有 基本的數字,字符串,枚舉類型組成,在這些基礎的類型基礎上,我們組合成一個message類型。 接下來我們探討一下,如何在message裏面再使用其他的message類型。 方式一:使用其他消息類型作為字段類型 您可以使用其他消息類型作為字段類型。 例如,我們想在SearchResp
居家隔離,但心思一直在工作和思否社區,所以早上下樓做完核酸就迫不及待的開機,然後就遇到煩心事兒,我的鼠標失靈了。 因為沒有完全失靈,鼠標的滾輪壞了,拖動有延遲,所以最早以為是電腦垃圾太多或者説有什麼程序在故意控制我鼠標前進,心想自己就是幹這行的,怕啥,説不定還能拿這個經歷在某平台發個有意思的博客蹭蹭熱度,沒想到試了半天發現是真的壞了,於是開始發愁。迫不得已只能使用觸摸板,要知道,作為一個從文
集合論是數學的一個分支,研究集合、它們的運算和它們的性質。 集合由不重複的項組成。 基本符號 運算符 並運算符,∪,表示“或”; 交運算符,∩,表示“且”;差 運算符,\,表示“不包括”; 補運算符,',表示補集; 叉積運算符,×,表示笛卡爾積。 限定詞 冒號限定詞,:,表示“使得”; 從屬限定詞,∈,表示“屬於”; 子集限定詞,⊆,表示“是……的子集”; 真子集限定
數字誤認作字符,字符串誤認作數組,Promise 沒有 await 就取值,這些問題在 TypeScript 裏把每個類型都定義對了就不會出現,還會有很好的編輯提示。 但寫命令行工具,定義一個某類型的選項時,一邊要傳參如 .option("-d, --dev"),一邊要標註類型如 { dev: boolean },兩個地方需要手動同步。繁瑣易錯,怎麼辦?TypeScript 早在 4.1 就可以設
本文目標 在Linux機器上安裝supervisor並用它來啓動jar包 1.安裝 執行以下兩條命令 yum -y install epel-release yum -y install supervisor 2.配置 在/etc/supervisord.d/ 文件夾下新建一個文件 xxx.ini (xxx是文件名,隨便起個) 寫入以下內容 [program:my_test] ;;java運
引言: spring cloud gateway -- webflux -- reactor-netty -- reactor-core 以上是github上幾個項目的依賴關係。 説明: reactor-core是reactive programming模型的一個具體實現。 本文簡單説明在reactor-core中,flux工作底層到底做了什麼。 先説給一個完整的demo代碼 FluxSt
Spring Security是一個強大且高度可定製的安全框架,致力於為Java應用提供身份認證和授權。 雖然Spring Security有強大的功能,但它同時也有很高的學習成本。它囊括了身份認證的各種應用場景以及Web安全的大量知識,僅官方參考手冊就有數十萬字,並且還省略了諸多實現細節。許多開發人員在面對這樣的“龐然大物”時無從入手,更因為對其不夠了解而在實際項目中不敢輕易採用。本書由淺入深、
源碼鏈接:https://github.com/alibaba/ho... 概述 首先,useDebounceFn和useDebounce都是一個用於添加防抖功能的hook,不同之處在於useDebounceFn給函數添加防抖,而useDebounce用來給值添加防抖。 防抖 某些時候,我們會無法控制所編寫事件的觸發頻率;比如搜索引擎的搜索框對於輸入內容的實時反饋,以及一些根據實時數據動態更新的組
效率和質量是軟件產品追求的兩個核心關鍵點,軟件產品研發是一個覆蓋多階段、涉及多團隊的過程,業界也已經總結出了一些很好的實踐,在保證研發效率的同時還能保證代碼質量。比如代碼提交規範、Code Review、代碼准入、CI/CD。 但是由於缺乏行之有效的研發流程規範,讓上述實踐在落地的時候往往流於形式、可有可無,讓保證質量、提升效率成為懸而難落的話題。而代碼提交不規範、不同開發模式下代碼審核與准入環節
流的使用 無狀態:處理單個數據 有狀態:處理所有數據 中間操作(無狀態) 中間操作(有狀態) 終端操作(短路) 終端操作(非短路) 過濾(filter) 去重(distinct) 所有匹配(allMatch) 遍歷(forEach) 映射(map) 跳過(skip) 任意匹配(
流的使用 無狀態:處理單個數據 有狀態:處理所有數據 中間操作(無狀態) 中間操作(有狀態) 終端操作(短路) 終端操作(非短路) 過濾(filter) 去重(distinct) 所有匹配(allMatch) 遍歷(forEach) 映射(map) 跳過(skip) 任意匹配(
流操作分類 中間操作 無狀態操作【對單個數據進行處理】 filter map peek 有狀態操作【對所有的數據進行處理】 dictinct sorted limit 終端操作 非短路操作 forEach collect count 短路操作 anyMatch findFir
gcc 好玩的 builtin 函數 前言 在本篇文章當中主要想給大家介紹一些在 gcc 編譯器當中給我們提供的一些好玩的內嵌函數 (builtin function)🤣🤣🤣 。 __builtin_frame_address 使用內嵌函數實現 __builtin_frame_address(x) // 其中 x 一個整數 這個函數主要是用於得到函數的棧幀的,更具體的來説是得到函數的 rbp