Meta yapıların, modüllerin, çerçevelerin, platformların ve hizmetlerin hepsinin sınıflardan daha üst düzey özellik gruplamaları olduğunu iddia ediyorum. Programlama sistemi soyutlama hiyerarşim:
- Hizmetler
- platformlar, çözelti yığınları
- çerçeveler
- modüller, paketler
- meta yapılar: metasınıflar, yüksek dereceli fonksiyonlar, jenerikler, şablonlar, özellikler, yönler, dekoratörler
- nesneler, sınıflar, veri türleri
- fonksiyonlar, prosedürler, altyordamlar
- Kontrol Yapıları
- Kod satırları
Metasınıflar , üst düzey işlevler ve
jenerikler gibi meta yapılar ,
temel sınıflara, işlevlere, veri türlerine ve veri örneklerine açıkça soyutlama ekler. Özellikler, yönler ve dekoratörler, kod özelliklerini birleştirme ve benzer şekilde diğer sınıfları ve işlevleri 'hızlandırma' için yeni mekanizmalardır.
Ön-nesne dillerinde bile modül ve paketler vardı, bu yüzden onları sınıfların üzerine koymak tartışmalı olabilir. Bu sınıfları ve meta yapıları içeriyorlar, bu yüzden onları daha üst sıralara yerleştiriyorum.
Çerçeveler en düşük cevaptır - sofistike üst düzey soyutlamalar sağlamak için çoklu sınıfları, meta yapıları, modülleri, işlevleri ve benzerlerini düzenlerler. Yine de çerçeveler neredeyse tamamen programlama alanında faaliyet gösteriyor.
Çözüm yığınları veya platformları genellikle birden çok sorunu çözmek için birden çok çerçeveyi, alt sistemi veya bileşeni bir ortamda birleştirir.
Son olarak, orada hizmet olarak dağıtılan --often Web veya ağ hizmetleri. Bunlar, komple paketler halinde sunulan mimariler, çerçeveler, çözüm yığınları veya uygulama yetenekleridir. İç kısımları genellikle opaktır, öncelikle yönetici, programlama ve kullanıcı arabirimlerini ortaya çıkarır. PaaS ve SaaS yaygın örneklerdir.
Şimdi, bu ilerleme birkaç nedenden dolayı tamamen tatmin edici olmayabilir. Birincisi, mükemmel doğrusal veya hiyerarşik olmayan şeylerin düzgün bir doğrusal ilerlemesini veya hiyerarşisini yapar. Tamamen geliştirici kontrolü altında olmayan "yığınlar" ve hizmet gibi bazı soyutlamaları kapsar. Ve yeni bir sihirli pixie tozu oluşturmuyor. (Spoiler: Sihirli peri tozu yok. )
Bence sadece yeni soyutlama seviyelerine bakmak bir hata . Yukarıda sıraladığımların hepsi, şu anda olduğu kadar önemli veya popüler olmasalar bile, yıllardır var olmuştur . Ve o yıllar boyunca, her kodlama seviyesinde mümkün olan soyutlamalar gelişti. Artık sadece diziler değil, genel amaçlı, genel koleksiyonlarımız var. Sadece dizin aralıklarını değil, koleksiyonları da gözden geçiriyoruz. Liste kavrayışlarımız ve liste filtre ve harita operasyonlarımız var. Birçok dilin işlevlerinde değişken sayıda bağımsız değişken ve / veya varsayılan bağımsız değişken olabilir. Ve bunun gibi. Her düzeyde soyutlamayı artırıyoruz , bu nedenle daha fazla seviye eklemek genel soyutlama seviyesini artırmak için bir gereklilik değildir.