Best Practices and Patterns
Writing Maintainable, Performant RPC Handlers Following Industry Standards
Introduction
Code Style Guidelines
Naming Conventions
// Pattern: doPascalCaseCommandName
Json::Value doAccountInfo(RPC::JsonContext& context);
Json::Value doLedgerRequest(RPC::JsonContext& context);
Json::Value doSubmitTransaction(RPC::JsonContext& context);
// Files: PascalCase.cpp and .h
// Location: src/xrpld/rpc/handlers/AccountInfo.cppFormatting Standards
Common Pitfalls to Avoid
Pitfall 1: Trusting Client Input
Pitfall 2: Not Checking Ledger Availability
Pitfall 3: Exposing Implementation Details
Pitfall 4: Ignoring Resource Limits
Pitfall 5: Not Handling Concurrent Access
Pitfall 6: Missing Error Response Fields
Pitfall 7: Silent Failures
Pitfall 8: Not Checking Permission Requirements
Performance Considerations
Ledger Access Optimization
Query Optimization
Memory Efficiency
String Operations
Documentation Standards
Header Documentation
Inline Comments
Documentation Best Practices
Maintenance Best Practices
Version Your Handlers
Add Deprecation Warnings
Logging Standards
Configuration Management
Testing for Regressions
Code Review Checklist
Functionality
Security
Performance
Maintainability
Documentation
Testing
Example: Well-Implemented Handler
Conclusion
Last updated

