"Nasıl bir fotoğraf albümü uygulaması tasarlayacağınızı açıklayın", "Bu web sitesinin bu özel özelliğini nasıl tasarlayacağınızı açıklayın" (örneğin Facebook'ta beğenme, Amazon'da öneri, alışveriş sepeti, oyun) siyah jak). Peki, bu şeyin milyonları varsa? Ne değiştirirdin?
Bu bir veritabanı şeması ya da bir grup sınıf tanımı (ya da her ikisi?) Bekliyor gibi görünüyor. Okuldaki veritabanlarını öğrendim, ancak daha önce hiç bir uygulama tasarlamadım ve nereden başlayacağımı, bulduğum tasarımların "iyi" olup olmadığını ve ölçeklenebilir hale getirmek için neleri değiştirebileceğimi bilmekte sorun yaşamadım.
Bu sistemleri tasarlarken genel bir yaklaşım veya düşünce süreci var mı? Ve tasarımda çok fazla ortaya çıkan genel sorunlar / problemlerden kaçınmaya çalışmalıyım? Birisi beni bunlardan birinin (veya her birinin ihtiyaçlarını karşılaştırırken tercihen hepsinden) geçip açıklayabilir mi:
1) Hangi varlıklara ihtiyaç duyulduğunu nasıl buluyorsun? 2) Her şeyin hangi ilişkilere sahip olacağına nasıl karar verirsiniz? 3) Performans optimizasyonunu tasarımınıza nasıl dahil edersiniz? 4) Bunu sınıfları veya veritabanlarını kullanarak mı yaparım? Bir fark yaratır mı (örneğin, gerçekten bir veritabanı tablosuna çevrilemeyen bir sınıfa sahip olur muyum?)
Sormamın temel nedeni, "Kodlama Röportajını Kırma" dan geçiyor olmamdı ve cevaplarımın yazarından tamamen farklıydı - hangi sınıfların önemli olduğu hakkında çok farklı fikirlerim vardı.
Benim GİRİŞİM: Fotoğraf paylaşım uygulaması ile dersleri / tabloları olurdu: Fotoğraf ve Kullanıcı kesinlikle.
Sonra, bir şema oluşturmaya çalışıyorsak, fotoğraftaki her kişinin fotoğrafla bağlantılı olduğunu varsayarsak fotoğraf ve kullanıcı arasında bir tablo olur (bu tablo gerekli mi? çoktan çoğa ilişkiler için ayrı bir tablonuz olsun veya olmasın?).
Ancak, nesne yönelimli bir yaklaşım benimsemeye çalışıyorsak, bunun yerine belki de tüm işi yapan ve diğer iki tablodan / sınıftan tüm bilgilere sahip olan albüm adında bir sınıfımız olurdu. Bu kitapta fark ettiğim bir şey - bir sürü sınıf var ve sonra temelde tüm bilgilere sahip olan ve diğer sınıfları birbirine bağlayan bir sınıf var - bu yaygın mı? Örneğin, yukarıdaki örneklerimde, bu geçerli olacak mı?
Ben sadece bazı genel kurallar / yönergeleri takip umuyorum çünkü şu anda büyük bir sistem için iyi bir mimari neye benzediğini nasıl anlatacağım hakkında hiçbir fikrim yok.