Design ★ 140,637

design-an-interface

Bir modül için birbirinden çok farklı arayüz tasarımları oluşturmak üzere paralel alt-ajanlar kullanın. Kullanıcı bir API tasarlamak, arayüz seçeneklerini keşfetmek, modül şekillerini karşılaştırmak istediğinde veya "bunu iki kez tasarla" dediğinde kullanın.

cd ~/.claude/skills
git clone https://github.com/mattpocock/skills.git skills

Arayüzü Tasarla

"A Philosophy of Software Design" kitabındaki "Design It Twice" (İki Kez Tasarla) ilkesine dayanarak: ilk fikriniz muhtemelen en iyisi olmayacaktır. Birden fazla radikal şekilde farklı tasarım oluştur, sonra karşılaştır.

İş Akışı

1. Gereksinimleri Topla

Tasarlamadan önce anla:

  • [ ] Bu modül hangi sorunu çözer?
  • [ ] Çağıranlar kimler? (diğer modüller, harici kullanıcılar, testler)
  • [ ] Ana işlemler nelerdir?
  • [ ] Herhangi bir kısıtlama var mı? (performans, uyumluluk, mevcut desenler)
  • [ ] Ne içeride gizli kalmalı, ne açığa çıkarılmalı?

Sor: "Bu modülün ne yapması gerekir? Kim bunu kullanacak?"

2. Tasarımlar Oluştur (Paralel Alt Ajanlar)

3+ alt ajanı Task aracını kullanarak eş zamanlı olarak başlat. Her biri radikal şekilde farklı bir yaklaşım üretmelidir.

Her alt ajan için istem şablonu:

Design an interface for: [module description]

Requirements: [gathered requirements]

Constraints for this design: [assign a different constraint to each agent]
- Agent 1: "Minimize method count - aim for 1-3 methods max"
- Agent 2: "Maximize flexibility - support many use cases"
- Agent 3: "Optimize for the most common case"
- Agent 4: "Take inspiration from [specific paradigm/library]"

Output format:
1. Interface signature (types/methods)
2. Usage example (how caller uses it)
3. What this design hides internally
4. Trade-offs of this approach

3. Tasarımları Sunumla

Her tasarımı şunlarla sunumla:

  1. Arayüz imzası - tipler, metodlar, parametreler
  2. Kullanım örnekleri - çağıranlar bunu pratikte nasıl kullanır
  3. Ne gizler - içeride tutulan karmaşıklık

Tasarımları sırasıyla sunumla ki kullanıcı her yaklaşımı karşılaştırmadan önce özümsesin.

4. Tasarımları Karşılaştır

Tüm tasarımları sununduktan sonra şunlara göre karşılaştır:

  • Arayüz sadeliği: daha az metod, daha basit parametreler
  • Genel amaçlı vs uzmanlaştırılmış: esneklik vs odak
  • Uygulama verimliliği: şekil verimli içerikleri sağlıyor mu?
  • Derinlik: az arayüz, önemli karmaşıklığı gizler (iyi) vs geniş arayüz, ince uygulama (kötü)
  • Doğru kullanım kolaylığı vs yanlış kullanım kolaylığı

Ticari tablolarda değil, açıklayıcı metinde trade-off'ları tartış. Tasarımların en çok nerede ayrıldığını vurgula.

5. Sentezle

Genellikle en iyi tasarım, birden fazla seçenekten içgörüleri birleştirir. Sor:

  • "Hangi tasarım birincil kullanım durumunuza en iyi uyuyor?"
  • "Diğer tasarımlardan birleştirmeye değer herhangi bir öğe var mı?"

Değerlendirme Kriterleri

"A Philosophy of Software Design" kitabından:

Arayüz sadeliği: Daha az metod, daha basit parametreler = öğrenmesi ve doğru kullanması daha kolay.

Genel amaçlı: Gelecekteki kullanım durumlarını değişiklik olmadan ele alabilir. Ancak aşırı genelleştirmeye dikkat et.

Uygulama verimliliği: Arayüz şekli verimli uygulamaya izin veriyor mu? Yoksa garip içerikleri zorluyor mu?

Derinlik: Az arayüz, önemli karmaşıklığı gizler = derin modül (iyi). Geniş arayüz, ince uygulama = sığ modül (kaçın).

Ters Desenler

  • Alt ajanların benzer tasarımlar üretmesine izin verme - radikal farklılığı zorunlu kıl
  • Karşılaştırmayı atlama - değer kontrasta dayanır
  • Uygulama yapma - bu tamamen arayüz şekli hakkındadır
  • Uygulama çabasına göre değerlendirme yapma

Benzer skill'ler

brainstorming Design

Herhangi bir yaratıcı çalışmaya başlamadan önce bunu mutlaka kullanın - feature oluştururken, component inşa ederken, functionality eklerken veya davranış değiştirirken. Kullanıcı niyetini, gereksinimleri ve tasarımı implementation öncesinde araştırır.

obra/superpowers ★ 235,495
finishing-a-development-branch Design

Uygulama tamamlandığında, tüm testler geçtiğinde ve çalışmanızı nasıl entegre edeceğinize karar vermeniz gerektiğinde kullanın - merge, PR veya cleanup seçeneklerini sunarak geliştirme sürecinin tamamlanmasını rehberlik eder.

obra/superpowers ★ 235,495
receiving-code-review Design

Kod incelemesi geri bildirimi alırken, önerileri uygulamadan önce kullanın; özellikle geri bildirim belirsiz veya teknik olarak şüpheli görünüyorsa - performatif anlaşmadan veya körü körüne uygulamadan ziyade teknik titizlik ve doğrulama gerekir.

obra/superpowers ★ 235,495
requesting-code-review Design

Görevleri tamamlarken, büyük özellikleri hayata geçirirken veya merge etmeden önce çalışmanın gereksinimleri karşıladığını doğrulamak için kullanın.

obra/superpowers ★ 235,495
using-git-worktrees Design

Yeni bir feature üzerinde çalışmaya başlarken veya implementasyon planını yürütmeden önce kullanın - native araçlar veya git worktree fallback aracılığıyla izole edilmiş bir workspace sağlar.

obra/superpowers ★ 235,495
using-superpowers Design

Herhangi bir konuşma başlatırken kullanın - skill'lerin nasıl bulunacağını ve kullanılacağını belirler, clarification soruları da dahil olmak üzere HERHANGİ bir yanıt vermeden önce skill invocation gerektirir.

obra/superpowers ★ 235,495
Daha fazla: Design →