9 Ağustos 2019 Cuma

Legacy (Miras) Kod İle Çalışmak

Giriş
Bazen şöyle sorular geliyor.
X şirketi nasıldır, çalışma ortamı memnu eder mi?

Ben de genellikle şirketten çok çalışılan proje ve insanlar daha önemli diyorum.  Eğer proje legacy yani miras diye tabir edilen bir proje ise bazı şeylere dikkat etmeli.

Ne Zaman Uzak Durmalı
- Legacy kodu bilen yoksa
- Bildiğini iddia edip ben bile hatırlamak istemiyorum diyen birileri varsa
- Alan uzmanı/uzmanları basitlik yerine daha da karmaşık şeyler talep ediyorlarsa
- Legacy kod dokümantasyona sahip değilse
- Testler varla yok arasında ve kırılgan ise
- 10 sene önceki kod isterse Java ile yazılmış olsun

yine de

Modernizasyon, İyileştirme, Faz X, Blok X, Aşama X vs. başlıkları altında önümüze gelen bu projelerden mümkünse uzak durmak lazım.

Legacy Kod İle Gördüğüm Bazı Problemler
1. Teknik Dokümantasyon Eksikliği
Bu işle bir yerde başlamak gerekiyor. Açıklaması şöyle
What you can do is while you learn how everything works write it in word or even txt documents so you will have a basic documentation which you can always refer to or if someone new arrive in the company you can give it to him and he will complete it with what he thinks is missing.
2. Interface + Tek Sınıf
Eski kodlarda niyeyse bu çok kullanılmış. Bence bu gerekli değil ve mümkünse kaldırılmalı.Açıklaması şöyle.
“Program to interface, not to implementation” doesn't mean you should pair each and every one of your domain classes with a more or less identical interface. In doing so, you are violating YAGNI, and lowering the readability and maintainability of your codebase.
Interface eğer aynı işi yapan birden fazla nesne varsa gerekiyor. Açıklaması şöyle.
We use interfaces in order to group together objects with similar behavior. However, when an object does not share similar behavior with any other objects, there is no need for this grouping; that object is already uniform by default.
Do I need to use an interface when only one class will ever implement it? sorusunda benzer cevaplar var.




Hiç yorum yok:

Yorum Gönder