OCaml.org 新闻: 2024 年 2 月
欢迎来到 2024 年 2 月版的 OCaml.org 新闻!本期更新由 OCaml.org 团队整理。您可以在 Discuss 上找到 之前的更新。
我们的目标是让 OCaml.org 成为任何想要入门并使用 OCaml 高效工作的人的最佳资源。OCaml.org 新闻提供我们朝着这个目标的进展以及我们正在进行的变更的概述。
没有所有帮助我们审查、修订和创建更好的 OCaml 文档的优秀 OCaml 社区成员,我们无法做到这一点。您的反馈使我们能够更好地优先考虑我们的工作。谢谢您!
本期新闻涵盖
- OCaml 文档: 发布了新的文档,并改进了现有文档。
- OCaml 食谱: OCaml 食谱的原型,它提供简短的代码示例,使用 OCaml 生态系统中的包来解决实际问题,位于 staging.ocaml.org/cookbook。
- 黑暗模式: 我们现在几乎准备好发布黑暗模式了。
- 社区部分重做: 我们正在准备社区部分的线框图,以便更好地展示现有内容。此外,我们开始了面向专门的“活动”页面的初步工作。
- 通用改进: 和往常一样,我们还根据用户反馈进行了通用维护和改进,因此我们将在下面重点介绍我们的一些工作。
贡献者的开放问题和 Outreachy 申请期
外部贡献者有开放问题。但是,由于 github.com/ocaml/ocaml.org 参与了 Outreachy 申请期,我们可能会在 3 月份出现开放问题短缺,因为 Outreachy 申请者会很快处理它们。
您可以在这里找到 贡献者的开放问题!
OCaml 文档
用户测试
21 位勇敢的新手同意在发现 OCaml 的过程中被观察一个小时,并完成一些编程任务。非常感谢参加我们举办的用户测试的所有参与者!
一半的用户测试参与者使用最近 更新的教程,另一半使用 v2.ocaml.org/docs。我们的结论是
- 学习 OCaml 并不难。然而,学习函数式编程却很难。大多数有先前 FP 经验的参与者成功完成了任务。
- 更新的文档在教授没有 FP 经验的参与者 OCaml 和 FP 方面比手册略好。其中一些人在使用新的教程时成功完成了更复杂的任务,而所有没有 FP 经验的参与者在使用旧文档时都失败了。
通过观察参与者试图理解任务并在文档中找到相关资料,我们已经确定了许多可能改善文档页面用户体验的较小变更。
相关 PR 和活动
- 进行中
- 审查中(内部)
- 审查中(社区)
- 文件操作(见 Discuss 线程)
- 多态变体(见 Discuss 线程)
- 已发布
- 映射
- 集合
- 选项
- 模块、函子、使用 Dune 的库(见 Discuss)
- 标记参数
- OCaml Playground by @The-Amoghavarsha
- 在 opam 切换中运行命令
- 可变状态/命令式编程(见 Discuss 线程)
- Discuss 上的公告: OCaml 基础教程
- 基本数据类型(见 Discuss 线程)
- 函数和值(见 Discuss 线程)
- 安装 OCaml(见 Discuss 线程)
- OCaml 概览(见 Discuss 线程)
- 您的第一个 OCaml 程序(见 Discuss 线程)
- opam 切换简介
- 修复 Apple M1 上的 Homebrew 错误
- 运算符
- 错误处理(见 Discuss 线程)
- 数组(见 Discuss 线程)
- 序列(见 Discuss 线程)
- 其他活动:
- (docs) 基本数据类型: 添加到模块 Str 的链接
- 一等模块 (学习/语言/模块系统) by @F-Loyer
- 更新 bp_03_run_executables_and_tests.md by @F-Loyer
- DOC: 在第一个程序中用 yojson 替换 dream by @heathhenley
- 更新错别字 + 从 append 更改为 prepend by @danipoma
- 添加用于与 dune-pkg 一起使用的工作区文件 by @gridbugs
- 修复指南中的错别字 by @cionx
- 从设置说明中删除 dune by @The-Amoghavarsha
- 改进函子教程中的一些措辞 by @neuroevolutus
- 从运算符添加到单子的链接 by @cuihtlauac
- (doc) 改进“使用 Dune 的库”教程中的措辞 by @The-Amoghavarsha
- 将 Variable 替换为 Parameter by @cuihtlauac
- (docs) 在可变状态和命令式教程中添加包含可变状态的闭包示例 by @The-Amoghavarsha
- (docs) 推荐 dune watch 模式 by @yawaramin
- (docs) 将“Sets”设置为 Set 的教程标题 by @cuihtlauac
- (docs) 在错误处理指南中将 map 更正为 map_error by @cuihtlauac
- 省略对 Merlin 的提及 by @yawaramin
即将推出的 OCaml 食谱
我们在向学习区域添加一个新的社区驱动的部分方面取得了一些进展: OCaml 食谱。食谱旨在成为食谱的集合,提供解决使用 OCaml 生态系统中的包的实际问题的代码示例。
这是我们正在考虑的设计
- 类别: 任务的高级分组,例如,网络、数据压缩或命令行参数。
- 任务: 在一个类别中要完成的单一事情,例如,写入文件、进行 HTTP GET 请求或返回退出状态。
- 食谱: 使用包的任务版本,例如,使用
curly
或cohttp
进行 HTTP GET。
一个粗略的原型位于 staging.ocaml.org/cookbook。我们收到的贡献和用户反馈表明,食谱的结构需要再次细化,直到它准备好发布。
关于食谱的反馈的最佳位置是 这个 Discuss 线程。
相关 PR 和活动
- 原型 OCaml 食谱
- 对食谱的贡献
- (WIP) 食谱: 文件系统 by @F-Loyer
- (WIP) 食谱网络 by @F-Loyer
- (WIP) 食谱 xml by @F-Loyer
- (WIP) 食谱: Web/简单 HTTP 客户端 by @F-Loyer
- (WIP) 食谱 Web/uri by @F-Loyer
- (WIP) 食谱: 正则表达式 (ppx_regexp) by @F-Loyer
- 食谱: 编码 by @F-Loyer
- 食谱: 以及对列表和数组进行排序 by @F-Loyer
- 食谱文本处理 by @F-Loyer
- 食谱: 添加数据库/ezsqlite 条目 by @F-Loyer
- 食谱并发: Lwt by @F-Loyer
- 食谱 caqti ppx 包装器 by @F-Loyer
- 食谱 Ezsqlite - 错别字和重写 by @F-Loyer
- 食谱排序 - 错别字 by @F-Loyer
黑暗模式
12 月,oyenuga17 开始在 OCaml.org 上实现新的黑暗模式。
到目前为止,新的黑暗模式已经基本完成,但尚未得到足够的审查或测试。
我们根据您的浏览器/操作系统偏好在 staging.ocaml.org 上启用了黑暗模式。如果您想提供帮助,您可以查看 staging.ocaml.org 上的黑暗模式,并通过打开问题报告您看到的任何内容。
已完成的页面
- 学习/开始 + 语言 + 指南 by @oyenuga17
- 学习/练习 by @oyenuga17
- 学习/书籍 by @oyenuga17
- 学习/平台工具 by @oyenuga17
- 包搜索结果 by @oyenuga17
- 包 + 社区 by @oyenuga17
- 博客 + 招聘 + 变更日志 by @oyenuga17
- 学习/概述 by @oyenuga17
- 安装 + 论文 + 徽标和策略页面 by @oyenuga17
- 治理 + Outreachy 实习页面 by @oyenuga17
- 主页 + 教程搜索结果页面 by @oyenuga17
- OCaml 研讨会 + 成功案例 by @oyenuga17
社区版块重构
本月,我们已经开始对社区区域进行用户研究,并收集了对当前页面的反馈和想法。除此之外,我们还确定了以下几点:
- 社区版块需要一个更好的活动目录
- 工作页面需要从社区页面更容易访问
- 突出显示 OCaml 生态系统中正在寻找贡献者的开源项目会很棒
如果你对社区版块有任何意见,请随时在 这个讨论主题 中分享!
相关 PR 和活动
一般改进
感谢许多帮助在 2 月改进 OCaml.org 的贡献者。下面列出了他们!
相关 PR 和活动
- 一般
- 使教程字段 short_title 可选 by @amarachigoodness74
- (build) 不要压缩 data/ 文件夹 by @sabine
- 优化学习页面风格,符合 Figma 设计 by @sabine
- 移除练习页面难度符号上的过时文本 by @cuihtlauac
- 使 ocaml.org 上的 github 链接指向 ocaml 组织 by @v-gb
- feat: 创建 ocaml playground 移动视图 by @FatumaA
- 在学习概览英雄部分添加 OCaml 语言手册按钮 by @sabine
- Bugfix: 移除重复的“文档”链接,使其看起来像 figma by @kiyov09
- 使用链接在头部宣传 atom 提要 by @cuihtlauac
- 调整列表项目符号颜色 by @egmaleta
- 使 playground 光标更明显 by @sabine
- 在“OCaml 是 web 吗?”中添加两个包 by @F-Loyer
- 数据解析
- (ood-gen) 使 'tutorials' 类型中的可选列表类型非可选 by @egmaleta
- (ood-gen) 将具有
list option
类型的字段类型调整为list
,在变更日志、新闻、Planet 和研讨会中 by @egmaleta - (ood-gen) 将 Data.Event / Data.Meetup 合并为 Data.Event / Data.Event/RecurringEvent by @sabine
- (ood-gen) 将研讨会中具有
option
类型的字段类型调整为option
by @egmaleta - 不要生成空的 data/watch.yml by @cuihtlauac
- 不要让 get_ok 吞掉错误原因 by @cuihtlauac
- (ood-gen) 将具有 bool option 类型的字段类型调整为 bool,在发布中 by @egmaleta
- 数据