Bilmek istediğin her şeye ulaş

Bir yazılım projesinde; karşılaşılan hata üzerine gitmek mi yoksa kodu baştan yazmak mı daha faydalıdır?

Eğer hata iş akışının yanlış kurgulanmasından kaynaklı ise hatanın birini çözersin karşına bir başkası çıkar. Eğer şartlar müsait ise projeyi sil baştan yazmak daha mantıklıdır. Ama sadece bir modül hatalı ise hatanın giderilmesi yada  sadece o modülün yeniden yazılması mantıklı olandır.

Kısaca Bu sorunun cevabı; Hatanın durumuna, firmanın ve kullanıcıların mevcut şartlarına göre değişir. Bazı durumlarda onarmak bazılarında yeniden yazmak doğru olandır...
  • Paylaş
Hatanın niteliğine bağlı bence. Bir tasarım ve mimari hata ise zaten ardı arkası gelmeyecek hatalar ile karşılaşılacağı için yeniden yazmak mantıklıdır. Tabi burada yeniden yazıma, yeni bir tasarım  ve mimari çözüm ile (gerekiyorsa) girmek gerekir aksi takdirde, yeni hatalar bir öncekine benzer formda yine alınır.
Fakat hata basit ve OOP'de metot veya en fazla class scoped türü bir hata ise yeniden yazmak anlamlı olmaz.
Temelde yeniden yazma alternatifi en son denenecek şey olmalı. Türkiye'de insanları bu yola sevk eden motivasyon çoğunlukla yazılım mühendisliği disiplinlerinin kavranmamış olması, ve tabi bağlantılı olarak kişilerin biraz da egosundan kaynaklı herşeyi kendisi ile başlatma eğilimi bence.
 
  • Paylaş
  1. Projeyi baştan yazmak hiçbir zaman "daha mantıklı" değildir. Tamamen kod okumanın kod yazmaktan daha zor olmasından kaynaklı bir "kaçış yolu"dur. Hiçbir programcı kod okumayı sevmez.
  2. Eğer projeyi yeni devraldıysanız ve yapılması gereken çok kalem iş varsa, yeniden yazmayı düşünebilirsiniz, ama inanın yeniden yazarak sandığın gibi "çok daha hızlı" ilerleyemezsiniz.
  3. Önce oturup bir hafta boyunca gereksinim vb planlar çıkarmayacaksanız yeniden yazmanın hiçbir anlamı yoktur.
  4. Belirli bir noktaya gelmiş, kullanım olarak büyük hatalar içermeyen, çalışır vaziyette olan, hele hele devreye alınmış bir projeyi yeniden yazmak projenin bir süre için durması anlamına geleceğinden hiçbir proje yöneticisi yeniden yazmanızı onaylamayacaktır.
  5. Beğenmediğiniz noktaya gelmesi üç ay süren projeyi yeniden yazmaya başladığınız andan itibaren yine en az üç ay sürecektir.

Uzun lafın kısası, yeniden yazmayın. Olanı bitirin, hataları giderin. İnanın daha hızlı olacaktır.
  • Paylaş
1

Ali Iybar, Necmettin bey'e katiliyorum. Benim argumanlarim biraz farkli ancak sonuc ayni. Kendi isin degilse projeyi yeniden yazma esnasinda kaybedecegin zamani ustlerine anlatman, kazanacagin faydalari gostermen neredeyse imkansiz olacaktir.
Devraldigin program kod spagettisi olabilir, arka planda mantik hatalariyla dolu olabilir ancak kullanicilar on tarafta sadece zaten isleyen bir yapi gordukleri icin senin yaptiklarini hic bir zaman idrak edemeyeceklerdir.

Her ikisini de yasadim. Berbat durumda iki defa yazilim devraldim. O zamana kadar yazanlar iki durumda da kacmislardi. Birinde is yerine ve ise olan saygimdan yeniden yazdim ancak kaybettigim zaman yuzunden birak takdir gormeyi surekli problem yasadim. ikincisinde tecrube oldu sadece yamalar yaptim. Icime sinmedi, kodlar hala spagetti gibi, 1 tane olmasi gereken proje 7 ayri proje ve 2 ayri dil iceriyor, icinde mantik hatalari ve yanlis database islemleri dolu bir istegi projede uygulamak icin taklalar atiyorum ama sonucta bakinca daha fazla takdir gordu.

Tabi ki karşılaşılan hata üzerine gitmek. Hataların sebebini buldukça o hatayı bir daha yapmazsın, bu bakımdan da kendini geliştirirsin. Kodu baştan yazdın yine hata aldın yine mi baştan yazacaksın. Her yazdığında hata alıyorsun hep en başa sarıp baştan mı yazacaksın, peki proje ne zaman bitecek?
Her yanlış bir doğru öğretir. Daima hatalarının üstüne git bu şekilde hata yapmamayı öğrenirsin. Bu aşamadan sonra profesyonel olarak kod yazan birisi olursun zaten.
  • Paylaş
3

Serkan Köse, Bu; birebir olarak her yazılım projesinde yaşanan ve yazılımcıyı ileriye taşıyan en iyi yaklaşımlardan biridir.

Yasin Baran, Aynen hocam.Hatalarının sebebini anlamaz isen kodu baştan yazsan da büyük ihtimal yine aynı hatayı yapacaksın.

Başdan yazmak yerine satır satır tekrar incelemek uzun ve zahmetli olsada başlanılan işi bitirmek için idealdir.
  • Paylaş
İyi bir yazılımcıyı diğerlerinden ayıran en önemli yetenek, hata çözebilme kabiliyetidir.
  • Paylaş
Hata üzerine gidersen hatanın nedenini doğuracağı sonuçları bilirsin ve o hatayı bidaha ya yapmazsın yada çözümü zaten biliyosundur.
  • Paylaş
Dürüst olalım, projede ne kadar yol katedildiğine de bağlıdır.

Eğer yaptığın projede kullandığın dilde veya platformda yeniysen baştan başlayarak düzenli olarak yazmaya çalışmak hatayı düzeltmekten ziyade düzeltilemeyecek hatalar yapmamayı öğretebilir ki bence çok daha önemlidir.

  • Paylaş
İyi bir programcı üzerinde çalıştığı programı yazarken hata yapmamak için uğraşır. Eğer program sürekli hata veriyorsa hatanın nerde olduğunu bulur ve çözer. Bence yazılım hata verse bile baştan başlamak biraz saçma olur. Hatayı bulup düzeltmek hem zaman kazandırır hemde yazılıma yeni özellikler katmak için fırsat bulunur.
  • Paylaş
Bir pire için bir yorgan yakılmaz diye düşünüyorum.
  • Paylaş
Hata üstüne gitmek her zaman daha sabır gerektirse de genelde çözümü 24-48 saat içinde bulunur gibi duruyor...
  • Paylaş
Hata üzerine gitmek daha mantıklı, çözülemiyecek hata çok nadirdir kodları baştan yazmak hatayı düzeltmekten daha fazla zaman alabilir.     
  • Paylaş
Bence de hata üzerine gitmek en mantıklı seçenek.
  • Paylaş
Hatanın boyutuna ve cozulebılırlık oranına baglı olsa gerek.
  • Paylaş
Öncelikle projeye başlamadan önce log tutmaya ağırlık vermek gerek. ardından karmaşık bir yapıdan kaçınmalısın, bunların ardından hata'nın üzerine gitmek ve en kısa sürede çözüm üretmek çok daha kolay olacaktır. ha birde unutmadan projeyle ilgili doküman hazırlamak ta işini kolaylaştıracak ekstra bir yöntem
  • Paylaş
Çözmen gereken hata, sürekli başka hataları oluşturuyorsa o zaman yeni baştan yazmak daha iyi olabilir. Fakat yeni baştan yazmak her zaman için çok daha zordur. Belki mevcut kodları daha anlaşılabilir bir yapıya/kurguya dönüştürmek daha mantıklı olur.
  • Paylaş
Her iki ihtimalde de programcılar gözlük kullanma yaşına çabuk ulaşıyor. :)
  • Paylaş
Elbette üzerine gitmek.Baştan kodu yazarsan farklı yeni bir hatayla karşılaşmıyacağın ne malüm.Ayrıca hatayı çözmezsen farklı bir bakış açışısı getirmen zor.
  • Paylaş
Yazılım oluşturulurken yapılan hata eğer mantıksal bir hata ise geçmiş olsun. Yine baştan yazmak mantıklı değil ama zaten bir o kadar zamanı doğru mantık kurgularken harcarsın. Fakat küçük bir hata ise 1-2 klavye tuşuyla da aşabilirsin. Yani sonuç olarak sıfırdan başlamak biraz hamallık olur fakat seni zorlucak bir mantık hatası var ise de sıfırdan başlamaktan kaçınmamalısın...
  • Paylaş
Hataya ve projeye göre değişebilir bence.genel bir cevap vermek yanlış olur.ancak genel olarak şöyle denebilir hatayı bulup var olan sistemde bu hatanın giderilmesinin sağlanması ve yeni iyileştirilmelerin yapılması çoğu zaman yeterli olucaktır.
  • Paylaş
Projenin ne aşamada olduğu ile bağlantılı olarak karar verilmesi gerekir.

Yayında olan bir uygulama için hata gidermek zorundaysanız hem süre kısıtı vardır, hem müşteriler tarafından tepkiler gelir kısaca çok kısa sürede çözüm üretmek zorunda kalabilirsiniz. Ve bazen bu şartlarda hata bir türlü bulunamaz veya yeteri kadar incelenemez. Bu yüzden projenin en başında loglama konusuna özellikle ağırlık vermek gerekir. Program akışının ne seviyede takıldığını debug yaparak değil de detaylı log kayıtlarından takip edebilmek çok daha efektif ve kolay bir yoldur.

Mesela loglardan konunun sizin kodunuzdan değil de kullanılan 3. parti bir bileşenden kaynaklandığını görüp zorunlu olarak yeni bir yoldan tekrar yazmaya başlayabilirsiniz.

  • Paylaş

Bir yazılım projesinde karsılanan hata üzerine gitmen daha iyidir senin açından cünkü hatayı nerde nasıl yapıcağını bulursun ve hatayı araştırırken bilmediğin cözümler üretebilirsin.

  • Paylaş
Sonuçta bir proje ve bir süreç süreçte yola çıkar iken hataları düzeltmek için çıkılır bence hataları düzelt vazgeçmek hayal kırıklığıdır.. .
  • Paylaş
Hata gidermek iyidir, tecrübe ve projeye hakimiyeti arttırır. Yeniden yazmak amatörlerin işidir :) Fakat bu cevaplar projeye, zamana ve detaylara göre değişir. Bazen bug fixed iyidir bazen remodeling iyidir.
  • Paylaş
Eger kodu bastan yaziyorsan o yazilim projesi degildir.
  • Paylaş
2

Necmettin Begiter, @Hakan
Gerekli durumlarda kodun baştan yazılması çok normaldir. BaseCamp, sürüm 3'te tüm kodu baştan yazdı. Daha bir haftalık olay.
Sürekli yamalanan bir yazılımın biriktirdiği teknik borç bir süre sonra yazılımın yenilenmesini gerektirir.
Bir yazılımın uzun ömürlü olabilmesi için zaman zaman elden geçmesi, yenilenmesi gerekir.

Seda Sinek , Kod sana aitse zaten nerden hata verir anlayabilirsin. Kod sana ait değilse o zmn önce analiz etmelisin.. Ya da hatani googledan aratabilirsin, en azından yol gosterir..Ne olursa olsun hatanın ustune gitmelisin

Sonraki Soru
HESAP OLUŞTUR

İstatistikler

4619 Görüntülenme39 Takipçi25 Yanıt