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.
Project Links
| Platform | Link |
|---|---|
| NuGet | View Package |
| GitHub | View 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
