|
|
| 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