seungwon

Açık Kaynak Katkı Deneyimi

  • Yazım Dili: Korece
  • Baz Ülke: Güney Korecountry-flag
  • BT

Oluşturulma: 2025-05-03

Güncelleme: 2025-05-27

Oluşturulma: 2025-05-03 00:00

Güncelleme: 2025-05-27 09:42

"Bu yazı, açık kaynak ile ilgilenen ancak 'Ben mi?', 'Nereden başlamalıyım?' gibi korkuları olanlara cesaret vermek amacıyla yazılmıştır.

Bugün cesaretimi toplayıp açık kaynak kapısını çalmaya ve bu süreçte öğrendiklerimi ve hissettiklerimi paylaşmaya çalışacağım.

Açık Kaynak mı?

Yazılım öğrenirken, 'açık kaynak' ifadesiyle sık sık karşılaşırız. GitHub'a göz attığınızda, dünyayı değiştiren sayısız projenin kodlarını açıkça paylaştığını görürsünüz.

Bu şekilde kodlarını dış dünyaya açık olarak yayınlayan projelere 'açık kaynak' denir.
Örneğin OpenJDK, Spring Framework, Redis, React gibi büyük açık kaynak projeleri vardır.

Açık Kaynağa Katkı

Şimdiye kadar toplamda 4 kez açık kaynak projelerine katkıda bulundum. Dünyayı değiştirecek özellikler eklemek gibi büyük işler değil, açık kaynak projelerindeki küçük ve önemsiz geliştirmeleri bularak katkıda bulunuyorum.

Yukarıdaki projelerin kod stilini bilmiyorum ve nasıl çalıştıklarını da tam olarak bilmiyorum.

Bu şekilde kodları tam olarak anlamadan da topluluğa katkıda bulunulabileceğini görebilirsiniz. Ben henüz yazılımla 2 yıl önce tanıştım ve pek yetenekli olduğumu düşünmüyorum.

Sadece açık kaynak projelerine katkıda bulunmak ve geliştirici topluluklarında iletişim kurmak hoşuma gittiği için bu tür faaliyetlere devam ediyorum.

Neden açık kaynak projelerine katkıda bulunmak istedim?

Dürüst olmak gerekirse, ilk başta 'Özgeçmişime bir satır eklemek iyi olmaz mı?' diye düşündüğüm de oldu. Oldukça da düşündüm. Ancak daha büyük bir motivasyonum vardı. O da 'daha derinlemesine öğrenmek istiyorum' arzusu ve 'yaşadığım sorunları çözmek istiyorum' ihtiyacıydı.

Bir ekip projesinde Spring WebFlux kullanırken, temel teknolojisi olan Project Reactor'ı derinlemesine inceleme fırsatım oldu. Kavramları kitaplardan veya belgelerden anladım, ancak karmaşık bir sistemde nasıl çalıştığını ve optimize edildiğini doğrudan kodları görerek ve deneyimleyerek anlamak gerekiyordu. Ayrıca, 'Reactor'ı ne kadar iyi öğrendiğimi nasıl kanıtlarım?' diye sık sık düşünerek, 'açık kaynak projelerine katkıda bulunmalıyım!' diye düşündüm.

'Katkıda bulunmak istiyorum!' diye karar verince, nereden başlayacağımı bilemedim. Koca kod yığınında değiştireceğim yeri bulmak, değişikliğimin tüm sistemi nasıl etkileyeceğini tahmin etmek gibi her şeyden korkuyordum.

'Benim gibi biri PR (Pull Request) gönderirse ya alay ederlerse?' düşüncesiyle, PR'ı kaydetmek için uzun zaman harcadım.

Reactive Stack olarak kullandığım Redis Java istemcisi olan Lettuce'nin Reactive Command'ı Reactor tabanlıydı ve Reactor öğrenme temelinde Reactor zincirini doğrudan değiştirerek geliştirmek istedim.

Sadece fork yaptıktan sonra 'Reactive', 'reactor' dizelerini eşleşen tüm kodlara baktım. Mono, Flux gibi Reactor Publisher'ları ile oluşturulan zincirlerin tümünü kontrol ettim.

Kodları dikkatlice inceledikten sonra, şanslı bir şekilde, Reactor zincirini kullanan kodlardan birinde biraz okunabilirlik düşüklüğü ve yöntem zincirlemesinin doğru yapılmadığı bir kod buldum. Dünyayı sarsacak bir özellik geliştirmesi veya mimari değişikliği olmasa da, anlayabileceğim ve düzeltebileceğim kapsamda küçük ve belirgin bir sorundu. 'Ah, böyle bir şeyse ben de katkıda bulunabilirim!' diye düşündüm.

Belirlediğim şeylere dayanarak kodu dikkatlice değiştirdim ve yerel ortamda amaçlandığı gibi çalışıp çalışmadığını kontrol ettim. Küçük bir değişiklik olmasına rağmen, mevcut kodun stilini mümkün olduğunca takip ettim ve başka kısımları etkileyip etkilemeyeceği konusunda birçok kez düşünerek dikkatli bir yaklaşım sergiledim.

Değiştirdiğim içeriği commit ettim ve sonunda PR gönderme zamanı geldi. Dürüst olmak gerekirse, 'Gönder' düğmesine basana kadar çok fazla endişe ve tereddüt yaşadım. 'Bu kadar değişiklik ile PR göndermek uygun mu?', 'Yanlış bir şeyi mi düzelttim diye düşünülür mü?', 'İngilizce açıklamayı iyi yazabilecek miyim?' gibi endişelerim vardı.

Daha önce de söylediğim gibi, yetersizliğim yüzünden alay edilme korkusu büyüktü. Ancak 'Başlamak başarmanın yarısıdır', 'Denemeden hiçbir şey öğrenemezsin' düşüncesiyle, cesaretimi toplayarak yaptığım değişiklikleri ve nedenlerini ayrıntılı bir şekilde yazarak PR'ı gönderdim.

Açık Kaynak Katkı Deneyimi

redis/lettuce - #3061

Sonunda, PR'im 'Birleştirildi' ve benim yazdığım ve değiştirdiğim kodun, birçok geliştirici tarafından kullanılan ünlü bir açık kaynak projesinin bir parçası olması, gerçekten büyük bir başarı ve gurur hissi verdi.

Her şeyden önce, 'Ben de yapabilirim!' güvenini kazanmak en büyük kazanımdı.

Şu anda açık kaynak projelerine katkıda bulunmakta tereddüt mü ediyorsunuz?

Tam olarak anlamasanız bile sorun değil. Benim gibi küçük adımlarla başlayabilirsiniz. Belge yazım hatalarını düzeltmek, çeviri yapmak, basit hata raporları göndermek gibi katkıda bulunmanın birçok yolu var. Önemli olan korkularınızın ötesine geçip ilk adımı atma cesaretidir.

Eğer hata yaparsanız, bu hata sayesinde topluluktan geri bildirim alabilir ve daha da büyüme fırsatı elde edebilirsiniz.

Özgeçmişinize bir satır ekleyebileceğiniz değerli bir fırsat olmasının yanı sıra, öğrenmeye dayalı açık kaynak katkıları, gerçekten çok çalıştığınızı kanıtlayabileceğiniz bir araç da olabilir.

Yorum yapılamayan bir gönderi.