开发效率提升之工具篇

2025/4/25

# 必装工具

  • Homebrew:MacOS 的包管理器,可以用来安装各种命令行工具。
  • Alfred:一个强大的工具,可以提高工作效率,功能包括快速搜索文件、启动应用程序等。
  • Zapier: 一个在线自动化工具,可以连接数千个应用和服务,自动执行任务,节省时间和精力。
  • CleanMyMac:系统清理和优化工具,帮助您释放磁盘空间,维护系统性能。
  • Bartender:用于管理 Mac 菜单栏图标的工具。
  • MenuBarX:是一款专为 macOS 设计的应用程序,它允许用户将网页应用或网站直接集成到 macOS 的菜单栏中。这样,用户可以快速访问他们最常用的网页服务,如社交媒体、任务管理工具、新闻网站等,无需打开传统的网页浏览器。
  • Dash:Dash 是一款为 macOS 用户设计的 API 文档浏览器和代码片段管理器。它提供了一个集中的平台,用户可以在其中搜索、浏览和管理大量的编程文档和代码片段。Dash 主要面向软件开发者,特别是那些需要快速访问和参考多种编程语言和框架文档的开发者
  • Cheat Sheet: 一个简单的应用,当用户长按 Command 键时,它会显示当前应用程序的所有快捷键
  • aText:aText 是一款文本替换工具,主要用于自动化文本输入,帮助用户节省输入重复文本的时间。这款软件通过在用户设定的缩写或快捷键后自动插入预设的文本片段或代码,从而提高打字效率和工作效率。aText 在 macOS 和 Windows 平台上都有提供
  • SnippetsLab:一款专为开发者设计的代码片段管理工具,它提供了一个优雅且高效的方式来收集、组织和搜索代码片段。这款软件仅适用于 macOS 平台,非常适合那些需要管理大量代码片段的程序员和软件开发者
  • Magnet:是一款专为 macOS 设计的窗口管理工具,它允许用户通过简单的拖拽和键盘快捷键来快速整理和管理桌面上的窗口。这款应用非常适合那些需要在多个应用程序或文档之间高效工作的用户,尤其是在多显示器设置中。
  • Sip:取色器
  • Google Chrome:功能强大的网络浏览器,支持广泛的扩展程序。
  • Mozilla Firefox:一个注重隐私保护的浏览器,也支持多种扩展。
  • Opera:一款功能丰富的网络浏览器,由挪威的 Opera Software 开发。自 1995 年首次发布以来,Opera 浏览器以其创新的功能和对用户隐私的重视而闻名。Opera 不仅支持 Windows、macOS 和 Linux,还有适用于 Android 和 iOS 的移动版本
  • Slack:团队协作和通讯工具,支持多种集成服务。
  • Zoom :用于视频会议和远程协作的应用。
  • Lark:Lark(在中国市场称为飞书 Feishu)是由字节跳动(ByteDance)开发的一款企业级协作工具。它集成了多种功能,包括即时通讯、视频会议、日历、邮件、文档和表格等,旨在提高团队的沟通效率和工作协同能力。Lark 旨在为企业提供一个全面的办公自动化解决方案,支持多平台使用,包括 Windows、macOS、iOS 和 Android。
  • RescueTime: 自动跟踪您在计算机上的活动,帮助您了解时间花在了哪里,并提供详细的报告和生产力评分。
  • Pomodoro Timer: 基于番茄工作法的时间管理工具,帮助您通过设定工作和休息的时间间隔来提高专注力和效率。
  • Airmail: 一个专为 Apple 设备设计的邮件客户端,界面简洁,功能强大,支持多种邮件服务。
  • 1Password 或 LastPass:帮助您安全地存储和管理密码。
  • **PDF Expert: ** 是一款功能强大的 PDF 编辑和管理工具,主要面向 macOS 和 iOS 用户。它由 Readdle 开发,提供了一系列高级功能,使用户能够轻松地查看、编辑、注释、签署和管理 PDF 文件。PDF Expert 因其直观的用户界面和高效的性能而受到许多用户的喜爱
  • iStat Menus: 是一款为 macOS 设计的系统监控工具,由 Bjango 开发。这款软件提供了一个强大的菜单栏工具,可以实时显示关于您的 Mac 电脑的各种关键信息,包括 CPU、内存、硬盘、网络、温度传感器、电池和更多。
  • OmniFocus:一款高级的个人任务管理工具,专为 macOS 和 iOS 设计,由 The Omni Group 开发。这款软件以其强大的功能和灵活性而闻名,特别适合那些需要管理复杂项目和多任务的专业人士。OmniFocus 基于获取事物完成(Getting Things Done)的生产力方法,帮助用户组织任务、设置提醒和监控进度。
  • Hazel: 是一款为 macOS 设计的自动化工具,由 Noodlesoft 开发。它主要用于帮助用户管理文件和文件夹,通过创建规则来自动执行各种任务,如组织文件、清理旧文件和执行脚本等。Hazel 的强大之处在于它可以监控任何指定的文件夹,并根据用户设定的条件自动执行操作,极大地提高了文件管理的效率和自动化程度。
  • OmniGraffle: 是一款专业的图形和设计工具,由 The Omni Group 开发,主要面向 macOS 和 iOS 平台。这款软件广泛用于创建精美的图表、流程图、组织结构图、界面设计草图以及其他各种类型的图形文档。OmniGraffle 以其强大的功能和灵活性而受到设计师、工程师、项目管理者和其他需要进行图形表达的专业人士的青睐。
  • Snipaste:一款功能强大的截图工具,同时也支持贴图功能。它允许用户快速截取屏幕上的任何内容,并可以将截图“贴”回到屏幕上,作为临时的浮动窗口。此外,Snipaste 还提供一些基本的图像编辑功能,如标注、高亮等
  • ScreenFlow:ScreenFlow 是一款专为 macOS 设计的高级视频编辑和屏幕录制软件。它不仅可以捕捉屏幕、摄像头和音频,还提供了强大的视频编辑功能,包括添加过渡、动画、文本和更多。ScreenFlow 是专业视频制作者和教育工作者的理想选择
  • Licecap:一款简单的桌面应用程序,用于捕捉屏幕上的活动并将其保存为 GIF 格式。它支持 Windows 和 macOS 平台,用户可以通过调整框架大小来选择捕捉区域,还可以设置帧率和暂停录制
  • keyCastr:KeyCastr 是一款开源的键盘动作显示软件,主要用于教学和演示目的。它可以在屏幕上显示用户的键盘输入,非常适合录制教程视频或进行实时演示时使用。
  • Vox Music Player:Mac上最好用的免费全能音乐播放器
  • IINA:IINA 是专为 macOS 设计的现代媒体播放器,界面美观,支持 Dark Mode,使用 Swift 编写,优化了触控板的操作
  • Plex:Plex 不仅是一个视频播放器,还是一个强大的媒体服务器。它可以组织你的视频、音乐和照片,并使它们在所有设备上可用。

# JAVA开发环境和工具

  • IntelliJ IDEA:这是一个强大的 Java 集成开发环境(IDE),由 JetBrains 开发。它提供了代码自动完成、重构、强大的调试工具和许多其他高级编程功能。有社区版(免费)和专业版(付费)
  • Webstorm:前端编辑器
  • Cursor:Cursor是一个基于Visual Studio Code(VS Code)技术构建的高级代码编辑器,转为提高编程效率并更深度整合AI功能设计。它不仅继承了VS Code的强大功能和用户界面,还增加了专门针对AI支持的特色功能。
  • Maven:Java 项目的依赖管理和构建工具。它使用简单的 XML 文件来描述项目构建过程、依赖关系等。
  • Git:版本控制系统,用于源代码管理。可以通过 Homebrew 安装 (brew install git)。
  • Navicat Premium:一款强大的数据库管理和开发工具,支持多种数据库系统,包括 MySQL, PostgreSQL, SQLite, Oracle, 以及 MariaDB。它提供了一个统一的界面来连接多个数据库,使得数据库管理变得更加简单高效。Navicat Premium 适用于数据库管理员、开发者和分析师,特别是那些需要同时处理多种数据库的专业人士。
  • Another Redis Desktop Manager:一个开源的 Redis 数据库桌面管理工具,它提供了一个简洁且功能丰富的界面,用于管理和监控 Redis 数据库。这款工具适用于开发者和系统管理员,特别是那些寻求一个轻量级且高效的 Redis 管理解决方案的用户。
  • Oh My Zsh:一个管理 zsh 配置的框架,提供大量插件和主题,可以极大地提升终端的使用体验。
  • Tabby:Tabby(原名 Terminus)是一款开源的终端模拟器,它支持 Windows、macOS 和 Linux 平台。Tabby 不仅是一个传统的命令行界面,还提供了许多现代化的功能和改进,使其成为开发者和系统管理员的理想选择。
  • Docker:容器化平台,可以用来创建、部署和运行应用程序。通过容器,开发者可以将应用及其依赖一起打包,便于迁移和部署。
  • Postman:一个强大的 API 开发工具,用于测试 API 接口、创建和运行 HTTP 请求。
  • Charles:一个 HTTP 代理/HTTP 监视器/反向代理,可以用来查看所有连接互联网的 HTTP 和 SSL/HTTPS 通信。
  • JProfilerYourKit Java Profiler:这些工具可以帮助分析 Java 应用的性能,包括 CPU、内存使用情况等。
  • Typora:是一款流行的 Markdown 编辑器,以其简洁的界面和所见即所得(WYSIWYG)的编辑体验而闻名。它支持多种操作系统,包括 Windows、macOS 和 Linux。Typora 通过将 Markdown 的语法直接转换为格式化文本,使得文档的编写和编辑过程更加直观和高效。
  • 1Checker:英语拼写检查,避免尴尬错误
  • Gas Mask:快速编辑和切换hosts文件
  • Switchkey: 可以根据当前APP窗口自动切换指定的输入法,当需要在代码与中文输入软件之间切换时,特别好用
  • Proxifier: 是一款强大的网络工具,允许网络应用程序通过 SOCKS 或 HTTPS 代理服务器和链进行网络请求,即使这些应用程序原本不支持代理服务器使用也能通过 Proxifier 实现。这使得 Proxifier 成为在特定网络环境下管理网络连接和绕过限制的有效工具。
  • Keka:是一款流行的文件压缩和解压缩工具,专为 macOS 设计。它支持多种压缩格式,提供了一个简单而强大的界面,使得文件压缩和解压变得非常便捷。Keka 不仅能够处理常见的压缩文件格式,还提供了高级功能,如密码保护和文件分割,适合需要高效文件管理的用户。
  • Kaleidoscope: 是一款专为 macOS 设计的文件和图像比较工具,由 Black Pixel 开发。这款软件能够帮助用户快速比较文本文件、图像和文件夹的差异,非常适合开发者、设计师和其他需要精确比较文件内容的专业人士使用。
  • Beyond Compare:一款由 Scooter Software 开发的高级文件和文件夹比较工具,它允许用户快速和容易地比较他们的文件和文件夹。通过使用简单的、强大的命令,用户可以专注于他们感兴趣的差异,并忽略那些他们不感兴趣的。Beyond Compare 支持多种操作系统,包括 Windows, Linux 和 macOS,使其成为跨平台工作的理想选择。
  • Xmind:一款广受欢迎的思维导图和大脑风暴软件,它帮助用户组织思想、计划项目和整理复杂信息。Xmind 支持多种平台,包括 Windows、macOS、Linux 以及 iOS 和 Android 移动设备,使其成为个人和团队协作的理想工具。
  • FileZilla:免费开源的FTP应用
  • TeamViewer:远程开发或者协助必备应用
  • Sublime Text3:编辑器
  • Draw

# 任务和项目管理

Notion: 一个多功能的工作空间,可以用来管理笔记、任务、数据库和更多。它的灵活性使其成为组织各种信息的理想工具。

Trello: 基于看板的项目管理工具,适用于个人和团队项目跟踪。它的视觉界面非常直观,适合管理项目流程。

Asana: 一个功能强大的任务和项目管理工具,适合团队协作。它支持任务分配、时间线、项目模板和详细的进度报告。

# 笔记和文档

Evernote: 一个强大的笔记应用,支持文本、图片、音频和其他多媒体内容的存储。它的搜索功能非常强大,适合存储大量笔记。

Microsoft OneNote: 一个免费的笔记应用,支持丰富的编辑功能和多用户协作。

Bear: 一个为 Mac 和 iOS 设计的优雅笔记应用,支持 Markdown 编辑,适合写作和笔记。

# 安全和隐私

NordVPN 或 ExpressVPN:提供安全和匿名上网的 VPN 服务。

Malwarebytes:防病毒和恶意软件保护工具。

# 其他实用工具

  • openEmu:模拟器,可以玩魂斗罗之类,放松回到小时候

  • Dynamic Wallpaper:壁纸,在多个操作系统中可以使用的功能,它允许用户的桌面壁纸根据特定条件动态变化,如时间、天气或系统事件。这种壁纸提供了比静态图像更丰富的视觉体验,使用户的设备界面更加生动和个性化。

  • Downie:一款专门设计用于 macOS 的视频下载软件,支持从数千个不同的网站下载视频,包括一些最流行的视频分享平台如 YouTube、Vimeo、Facebook 等。Downie 用户界面简洁,操作直观,使得下载网络视频变得非常简单

  • Neat Download Manager:一款高速下载管理软件,支持 macOS 和 Windows 平台。这款工具以其简洁的用户界面和提升下载速度的能力而受到用户的欢迎。它可以有效地管理和加速文件的下载过程,特别适合需要下载大量文件或大文件的用户。

  • shuttle:免费的简易的SSH快捷菜单

  • MonitorControl:控制外接显示器的屏幕亮度和声音

  • Fliqlo和BrookLyn:屏保

  • DiskWarrior:恢复文件系统损坏时,磁盘工具进行选择

  • Data Rescue:多种情况下的全面和专业的数据恢复

  • Lantern:科学上网

  • ShadowsocksX:科学上网

  • BetterZIP:解压缩

# 通信

  • Wechat
  • Telegram
  • wathApp

# Homebrew安装

# 安装 Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 配置环境变量
# 编辑 ~/.zshrc 文件
vim ~/.zshrc

# 在 ~/.zshrc 文件中添加以下行
export PATH="/usr/local/bin:$PATH"

# 使更改生效
source ~/.zshrc 

# 验证安装(如果一切正常,您将看到输出 Your system is ready to brew. 这意味着 Homebrew 已成功安装并配置好了。)
brew doctor

# 更新 Homebrew
brew update

# Oh My Zsh安装

# 查看 Zsh 可执行文件的路径
which zsh

# 查看系统安装的Shell
cat /etc/shells

# 检查当前的 shell
echo $SHELL

# 如果输出不是 /bin/zsh,您可以通过以下命令安装 Zsh
brew install zsh

# 将 Zsh 设置为默认的 shell
chsh -s /bin/zsh

# 通过 curl 安装 Oh My Zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# 查看主题
ls ~./oh-my-zsh/theme

# 编辑 ~/.zshrc 文件
vim ~/.zshrc

# .zshrc 文件中更改主题
ZSH_THEME="ys"

# 使更改生效
source ~/.zshrc 

# 安装插件到~/.oh-my-zsh/custom/plugins目录
# 安装语法高亮插件zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

# 安装效率插件zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# 安装快速跳转到常用目录的插件autojump
brew install autojump

# 启用插件
# 编辑 ~/.zshrc 文件
vim ~/.zshrc

# 增加对应的插件
plugins=(git zsh-syntax-highlighting autojump)

# 保存 .zshrc 文件后,您需要重新加载它以应用更改
source ~/.zshrc 

# 安装Tabby

#安装Tabby
brew install --cask tabby

安装完 Oh My Zsh 后,您需要配置 Tabby 使用 Zsh 作为默认的 shell:

打开 Tabby。

  1. 进入 Settings(设置)。
  2. 在 Shell 部分,选择 Zsh 作为默认 shell。如果 Zsh 的路径不是自动填充的,您可能需要手动输入 Zsh 的路径,通常是 /bin/zsh 或 /usr/local/bin/zsh(如果您通过 Homebrew 安装的 Zsh)。
  3. 确保 Environment(环境变量)部分正确设置了 ZSH 和 ZSH_CUSTOM 环境变量(如果您自定义了 Oh My Zsh 的安装位置)。
  4. 应用更改并重启 Tabby

# 安装 Java JDK 17

# 安装 Java JDK 17
brew install openjdk@17

# 配置 JAVA_HOME 环境变量
# 找出 JDK 17 的安装路径
brew --prefix openjdk@17

# 编辑 ~/.zshrc 文件
vim ~/.zshrc

# 在文件中添加 JAVA_HOME 环境变量定义,替换 <path_to_jdk> 为您的 JDK 路径,例如
export JAVA_HOME="$(brew --prefix openjdk@17)"

# 将 JAVA_HOME 添加到 PATH
export PATH="$JAVA_HOME/bin:$PATH"

# 应用更改(重新加载使更改生效)
source ~/.zshrc

# 验证安装
java -version
javac -version

# 安装软件

# 安装浏览器
# 安装Google Chrome
brew install --cask google-chrome.

# 安装Mozilla Firefox
brew install --cask firefox

# 安装Opera
brew install --cask opera


# 安装通讯软件
# 安装Slack
brew install --cask slack

# 安装Zoom
brew install --cask zoom

# 安装Lark
brew install --cask lark

# 安装Wechat
brew install --cask wechat

# 安装telegram
brew install --cask telegram

# 安装WhatsApp
brew install --cask whatsapp

# 安装RescueTime
brew install --cask rescuetime

# 安装pomatez
brew install --cask pomatez

# 安装Vox Music Player
brew install --cask vox

# 安装IINA
 brew install --cask iina
 
# 安装Plex
brew install --cask plex

# 安装Maven
brew install maven

# 安装Git
brew install git

# 安装Another Redis Desktop Manager
brew install --cask another-redis-desktop-manager

# 安装Docker
brew install --cask docker

# 安装Postman
brew install --cask postman

# 安装Typora
brew install --cask typora

# 安装FileZilla
brew install --cask filezilla

# 安装Trello
brew install --cask trello

# 安装Microsoft OneNote
brew install --cask onenote

# 安装openEmu
brew install --cask openemu

# 安装Downie
brew install --cask downie

# 安装Neat Download Manager
brew install --cask neat-download-manager

# 安装MonitorControl
brew install --cask monitorcontrol

# Fliqlo
brew install --cask fliqlo

# Chrome Extension

  • Downie:下载
  • Neat Download Manager:下载
  • whistle:node实现抓包工具,配合chrome扩展
  • Postman:接口调试工具
  • EditThisCookie:cookie编辑工具
  • JSONView:Json预览工具,接口调试必备
  • OneTab:快速关闭并存储浏览器当前窗口所以Tab页,可用于下次一键全部恢复
  • 阅读模式:快速开启阅读模式
  • AdBlock:超强的去广告工具
  • Chrome Remote Desktop:远程控制
  • Google input tools:控制输入法
  • Saladict:翻译
  • Pomodoro Timer:番茄工作法

# IDEA插件

Lombok Plugin

功能:简化 Java 代码,自动化生成 getter、setter、equals、hashCode 和 toString 方法等。

优势:减少模板代码的编写,使代码更加简洁。

SonarLint

功能:实时检查代码质量,提供即时反馈,帮助开发者修复潜在的代码问题。

优势:集成了 SonarQube 的代码分析功能,增强代码的可维护性和可靠性。

Alibaba Java Coding Guidelines

功能:根据阿里巴巴的 Java 编码规范,对代码进行实时检查和分析。

优势:帮助开发者遵守一致的编码标准,提高代码质量和可维护性。

Codota AI Autocomplete for Java and JavaScript

功能:提供基于 AI 的代码自动完成建议,支持 Java 和 JavaScript。

优势:通过学习大量代码库来提供智能的代码补全建议,提高编码效率和准确性。

GsonFormatPlus

功能:根据 JSON 字符串快速生成 Java 类。

优势:节省手动编写解析代码的时间,减少错误,提高开发效率。

JsonParser

功能:提供一个简单的 JSON 字符串解析器和编辑器。

优势:直接在 IDE 中查看和编辑 JSON,提高处理 JSON 数据的便捷性。

MyBatisX

功能:为 MyBatis 提供代码生成和图形界面操作。

优势:自动化 MyBatis 相关代码的生成,提供 SQL 映射文件和接口的快速导航,提高开发效率。

RestfulTool

功能:提供 RESTful API 的开发和测试工具。

优势:可以直接在 IDE 中测试 API,查看请求和响应详情,提高 API 开发和调试的效率。

Translation

功能:提供代码注释和字符串的翻译功能。

优势:支持多种语言,帮助开发者理解使用不同语言编写的代码,特别是在多国团队协作中非常有用。

Unicoder

功能:方便地输入和转换 Unicode 字符。

优势:提高处理特殊字符和国际化项目的效率。

CamelCase

功能:提供快速切换标识符命名风格(如驼峰命名、下划线等)的工具。

优势:提高代码的可读性和一致性,尤其是在需要遵守特定命名约定的项目中。

GitToolBox

功能:增强 Git 支持,提供更详细的分支信息和更丰富的 Git 操作。

优势:改善了版本控制的可视化和操作性,使 Git 管理更加方便。

Database Navigator

功能:提供数据库连接、查询、管理和代码生成工具。

优势:直接在 IDE 中管理数据库,无需切换到其他数据库工具。

Maven Helper

功能:提供 Maven 依赖管理和冲突解决工具。

优势:帮助开发者更好地管理和优化 Maven 项目的依赖。

Key Promoter X

功能:显示可以用快捷键执行的当前操作的提示,帮助用户学习和使用快捷键。

优势:提高开发效率,减少鼠标使用。

IDE Features Trainer

功能:通过交互式教程教学 IntelliJ IDEA 的使用技巧。

优势:帮助新用户快速掌握 IDE 的高级功能。

Rainbow Brackets

功能:为代码中的括号添加彩虹色彩,增强代码的可读性。

优势:使嵌套的代码块更容易区分,提高代码编辑的舒适度。

CodeGlance

功能:在编辑器旁边显示代码地图(类似于 Sublime Text 的 Minimap)。

优势:快速浏览和导航大型文件。

# Docker 安装基础服务

# Docker 启动 redis

docker run --name myredis -p 6379:6379 -d redis --requirepass "设定你的密码"

# Nacos 安装

  • 运行镜像(无需鉴权):

    docker run \
      --name nacos-standalone -d -p 8848:8848 -p 9848:9848 -p 9849:9849 \
      -e NACOS_AUTH_ENABLE=false \
      -e MODE=standalone \
      nacos/nacos-server:v2.3.1
    
  • 运行镜像(开启鉴权):

    docker run \
      --name nacos-standalone -d -p 8848:8848 -p 9848:9848 -p 9849:9849 \
      -e NACOS_AUTH_ENABLE=true \
      -e MODE=standalone \
      -e NACOS_AUTH_TOKEN=BladeKey012345678901234567890123456789012345678901234567890123456789 \
      -e NACOS_AUTH_IDENTITY_KEY=nacos \
      -e NACOS_AUTH_IDENTITY_VALUE=nacos \
      -e NACOS_AUTH_CACHE_ENABLE=true \
      nacos/nacos-server:v2.3.1
    

# GitLab 安装

docker run -d \
  --hostname gitlab.example.com \
  --name gitlab \
  -p 8443:443 \
  -p 8080:80 \
  -p 2222:22 \
  --restart always \
  -v /srv/gitlab/config:/etc/gitlab \
  -v /srv/gitlab/logs:/var/log/gitlab \
  -v /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

#获取密码
docker exec -it 容器名 grep 'Password:' /etc/gitlab/initial_root_password

参数说明:

  • --hostname: GitLab 实例的主机名,可以使用你自己的域名或本地 IP 地址。
  • --name: 容器名称,这里将容器命名为 gitlab
  • -p: 将容器内的端口映射到主机上。8443 是 HTTPS,8080 是 HTTP,2222 是 SSH。
  • -v: 挂载本地文件系统到容器,用于配置、日志和数据的持久化存储。

# Sentinel 安装

docker run --name sentinel -d -p 8858:8858 -d bladex/sentinel-dashboard

# 前端开发环境搭建

# 环境要求

  • 本地环境安装 Node.js 、npm 、pnpm
  • Node.js 版本建议v20.15.0,要求Node 20+ 版本以上 ( 因为Vite5 不再支持已 EOL 的 Node.js 14 / 16 / 17 / 19,现在需要 Node.js 18 / 20+ )

# 环境安装

# windows安装nvm

nvm (opens new window) 是一款 Node.js 版本管理工具,允许用户通过命令行快速安装、切换和管理不同的 Node.js 版本。

image-20240918093734215

# 安装方式
  1. 下载地址:https://github.com/coreybutler/nvm-windows/releases
  2. 下载最新版本的 nvm-setup.exe
  3. 运行下载的安装程序。安装过程中
    • 接受许可协议
    • 选择安装目录(建议使用默认路径)
    • 选择 Node.js 符号链接的位置(同样建议使用默认路径)
  4. 安装完成后,打开一个新的命令提示符或 PowerShell 窗口。
  5. 验证安装是否成功,输入:
# 查看版本号,如果显示版本号,说明安装成功。
nvm version

image-20240918094627994

# 常用命令
nvm ls                # 查看版本安装所有版本
nvm ls-remote         # 查看远程所有的 Node.js 版本
nvm install 20.15.0     # 安装指定的 Node.js 版本
nvm use 20.15.0       # 使用指定的 Node.js 版本
nvm alias default 20.15.0   # 设置默认 Node.js 版本
nvm alias dev 20.15.0   # 设置指定版本的别名,如将 20.15.0  版本别名设置为 dev
# 安装Node.js 、npm 、pnpm
#安装node.js
nvm install 20.15.0 

#查看node版本
node -v

#查看npm版本
npm -v

#全局安装pnpm
npm install pnpm -g

#查看pnpm版本
pnpm -v

# 开发环境搭建进阶

# MySQL主从配置

# 环境:

系统:Windows 10 专业版

软件:Docker Desktop

# Docker安装MySQL
# 安装主库
docker run --name mysql8-master -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD='123456' --privileged=true --restart always mysql:8.0.21 --lower_case_table_names=1

# 安装从库
docker run --name mysql8-slave -d -p 33306:3306 -e MYSQL_ROOT_PASSWORD='123456' --privileged=true --restart always mysql:8.0.21 --lower_case_table_names=1
# 命令详解:
  • docker run: Docker的命令,用于创建并启动一个新容器。
  • --name mysql8-master: 设置容器的名称为 mysql8-master。
  • -d: 以后台模式运行容器。
  • -p 3306:3306: 将容器内的3306端口映射到宿主机的3306端口,这是MySQL的默认端口。
  • -e MYSQL_ROOT_PASSWORD='123456': 设置环境变量,这里定义了MySQL的root用户的密码为 123456。
  • --privileged=true: 给予容器额外的权限,这可以让容器访问宿主机的一些资源,通常用于需要特定内核权限的操作。
  • --restart always: 设置容器的重启策略为总是重启,这意味着如果容器停止(无论是手动停止还是因为错误而停止),Docker都会自动重启它。
  • mysql:8.0.21: 使用的Docker镜像是 mysql:8.0.21。
  • --lower_case_table_names=1: MySQL的一个配置参数,设置为1表示在存储表名时将其转换为小写,这在某些操作系统(如Windows)上有用,因为它们可能不区分文件名的大小写。
# 配置主服务器

首先,你需要确保主服务器的MySQL配置启用了binlog。

进入主服务器容器:

#进入主服务器容器:
docker exec -it mysql8-master bash

编辑MySQL配置文件:

#进入容器后更新软件包列表:
apt-get update

#下载vim
apt-get install vim
 
#编辑MySQL配置文件
vim /etc/mysql/my.cnf

你可能需要找到MySQL的配置文件my.cnf(通常位于/etc/mysql/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf),然后添加以下内容:

[mysqld]
log-bin=mysql-bin
server-id=1 
binlog-format=ROW # 推荐使用ROW格式
expire_logs_days=10  # 根据需要设置日志过

重启MySQL容器:

#退出容器
exit

#重启容器
docker restart mysql8-master

#再次进入容器
docker exec -it mysql8-master bash

创建复制用户:

#登录到MySQL
mysql -u root -p

执行SQL命令:

-- 创建复制用户replica
CREATE USER 'replica'@'%' IDENTIFIED BY '123456';

-- 授权
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';

-- 刷新权限
FLUSH PRIVILEGES;

-- 查看MASTER状态
SHOW MASTER STATUS;

记下File和Position的值,这将用于从服务器的配置。

image-20240919155927808

# 配置从服务器

进入从服务器容器:

#进入主服务器容器:
docker exec -it mysql8-slave bash

编辑MySQL配置文件:

#进入容器后更新软件包列表:
apt-get update

#下载vim
apt-get install vim
 
#编辑MySQL配置文件
vim /etc/mysql/my.cnf

你可能需要找到MySQL的配置文件my.cnf(通常位于/etc/mysql/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf),然后添加以下内容:

[mysqld]
server-id=2
read-only=1  # 使从服务器为只读

重启MySQL容器:

#退出容器
exit

#重启容器
docker restart mysql8-slave

#查看容器名为mysql8-master的IP
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql8-master

#尝试从从服务器容器手动连接到主服务器容器,以验证网络连接是否正常
docker exec -it mysql8-slave mysql -h 172.17.0.3 -u replica -p

image-20240919150321131

配置主从复制:

#再次进入容器
docker exec -it mysql8-slave bash

#登录到MySQL
mysql -u root -p

执行SQL命令,使用之前记下的File和Position:

-- 在从服务器上设置主服务器的相关信息
 CHANGE MASTER TO
  MASTER_HOST='172.17.0.3',
  MASTER_USER='replica',
  MASTER_PASSWORD='123456',
  MASTER_LOG_FILE='mysql-bin.000002',
  MASTER_LOG_POS=54405;

-- 启动从服务器的复制进程
START SLAVE;

-- 显示从服务器的状态信息 并格式化显示
SHOW SLAVE STATUS\G

确保Slave_IO_Running和Slave_SQL_Running状态为Yes。

image-20240919155841698

# 3. 测试复制

在主服务器上进行数据更改,然后在从服务器上验证这些更改是否被正确复制。

注意事项

确保主服务的全库导出和导入从服务器

确保两个容器可以通过网络互相访问,如果它们在不同的Docker网络,需要适当配置网络设置。

如果在配置过程中遇到权限或连接问题,检查防火墙和MySQL用户权限设置。

适时备份重要数据,以防配置过程中出现意外。

通过以上步骤,你可以在现有的MySQL容器中配置主从同步。

# 配置多个git账号

**需求:**一台电脑配置多个git账号,同一时间编写不同仓库项目

**解决方案:**编写bat脚本

脚本信息如下:

:: 删除与https://gitee.com关联的Git凭据
cmdkey /delete:git:https://gitee.com

:: 为https://gitee.com添加新的Git凭据,用户名和密码需要替换为实际的git账户和密码
cmdkey /generic:git:https://gitee.com /user:【git账户】 /pass:【git密码】

:: 设置全局Git用户名,替换【名字】为实际用户名
git config --global user.name 【名字】

:: 设置全局Git用户邮箱,替换【邮箱】为实际邮箱地址
git config --global user.email 【邮箱】

:: 将git密码和git账户复制到系统剪贴板,替换
echo 【git密码】【git账户】 | clip

**注意事项:**将以上命令 复制为两套修改过账号密码的bat脚本,双击脚本执行即可实现自动切换git账户

# 提示表不存在问题

# 问题描述:

提示表不存在问题Table 'jeecg-boot.QRTZ_LOCKS' doesn't exist

# 问题原因:

mysql数据库不区分大小写

# 解决方案:

设置mysql数据库不区分大小写

实际操作步骤

进入容器:

docker exec -it 容器名|容器ID bash

image-20240917153131675

更新软件包列表:

apt-get update

image-20240917153036470

下载vim:

apt-get install vim

image-20240917153218798

修改配置文件:

vim /etc/mysql/my.cnf

在[mysqld]下添加如下:lower_case_table_names=1

修改后输入 :wq 保存退出

image-20240917153448979

退出容器:

exit

重启容器:

docker restart 容器名|容器ID

image-20240917155414561

查看是否生效:

show global variables like '%lower_case%';

# Windows如何查看docker容器创建时的命令

# 问题描述:

遗忘docker容器Redis的密码

# 解决方案:

使用 runlikerekcod打印容器创建时的参数

实际操作步骤

安装Python:

Python 官网:https://www.python.org/

Win+R 键,输入 cmd 调出命令提示符,输入 python:

image-20240917165537428

在环境变量中添加Python目录:

在命令提示框中(cmd) : 输入

path=%path%;C:\Python 

按下"Enter"。

注意: C:\Python 是Python的安装目录。

安装runlike:

# 安装python3后,再使用pip安装runlike
pip3 install runlike

# 使用runlike命令 
# runlike -p 容器名字|容器ID
runlike -p redis-test

image-20240917165347803

image-20240917165656114

# windows安装fnm

fnm (opens new window)是一款快速简单 🚀 的 Node.js 版本管理器,使用 Rust 构建。

image-20240917170235884

# 主要特点包括:

  • 🌎 跨平台支持,包括:macOS、Windows、Linux;
  • ✨ 单一文件,轻松安装,即时启动 ;
  • 🚀 以速度为设计理念;
  • 📂 适用于 .node-version.nvmrc 文件;

# 安装方式

macOS / Linux 环境:

# bash, zsh and fish shells
curl -fsSL https://fnm.vercel.app/install | bash

Windows 环境:

# layouts.download.codeBox.installsFnm 下载fnm
winget install Schniz.fnm

# layouts.download.codeBox.fnmEnvSetup 为 fnm 设置你的 shell :示例 power-shell设置环境变量 
fnm env --use-on-cd --shell power-shell | Out-String | Invoke-Expression

# layouts.download.codeBox.downloadAndInstallNodejs  下载20版本的node.js并使用
fnm use --install-if-missing 20

# layouts.download.codeBox.verifiesRightNodejsVersion 查看node.js版本号
node -v # layouts.download.codeBox.shouldPrint

# layouts.download.codeBox.verifiesRightNpmVersion 查看npm版本号
npm -v # layouts.download.codeBox.shouldPrint

# 常用命令

fnm -h             # 查看帮助
fnm install 20.15.0 # 安装指定 Node.js 版本
fnm use 20.15.0     # 使用指定 Node.js 版本
fnm default 20.15.0 # 设置默认 Node.js 版本