askill
yanko-belov

yanko-belov

Publisher on askill

79 total stars
Skills15
Updated 1/22/2026
GitHub
separation-of-concerns
separation-of-concerns
yanko-belov1/22/2026

Use when component does too many things. Use when mixing data fetching, logic, and presentation. Use when code is hard to test.

6
AI 93
interface-segregation-principle
interface-segregation-principle
yanko-belov1/22/2026

Use when designing interfaces. Use when implementing interfaces with methods you don't need. Use when forced to implement throw/no-op for interface methods.

6
AI 93
dont-repeat-yourself
dont-repeat-yourself
yanko-belov1/22/2026

Use when writing similar code in multiple places. Use when copy-pasting code. Use when making the same change in multiple locations.

6
AI 92
deadlock-prevention
deadlock-prevention
yanko-belov1/22/2026

Use when acquiring multiple locks. Use when operations wait for each other. Use when system hangs without crashing.

6
liskov-substitution-principle
liskov-substitution-principle
yanko-belov1/22/2026

Use when creating subclasses or implementing interfaces. Use when tempted to override methods with exceptions or no-ops. Use when inheritance hierarchy feels wrong.

5
AI 98
fail-fast
fail-fast
yanko-belov1/22/2026

Use when handling errors. Use when tempted to catch and swallow exceptions. Use when returning default values to hide failures.

5
AI 96
you-aint-gonna-need-it
you-aint-gonna-need-it
yanko-belov1/22/2026

Use when tempted to add features "for later". Use when building "production-ready" systems before needed. Use when adding flexibility that isn't required yet.

5
AI 96
api-versioning
api-versioning
yanko-belov1/22/2026

Use when designing or modifying APIs. Use when adding breaking changes. Use when clients depend on API stability.

5
AI 96
encapsulation
encapsulation
yanko-belov1/22/2026

Use when exposing internal state. Use when making fields public for convenience. Use when external code modifies object internals.

5
AI 95
open-closed-principle
open-closed-principle
yanko-belov1/22/2026

Use when adding new functionality to existing code. Use when tempted to add if/else or switch branches. Use when extending behavior of existing classes.

5
AI 95
lazy-loading
lazy-loading
yanko-belov1/22/2026

Use when loading all data upfront. Use when initial page load is slow. Use when fetching data that might not be needed.

5
AI 92
idempotency
idempotency
yanko-belov1/22/2026

Use when creating mutation endpoints. Use when trusting frontend to prevent duplicates. Use when payments or critical operations can be repeated.

5
AI 92
secrets-handling
secrets-handling
yanko-belov1/22/2026

Use when working with API keys, passwords, or credentials. Use when asked to hardcode secrets. Use when secrets might leak.

5
AI 90
single-responsibility-principle
single-responsibility-principle
yanko-belov1/22/2026

Use when creating or modifying classes, modules, or functions. Use when feeling pressure to add functionality to existing code. Use when class has multiple reasons to change.

5
test-driven-development
test-driven-development
yanko-belov1/22/2026

Use when implementing any new feature or function. Use when asked to "add tests later". Use when writing code before tests.

5
Showing all 15 skills.