27 puan yazan GN⁺ 2024-03-26 | 2 yorum | WhatsApp'ta paylaş
  • esbuild ve Redis, olağanüstü dokümantasyona sahip kod tabanlarına örnek teşkil ediyor.
  • README, değişiklik günlüğü, mimari dokümanları ve kod yorumları sayesinde yeni kullanıcılar da kod tabanının yapısını, nasıl çalıştığını ve neden böyle tasarlandığını anlayabiliyor.
  • Kod ve yazılım mimarisi dokümantasyonunu iyileştirmek isteyen geliştiriciler için iyi birer vaka incelemesi niteliği taşıyor.

İyi dokümantasyon neden önemlidir

  • Yazılım geliştirirken, özellikle başkaları kod tabanını inceleyecek veya katkıda bulunacaksa ya da siz daha sonra tekrar dönüp bakacaksanız, iyi dokümantasyon vazgeçilmezdir.
  • Yazılım kullanıcıları çoğu zaman eksik dokümantasyon nedeniyle zorlanır.
  • Bir kod tabanına katkıda bulunuyorsanız, dokümantasyonun kalitesi ne kadar yüksekse o kadar hızlı katkı verebilirsiniz.
  • Dokümantasyonun kalitesi; yazarın, katkı sağlayanların ve kullanıcıların deneyimini doğrudan ya da dolaylı olarak etkiler.
  • İyi dokümantasyonun faydaları arasında zaman tasarrufu, açık kaynak projelerine dış katkının artması, geçmiş kararların kayda geçirilmesi, daha fazla kullanıcı için erişilebilirlik, düşüncenin yapılandırılması ve sorunların fark edilmesi yer alır.

esbuild'in dokümantasyonu

  • esbuild, Evan Wallace tarafından geliştirilen bir JavaScript bundler'ıdır.
  • esbuild'in README dosyası, aracın son kullanıcılarına odaklanır.
  • Dokümanın ana bölüm bağlantıları ve "Neden?" bölümü aracılığıyla, neden diğer bundler'lar yerine esbuild'in tercih edilmesi gerektiği kısaca açıklanır.
  • esbuild'in mimari dokümanları, docs dizinindeki architecture.md ve development.md dosyalarından oluşur.
  • Mimari dokümanları tasarım ilkelerini açıklar ve yalnızca metin değil, kavramları anlatan görseller de içerir.
  • esbuild'in değişiklik günlüğü; özetler, genişletilmiş açıklamalar ve değişiklik öncesi-sonrası örnek kodlarla ayrıntılıdır.

Redis'in dokümantasyonu

  • Redis, bellek içi bir veritabanıdır.
  • Redis'in README dosyası, esbuild'inkine benzer güçlü özellikler taşırken hem katkı sağlayanlara hem de son kullanıcılara odaklanır.
  • Redis'in iç yapısına ayrılan bölüm, kaynak kodun yerleşimi ve temel dosyaların açıklamalarını içerir.
  • Redis kaynak kodundaki yorumlar, tek bir kod satırı için bile birden fazla paragraf uzunluğunda açıklamalar sunar.

Sonuç

  • Pek çok açık kaynak projesi mükemmel dokümantasyona sahiptir.
  • esbuild ve Redis, özellikle etkileyici dokümantasyonlarıyla öne çıkar.
  • Dokümantasyon kısa vadede zaman baskısı yaratabilir, ancak uzun vadede zaman kazandırır.
  • Çok sayıda kişinin kullandığı veya katkı verdiği projelerde dokümantasyon yapmamak, yeniden düşünülmesi gereken bir konudur.

GN⁺ görüşü

  • esbuild ve Redis'in dokümantasyon örnekleri, geliştiricilere kod tabanını anlama ve bakımını kolaylaştıran dokümantasyonun önemini güçlü biçimde gösteriyor.
  • Dokümantasyon, projenin sürdürülebilirliğini artıran ve topluluk katılımını teşvik eden temel unsurlardan biridir.
  • esbuild özelinde, hızlı bir JavaScript bundler'ı olmasının yanı sıra güçlü dokümantasyonunun da projenin büyümesine katkı sağladığı görülüyor.
  • Redis ise karmaşık bir bellek içi veritabanı sistemini daha kolay anlaşılır kılan dokümantasyonu sayesinde geliştirici topluluğu üzerinde olumlu bir etki yaratıyor.
  • Bu örnekler, diğer açık kaynak projelere de dokümantasyonun önemini aktarmaya yardımcı olabilir; özellikle de başlangıç seviyesindeki yazılım mühendislerinin kendi projelerini nasıl dokümante edeceklerini anlamaları açısından yararlıdır.

2 yorum

 
laeyoung 2024-03-29

esbuild'in README.md dosyası da öyle ama yazıda tanıtılan architecture.md dosyası da gerçekten çok güzel!

 
GN⁺ 2024-03-26
Hacker News görüşü
  • Redis'in yaratıcısı Antirez, blogunda kod yorumları hakkındaki düşüncelerini ayrıntılı biçimde anlattığı bir yazı yazmış. Redis'te kullanılan 9 tür yorumu tanımlıyor.

    • Birçok kişinin önemsiz gördüğü "rehber yorumlar"ın kullanımına şaırmış.
    • Antirez, bu yorumların kodun anlaşılmasına yardımcı olma açısından değerli olduğu sonucuna varıyor.
    • Antirez'in yazısı
  • Proje dokümantasyonunun kullanıcılar/geliştiriciler/katkı sunanlar için nasıl mükemmel olabileceğine dair somut örnekler ve ekran görüntüleri içeren iyi yazılmış bir makale.

    • Kendi işi ve yan projeleri üzerine düşünmeye sevk ediyor; dokümantasyonu anlayışı artıracak şekilde nasıl iyileştirebileceğini düşündürüyor.
    • Geliştirici olarak büyüdükçe daha fazla dokümantasyon ve test yazmaya başladığını söylüyor. Bazı projelerde gerçek koddan daha fazla dokümantasyon ve test var.
    • İyi dokümantasyon yazmanın, kod yazmaktan farklı bir beceri seti gerektirdiği görüşü var. Bazen teknik olmayan ya da geliştirmeye odaklanmayan biri, bir şeyi açıklamada daha iyi olabilir.
    • Otomatik üretilen dokümantasyon da faydalı olabilir; tek başına değil, ek bir referans materyali olarak değerlidir.
  • Depo kalitesine yöneticilerin önem verdiğini gösteriyor.

  • "The Architecture of Open Source Applications" serisini hatırlatıyor. İlginç içgörüler içeriyor.

  • GitLab'in dokümantasyonunun çok iyi olduğuna dair bir itibarı var, ancak bunu doğrudan kullanma ihtiyacı fazla olmamış. Mimari dokümantasyonlarının da iyi olup olmadığı merak ediliyor.

  • Postgres projesi de dokümantasyona, readme dosyalarına ve kod yorumlarına ayrıntılı özen gösteriyor.

  • esbuild projesinin mimari dokümantasyonundan derinden etkilenmiş. Geçmişte üzerinde çalıştığı kod tabanlarında böyle belgeler olmasını isterdi.

    • Bu seviyede mimari dokümantasyona sahip başka proje örnekleri soruluyor.
  • Açık kaynak projelerin değişiklik günlüklerini çok seviyor. Kâr amacı güden diğer oluşumlara kıyasla çok daha profesyonel ve bilgilendirici buluyor. ING Bank'ın uygulama değişiklik günlüğünün esprili olmaktan çok bilgi vermeye odaklanması gerektiğini eleştiriyor.

  • "Bugün özgür yazılım topluluğundaki en büyük eksiklik yazılım değil, özgür yazılımla birlikte sunulabilecek iyi özgür dokümantasyonun eksikliğidir."

    • gdb kılavuzundan alıntı.
  • Redis'in artık açık kaynak olmadığını belirtiyor. Redis, Redis Source Available License v2 (RSALv2) ve Server Side Public License v1 (SSPLv1) kapsamında "source-available" bir yazılım.

    • Redis Stack ve Redis Ltd. tarafından yapılan tüm Redis modülleri (ör. RediSearch, RedisJSON, RedisGraph, RedisTimeSeries, RedisBloom), RSALv2 ve SSPL ile çift lisanslı.
    • Redis Enterprise kapalı kaynaklı ve Redis Ltd.'den ticari lisans gerektiriyor.
    • Redis'in önceki sürümleri 3-clause BSD lisansı (özgür ve açık kaynak) altındadır. Lisans değişikliği geriye dönük uygulanmaz; değişiklikten önceki tüm kaynak kod ve sürümler özgün 3-clause BSD lisansını korur. İlgili koşullara uyduğunuz sürece bu sürümleri süresiz kullanabilirsiniz.
    • Redis lisansları
    • BSD lisansı