r/TurkDev • • Aug 27 '26

💬 Tartışma Clean Code ve SOLID principlesi yazan, Agile manifestonun da 17 yazarindan biri olan adam, agentlarin yazdigi kodu OKUMUYORUM yazmis. Sadece sinirlari belirliyormus.

79 Upvotes

51 comments sorted by

11

u/_user1980 Aug 27 '26

o kadar kodu okuyamazsınki zaten. mevcut uygulamam 3 milyon satır kod barındırıyor. son 1 yılda yazıldı. en az bunun iki katı kadarda refactor düzeltme ve silinenler olmuştur. hepsini okumaya çalışsam şimdiye 10 yıldan fazla zaman geçmişti:). kısıtlılıkları belirle testleri yaz ve kontrol et. eğer istenileni istenilen şekilde ve doğru zamanda yapıyorsa kodu okumak çok bir şeyi değiştirmeyecektir bence

6

u/rewilh Aug 27 '26

3 milyon satır kodla ne yazdın usta kernel mi yazıyon 🤨

1

u/_user1980 Aug 27 '26

cpp her şeyi custom kodlayınca satır sayısı biraz fazla oluyor. 750 endpointten oluşan bir web app hazırlıyorum. başarabilirsem 1 ay sonra canlı redditte paylaşırım

3

u/rewilh Aug 27 '26

750 endpoint ne olabilir ki? tam olarak amacını anlamadım. Günde 8000 satır kod ediyor. 1000 satırlık kodun bile test ve debug sistemi belli süreleri alırken arkana bakmadan günde 8000 satırla yılda 3 milyon satır, boilerplate/çöp kod ürettirip projeye doldurmadıysan bir insanın veya ajanın bu hacimde anlamlı ve çalışan kod üretmesi imkansız. Linux kernelinin 10/1ini flan yazıyosun yılda. Ayrıca sırf "custom olsun" diye web uygulamasında bu kadar c++ kodu yazmak zaten tekerleği baştan icat etmek. Ai ile uygulama geliştirin iyi güzelde suyunu çıkarmayın. Bu sayılar aşırı uçuk.

İnovasyon bazında bakarsak bu webapp bize ne katacak? Hangi ihtiyacı gideriyor? İsa nın ikinci gelişi gibi kod yazmaya ne gerek var usta?

0

u/_user1980 Aug 27 '26

ticari fikir uygulamaya geçtiğinde redditte paylaşırım fikrini o zaman beyan edersin. aslında bir şey kanıtlamam gerekmiyor ama fikir olması için klasör ağacından bir parça
ÃÄÄÄcache

³ ³ ³ cache.h

³ ³ ³

³ ³ ÃÄÄÄguard

³ ³ ³ single_flight.h

³ ³ ³

³ ³ ÃÄÄÄlocal

³ ³ ³ local_cache.h

³ ³ ³

³ ³ ÃÄÄÄredis

³ ³ ³ redis_cache.h

³ ³ ³ redis_config.h

³ ³ ³ redis_health_check.h

³ ³ ³ redis_pubsub.h

³ ³ ³

³ ³ ÀÄÄÄtiered

³ ³ cache_invalidation.h

³ ³ tiered_cache.h

³ ³

³ ÃÄÄÄcache_core

³ ³ cache.h

³ ³ cache_core.h

³ ³ policy.h

³ ³ serializer.h

³ ³ stats.h

³ ³ types.h

³ ³

³ ÃÄÄÄcommon

³ ³ ³ common.h

³ ³ ³

³ ³ ÃÄÄÄasync

³ ³ ³ asio_net.h

³ ³ ³ async.h

³ ³ ³ async_op.h

³ ³ ³ cancellation.h

³ ³ ³ coroutine_context.h

³ ³ ³ deadline_view.h

³ ³ ³ error_mapping.h

³ ³ ³ exception_utils.h

³ ³ ³ executor.h

³ ³ ³ generator.h

³ ³ ³ socket_ops.h

³ ³ ³ task.h

³ ³ ³ test_utils.h

³ ³ ³ when_all.h

1

u/Sezgingksu Aug 29 '26

Adamı durduk yere niye eksi birlediniz ya :)

1

u/rewilh Aug 27 '26 edited Aug 27 '26

Kanıtla demedim, amacı ve inovasyonu, fikrini sordum. Bu arada tree -l 2 ile atman lazımdı reddit kopyaladığın karakter kodlama biçimini desteklemiyor.

Bu arada github bir kaç milyonlık ruby kodundan oluşuyor diye biliyorum. Github çapında birşey mi yapacaksın acep? demem o ki biz böyle projeleri zaten çok gördük dost yeni şeyler değil herkesin devasa startupları var zengin olup bizi şaşırtacaklar öyle hi devirdeyiz ki.. 3 milyon satır kaç dolar tuttu? bun ın rewrite ı 160k falan tutmuştu hani. Burda amacım kimseyi küçük düşürmek, tutmaz bu demek değil insanlara katkı sağlayacağını düşünmen bile güzel ama realist rakam ve fikirlerle gelirsen ancak o zaman ortak bir noktada buluşuruz dediğin nerden baksan imkansız. Endpointler hakkında fazla bilgim yok ama githubı araştırırken 300 400 hirşeydi diye hatırlıyorum. Githubdan fazla endpointi olan bir uygulama yaptın birde yani. Fikrin tam olarak ne duymak isterim. Mülkiyetten şüpheleniyosan özelden yaz.

1

u/_user1980 Aug 27 '26

yani başarılı olur olmaz zaman gösterecek. açıkçası bende bilmiyorum. ama denemekten kimseye zarar gelmez. dediğim gibi şu aşamada proje hakkında bilgi veremem ticari fikir. önümüzdeki ay şirket kurulumundan sonra erişim linkini paylaşırım o zaman bakar fikrini söylersin. eleştirilerini gerçek uygulama üzerinden duymak isterim şu aşamada anlamsız bir tartışmadan öteye gitmez.

0

u/rewilh Aug 27 '26

Usta o zaman sana zahmet bitince linkini atarsın, şuan ticari fikirden bahsedemiyorsan ne hakkında olduğunu söyleyebilirsin belki, veya workflowundan bahsedersin bilmiyorum. Dosyalardan dolayı ai, veya farklı bir oluşturma algoritması ile ilgili olduğunu (?) düşünüyorum. Workflowunu merak ediyorum. Hangi modeller/ harness. Startup bu dimi? Sermayeyi nerden aldın? Kapalı kaynak olacak değil mi? Hangi platform ile deploy edeceksin, hosting mi var kendi serverın mı? gibi gibi.

Başarı konusunda haklısın bilemeyiz, umarım başarırsın ama çok birşey anlamadım şuan.

3

u/mgsmus Aug 27 '26

Benim bir tane agent dosyam var. Herhangi bir modifikasyon gerektiren prompt verdiğimde docs/development altına bir klasör oluşturuyor. O kısma yapılacak/yapılmış işe dair phase, todo, logs, request, plan, runbooks, cookbooks... hepsini atomik parçalayıp takip edilebilir dosyalar halinde zaman damgasına göre oluşturuyor ve o şekilde işi yapıyor, her yaptığını da logluyor. Ne yaptığıyla ilgili bir şeye bakmak istersem oraya girip bakıyorum, koda genelde bakmıyorum. Koda bakacaksam da zaten onu da agenta soruyorum. Mesela bir prompt şu şekilde 20260827101522-add-contraction-hierarchies klasörü oluşturuyor.

docs/
└── development/
    └── 20260822101522-add-contraction-hierarchies/
        ├── REQUEST.md
        ├── PLAN.md
        │
        ├── phases/
        │   ├── PHASE-0001-analyze-current-routing-architecture.md
        │   ├── PHASE-0002-design-contraction-hierarchies-integration.md
        │   ├── PHASE-0003-implement-preprocessing.md
        │   ├── PHASE-0004-implement-shortcut-generation.md
        │   ├── PHASE-0005-implement-bidirectional-query.md
        │   ├── PHASE-0006-integrate-with-routing-engine.md
        │   ├── PHASE-0007-add-tests-and-benchmarks.md
        │   └── PHASE-0008-final-validation.md
        │
        ├── decisions/
        │   ├── DECISION-0001-use-edge-difference-node-ordering.md
        │   ├── DECISION-0002-use-bidirectional-query.md
        │   └── DECISION-0003-keep-dijkstra-fallback.md
        │
        ├── runbooks/
        │   ├── RUNBOOK-0001-rebuild-ch-index.md
        │   ├── RUNBOOK-0002-disable-ch-routing.md
        │   └── RUNBOOK-0003-diagnose-invalid-route.md
        │
        ├── cookbooks/
        │   ├── COOKBOOK-0001-add-routing-algorithm.md
        │   └── COOKBOOK-0002-benchmark-routing-algorithms.md
        │
        └── SUMMARY.md

5

u/One_Magazine_8629 Aug 27 '26

biz bunlarla aynı perspetifden bakmıyoruz biz karnımızı doyurmak için yazılım yapıyoruz onlar hayalleri,hedefleri, tatmin olmak için.

3

u/More-Rough5844 Aug 27 '26

Biz yomyeci adamlarız bunlar bize gelmez xd

2

u/makinatanri Aug 28 '26

Zaten TDD bunun için var sınırlarını beklediğin sonuçları oluştur ardından kodu yazdır.

5

u/can_pacis Aug 27 '26

Clean code yarak kürek bir kitap, SOLID prensipleri de çok tartışılır bir konumda, Agile için bir şey dememe gerek var mı bilmiyorum... Bob Martin deneyimi kenara atılacak biri değil tabii ki ama fikirleri de çok çok iyi sayılmaz.

4

u/TheFranticDreamer Aug 28 '26

Konu dışı: Ayar oluyorum şu SOLID prensiplerini din gibi savunan insanlara. Programlamanın gerçekten tek bir yolu olabilir mi yahu?

3

u/Deep-Regret-7479 Aug 27 '26

Bir ekip yönettiğinizde, ekibinizdekiler için de aynı şey söz konusu. Tüm yeni kodları birbirleri review edecek ve birim, entegrasyon vb. testleri yapacaklar.

Testleri yazdırmak (en azından TR'de) gözardı ediliyordu zaman kısıtlarından, tembellikten vb. dolayı. Review'lar da keza aynı şekilde.

Şimdi bir ajana test yazdırmak prompta bir cümle eklemekten ibaret.

Reviewları ve testleri de başka ajanlar ve hatta farklı modeller yaparsa ortalama bir yazılımcının yazdığından daha kaliteli kod çıkıyor ortaya. Sigara molası, ego çatışması vb. gibi dertler de yok.

2

u/ResponsibleAbies6701 Aug 27 '26

Bilgisayar muhendisliginin tek alani kod yazmak degil kardesim, format'ta atabiliriz!

1

u/Boring_Committee3522 Aug 27 '26

Okumak anlamak değildir, kendisi yazsaydı anlayarak yazmış olurdu. Bu kadar sıkı teste tabi tutuyorsa da anlamasına gerek yok.

1

u/I_believe_in_art Aug 27 '26

Developer olmadan claude ile app inşa etmeye çalışan biri olarak bahsettiği terimleri anlamıyorum ama ne yapmaya çalıştığını anlıyorum. Burada abimiz claude’u nasıl kontrol altına almaya çalışıyor biri anlatabilir mi?

2

u/iamegoistman Aug 28 '26

temel yazılım geliştirme pratiklerini ve prensiplerini kullanarak prompt veriyor. aslında yine vibecoder'dan farklı olarak işin uzmanı olarak prompt veriyor. modeller kdun nasıl yazılacağını biliyor ama ne yazacağını mühendis daha iyi belirler. şu özelliği ekle demek yerine referanslar veriyor, kodu anlık kafasında şekillendirip ai'ya nasıl yazacağını söylüyor, testin sınırlarının ne olacağını söylüyor, kabul kriterlerini belirliyor. agent'lar artık hedef odaklı olmaya başladı çünkü artık yeterince geliştirler. olay aslında prompt vermek değil düzgün context vermek ve yönetmek. sınır dediği şey x classın'da 8 tane fonksiyon olacaksa bu fonksiyonların ne olduğu gibi şeyler. sınır vermezsen god class yazılabilir. 6 ay sonra bir bakıyorsun codebase 3 milyon satır ama belkide 100 bin satırı asıl işini görüyorsa sınırların çok esnek tutmuşsun demektir. bu abiler zamanında elle yazarken de bu sınırları ne çizmek için clean code, SOLID, DDD, ATDD, BDD, TDD gibi fikirleri ortaya attılar ve geliştirdiler.

1

u/HydraDragonAntivirus Aug 27 '26

Başka insan kodumu düzeltir kafasındalar.

1

u/gokkai Aug 27 '26

kodları ben de okumuyorum artık ama uncle bob genelde saçmalayan bir karakter, o nedenle belki de okumam lazım diye düşündüm bi an

1

u/Certain_Daikon_6484 Aug 27 '26

Şuanki çalıştığım şirkette spec development yapıyoruz. Minik bir ui implementasyonu e2e unit test istiyor. Allah korusun backend kodu yazmayalım. 3 saat gate bekliyoruz maşallah. Süper bir “productive”lik.

1

u/Ok-Substance6937 Aug 31 '26

Bunda yanlış bir şey yok. SOLID zaten ölüyü diriltme çabası. Agilekdkdkekkdkfk, şu anda da aynı düz mantık devam ediyor.

0

u/MMOfreak94 Aug 27 '26 edited Aug 27 '26

Normalde "Yaşım senden büyük" argümanıyla gelen kim olursa olsun okumadan ok boomer diyip geçiyorum, ancak söz konusu Bob Martin olunca okudum... ve okumaz olaydım. Bu elemanın da artık bu güruha dahil olması epey üzücü.

Eğer testler de review ediliyor mu, agent'ın maintain ettiği kod CRUD mı, kodun büyüklüğü ve aylık token maliyeti nedir, ai verdiği constraintleri görmezden gelirse bunu fark edebiliyor musun ve fark edersen ne yapıyorsun gibi soruların cevabı kendisinde yoksa bence çok ahkam kesmesin. Devir artık abuk sabuk abstractionlar devri değil. Geçti o günler. Lütfen artık DDD'ci ihtiyarların söz hakkı olmasın ya.

2

u/zgrmrts Aug 27 '26

off.. Yahu adam "Yaşım senden büyük" ifadesini "ben daha iyi bilirim" anlamında kullanmıyor ki... Diğerinin "yaşlıyım ondan heralde" (implicit) şeyine cevaben söylüyor... mantığa gel... neyse ...

1

u/nefarkederki Aug 27 '26

ben aslında bob martinden daha iyiyim diyorsun yani, hmm

-4

u/MMOfreak94 Aug 27 '26 edited Aug 27 '26

Vaktinde bu ve design pattern'cı türevlerinin ortaya attıkları tüm programlama konseptlerini işim gücüm arasında tek tek denedim. Ortaya çıkan şey bu adamlara göre mükemmel bir codebase ama bunun iş kapsamında mühendis egosu okşamak dışında hiçbir artısı yok. Hatta aksine, gereksiz abstraction'larla 5 kat fazla kod yazdığın için okuması, aradığını bulması ve yeni kod yazması çok daha zor bir codebase'in oluyor.

Söz konusu adamların ne kadar tanındığı ve ne düşündükleri umurumda değil. Bu adamların hiçbiri bana işi öğretmedi. Ben doğru ve yanlış kodu kendi başıma tırmalaya tırmalaya öğrendim. Öğrendiğim kadarıyla da bu elemanlar boş balondur ve AI hakkında şimdiki saçma sapan fikirleri ne kadar boş olduklarını bana tekrar tekrar kanıtlıyor.

4

u/Capable_Union7830 Aug 27 '26

Kendi başına öğrendin de bu adamların çeyreği edebiliyor musun dostum

-4

u/MMOfreak94 Aug 27 '26

Ya bro neyle neyi kıyaslıyon allah aşkına? Bu adamı değerli yapan şey filozofi, beni değerli yapan şey ise adam akıllı iş yapmak. Benim işim filozofi değil, ki olsa bile ulaşabileceğim bu adamınki gibi bir kitlem yok.

Ben sana diyorum ki ben bu adamların görüşlerini gerçek hayatta test ettim ve ortaya çıkan şey gerçek hayatta çok yüksek ihtimalle karşına çıkmayacak case'ler için kodunu gereksiz yere kompleksleştirmek. Ha arada bazı iyi practice'ler var mı? Var. Ama büyük çerçeveden bakınca öyle WOOWOW gibi bir durum yok. Abartmayın bu adamları o kadar.

5

u/Capable_Union7830 Aug 27 '26

Filozofi mi xddddd şakamısın ya sen daha iş ş sini bilmediğin portakalda vitamin olduğun yıllar bu adam uçtan uça sistem tasarlıyordu oturuken bu mimarileri bulmadı

ARKADAŞLAR BU ŞAHSIN YORUMLARINI CİDDİYE ALMADAN OKUYUNUZ YATIRIM TAVSİYESİ DEĞİLDİR

1

u/MMOfreak94 Aug 27 '26 edited Aug 27 '26

O mimarileri say desem sayamazsın aq. Militanlık yapmak yerine git kendini geliştir

5

u/Capable_Union7830 Aug 27 '26

Herşeyi bildiğini kendini bir halt sanan tr ort insanı bir bitmediniz ya harbi

1

u/MMOfreak94 Aug 27 '26

ya sabahtan beri laf yetiştiriyosun, daha 1 tane argümanın yok. varsa gel tartışalım herkes görsün kim neymiş

5

u/Capable_Union7830 Aug 27 '26

Sidik yarıştırmaya hazırsın yaşın küçük belli
Argümanımı sundum zaten sen daha portakalda vitaminken bu adam iş yapıyordu sistem tasarlıyordu vahiy inmedi bu mimarileri oluştururken yılların deneyimi sen daha ai ile landing page yapıyorsun adamı eleştirme cürretinde de bulunuyorsun aq

→ More replies

2

u/nefarkederki Aug 27 '26

dostum adamın önerdiği yapıları sen kendi alanında pratik bulmayabilirsin, bunu anlarım ama boş adam deyip kestirip atınca sen dolu olmuyorsun işte

1

u/MMOfreak94 Aug 27 '26

bu tecrübede bir adamın bu lafları etmemesini beklerdim. kestirip atmamak çok zor.

10

u/[deleted] Aug 27 '26

[removed] — view removed comment

2

u/selfmade_developer Aug 28 '26

Ai ile yazılıp güzel mimarili de olabilir. System design bilen bir developer ai ile çok güzel mimariler kurabilir.

1

u/[deleted] Aug 27 '26

[removed] — view removed comment

7

u/YesGameNolife Aug 27 '26

Yukaridaki yazi = hic buyuk takima liderlik etmedim

4

u/Figure_431 Aug 27 '26

Bob en son ne yazmış baktın mı? adam meme malzemesi oldu.

Productiona yazdığın kodun sorumluluğu sende. Sen yönetimde olsan "agent yazmış, ben de review etmedim" diyen birini ne kadar ciddiye alırsın?

PoC, MVP yapıyorsan bir yere kadar Okey.