SORU
2 Mayıs 2010, Pazar


Kim / C tasarlanmış 'In İOStreams tasarlandı, ve hala iyi tasarlanmış bugün tarafından kabul edilecek'in standartlar?

Öncelikle, öznel görüşler için soruyorum gibi görünebilir, ama istediğim o değil. Bu konuda köklü bazı argümanlar duymak isterim.


Modern akarsu / serileştirme bir çerçeve tasarlanmış olmalı nasıl içine bazı bilgiler almak umuduylaBen son zamanlarda kendimi kitap Standard C IOStreams and Locales by Angelika Langer and Klaus Kreft bir kopyası var. Eğer İOStreams iyi tasarlanmış olmasaydı, ilk etapta C standart kütüphaneye yaratmazdı diye düşündüm.

Bu kitabın çeşitli yerlerinde okuduktan sonra, eğer İOStreams genel bir mimari açısı noktasından STL örneğin karşılaştırabilirsiniz eğer şüpheye düşmeye başlıyorum. Okuma this interview with Alexander Stepanov (the STL's "inventor") örneğin STL girdi bazı tasarım kararları hakkında bilgi edinmek için.

Ne özellikle beni şaşırtıyor:

  • 'Tasarım genel (bu-herkes iyi bir kaynak biliyor mu? hakkında bazı bilgiler okumak isterim); İOStreams bundan kimin sorumlu olduğu bilinmiyor gibi görünüyor

  • Bir kez dalın hemen altındaki yüzey İOStreams, örneğin eğer genişletmek istediğiniz İOStreams ile kendi sınıfları almak için bir arayüzü ile oldukça gizemli ve kafa karıştırıcı bir üye işlev adları, örneğin getloc/imbue, uflow/underflow, snextc/sbumpc/sgetc/sgetn, pbase/pptr/epptr (ve muhtemelen daha da kötü örnekler). Bu genel tasarım ve tek parçalar nasıl işbirliği anlamak çok daha zor. Hatta kitap yukarıda bahsettiğim yardımcı olmuyorbuçok (IMHO).


Böylece benim sorum:

Günümüz yazılım mühendisliği standartlarına göre yargılamak mı vardı (yok aslında . eğer varsa ^em>bu genel anlaşması), C 'nin İOStreams hala iyi dizayn edilmiş sayılacak? (Genellikle modası geçmiş olarak kabul edilir bir şey gelen yazılım tasarımı becerilerimi geliştirmek istemem.)

CEVAP
2 Mayıs 2010, Pazar


Onları tasarlayan ile ilgili, orijinal kitaplık (şaşırtıcı değil) Bjarne Stroustrup tarafından oluşturulmuş ve daha sonra Dave Preston tarafından reimplemented. Bu daha sonra yeniden ve yine Cfront için Jerry Schwartz tarafından reimplemented 2.0, Andrew Koenig gelen manipülatörler fikrini kullanıyordu. Kütüphane standart sürümünde bu uygulama dayanmaktadır.

"C Tasarım Ve Evrim ", 8.3.1 bölüm. kaynak

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ASUS Campus Life

    ASUS Campus

    18 Mart 2013
  • Flohoo

    Flohoo

    12 EYLÜL 2009
  • ŠĩŗĜŕôŵåɭȍҭҭ

    ŠĩŗĜŕô

    29 Kasım 2009