|
|
Bu makalenin farklı dillerde bulunduğu adresler: English Castellano Deutsch Francais Nederlands Turkce |
Edgar Hernández Zúñiga <edgar(en)linuxfocus.org> Yazar hakkında: Benim özgeçmişim yok, kısa olanı bile... Türkçe'ye çeviri: Tankut Çığır <cigirt(at)be.itu.edu.tr> İçerik: |
Kitap incelemesi : Unix Programlama Sanatı (The Art of UNIX Programming)Özet:
Bu yazıda, sözğ edilen kitabın içerdiği önemli konu başlıklarına odaklanılmaya çalışılmıştır.
Sizler bu yazıyı okuduğunuzda kitap, kitapçılardaki yerini almış olacak. Bu yazı, kitabın
basımından önce okuyucuların değerlendirebilmesi için ön baskısı yapılan 0.87 sürümü göz
önünde bulundurularak hazırlanmıştır. Kitap hakkındaki bu yazıyı hazırlarken, kitabın
konusunun ne kadar önemli olduğunu fark ettim. "Unix Programlama Sanatı" başlığı bile
üzerine bir yazı yazılmayı hak ediyor. Kitabın gerçekten iyi hazırlandığını ve yazarın
konusuna hakim olduğunu, neden bahsettiğini çok iyi bildiğini söyleyebilirim.
|
I. BAĞLAM. 1. Felsefe. Kültür? Hangi Kültür? Unix'in devamlılığı Unix kültürünü öğrenmeğe engel durumlar Unix'in kötü yaptıkları Unix'in iyi yaptıkları Unix felsefesinin temelleri Tek derste Unix Felsefesi Unix felsefesini uygulamak. Tavırlar da önemlidir. 2. Tarih. Unix'in kökenleri ve tarihi, 1969-1995. Bilgisayar korsanlarının kökeni ve tarihi, 1961-1995. Açık kod (open-source) hareketi: 1998 ve sonrası. Unix tarihinden alınacak dersler. 3. Zıtlıklar. İşletim Sistemi çizgisinin parçaları. İşletim sistemi karşılaştırmaları. Neler gidip geliyor?. II. TASARIM. 4. Birimsellik (Modularity). Sarma (Encapsulation) ve en iyi birim (module) büyüklüğü. Özlülük ve ortogonellik. Kitaplıklar. Unix ve nesneye dayalı diller. Birimsellik için kod oluşturma yöntemleri. 5. Metinsellik (Textuality). Metinsel olmanın önemi. Veri dosyası meta-biçimleri. Uygulama Protokol Tasarımı Uygulama Protokol meta-biçimleri 6. Şeffaflık (Transparency). Durum analizi örnekleri. Şeffaflık ve keşfedilebilirlik için tasarlama teknikleri. Düzeltilebilirlik için tasarlama teknikleri. 7. Çoklu programlama. Karmaşıklık kontrolünü performans ayarlamadan ayırmak Unix IPC yöntemlerinin sınıflandırılması Problemler ve çözerken kaçınılacak yöntemler Tasarım aşamasında süreç bölümlendirme 8. Mini Diller. Dillerin sınıflandırılması. Mini dillerin uygulanması. Mini dillerin tasarlanması. 9. Dönüştürme (Transformation). Veriye dayalı programlama. Ad-hoc kodu üretimi. 10. Yapılandırma (Configuration). Neler Yapılandırılmalı? Yapılandırmalar nerede bulunmalı?. Çalışma denetim dosyaları. Çevre değişkenleri. Komut satırı seçenekleri. Yapılandırma seçeneklerinden hangilerini seçmeli?. Bu kuralları yıkarken... 11. Arabirimler. "En az sürpriz" kuralını uygulamak. Unix'te arabirim tasarımının geçmişi. Arabirim tasarımlarının değerlendirilmesi. CLI(Komut satırı arabirimi) ile görsel arabirimlerin karşılaştırılması. Şeffaflık, anlamlılık ve yapılandırılabilirlik. Unix arabirim tasarım şablonları. Unix arabirim tasarım şablonlarının uygulanması. Ağ tarayıcıyla dünyaya ulaşmak. Sükut altındır. 12. Eniyileme (Optimization). Orada öylece bir iey yapmayınö ayakta durun! Eniyilemeden önce ölçüm yapın. Yöresel olmamak zararlıdır. Üretilen(Throughput) iş ile durgunluk (latency). 13. Karmaşıklık (Complexity). Karmaşıklıktan söz etmek. Beş düzenleyicinin hikayesi. Bir düzenleyici için doğru boyut(size) nedir?. Bir yazılım için doğru boyut nedir?. III. UYGULAMA. 14. Diller. Unix'in diller üzerindeki etkisi. Niye C kullanmıyoruz? Çevrilmiş diller ve karışık stratejiler Dillerin değerlendirilmesi. Gelecekteki karşılaşılabilecek akımlar. X araç takımı (toolkit) seçimi. 15. Araçlar. Tasarımcı dostu işletim sistemi. Düzenleyici seçimi. Özel amaçlı kod yaratıcılar. C/C++ harici geliştirme teknikleri. Sürüm kontrol sistemleri. Çalıştırma sırasında hata ayıklamak. Kullanıcı tanımları.(Profiling) Evrensel düzenleyici olarak Emacs. 16. Yeniden Kullanım. J. Random Newbie'nin hikayesi. Şeffaflık yeniden kullanımın anhatarıdır. Yeniden kullanımdan açık kod hareketine. Hayattaki en iyi şeyler açıktır. Aradıklarımı nereden bulabilirim? Açık kaynak yazılımlarını kullanırken karşılaşılabilecek durumlar nelerdir? Lisans meselesi. IV. TOPLULUK. 17. Taşınırlık (Portability). C'nin evrimi. Unix standartları. Özellikler DNA gibi, kod RNA gibi olmalı. Taşınırlık için programlama teknikleri. Dünyaca ulaşılır hale getirme. Taşınırlık, Açık standartlar ve açık kod. 18. Belgelendirme. Belgelendirme Kavramları. Unix çizgisi. Unix belge biçimlerinin karmaşıklığı. Var olan kaos ve olası çıkış yolu. DocBook belgelendirme araç zinciri. Unix belgeleri nasıl hazırlanmalı. 19. Açık Kod. Unix ve Açık Kod. Açık kod geliştiricilerle çalışmak için en iyi uygulamalar Lisansların mantığı : hangisini seçmeli? Niye standart bir lisans kullanmalı? Açık Kod Lisanslarındaki çeşitlilik 20. Gelecek. Unix geleneğinin özü ve olası farklılıklar Unix'in tasarımındaki problemler Unix'in çevre değişkenlerindeki problemler Unix kültüründeki problemler İnanma nedenleri. A. Kısaltmalar sözlüğü B. Kaynaklar. C. Katkıda Bulunanlar.
|
Görselyöre sayfalarının bakımı, LinuxFocus Editörleri tarafından yapılmaktadır
© Edgar Hernández Zúñiga, FDL LinuxFocus.org |
Çeviri bilgisi:
|
2003-10-21, generated by lfparser version 2.43