1个不稳定版本

0.1.0 2024年4月4日

#18 in #french

自定义许可

85KB

rer

rer.logo

r.e.r代表法语句子:"Rez En Rust"(在Rust中实现rez)

这是一个关于巴黎郊外火车的玩笑,Île-de-France区域快线

描述

Rust中的rez实现

  • clap 作为命令行工具。
  • resolvo 作为基于CDCL SAT求解或 pubgrub 的求解算法。

路线图

  1. 理解现有代码库:我们将首先彻底理解现有的 "rez" 代码库,包括其架构、依赖关系和整体设计。这种初步分析对于确定潜在挑战和改进机会至关重要。
  2. 定义我们的目标:我们需要为重写定义明确的目标。我们的目标是提高性能、可维护性还是解决原始代码中的特定问题?我们将建立这些目标来指导我们的努力。
  3. 学习Rust:在我们开始重写之前,我们将确保我们的团队能够熟练掌握Rust编程语言。Rust有一个学习曲线,但它提供了强大的性能和安全特性。我们将通过官方Rust书籍和实际项目等方式投入时间来理解Rust。
  4. 创建项目计划:一个全面的项目计划至关重要。我们将概述重写的范围,设定里程碑,并建立现实的截止日期。此计划还将解决如何从旧代码过渡到新的Rust版本。
  5. 从原型开始:为了增强我们对Rust技能的信心并测试关键概念,我们将从 "rez" 应用程序的小型Rust原型开始。这有助于我们验证我们的方法和工具。
  6. 识别依赖关系:我们将识别 "rez" 应用程序使用的所有外部依赖关系,并评估是否在Rust中有等效的库。如果没有,我们可能需要为这些依赖关系创建Rust绑定。
  7. 决定架构:我们将做出架构决策,考虑我们是否想复制现有的架构或抓住机会进行改进。Rust的所有权系统可能会影响我们的设计选择。
  8. 逐步迁移:我们不会一次性重写整个代码库,而是选择逐步迁移。从特定的模块或组件开始,我们将确保它们与现有代码无缝工作。
  9. 编写测试:质量保证至关重要。我们将编写广泛的单元测试、集成测试和可能的属性测试。Rust有一个强大的测试生态系统,我们将利用它来保持代码质量。
  10. 边做边记录:我们在重写代码的同时记录代码。良好的文档将增强Rust代码库的可理解性和可维护性。
  11. 性能分析:我们将定期分析应用程序以识别瓶颈和Rust可以发挥作用的领域。
  12. 代码审查和协作:协作至关重要。我们将进行代码审查以确保代码符合Rust最佳实践,可维护,并遵守安全标准。
  13. 关注Rust更新:Rust是一种不断发展的语言。我们将关注最新的Rust版本和最佳实践,以利用最新的改进。
  14. 迁移计划:随着我们接近Rust版本的完成,我们将制定一个迁移计划。此计划将涵盖数据迁移、用户过渡和其他后勤方面。
  15. 测试和验证:彻底的测试是不可谈判的。我们将确保Rust版本与原始“rez”应用程序的功能和质量标准相匹配。
  16. 部署:一旦测试成功,我们将部署Rust版本到生产环境。严格的监控对于确保性能和稳定性至关重要。
  17. 反馈和维护:我们重视用户反馈。部署后,我们将收集反馈并准备好解决任何问题或实施可能出现的改进。
  18. 废弃旧代码:当我们对Rust版本的安全性和性能有信心时,我们将考虑废弃旧的“rez”代码库。

待办事项

  • rer-build
  • rer-bind
  • rer-env

依赖关系

~1.1–1.7MB
~32K SLoC