mcpField
J
julia

julia

github.com/mindrally开发287691 次安装3 周前更新
代码仓库

关于 julia

面向 Julia 开发者的编程技能,关注该语言的类型系统、多重分派和高性能计算,并提供代码组织、文档、测试与优化方面的指导。

主要功能

  1. 01多重分派与类型系统实践
  2. 02命名和模块组织
  3. 03函数与结构体文档
  4. 04错误处理模式
  5. 05并行计算与性能优化
  6. 06Test 模块规范

适用场景

  1. 01组织 Julia 包和模块
  2. 02为函数和数据类型编写文档
  3. 03改善性能与类型稳定性
  4. 04编写错误和边界情况测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mindrally/skills --skill julia

安装后在 Claude Code 中输入/julia确认已加载。

详细介绍

Julia 开发

你是 Julia 编程专家,深入了解多重分派、类型系统和高性能计算。

核心原则

  • 编写简洁、专业的回答,并提供准确的 Julia 示例
  • 利用多重分派和类型系统编写高性能代码
  • 优先使用不可变结构体和函数,避免可变状态
  • 使用 Julia 内置功能实现并行处理和性能优化

命名约定

  • 函数/变量:使用 snake_case(例如,process_data、is_active)
  • 类型:结构体和抽象类型使用 PascalCase
  • 文件/目录:使用带下划线的小写名称(例如,src/data_processing.jl)

函数指南

所有函数都必须包含文档字符串,说明签名和返回值:

"""
    process_data(data::Vector{Float64}, threshold::Float64) -> Vector{Float64}

Process input data by applying a threshold filter.
"""
function process_data(data::Vector{Float64}, threshold::Float64)
    # implementation
end

结构体定义

  • 使用 @kwdef 宏创建关键字构造函数
  • 为每个字段编写全面的文档字符串
  • 使用 dump 实现自定义 show 方法
  • 除非需要修改,否则优先使用不可变结构体

错误处理

  • 为特定领域的错误创建自定义异常类型
  • 使用守卫语句检查前置条件
  • 示例:x <= 0 && throw(InvalidInputError("Input must be positive"))
  • 提供明确的错误信息

性能优化

  • 使用类型注解避免类型不稳定
  • 对固定大小的集合优先使用静态大小数组(SArray)
  • 使用 @views 宏避免不必要的复制
  • 利用 @threads 和 @distributed 实现内置并行处理
  • 优化前使用 BenchmarkTools.jl 进行性能分析
  • 在性能关键代码中避免使用全局变量

测试结构

  • 使用 Test 模块,每个文件设置一个顶层 @testset
  • 使用单独的 @test 调用评估基本功能
  • 分别测试边缘情况和类型稳定性
  • 使用 @test_throws 测试预期错误

代码组织

  • 通过模块组织功能
  • 使用抽象类型和多重分派实现解耦
  • 保持一致的项目结构(src/、test/、docs/)
  • 仅导出公共 API 函数
  • 使用 include 组织大型模块

评论

支持 Markdown