解锁MacOS开发:环境配置与应用开发全攻略
✨✨✨这里是小韩学长yyds的BLOG(喜欢作者的点个关注吧)
✨✨✨想要了解更多内容可以访问我的主页 小韩学长yyds-CSDN博客
目录
引言
一、MacOS 开发环境配置
(一)必备工具安装
(二)集成开发环境(IDE)选择与安装
(三)系统设置优化
二、MacOS 应用开发流程
(一)需求分析与设计
(二)代码编写
(三)测试环节
(四)部署与发布
三、常见问题及解决方案
(一)依赖库安装失败
(二)编译错误
(三)Xcode 相关问题
四、实战案例:开发一个简单 MacOS 应用
(一)创建项目
(二)设计用户界面
(三)编写代码
(四)测试应用
(五)打包与发布
引言
在软件开发的广阔领域中,MacOS 凭借其独特的优势,成为众多开发者的首选平台。它基于 Unix 架构,拥有出色的稳定性与强大的命令行工具,让开发者能够轻松驾驭各种复杂的开发任务,无需担忧系统崩溃或数据丢失等问题 ,在处理大型项目和数据密集型任务时游刃有余。
MacOS 对多种编程语言和开发工具提供了良好的兼容性,无论是热门的 Python、Java,还是苹果官方大力推广用于开发 iOS 和 Mac 应用的 Swift 语言,都能在 MacOS 上找到适宜的开发环境。像 Xcode 这样强大的官方集成开发环境(IDE),为开发者提供了代码编辑、调试、版本控制等全方位的功能,助力应用开发更加高效流畅。同时,MacOS 还支持诸如 Visual Studio Code、Sublime Text 等主流代码编辑器,满足不同开发者的个性化需求。
此外,MacOS 与苹果的硬件设备,如 iPhone、iPad 等实现了无缝集成,为开发多平台应用提供了得天独厚的便利条件。其简洁直观、美观优雅的用户界面,不仅能让开发者在长时间的编码工作中保持舒适,更能有效提升开发效率,让开发者可以将更多的精力聚焦于代码本身。
看到这里,你是不是已经迫不及待想要在 MacOS 上搭建自己的开发环境,开启应用开发之旅了呢?接下来,本文将详细地为你介绍 MacOS 开发环境的配置步骤以及应用开发的相关流程,帮助你快速上手,在 MacOS 平台上释放自己的开发潜能。
一、MacOS 开发环境配置

(一)必备工具安装
- Command Line Tools:这是 MacOS 上开发的基础工具集,包含编译器、调试器等开发所需的命令行工具。打开终端,输入命令xcode-select --install,按提示操作即可完成安装。安装完成后,你就可以在终端中使用诸如gcc(GNU 编译器集合)、make(构建自动化工具)等命令,方便进行各种开发任务,比如编译 C、C++ 程序。
- Homebrew:作为 MacOS 上最受欢迎的包管理工具,Homebrew 能够帮助你轻松安装各种开发工具和库。在终端中输入/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)",等待安装完成。安装完成后,可以通过brew doctor检查安装状态,使用brew install <package-name>命令安装软件包,例如brew install node来安装 Node.js。有了 Homebrew,你无需再手动从官网下载、解压、配置各种软件,大大提高了开发效率。
- Git:这是一个分布式版本控制系统,常用于追踪代码历史和协作开发。可以使用 Homebrew 来安装,在终端输入brew install git。安装完成后,通过git --version命令检查是否安装成功。Git 能够让你方便地管理代码版本,与团队成员协作开发时,可以轻松拉取、推送代码,还能查看代码的修改历史,对于多人协作开发和个人项目管理都非常重要。例如,在开发一个大型项目时,团队成员可以各自在本地进行代码修改,然后通过 Git 将修改同步到远程仓库,方便又高效。
(二)集成开发环境(IDE)选择与安装
- Xcode:这是苹果官方的集成开发环境,主要用于开发 macOS、iOS、watchOS 和 tvOS 应用。它集成了代码编辑器、调试器、模拟器等一系列强大的工具,并且对 Swift 和 Objective - C 等编程语言提供了出色的支持。在 App Store 中搜索 “Xcode”,找到后点击 “获取” 然后是 “安装” 按钮。若提示,输入你的 Apple ID 信息以进行下载。下载完成后,打开安装程序并按照提示完成安装。初次运行时,可能会要求你同意 Xcode 许可协议,需要阅读并同意才能继续。Xcode 自带的 Interface Builder 工具,让开发者可以通过可视化的方式快速搭建应用界面,大大缩短了开发周期 。
- 其他 IDE 推荐:
- Visual Studio Code:这是一个轻量级但功能强大的源代码编辑器,支持多种编程语言,如 JavaScript、TypeScript、Python 等。它具有丰富的扩展程序市场,开发者可以根据自己的需求安装各种插件来扩展功能。比如安装 Python 插件后,就可以获得代码补全、调试支持等功能,非常适合小型项目、快速编辑文件以及多种开发场景。使用 Homebrew 安装的话,在终端输入brew install --cask visual-studio-code。
- PyCharm:由 JetBrains 开发,是一款专为 Python 开发而设计的强大 IDE。它提供了高效的代码编辑功能、智能代码补全、代码分析、图形化的调试器以及测试运行系统,还支持多种 Web 开发框架,如 Django、Flask 等,非常适合进行大型 Python 项目开发、Web 开发、科学计算和数据分析等任务。可在 JetBrains 官网下载安装包进行安装,下载完成后,将下载的文件拖动到 “应用程序” 文件夹即可完成安装。
(三)系统设置优化
- 调整触控板和键盘设置:MacOS 的触控板操作非常丰富,你可以根据自己的使用习惯进行设置。打开 “系统偏好设置”,点击 “触控板”,在这里可以设置三指切换应用、四指显示桌面等操作,让你在开发过程中能够更高效地切换应用和操作界面。对于键盘设置,同样在 “系统偏好设置” 中点击 “键盘”,可以调整键盘重复率和延迟,使输入更加流畅,提高代码编写的效率。
- 关闭文件验证和 App 验证:在开发过程中,有时需要运行一些未签名的应用或文件,这时可以关闭文件验证和 App 验证。打开终端,输入sudo spctl --master-disable,输入密码后回车,即可关闭系统完整性保护(SIP),从而允许运行未签名的应用和文件。但需要注意的是,关闭 SIP 可能会降低系统的安全性,所以在开发完成后,建议重新开启。
- 加速动画和关闭键盘输入延迟:为了让系统操作更加流畅,可以在 “终端” 中输入以下命令来加速窗口动画:defaults write NSGlobalDomain NSWindowResizeTime -float 0.001。同时,如果你觉得键盘输入有延迟,可以通过修改配置文件来关闭延迟。在终端输入defaults write -g InitialKeyRepeat -int 10(默认值是 15)和defaults write -g KeyRepeat -int 1(默认值是 2),即可减少键盘输入延迟,让你在编写代码时更加得心应手。
二、MacOS 应用开发流程

(一)需求分析与设计
在开始 MacOS 应用开发之前,明确应用的功能和目标是至关重要的。这需要与项目相关人员进行充分沟通,深入了解用户需求,分析市场竞争情况,从而确定应用的核心功能和独特卖点。例如,若要开发一款文件管理应用,需考虑用户对文件分类、搜索、备份等方面的需求,以及如何在众多类似应用中脱颖而出,如提供更便捷的操作方式、更高效的搜索功能等。
用户界面设计是应用开发的重要环节,它直接影响用户体验。要遵循苹果的人机交互指南,确保界面简洁、直观、易于操作。使用 Sketch、Adobe XD 等设计工具进行界面原型设计,通过绘制草图、创建交互流程,不断优化界面布局和元素设计。例如,设计一个图像编辑应用的界面时,要合理安排各种工具按钮的位置,使其符合用户的操作习惯,方便用户快速找到并使用所需功能。
架构设计则决定了应用的整体结构和性能。可以根据应用的复杂程度选择合适的架构模式,如 MVC(Model - View - Controller)、MVVM(Model - View - ViewModel)等。MVC 模式将应用分为模型、视图和控制器三个部分,模型负责数据处理,视图负责展示,控制器负责协调两者之间的交互。以一个简单的待办事项应用为例,模型可以是存储待办事项数据的结构体或类,视图是显示待办事项列表和输入框的界面,控制器则负责处理用户添加、删除、修改待办事项的操作,并更新视图和模型。
(二)代码编写
根据开发的应用类型和需求,选择合适的编程语言。在 MacOS 开发中,Swift、Objective - C 和 Python 是常用的编程语言。
- Swift:这是苹果推出的现代编程语言,具有简洁、安全、高效等特点,越来越受到开发者的青睐。例如,创建一个简单的 Swift 命令行程序,计算两个数的和:
let num1 = 5let num2 = 3let sum = num1 + num2print(\"两数之和为:\(sum)\") - Objective - C:作为苹果开发的传统语言,具有良好的兼容性,在一些旧项目或需要与 Cocoa 框架深度集成的场景中仍被广泛使用。以下是用 Objective - C 实现相同功能的代码:
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {@autoreleasepool {int num1 = 5;int num2 = 3;int sum = num1 + num2;NSLog(@"两数之和为:%d", sum);}return 0; } - Python:结合 PyObjC 库,Python 也可以用于 MacOS 应用开发,适合快速原型开发和脚本编写。例如,使用 Python 和 PyObjC 创建一个简单的窗口:
import Cocoaclass MyWindowController(Cocoa.NSWindowController):def windowDidLoad(self):super(MyWindowController, self).windowDidLoad()window = self.window()window.setTitle_("Python Mac App")app = Cocoa.NSApplication.sharedApplication() windowController = MyWindowController.alloc().initWithWindowNibName_("MainMenu") windowController.showWindow_(None) app.run()
在编写代码时,要遵循良好的编程规范,注重代码的可读性和可维护性。合理使用注释,清晰地解释代码的功能和逻辑,方便团队成员理解和协作。同时,充分利用各种开发框架和库,如 AppKit(用于构建 Mac 应用的界面)、Foundation(提供基础数据类型和功能)等,提高开发效率。例如,在使用 AppKit 创建一个按钮时,可以这样编写代码:
import AppKitclass ViewController: NSViewController {override func viewDidLoad() {super.viewDidLoad()let button = NSButton(frame: NSRect(x: 100, y: 100, width: 100, height: 50))button.title = "点击我"button.target = selfbutton.action = #selector(buttonClicked)view.addSubview(button)}@objc func buttonClicked() {let alert = NSAlert()alert.messageText = "按钮被点击了"alert.runModal()}
}
(三)测试环节
测试是确保应用质量的关键步骤,通过各种测试方法可以发现并修复潜在的问题。
- 单元测试:针对代码中的最小可测试单元(如函数、方法)进行测试,验证其功能是否正确。Xcode 自带的 XCTest 框架是 MacOS 开发中常用的单元测试工具。例如,对一个计算两个整数之和的函数进行单元测试:
import XCTestfunc add(_ a: Int, _ b: Int) -> Int {return a + b }class MathTests: XCTestCase {func testAdd() {let result = add(3, 5)XCTAssertEqual(result, 8, "加法函数测试失败")} } - 集成测试:用于测试多个模块之间的交互是否正常,确保不同组件能够协同工作。可以使用 Xcode 的测试框架结合模拟对象来进行集成测试。例如,测试一个包含数据模型和视图控制器的简单应用,验证视图控制器能否正确获取和显示数据模型中的数据。
- 系统测试:对整个应用进行全面测试,包括功能、性能、兼容性等方面。可以使用 Selenium 等工具进行自动化系统测试,模拟用户的操作流程,验证应用在不同场景下的表现。例如,测试一个文件管理应用在不同文件数量、不同系统版本下的文件操作功能是否正常,以及应用的响应速度和内存占用情况。
在测试过程中,要编写详细的测试用例,覆盖各种可能的输入和边界条件。及时记录和修复测试中发现的问题,确保应用的稳定性和可靠性。同时,定期进行回归测试,防止在后续开发中引入新的问题。
(四)部署与发布
完成测试后,就可以将应用打包并发布到目标平台。
- 应用打包:在 Xcode 中,选择 “Product” -> “Archive”,Xcode 会对应用进行编译和打包,生成一个归档文件。在归档过程中,要确保应用的图标、版本号等信息设置正确。例如,在 Xcode 的项目设置中,找到 “General” 选项卡,上传应用图标,设置版本号和构建号,这些信息将显示在应用的安装包和 App Store 上。
- 发布到 App Store:将归档文件提交到 App Store Connect 进行审核。在提交之前,需要准备好应用的描述、截图、隐私政策等资料。描述要简洁明了,突出应用的功能和特点;截图要展示应用的主要界面和功能,吸引用户下载。隐私政策则要明确说明应用如何收集、使用和保护用户数据,确保符合相关法律法规。审核过程可能需要一定时间,期间要关注审核反馈,及时处理审核人员提出的问题。
- 其他发布平台:除了 App Store,也可以选择将应用发布到其他平台,如 Mac App Store 之外的网站、第三方应用市场等。但需要注意不同平台的发布规则和要求,确保应用能够顺利上线。例如,发布到网站时,要提供易于下载和安装的方式,可能需要使用 DMG 格式的安装包,并提供详细的安装说明。
三、常见问题及解决方案
在 MacOS 开发环境配置与应用开发过程中,难免会遇到一些问题,以下是一些常见问题及对应的解决方案。
(一)依赖库安装失败
在使用 Homebrew 或 pip 安装依赖库时,可能会遇到安装失败的情况,报错信息中常常包含网络连接问题、依赖冲突或权限不足等提示。
- 网络连接问题:如果是网络连接不稳定或超时导致的安装失败,可以尝试更换网络,或者使用代理服务器。比如在终端中设置 HTTP 代理:export http_proxy=http://your_proxy_address:port,export https_proxy=https://your_proxy_address:port ,这里your_proxy_address是代理服务器地址,port是端口号,设置完成后再重新执行安装命令。
- 依赖冲突:当出现依赖冲突时,需要仔细查看错误信息,了解冲突的具体依赖库。有时可以通过指定依赖库的版本来解决冲突,例如pip install package_name==specific_version,这里package_name是依赖库名称,specific_version是指定的版本号。还可以尝试使用虚拟环境(如 venv、virtualenv)来隔离不同项目的依赖,避免相互干扰。例如,使用 venv 创建虚拟环境:python3 -m venv myenv,然后激活虚拟环境:source myenv/bin/activate,在虚拟环境中进行依赖库安装,这样可以保证每个项目都有独立的依赖环境 。
- 权限不足:若提示权限不足,可以使用sudo命令获取管理员权限进行安装,但不建议频繁使用sudo安装,以免对系统造成不必要的影响。例如sudo brew install package_name。更好的解决方法是将当前用户添加到相应的权限组,或者修改安装目录的权限,使当前用户具有写入权限。比如对于 Python 库的安装,可以修改 Python 的 site-packages 目录权限,让当前用户可以写入:sudo chown -R your_username /Library/Python/3.8/site-packages,这里your_username是当前用户名,3.8 是 Python 版本号,根据实际情况修改 。
(二)编译错误
在使用 Xcode 或其他编译器进行代码编译时,可能会遇到各种编译错误,错误信息常常包含语法错误、缺少头文件、链接错误等。
- 语法错误:这是最常见的编译错误,通常是由于代码书写不规范导致的。仔细查看错误提示,定位到错误所在的代码行,检查代码的语法是否正确。例如,在 Swift 中,变量声明时类型不匹配就会导致语法错误:let num: Int = "abc",这里将字符串赋值给了整型变量,应改为let num: Int = 10。
- 缺少头文件:如果编译时提示缺少头文件,首先检查头文件是否确实存在于项目中。若存在,确认头文件的路径是否正确,是否需要在编译器的设置中添加头文件搜索路径。例如,在使用 C++ 开发时,如果使用了自定义的头文件myheader.h,且该头文件位于项目的include目录下,可以在 Xcode 的项目设置中,找到 “Build Settings”,搜索 “Header Search Paths”,添加$(SRCROOT)/include,这里$(SRCROOT)表示项目根目录 。
- 链接错误:链接错误通常是由于找不到函数或库的定义导致的。检查是否正确链接了相关的库文件,在 Xcode 中,需要在 “Build Phases” -> “Link Binary With Libraries” 中添加所需的库。比如在开发一个使用 SQLite 数据库的应用时,需要添加libsqlite3.dylib库。如果库文件的路径不正确,也会导致链接错误,此时需要确保库文件的路径设置正确。例如,使用第三方库时,库文件可能位于自定义的目录下,需要在 “Build Settings” -> “Library Search Paths” 中添加该目录的路径 。
(三)Xcode 相关问题
Xcode 作为 MacOS 开发的重要工具,在使用过程中也可能出现一些问题。
- Xcode 无法启动或闪退:这可能是由于 Xcode 版本与 MacOS 系统版本不兼容,或者 Xcode 安装文件损坏导致的。首先检查 Xcode 版本是否支持当前的 MacOS 系统版本,如果不支持,升级或降级 Xcode 版本。若怀疑安装文件损坏,可以尝试重新下载并安装 Xcode。在下载前,先卸载当前的 Xcode,打开 “应用程序” 文件夹,将 Xcode 拖移到废纸篓,然后清空废纸篓。接着在 App Store 中重新下载安装 Xcode。
- 模拟器无法正常运行:有时模拟器会出现无法启动、启动后黑屏或运行应用时出错等问题。确保模拟器的版本与 Xcode 和应用的目标版本兼容,在 Xcode 的 “Window” -> “Devices and Simulators” 中,选择正确的模拟器版本。如果模拟器出现异常,可以尝试重置模拟器,在模拟器的菜单栏中选择 “Hardware” -> “Erase All Content and Settings”,然后重新启动模拟器。此外,检查电脑的内存和磁盘空间是否充足,内存不足或磁盘空间不足也可能导致模拟器运行异常。
四、实战案例:开发一个简单 MacOS 应用
接下来,我们以开发一个简单的待办事项应用为例,完整展示从创建项目到发布的全过程,帮助你更直观地理解 MacOS 应用开发的流程。
(一)创建项目
打开 Xcode,在欢迎界面选择 “Create a new Xcode project”,或者点击菜单栏中的 “File” -> “New” -> “Project”。在模板选择页面,选择 “macOS” 下的 “App”,然后点击 “Next”。在项目设置页面,输入项目名称 “TodoApp”,组织标识符(Organization Identifier)可采用反向域名格式,如 “com.yourcompany”,语言选择 “Swift”,用户界面(Interface)选择 “Storyboard”,其他选项保持默认,点击 “Next”。选择项目保存的位置,然后点击 “Create”,这样一个新的 MacOS 应用项目就创建完成了 。
(二)设计用户界面
在项目导航器中找到 “Main.storyboard” 文件并打开,它是应用界面的可视化设计文件。从 Object Library(对象库)中拖拽一个 Table View(表格视图)到视图控制器的主视图中,用于显示待办事项列表。再拖拽一个 TextField(文本输入框)和一个 Button(按钮)到视图中,TextField 用于输入新的待办事项,Button 用于添加待办事项。
为了使界面更加美观和布局合理,需要设置这些控件的约束(Constraints)。选中 Table View,点击界面底部的 “Pin” 按钮,设置其与父视图的上下左右间距都为 0,使其铺满整个视图。对于 TextField 和 Button,设置它们水平居中对齐,并且 Button 在 TextField 的右侧,两者之间保持一定的间距。比如 TextField 距离父视图左边距为 20,Button 距离 TextField 右边距为 20 。
(三)编写代码
- 定义数据模型:在项目中创建一个新的 Swift 文件,命名为 “TodoItem.swift”。在该文件中定义一个结构体来表示待办事项:
struct TodoItem {var title: Stringvar isCompleted: Bool = false } - 配置视图控制器:打开 “ViewController.swift” 文件,在文件顶部导入 AppKit 框架。定义一个数组来存储待办事项,并与界面上的 Table View 和 Button 建立连接。
import Cocoaclass ViewController: NSViewController {@IBOutlet weak var todoTableView: NSTableView!@IBOutlet weak var newTodoTextField: NSTextField!var todoItems: [TodoItem] = []override func viewDidLoad() {super.viewDidLoad()todoTableView.dataSource = selftodoTableView.delegate = self}@IBAction func addTodoButtonClicked(_ sender: Any) {guard let newTodo = newTodoTextField.stringValue else { return }let item = TodoItem(title: newTodo)todoItems.append(item)todoTableView.reloadData()newTodoTextField.stringValue = ""} }extension ViewController: NSTableViewDataSource {func numberOfRows(in tableView: NSTableView) -> Int {return todoItems.count} }extension ViewController: NSTableViewDelegate {func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {let cell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "TodoCell"), owner: self) as? NSTableCellViewcell?.textField?.stringValue = todoItems[row].titlereturn cell} }
在这段代码中,ViewController类负责管理视图和用户交互。@IBOutlet属性将界面上的控件与代码关联起来,@IBAction方法处理按钮点击事件,将新的待办事项添加到数组中并刷新表格。NSTableViewDataSource和NSTableViewDelegate的扩展分别实现了表格视图的数据提供和单元格配置功能。
(四)测试应用
点击 Xcode 右上角的运行按钮(或使用快捷键 Command + R),选择一个 Mac 模拟器或直接在本地 Mac 设备上运行应用。在应用运行界面,在文本输入框中输入待办事项,点击 “添加” 按钮,待办事项会显示在表格中。通过这样的测试,可以验证应用的基本功能是否正常,如添加待办事项、显示待办事项列表等。在测试过程中,若发现问题,如按钮点击无反应、表格不更新等,可利用 Xcode 的调试工具,如设置断点、查看变量值等,来定位和解决问题。
(五)打包与发布
- 应用打包:选择菜单栏中的 “Product” -> “Archive”,Xcode 会对应用进行编译和打包,生成一个归档文件。在归档过程中,Xcode 会检查应用的代码、资源文件等是否存在问题,若有问题会提示错误信息,需要根据提示进行修复。
- 发布到 App Store:将归档文件提交到 App Store Connect 进行审核。在提交之前,需要在 App Store Connect 上注册应用,填写应用的名称、描述、截图、隐私政策等信息。应用名称要简洁易记,能准确传达应用的功能;描述要详细介绍应用的特点和优势,吸引用户下载;截图要展示应用的主要界面和功能,让用户对应用有直观的了解;隐私政策则要明确说明应用如何收集、使用和保护用户数据,确保符合相关法律法规。提交审核后,需要耐心等待审核结果,期间要关注审核反馈,及时处理审核人员提出的问题。
- 其他发布方式:除了发布到 App Store,也可以选择将应用发布到其他平台,如 Mac App Store 之外的网站、第三方应用市场等。发布到网站时,需要将应用打包成 DMG 格式的安装包,并提供详细的安装说明,方便用户下载和安装。在发布到第三方应用市场时,要了解其发布规则和要求,确保应用能够顺利上线。
相关文章:
解锁MacOS开发:环境配置与应用开发全攻略
✨✨✨这里是小韩学长yyds的BLOG(喜欢作者的点个关注吧) ✨✨✨想要了解更多内容可以访问我的主页 小韩学长yyds-CSDN博客 目录 引言 一、MacOS 开发环境配置 (一)必备工具安装 (二)集成开发环境(IDE)选…...
Aruco 库详解:计算机视觉中的高效标记检测工具
1. 引言:Aruco 在计算机视觉中的重要性 在计算机视觉领域,标记(Marker)检测和识别是许多应用的基础,包括 机器人导航、增强现实(AR)、相机标定(Calibration)以及物体跟踪…...
第005文-模拟入侵网站实现0元购
1、部署导入靶场,部署购物网站 首先在虚拟机中新增一个centos虚拟机,在上面部署一套完整的购物网站,使用mysql数据库,访问端口是80。这个新增的centos虚拟机就是我们的靶场。购物网站在网上随便找一套开源的部署即可。 2、在网站…...
unity3d 背景是桌面3d数字人,前面是web的表单
是可以实现的,但涉及多个技术栈的结合,包括 Unity3D、Web 技术(HTML、JavaScript)、以及可能的 WebGL 或 WebRTC 技术。大致有以下几种实现方案: 方案 1:Unity 作为独立应用(桌面端࿰…...
23种设计模式简介
一、创建型(5种) 1.工厂方法 总店定义制作流程,分店各自实现特色披萨(北京店-烤鸭披萨,上海店-蟹粉披萨) 2.抽象工厂 套餐工厂(家庭装含大披萨薯条,情侣装含双拼披萨红酒&#…...
淘宝关键字搜索接口爬虫测试实战指南
在电商数据分析和市场研究中,通过关键字搜索获取淘宝商品信息是一项重要任务。淘宝开放平台提供了 item_search 接口,允许开发者通过关键字搜索商品,并获取商品列表及相关信息。本文将详细介绍如何设计并测试一个基于该接口的爬虫程序&#x…...
IntelliJ IDEA 中配置 Groovy
在 IntelliJ IDEA 中配置 Groovy 环境可以分为以下几个步骤 1. 安装 Groovy 插件 步骤: 打开 IntelliJ IDEA,进入菜单栏:File → Settings(Windows/Linux)或 IntelliJ IDEA → Preferences(Mac࿰…...
【Linux 22.4 ubuntu 安装cuda12.1 完整方案】
下载cuda12.1 官网网址 wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run sudo sh cuda_12.1.1_530.30.02_linux.run!import! 如果已经安装驱动,则不要选择dirver那项 添加环境变量 vim ~/.b…...
使用AI整理知识点--WPF动画核心知识
一、WPF动画基础 1、动画本质 通过随时间改变依赖属性值实现视觉效果(如位置、透明度、颜色等)。 依赖属性必须支持 DependencyProperty,且需是可动画的(如 Double, Color, Point 等)。 2、动画三要素 起始值 (Fr…...
HTML前端手册
HTML前端手册 记录前端框架在使用过程中遇到的各种问题和解决方案,供后续快速进行手册翻阅使用 文章目录 HTML前端手册1-前端框架1-TypeScript框架2-CSS框架 2-前端Demo1-Html常用代码 2-知云接力3-Live2D平面动画 3-前端运维1-NPM版本管理 1-前端框架 1-TypeScrip…...
风控模型算法面试题集结
特征处理 1. 特征工程的一般步骤什么?什么是特征迭代 特征工程一般包含: 数据获取,分析数据的可用性(覆盖率,准确率,获取容易程度)数据探索,分析数据业务含义,对特征有一个大致了解,同时进行数据质量校验,包含缺失值、异常值和一致性等;特征处理,包含数据处理和…...
利用 requestrepo 工具验证 XML外部实体注入漏洞
1. 前言 在数字化浪潮席卷的当下,网络安全的重要性愈发凸显。应用程序在便捷生活与工作的同时,也可能暗藏安全风险。XXE(XML外部实体)漏洞作为其中的典型代表,攻击者一旦利用它,便能窃取敏感信息、掌控服务…...
引领变革!北京爱悦诗科技有限公司荣获“GAS消费电子科创奖-产品创新奖”!
在2025年“GAS消费电子科创奖”评选中,北京爱悦诗科技有限公司提交的“aigo爱国者GS06”,在技术创新性、设计创新性、工艺创新性、智能化创新性及原创性五大维度均获得评委的高度认可,荣获“产品创新奖”。 这一奖项不仅是对爱悦诗在消费电子…...
MySQL JOIN 与子查询深度对比:原理、性能陷阱与优化策略
1. 基础概念:JOIN 与子查询的本质区别 1.1 JOIN 的核心作用 目标:直接关联两个表的行,通过匹配条件(如 ON 或 USING)合并数据。典型场景:需要同时获取两个表的字段(如 SELECT A.col, B.col FROM A JOIN B)。执行逻辑: 数据库一次性处理两表关系,优化器可能选择 Nest…...
稀疏注意力:打破Transformer计算瓶颈,实现高效长序列建模
引言:Transformer的辉煌与困境 近年来,Transformer凭借其强大的自注意力机制(Self-Attention),在自然语言处理、图像识别等领域大放异彩。然而,传统自注意力机制要求模型计算输入序列中所有位置对之间的关联…...
PTA 7-8 哈利·波特的考试
题目描述 哈利波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是 haha,将老鼠变成鱼的魔咒是 hehe 等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如 ahah 可以将老鼠变…...
纯html文件实现目录和文档关联
目录结构 效果图 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>项目结题报告</title><style lang"scss">::-webkit-scrollbar {width: 6px;height: 6px;}::-webkit-scro…...
共绘智慧升级,看永洪科技助力由由集团起航智慧征途
在数字化洪流汹涌澎湃的当下,企业如何乘风破浪,把握转型升级的黄金机遇,已成为所有企业必须直面的时代命题。由由集团,作为房地产的领航者,始终以前瞻视野引领变革,坚决拥抱数字化浪潮,携手数字…...
如何搭建个人静态住宅IP:从零开始
你好!今天我们将一起探索如何从头开始搭建个人静态住宅IP。无论您是为了远程办公、在线教育还是游戏加速,静态住宅IP都能带给您更稳定的网络体验。 一、准备阶段 1. 明确需求 首先,您需要清楚自己为什么需要静态住宅IP。可能是为了实现远程…...
《打造视频同步字幕播放网页:从0到1的技术指南》
《打造视频同步字幕播放网页:从0到1的技术指南》 为什么要制作视频同步字幕播放网页 在数字化信息飞速传播的当下,视频已然成为内容输出与获取的核心载体,其在教育、娱乐、宣传推广等诸多领域发挥着举足轻重的作用 。制作一个视频同步字幕播…...
自学嵌入式第27天------TCP和UDP,URL爬虫
1. TCP和UDP区别 **TCP(传输控制协议)和UDP(用户数据报协议)**是两种主要的传输层协议,它们在数据传输方式上有显著区别: 连接性: TCP是面向连接的协议,通信前需通过三次握手建立连…...
C++ 学生成绩管理系统
一、项目背景与核心需求 成绩管理系统是高校教学管理的重要工具,本系统采用C++面向对象编程实现,主要功能模块包括: 学生信息管理(学号/姓名/3门课程成绩) 成绩增删改查(CRUD)操作 数据持久化存储 统计分析与报表生成 用户友好交互界面 二、系统架构设计 1. 类结构设计 …...
Spring Cloud Alibaba 实战:轻松实现 Nacos 服务发现与动态配置管理
1. Nacos 介绍 1.1 什么是 Nacos? Nacos(Naming and Configuration Service)是阿里巴巴开源的一个服务注册中心和配置管理中心。它支持动态服务发现、配置管理和服务治理,适用于微服务架构,尤其是基于 Spring Cloud …...
关于sqlalchemy的使用
关于sqlalchemy的使用 说明一、sqlachemy总体使用思路二、安装与创建库、连结库三、创建表、增加数据四、查询记录五、更新或删除六、关联表定义 说明 本教程所需软件及库python3.10、sqlalchemy安装与创建库、连结库创建表、增加数据查询记录 一、sqlachemy总体使用思路 在…...
三维建模与视频融合(3D-Video Integration)技术初探。
三维建模与视频融合(3D-Video Integration)是一种将虚拟三维模型无缝嵌入实拍视频场景的技术,广泛应用于影视特效、增强现实(AR)、游戏开发、广告制作 、视频监控 等领域。 一、技术核心流程 三维建模与动画 使用工具…...
springboot3 RestClient、HTTP 客户端区别
1 RestClient使用 RestClient 是 Spring 6.1 M2 中引入的同步 HTTP 客户端,它取代了 RestTemplate。同步 HTTP 客户端以阻塞方式发送和接收 HTTP 请求和响应,这意味着它会等待每个请求完成后才继续下一个请求。本文将带你了解 RestClient 的功能以及它与…...
分布式存储学习——HBase概述
1.1 HBase概述 1.1.1 理解大数据背景 1.1.2 HBase是什么 1.1.3 HBase与Hadoop的关系 1.1.4 HBase的核心功能模块 1.1.5 HBase的应用场景和经典案例 1.1.6 小结 本文参考于学校《HBase应用于开发》教材 1.1 HBase概述 本节将介绍大数据背景和HBase的基本概念,…...
LLM run
lmstudio lmstudio ollama ollama N 卡使用自带UI gpu加速推理 ,选择满足条件的, ds模型选择列表 https://ollama.com/library/deepseek-r1 a卡当前支持的显卡型号 I卡 gpu加速配置 2025.3 intel Official project optimization https://www.modelscope.cn/m…...
HttpServletRequest、ServerHttpRequest 和 ServerWebRequest作用详解
1、HttpServletRequest 所属框架:Java Servlet API(基于阻塞式 I/O)。 使用场景:传统的 Servlet 应用(如 Spring MVC的Tomcat、常用的容器等等)。 作用:表示客户端的 HTTP 请求。 常用方法&a…...
【大模型基础_毛玉仁】2.2 大语言模型架构概览
【大模型基础_毛玉仁】2.2 大语言模型架构概览 2.2 大语言模型架构概览2.2.1 主流模型架构的类别1)Encoder-only 架构2)Encoder-Decoder 架构3)Decoder-only 架构 2.2.2 模型架构的功能对比1)注意力矩阵2)适用任务 2.2…...

