con un clic
backend-database
Repository pattern, transactions, caching ve query optimization.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Repository pattern, transactions, caching ve query optimization.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Guide for conducting comprehensive accessibility audits of code to identify WCAG compliance issues and barriers to inclusive design. This skill should be used when reviewing accessibility, ARIA implementation, keyboard navigation, or screen reader compatibility.
Transform clarified user requests into structured delegation prompts optimized for specialist agents (cto-architect, strategic-cto-mentor, cv-ml-architect). Use after clarification is complete, before routing to specialist agents. Ensures agents receive complete context for effective work.
AGENTS.md dosyaları oluşturma, monorepo yapılandırma ve agent instruction yönetimi rehberi.
p5.js ile generative art, flow fields ve interactive visuals oluşturma rehberi.
API tasarımı, GraphQL schema, OpenAPI spec, versioning. ⚠️ Tasarım aşaması için kullan. Uygulama/security için → backend-api.
ADR template, database selection, capacity planning ve scalability.
| name | backend_database |
| description | Repository pattern, transactions, caching ve query optimization. |
Database patterns, caching ve performance optimization.
interface IUserRepository {
findById(id: string): Promise<User | null>;
findByEmail(email: string): Promise<User | null>;
create(data: CreateUserDto): Promise<User>;
update(id: string, data: UpdateUserDto): Promise<User>;
delete(id: string): Promise<void>;
}
class UserRepository implements IUserRepository {
constructor(private prisma: PrismaClient) {}
async findById(id: string) {
return this.prisma.user.findUnique({ where: { id } });
}
}
async function transferMoney(fromId, toId, amount) {
return prisma.$transaction(async (tx) => {
const from = await tx.account.update({
where: { id: fromId },
data: { balance: { decrement: amount } },
});
if (from.balance < 0) throw new Error('Insufficient funds');
await tx.account.update({
where: { id: toId },
data: { balance: { increment: amount } },
});
});
}
async function getCachedUser(id: string) {
const cacheKey = `user:${id}`;
const cached = await redis.get(cacheKey);
if (cached) return JSON.parse(cached);
const user = await userRepository.findById(id);
if (user) {
await redis.set(cacheKey, JSON.stringify(user), 'EX', 3600);
}
return user;
}
// ❌ N+1 problem
const users = await prisma.user.findMany();
for (const user of users) {
await prisma.post.findMany({ where: { authorId: user.id } });
}
// ✅ Include ile tek sorgu
const users = await prisma.user.findMany({
include: { posts: true },
});
// ✅ Select ile sadece gerekli alanlar
const users = await prisma.user.findMany({
select: { id: true, name: true, email: true },
});
// ❌ Sequential
const user = await getUser(id);
const orders = await getOrders(id);
// ✅ Parallel
const [user, orders] = await Promise.all([
getUser(id),
getOrders(id),
]);
backend-core - Yapı, TypeScriptbackend-api - Endpoints, responsebackend-api - Endpoints, responseBackend Database v1.2 - Verified
Kaynak: 12 Factor App - Backing Services
EXPLAIN ile analiz et ve index ekle.| Aşama | Doğrulama |
|---|---|
| 1 | Migration dosyaları Git'e commit edilmiş mi? |
| 2 | N+1 sorgu problemi var mı? (Loop içinde query) |
| 3 | DB şifresi kodun içinde hardcoded mı? (Asla olmamalı) |