| design-process | Four design axes, work backwards, minimize surface area | | surface-area | Internal packages, no global state, unknown outputs, mutation guards | | dependencies | Accept don't instantiate, accept interfaces, return structs | | evolution | Breaking changes, param objects vs functional options, result objects |
| testability | TimeNow function type, rand.Rand injection, WithX options, deterministic outputs, DST readiness |
Do NOT apply to application-level code that won't be imported by other modules.
تصميم مكتبات وحزم Go للتطور على المدى الطويل. يغطي إدارة سطح واجهة برمجة التطبيقات (API)، واتجاه التبعية، والتوافق مع الإصدارات السابقة، والمقايضات بين كائنات المعلمات والخيارات الوظيفية، وقابلية الاختبار عبر المحاكاة الحتمية. المصدر: stuckinforloop/harness.