Visual Studio ReSharper 擴充套件完整介紹
在 Visual Studio 的眾多擴充套件中,ReSharper 是使用最廣泛的 .NET 生產力工具之一。本文盤點它的核心功能、快速鍵、安裝方式與授權,以及幾個值得考量的取捨點。 什麼是 ReSharper?ReSharper 是由 JetBrains 開發的 Visual Studio 擴充套件,核心定位是補強 Visual Studio 原生分析器的不足:它在整個方案層級(solution-wide)做靜態分析,而非僅限單一檔案,因此能找出跨專案的未使用公開成員、衍生型別關係,以及需要全域語意模型才能偵測的問題。 主要功能即時程式碼分析ReSharper 會在你輸入的同時持續分析整個方案,狀態列右下角的圓形指示燈反映目前的問題數量。常見偵測項目包括: 潛在的 null 參照(搭配可為空參照型別標記) 未使用的變數、參照與 using 命名規則違反(可對應 .editorconfig 或 .DotSettings) 可以簡化的 LINQ 表達式或型別轉換 重構工具重構是 ReSharper 最被引用的強項,以下幾個是日常最常用的: Rename(F2):跨所有檔案、...
SQL優化:處理百萬級資料表的結構修改
SQL優化:處理百萬級資料表的結構修改一張上百萬筆的資料表,直接下 ALTER TABLE 加個欄位,結果整張表被鎖住、線上查詢全部排隊等待、應用程式逾時。這是動大表時最常踩的雷。底下記錄一個我在宜蘭下水道專案實際用過的做法:不直接改原表,而是建一張新結構的表、分批把資料搬過去,再交換表名。 先講清楚一件事:這篇前半段的概念示意用 MySQL 語法,後半段的實戰程式碼是 SQL Server(T-SQL)。兩套資料庫在「建空表」和「換表名」這兩步的語法差很多,不能照抄互換,文中會逐一標明。 為什麼不直接 ALTER TABLE當資料表的記錄數量上到百萬、千萬級別,直接執行 ALTER TABLE 很可能撐很久甚至逾時。原因是不少結構變更會走「重建整張表」的路徑:資料庫要複製整張表的內容、期間對表加上 schema 修改鎖,其他查詢和寫入只能等。表越大,鎖的時間越長,線上服務就越可能受影響。 不同資料庫、不同版本對 online DDL 的支援程度不一樣,有些操作(例如某些情況下加欄位)其實能做到不重建表。但一旦碰到需要重建的變更,又不想冒鎖表風險,「自己控制節奏分批搬」就是個可控...
使用 Python 和 FFmpeg 打造簡易影片轉換器
今天我要跟各位分享一個有趣的小專案 - 使用 Python 和 FFmpeg 製作的簡易影片轉換器。這個應用程式不僅實用,還能讓我們學習到如何結合 Python 的圖形使用者介面(GUI)與強大的影片處理工具。 專案概述這個影片轉換器具有以下特點: 簡潔的圖形使用者介面 可以選擇輸入檔案和指定輸出檔案 使用 FFmpeg 進行影片轉換 顯示轉換狀態和錯誤訊息 使用的技術 Python:程式的主要語言 tkinter:Python 的標準 GUI 函式庫 ffmpeg-python:FFmpeg 的 Python 綁定,用於影片處理(安裝:pip install ffmpeg-python) 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970# 導入必要的模組import ffmpeg # 用於處理影片轉換import threading # 用於背景執行轉換,避...
如何快速刪除包含數百萬文件的資料夾:Windows 批次檔案解決方案
問題描述資料夾裡累積了超過兩百萬個檔案。透過 Windows 檔案總管直接刪除,系統會卡死,沒有回應。Windows 在計算資源回收桶確認與 GUI 進度時開銷極大,檔案數量一多就撐不住。 解決方案:使用批次檔以下是使用的批次檔程式碼: 123456789101112131415161718192021222324252627282930313233343536@echo offsetlocal enabledelayedexpansionset "folder_path=%~dp0"echo 警告:此批次檔案將快速刪除以下資料夾中的所有檔案和子資料夾:echo %folder_path%echo.echo 請確認這是您想要清空的正確資料夾。echo 按 Y 繼續,或按任意其他鍵取消操作。set /p confirm=確認刪除 (Y/N)? if /i "%confirm%" neq "Y" ( echo 操作已取消。 goto :EOF)echo.echo 正在快速刪除所有內容,請稍候...pushd &q...
SQL中的CASE語法:強大而靈活的條件表達式
SQL中的CASE語法:強大而靈活的條件表達式CASE 語法讓查詢裡的條件判斷變得直接,根據不同情況回傳不同結果,不需要在應用層多繞一圈。 CASE語法的基本結構CASE 有兩種寫法:簡單 CASE 和搜索 CASE。 簡單CASE語法123456CASE 表達式 WHEN 值1 THEN 結果1 WHEN 值2 THEN 結果2 ... [ELSE 其他結果]END 搜索CASE語法123456CASE WHEN 條件1 THEN 結果1 WHEN 條件2 THEN 結果2 ... [ELSE 其他結果]END 簡單 CASE 是對單一表達式做等值比對,搜索 CASE 則每個 WHEN 都是獨立條件,能處理範圍、NULL、複合邏輯,彈性更大。 CASE語法的特點 靈活:條件邏輯可以很複雜,包含範圍、複合條件、NULL 判斷 可讀:比一堆巢狀 IF 或應用層後處理清楚 通用:SELECT、WHERE、ORDER BY、GROUP BY、UPDATE 都能用 實際應用場景例子1:根據成績分級1234567891011SELECT...
Redis詳細介紹、使用場景及與SQL Server的結合
什麼是 Redis?Redis(Remote Dictionary Server)是一個開源的高效能記憶體鍵值資料庫,由 Salvatore Sanfilippo 開發,2009 年首次發布。它不只是簡單的鍵值儲存,還支援多種資料結構:字串、雜湊、串列、集合、有序集合等。 Redis 的主要特點 高效能:資料全存在記憶體,讀寫速度極快。 持久化:雖然是記憶體資料庫,仍提供 RDB 快照與 AOF 兩種持久化選項。 多種資料結構:字串、雜湊、串列、集合、有序集合,針對不同場景各有用途。 原子性操作:所有命令(包括操作複雜資料結構的命令)都是原子性的。 發布/訂閱:內建 Pub/Sub,可直接用於訊息傳遞。 事務支援:以 MULTI/EXEC 包裹一批命令一次執行。 Redis 的使用場景1. 快取最普遍的用途。把頻繁讀取的資料放進 Redis,下次請求直接從記憶體拿,不用打資料庫。 實例:電商商品頁面,使用者瀏覽時先查 Redis;命中就直接回傳,沒命中才去查 SQL Server 並把結果寫回 Redis。 2. 會話儲存登入狀態、購物車這類短期會話資料,放 Redis 比放關...
Vue 元件快取問題與解決方案
專案用 httpVueLoader 在瀏覽器直接載入 .vue 檔,沒有 webpack、沒有建置步驟,改完存檔重新整理就看得到結果。方便是方便,但我很快撞到一個惱人的狀況:明明改了 SurveyPit.vue,按 F5 畫面還是舊的,連改了三次都一樣。 第一個念頭是去包 keep-alive,結果越包越糟。後來才弄懂,「快取」這個詞在 Vue 裡指兩種完全不同的東西,方向搞錯就會像我那樣白忙。所以先把這兩件事拆開講。 兩種「快取」 瀏覽器檔案快取(這篇要解的):瀏覽器為了省流量,會把抓過的 .vue、.js 暫存起來。你改了檔案、重新整理,瀏覽器拿出暫存的舊檔,於是看到舊內容。這是 HTTP 層的事。 元件實例快取:keep-alive 在做的事。它把元件實例留在記憶體裡,切走再切回來時不重建,保留表單輸入跟捲動位置。這是記憶體層的狀態保留,跟「檔案有沒有更新」沒關係。 把這兩者搞混的代價很實際。我當初想解「改完 .vue 不更新」卻跑去包 keep-alive,不但沒效,反而把舊實例牢牢釘在記憶體裡,新內容更難冒出來。 問題情境當時專案有這幾個用 httpVueLoader...
EmEditor 介紹與 JSON 壓縮/解壓縮教程
工作的時候拿到了超過 1GB 的 JSON 檔,用 VSCode 和 Notepad++ 雖然都能開啟,但速度真的慢,而且 JSON 太大根本無法格式化。於是開始找能開啟大檔案的軟體。 1. EmEditor 軟體介紹EmEditor 是一款專為處理大型檔案設計的文字編輯器,幾個實際有感的功能: 高效能:能處理超過 248GB 的大型檔案。 多功能:支援多種編碼、語法高亮、正規表示式。 可自訂:有豐富的外掛與自訂選項。 CSV/TSV 支援:試算表處理能力不錯。 巨集與腳本:可以錄製巨集,也能執行 JavaScript 腳本。 多語言介面:包含中文。 處理大型 JSON 最有感的地方:開啟速度比 VSCode 快很多,還可以透過腳本做壓縮和格式化。 2. JSON 壓縮與格式化腳本壓縮腳本12document.selection.SelectAll();document.selection.Text = JSON.stringify(JSON.parse(document.selection.Text)); 運作方式: SelectAll() 全選文字。 JSON.par...
Vue3 SFC Loader 深入解析:輕鬆加載
Vue3 SFC Loader 深入解析:在瀏覽器直接載入 Vue 單一檔案元件引言在 Vue.js 開發中,單一檔案元件(Single File Components,SFC)允許我們將元件的模板、邏輯和樣式封裝在一個 .vue 檔案裡。大部分情況下 SFC 在建置階段就編譯成 JavaScript,但有時我們需要在執行期動態載入這些檔案——這就是 vue3-sfc-loader 能派上用場的地方。 本文介紹 vue3-sfc-loader 的運作方式、配置選項,以及幾個實際應用場景。 什麼是 vue3-sfc-loader?vue3-sfc-loader 讓瀏覽器可以直接載入並使用 Vue 3 的 .vue 檔案,不需要預先編譯。適合以下幾種情境: 執行期動態載入元件 線上程式碼編輯器 不使用建置工具的小型專案 原型設計與快速驗證 安裝和基本使用這個工具的主要使用場景是「無建置工具、純瀏覽器」環境,官方推薦直接透過 CDN 引入: 1<script src="https://unpkg.com/vue3-sfc-loader"></s...
C# 常用命名空間參考指南
C# 常用命名空間參考指南筆記一些常用到的命名空間 1. 基礎核心命名空間12345678910using System; // 基礎類型、例外處理using System.Collections; // 非泛型集合using System.Collections.Generic; // 泛型集合using System.Linq; // LINQ 查詢using System.ComponentModel; // 資料綁定、型別轉換using System.Text; // 文字處理using System.Text.RegularExpressions; // 正則表達式using System.Globalization; // 地區和文化資訊using System.Configuration; // 應用程式配置(.NET Core/5+ 需另裝 System.Configuration.ConfigurationManager ...




