图算法服务开发短记:写清输入和结果边界
图算法服务开发短记写清输入和结果边界算法从本地函数变成服务后最先需要确定的是承诺范围支持什么图、最大节点和边数是多少、超出预算时返回什么。否则一个超级节点或超大请求就可能占满 Web Worker拖慢无关用户。无权图求最少跳数适合 BFS。图有权重时需要明确权重语义负权边不能使用 Dijkstra若需要处理还要选择相应算法并考虑负权环。接口不应把被截断的搜索结果标成精确答案。if len(graph) maxNodes || edgeCount maxEdges { return 0, ErrGraphTooLarge }反例是按“保留前百分之几的边”来降级。它会改变结果不能悄悄发生。若业务允许近似应在响应中标记过滤条件和approximate若要求准确选择排队、异步计算或拒绝超限请求。用脱敏图数据测试空图、环、重复边、不可达节点、超限输入和请求取消。记录节点数、边数、算法版本、并发与延迟才能复核性能与正确性。服务稳定来自边界清楚而不是设置一个很小的超时。返回值也要可复核响应中保留算法名称、图版本和是否命中预算上限三个字段方便调用方区分“没有路径”和“本次没有完成搜索”。图数据更新时使用版本号而非就地覆盖避免请求中途读到两份邻接表这类一致性约束应在接口契约中提前写明。为拒绝的请求单独计数并按超节点、超边和取消三类原因区分。它既帮助容量规划也能发现某个调用方持续构造不合规图但日志中只记录摘要不记录可能含业务关系的完整边列表。调用方据此决定重试、拆分还是改走离线任务。