/* ── Blog Detail Styles ── */ .bd-layout { display: grid; grid-template-columns: 1fr 320px; gap: 32px; padding-top: 28px; } /* ── Article ── */ .bd-article { background: #fff; border-radius: 20px; border: 1px solid rgba(0,0,0,.04); box-shadow: 0 4px 24px rgba(0,0,0,.04); overflow: hidden; } .bd-article__img { width: 100%; max-height: 400px; object-fit: cover; } .bd-article__body { padding: 32px 36px; } .bd-article__meta { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; } .bd-article__date { font-size: .78rem; font-weight: 600; color: #94a3b8; display: flex; align-items: center; gap: 5px; } .bd-article__date i { color: #027a94; } .bd-article__title { font-size: 1.75rem; font-weight: 800; color: #0a1628; line-height: 1.3; margin: 0 0 24px; letter-spacing: -0.5px; } .bd-article__content { font-size: 1rem; color: #334155; line-height: 1.85; } .bd-article__content p { margin: 0 0 18px; } .bd-article__content img { max-width: 100%; border-radius: 12px; margin: 12px 0; } .bd-article__content a { color: #027a94; font-weight: 600; } .bd-article__content h2, .bd-article__content h3 { color: #0a1628; margin: 28px 0 12px; } .bd-article__content code { background: #f1f5f9; padding: 2px 8px; border-radius: 6px; font-size: .9em; color: #027a94; } .bd-article__content pre { background: #0f172a; color: #e2e8f0; padding: 20px; border-radius: 14px; overflow-x: auto; font-size: .88rem; line-height: 1.7; } .bd-article__content pre code { background: transparent; color: inherit; padding: 0; } .bd-article__content blockquote { border-left: 4px solid #027a94; margin: 16px 0; padding: 12px 20px; background: rgba(2,122,148,.03); border-radius: 0 12px 12px 0; color: #475569; font-style: italic; } .bd-article__content ul, .bd-article__content ol { padding-left: 20px; margin: 0 0 18px; } .bd-article__content li { margin-bottom: 8px; } /* ── Divider ── */ .bd-divider { height: 1px; background: linear-gradient(90deg, transparent 0%, #e2e8f0 20%, #e2e8f0 80%, transparent 100%); margin: 32px 0; } /* ── Comments Section ── */ .bd-comments { padding: 0 36px 36px; } .bd-comments__title { font-size: 1.1rem; font-weight: 800; color: #0a1628; display: flex; align-items: center; gap: 8px; margin: 0 0 20px; } .bd-comments__title i { color: #027a94; } .bd-comment { display: flex; gap: 14px; padding: 16px; background: #f8fafc; border-radius: 14px; margin-bottom: 12px; border: 1px solid rgba(0,0,0,.03); } .bd-comment__avatar { width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg, #027a94, #01b0c1); display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 700; font-size: .9rem; flex-shrink: 0; } .bd-comment__body { flex: 1; min-width: 0; } .bd-comment__header { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; } .bd-comment__name { font-weight: 700; color: #0a1628; text-decoration: none; font-size: .88rem; } .bd-comment__name:hover { color: #027a94; } .bd-comment__time { font-size: .75rem; color: #94a3b8; } .bd-comment__text { font-size: .88rem; color: #475569; line-height: 1.6; margin: 0; } .bd-comment__empty { text-align: center; padding: 20px; color: #94a3b8; font-size: .88rem; } /* ── Comment Form ── */ .bd-form { padding: 0 36px 36px; } .bd-form__title { font-size: 1.05rem; font-weight: 800; color: #0a1628; display: flex; align-items: center; gap: 8px; margin: 0 0 16px; } .bd-form__title i { color: #027a94; } .bd-form__textarea { width: 100%; border: 1px solid #e2e8f0; border-radius: 14px; padding: 14px 16px; font-size: .9rem; color: #334155; resize: vertical; min-height: 100px; transition: border-color .15s, box-shadow .15s; box-sizing: border-box; font-family: inherit; } .bd-form__textarea:focus { outline: none; border-color: #027a94; box-shadow: 0 0 0 3px rgba(2,122,148,.08); } .bd-form__submit { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; padding: 12px 28px; background: linear-gradient(135deg, #027a94, #01b0c1); color: #fff; border: none; border-radius: 12px; font-weight: 700; font-size: .9rem; cursor: pointer; transition: box-shadow .2s; } .bd-form__submit:hover { box-shadow: 0 6px 20px rgba(2,122,148,.3); } .bd-form__login { text-align: center; padding: 16px; color: #64748b; font-size: .88rem; } .bd-form__login a { color: #027a94; font-weight: 700; text-decoration: none; } .bd-form__login a:hover { text-decoration: underline; } /* ── Sidebar ── */ .bd-sidebar { position: sticky; top: 80px; } /* ── Responsive ── */ @media (max-width: 900px) { .bd-layout { grid-template-columns: 1fr; gap: 20px; } .bd-sidebar { position: static; } .bd-article__body { padding: 24px 20px; } .bd-article__title { font-size: 1.35rem; } .bd-comments { padding: 0 20px 24px; } .bd-form { padding: 0 20px 24px; } }
Küçük Projelere CI/CD Eklemek Mantıklı mı?

Küçük Projelere CI/CD Eklemek Mantıklı mı?

Küçük Projelere CI/CD Eklemek Mantıklı mı?

“Küçük bir proje için CI/CD fazla değil mi?”

Bu cümleyi duymayan yoktur. Hatta çoğu zaman haklı gibi de durur. Birkaç dosya var, tek kişi çalışıyor, her şey kontrol altında… Neden ekstra bir kurulumla uğraşayım ki?

Ama mesele CI/CD’nin büyüklüğü değil, alışkanlık kazandırdığı yerdir.

 

Küçük projelerde asıl sorun ölçek değil, ihmal

Küçük projeler genelde şöyle ilerler:

• “Zaten ben yapıyorum”

• “Testi sonra eklerim”

• “Manuel deploy ederim”

 

Bu yaklaşım başta sorun çıkarmaz.

Ama proje biraz büyüdüğünde ya da araya zaman girdiğinde, aynı proje bir anda “dağınık” hissettirmeye başlar.

 

CI/CD tam olarak burada devreye girer:

unutmayı, ertelemeyi ve rastgeleliği azaltmak için.

 

 

CI/CD burada otomasyon değil, disiplin demek

Küçük bir projede CI/CD:

• Her commit’te test koşturmak

• Kodun çalışıp çalışmadığını otomatik görmek

• “Bende çalışıyordu” cümlesini ortadan kaldırmak demektir.

 

Bu, hız kazanmak için değil;

hata yapmayı pahalı hâle getirmek için önemlidir.

 

 

“Kurması uğraştırıcı” algısı artık eskisi kadar doğru değil

Eskiden CI/CD ciddi bir kurulum işiydi.

Şimdi ise birkaç satırla ayağa kalkabiliyor.

 

Örneğin GitHub Actionsgibi araçlarla:

• Projene özel

• Basit

• Gereksiz karmaşa olmadan

bir pipeline kurmak mümkün.

 

Buradaki amaç mükemmel sistem kurmak değil,

otomatik bir refleks oluşturmak.

 

 

Küçük projede CI/CD ne kazandırır?

• Projene dışarıdan bakma alışkanlığı

• Test yazmayı “sonra”ya atmamak

• Kodunu gerçekten bitmiş hissetmek

• Daha profesyonel bir portföy

Aslında CI/CD burada projeye değil, sana yatırım yapar.

 

 

Ne zaman mantıksız olur?

Şu durumlarda CI/CD eklemek gerçekten gereksiz olabilir:

• Tek dosyalık deneme projeleri

• Atılacak, devam edilmeyecek çalışmalar

• Sadece öğrenmek için yazılmış throwaway kodlar

 

Ama “bu projeyi portföyüme koyarım” diyorsan,

CI/CD artık lüks değil, sinyaldir.

 

 

Son söz

Küçük projelere CI/CD eklemek:

• Projeyi büyütmez

• Ama seni büyütür

 

Bugün küçük bir projede edindiğin disiplin,

yarın büyük bir projede seni ayakta tutar.

 

CI/CD’yi “kurumsal iş” gibi görmek yerine,

kendine saygı göstergesi olarak düşünmek daha doğru.

Yorumlar

Henüz yorum yapılmamış. İlk yorumu sen yap!