---
title: "Her Şey İçin Bir Paket Kurmanın Bedeli"
description: "Küçük bir fonksiyon için bağımlılık eklemenin güvenlik, bakım ve supply-chain maliyeti — ve ne zaman kendiniz yazmanın daha ucuz olduğu."
url: https://sade.dev/tr/journal/ucuncu-parti-paket-bagimliligi/
lang: tr
author: "Muhammet Şafak"
published: 2026-10-10
section: Journal
tags: ["dependencies","security","simplicity","opinion"]
summary: "Küçük bir fonksiyon için paket kurmak, kodunuza kendi yetkilerinizle çalışan başkasının kodunu sokmaktır: güvenlik yüzeyi, bakım ve yükseltme sürtünmesi kurulumla bitmeyen bir fatura keser. Kripto, HTTP istemcisi ve veritabanı sürücüsü gibi zor, güvenlik-kritik işlerde paket kazanır; küçük, durağan ve iyi anlaşılan işlerde o birkaç satırı kendiniz yazmak daha ucuzdur."
---

# Her Şey İçin Bir Paket Kurmanın Bedeli

> Küçük bir fonksiyon için paket kurmak, kodunuza kendi yetkilerinizle çalışan başkasının kodunu sokmaktır: güvenlik yüzeyi, bakım ve yükseltme sürtünmesi kurulumla bitmeyen bir fatura keser. Kripto, HTTP istemcisi ve veritabanı sürücüsü gibi zor, güvenlik-kritik işlerde paket kazanır; küçük, durağan ve iyi anlaşılan işlerde o birkaç satırı kendiniz yazmak daha ucuzdur.

Bir projenin `composer.lock`'unda 180 paket vardı. Doğrudan kullanılan, elle sayınca, on ikiydi. Geri kalanı — yüzden fazla paket — çoğu zaman küçük bir fonksiyon için kurulmuş paketlerin sürüklediği bağımlılıklardı.

`composer require` yazmak bedava hissettirir. Değil. Her bağımlılık, kod tabanınızda başkasının koduna açılan bir kapıdır — ve o kapı bir daha tam kapanmaz.

## Her bağımlılık bir kapıdır

Bir paket kurduğunuzda, o paketin kodu sizin uygulamanızın yetkileriyle, sizin sunucunuzda çalışır. Veritabanınıza erişebilir, dosya sisteminizi görür, ortam değişkenlerinizi okur.

Bu, paketin kötü niyetli olduğu anlamına gelmez — ama bir gün ele geçirilirse, sizin uygulamanız da ele geçirilmiş olur. Supply-chain saldırısı denen şey budur: zayıf halka sizin yazdığınız kod değil, güvendiğiniz koddur. Yüzlerce pakete güveniyorsanız, güvenmeniz gereken yüzlerce ekip var demektir.

## Faturanın kalemleri

Bir bağımlılığın maliyeti kurulumla bitmez:

- **Güvenlik yüzeyi.** Her paket, denetlemediğiniz bir kod parçasıdır. Transitive bağımlılıklarla birlikte, gerçekte neye güvendiğinizi kimse tam bilmez.
- **Bakım.** Paket terk edilir, yeni bir PHP sürümünde kırılır, başka bir paketle çakışır. Onun sorunu artık sizin sorununuzdur.
- **Yükseltme sürtünmesi.** Framework'ü yükseltmek istediğinizde, en eski ve en bakımsız bağımlılığınız kadar hızlısınız.

Bu kalemler küçük bir paket için de, büyük bir paket için de ödenir.

## Küçük iş, büyük kapı

Asıl mesele asimetri. Bir slug üreten, bir tarih biçimleyen, birkaç satırlık bir yardımcı — bunlar için bir paket kurmak, küçük bir kazanç için geniş bir kapı açmaktır. Kazanç birkaç satır kod; bedel ise yukarıdaki faturanın tamamı.

Ünlü bir örnek var: JavaScript dünyasında, bir string'i sola dolduran on bir satırlık bir paket bir gün yayından kalktı ve binlerce projenin build'i çöktü. On bir satır için hepsi, denetlemediği bir kapıya bağlanmıştı.

## Ne zaman paket, ne zaman kendiniz

Kural ideolojik değil, ekonomik:

- **Paket kullanın:** zor, iyi test edilmiş, güvenlik-kritik işlerde. Kriptografi, HTTP istemcileri, veritabanı sürücüleri, framework'ün kendisi. Kendi kripto kodunuzu **asla** yazmayın — burası paketin tartışmasız kazandığı yer.
- **Kendiniz yazın:** küçük, durağan ve iyi anladığınız işlerde. Birkaç satırlık bir yardımcı, koca bir bağımlılık ağacı miras almaktan ucuzdur.

Ölçü şu: paketin çözdüğü problem, paketin getirdiği faturadan büyük mü? Büyükse kurun. Değilse, o birkaç satırı yazın ve sahiplenin.

## Bağımlılığı seçerken

Paket kurmaya karar verdiyseniz, hangisini seçeceğinize bakın: aktif bakılıyor mu, son sürümü ne zaman çıkmış, kaç transitive bağımlılık sürüklüyor, lisansı uygun mu, topluluğu ne kadar geniş. Bir bağımlılık seçmek, [boring architecture](/tr/journal/neden-boring-architecture) yazısındaki innovation token mantığıyla aynı: olgun, öngörülebilir, terk edilmeyecek olanı seçin.

---

Bağımlılık eklemek, kod yazmamanın bir yolu gibi görünür. Aslında kodu başka birine yazdırıp sorumluluğunu kendinizde tutmaktır.

Küçük bir iş için koca bir kapı açmadan önce sorun: bu birkaç satırı yazmak gerçekten daha mı pahalı?

## Kaynaklar

- [kik, left-pad, and npm](https://blog.npmjs.org/post/141577284765/kik-left-pad-and-npm) — npm
