mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-02-02 04:33:08 +08:00
56 lines
1.1 KiB
Markdown
56 lines
1.1 KiB
Markdown
|
|
# Common Patterns
|
||
|
|
|
||
|
|
## API Response Format
|
||
|
|
|
||
|
|
```typescript
|
||
|
|
interface ApiResponse<T> {
|
||
|
|
success: boolean
|
||
|
|
data?: T
|
||
|
|
error?: string
|
||
|
|
meta?: {
|
||
|
|
total: number
|
||
|
|
page: number
|
||
|
|
limit: number
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Custom Hooks Pattern
|
||
|
|
|
||
|
|
```typescript
|
||
|
|
export function useDebounce<T>(value: T, delay: number): T {
|
||
|
|
const [debouncedValue, setDebouncedValue] = useState<T>(value)
|
||
|
|
|
||
|
|
useEffect(() => {
|
||
|
|
const handler = setTimeout(() => setDebouncedValue(value), delay)
|
||
|
|
return () => clearTimeout(handler)
|
||
|
|
}, [value, delay])
|
||
|
|
|
||
|
|
return debouncedValue
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Repository Pattern
|
||
|
|
|
||
|
|
```typescript
|
||
|
|
interface Repository<T> {
|
||
|
|
findAll(filters?: Filters): Promise<T[]>
|
||
|
|
findById(id: string): Promise<T | null>
|
||
|
|
create(data: CreateDto): Promise<T>
|
||
|
|
update(id: string, data: UpdateDto): Promise<T>
|
||
|
|
delete(id: string): Promise<void>
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Skeleton Projects
|
||
|
|
|
||
|
|
When implementing new functionality:
|
||
|
|
1. Search for battle-tested skeleton projects
|
||
|
|
2. Use parallel agents to evaluate options:
|
||
|
|
- Security assessment
|
||
|
|
- Extensibility analysis
|
||
|
|
- Relevance scoring
|
||
|
|
- Implementation planning
|
||
|
|
3. Clone best match as foundation
|
||
|
|
4. Iterate within proven structure
|