The Project

This is a NuGet package I created to standardize logic for Xiangqi (Chinese Chess) projects.

I found myself rewriting the same movement and validation logic for every new Xiangqi application I started, so I created this reusable library that I can use for future projects and share with the developer community.


PlatformLink
NuGetView Package
GitHubView Source Code

Insights & Technical Growth

1. Automating with CI/CD (GitHub Actions)

Integrating CI/CD was invaluable for removing manual friction. I set up a GitHub Actions workflow that automatically pushes updates to NuGet whenever a Pull Request is merged into master.

  • Impact: Eliminated manual publishing steps.
  • Result: I can focus purely on code quality, knowing the deployment is handled automatically.

2. Reliability via Unit Testing (XUnit)

I adopted a disciplined approach to testing using XUnit, covering most methods in the library.

  • Focus: Edge cases and complex move validation logic.
  • Payoff: While writing tests upfront took time, it paid off immediately when I needed to refactor core logic later. It caught regressions before they hit the production branch.

3. Deepening C# Fundamentals

maintaining a public library forced me to revisit C# core concepts to ensure efficiency and cleanliness.

  • Refined Skills: Memory management, Design Patterns, and LINQ.
  • Advanced Features: I gained hands-on experience with Delegates and Asynchronous programming to optimize the library’s performance