Başka Birinin Kodunu Düzenlemek

Başlatan serhat1990, 09 Eylül 2012, 11:29:02

serhat1990

Merhaba PicProje Ailesi ,

Başka birinin yaptığı bir proje üzerinde değişiklik yapmak çok zaman alabiliyor. Örneğin benim yapmadığım daha önceden yapılmış bir proje üzerinde değişiklik yapmak bana ölüm gibi geliyor. Hangi yolu izlemiş bak , neler yapmış bunu nerede kullanmış , şunu nerede kullanmış , gibi yüzlerce soru kafamda dönüyor. Başka birinin kodlarını incelerken ne gibi bir yol izlemeliyiz. Bazen baştan yazmak çok çok daha kolay oluyor. Hele birde kodların yanında açıklama yoksa...

Bu sorunları aşmanın yolu sizce nedir , oturup baştan yazmakmı ? , yoksa diğer kodları anlayıp düzenlemekmi ?

gevv

hocam  soruyu sorup cevabıda veriyorsunuz :D
 

t2

Benim de yakında böyle bir işim olacak. 
Adamla iyi geçinip ara sıra  çay içtiğimiz cepten arayabildiğim için sorun olmaz kanaatindeyim.

Ama külahları değiştiyseniz kendisine  ulaşamıyorsanız durum kötü.

Kodu baştan yazmak mümkün ama, uzun zamandır denenmiş olduğu için başkasının yazdığı kod tercih edilebilir.

Andromeda

Programın ne yaptığı, girişler çıkışlar bunlar önemli..bunlar varsa programı yazmak daha kolay olabilir..aynısı olmaz ama netice aynı olur.
Değil başkasının yaptığı,  kendi yaptığı programın bile içinden çıkamaz insan, akış diyagramı ve açıklamalar yoksa..
" Tanrı, iradesini hakim kılmak için yeryüzündeki iyi insanları kullanır, yeryüzündeki kötü insanlar ise kendi iradelerini hakim kılmak için Tanrı'yı kullanırlar." ..." Tanrı'dan mesaj gelmiyor, biz Tanrı'ya mesaj gönderiyoruz"

serhat1990

Alıntı yapılan: gevv - 09 Eylül 2012, 11:31:16
hocam  soruyu sorup cevabıda veriyorsunuz :D

Hocam umut işte belki daha iyi bir yol çıkar diye :) :)

Alıntı yapılan: t2 - 09 Eylül 2012, 11:33:30
Benim de yakında böyle bir işim olacak. 
Adamla iyi geçinip ara sıra  çay içtiğimiz cepten arayabildiğim için sorun olmaz kanaatindeyim.

Ama külahları değiştiyseniz kendisine  ulaşamıyorsanız durum kötü.

Kodu baştan yazmak mümkün ama, uzun zamandır denenmiş olduğu için başkasının yazdığı kod tercih edilebilir.

Hocam malesef şirketten çıkarken sorunlu ayrıldı ve böyle bir imkan yok ... O yüzden baştan daha kolay olur gibi geliyor...

Alıntı yapılan: elek - 09 Eylül 2012, 11:40:10
Programın ne yaptığı, girişler çıkışlar bunlar önemli..bunlar varsa programı yazmak daha kolay olabilir..aynısı olmaz ama netice aynı olur.
Değil başkasının yaptığı,  kendi yaptığı programın bile içinden çıkamaz insan, akış diyagramı ve açıklamalar yoksa..

Aynen hocam katılıyorum geçen sene yaptığım bir projede değişiklik yaptım bu sene kodlara bakınca ben seni nasıl yazdım ya diye kendime sormaya başladım :) Allahtan kendi kodlarım akış diyagramı , kodların açıklaması fonksiyonların açıklaması varda 2 saat bakmayla tekrar hatırlıyorum. Ama başka birinin kodlarında bu geçerli olmuyor...


serhat1990

Alıntı yapılan: gerbay - 09 Eylül 2012, 13:55:54
hocam kodlar çok değil ise yeniden yazmak da çözüm olabilir ama yeniden yazmayacaksanız işe önce kodları formatlamak ile başlayın. daha sonra mantıksal olarak blok blok parçalayıp bloklar arasındaki ilişkileri, geçişleri inceleyin. bazen bazı kişilerin yazdığı kodlar okunamaz olabiliyor ya da ortal bir "coding standard" yok ise sizin sitilinizden farklı yazılan kodları okumakta zorlanabilirsiniz.. ben işe kodları yeniden formatlayarak başlıyorum. bu işi otomatik yapan bir çok program da var..

Hocam biraz daha detaylandırabilirseniz sevinirim. Önceki kod yapısını benim anlamam pek mümkün değil gibi duruyor inceliyorum fakat fonksiyonel yapı çok fazla karmaşık yani fonksiyonlar gereğinden fazla uzun yazılmış , ve fonksiyonlar hakkında ufacık detaylar bile yok en azından fonksiyon ismi yapılan işleme yönelik olabilir ama o bile yok diyebiliriz.

Ayrıca Hocam biraz uzun bir program o yüzden yeniden yazma yada düzenleme arasında gidip geliyorum sonuçta oturmuş bir program testleri falan yapılmış , yeniden yazmanın test etmek , ölçüm yapmak vs gibi zaman kaybı yaratacak dezavantajları olabilir.

kantirici

@gerbay hocam kodları yeniden formatlamakla neyi kastediyorsunuz acaba?

X-Fi

Alıntı yapılan: serhat1990 - 09 Eylül 2012, 11:58:27

Hocam malesef şirketten çıkarken sorunlu ayrıldı ve böyle bir imkan yok ... O yüzden baştan daha kolay olur gibi geliyor...



Benim yazdığım kodun üstünde kimse değişiklik yapamıyor bu hep böyledir, en zorudur. Benden sonra gelenlerede tavsiyem kendi kodlarını geliştirsinler. Kod konusunda biyerlere bağımlı kalmak yerinde saymaktan başka bişey değil.

Kolay gelsin. 
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

serhat1990

Hocam sizce bu durum kendi kodunuz üzerinde değişiklik yapmak isterseniz sıkıntı yaratmıyormu ?

X-Fi

Bir daha uğraşmayayım diye kodu açıklamalarla dolduruyorum o kodun ne iş yaptığına varıncaya kadar en bilinen ayrıntıları bile not alıyorum. Kodu yazarken karşılaştığım hataları güncellemeleri maddeler halinde uzatıyorum. Kodun blog diyagramını ayrı bir pdf halinde saklıyorum(bazen kağıda çizip resmini çekerdim). Ulaşmak istediğim yere doğru varabilirsem gerisi geliyor zaten. Yıllar geçse de küçük bir değişiklik gerekse kodun hepsini analiz etmeden açıklamalarla yolumu buluyorum.

Tabi bu işlerin bi sıralaması var örnek veriyorum patronun sana şu işi yap dedi, sonra dur!! Hadi şimdi bununla devam et... Tamam şimdi asıl işine geri dönebilirsin. Dediği zaman kontrolü kaybedebilirsin. O zaman usta olursun ama programcı olamazsın. :)
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

serhat1990

#10
Anladım Hocam :)

Şunda katılıyorum , bende kodlarımın açıklamasını yazarım ayrıca kodları yazdığım dosya içine mutlaka uzunda olsa bir yazı yazarım bu yazıda programın akışı net bir şekilde anlatılır. Örneğin , adc ' yi okuyup falanca değişkene atıp oradan bu değeri ccp1 ' in pwm1 ' in iş süresi olarak belirlerim gibi uzun bir açıklama yazarım. Biraz hammallık gibi geliyor fakat işe yarıyor diye düşünüyorum.



mesaj birleştirme:: 09 Eylül 2012, 15:06:27

Alıntı yapılan: gerbay - 09 Eylül 2012, 15:02:20
hocam kodların hizalamalarını, parantezleri, blokların iç içe geçmesini vs. düzelten kod formatlama yazılımları var. kodda değişiklik yapmıyor, kodun okunabilirliğini, görülebilirliğini artırıyor.

hatta dünyada kabul görmüş kodlama stilleri var, onlarda şalon olarak geliyor. mesela GNU nun kendi kodlama stili var. microsoft un MFC yi yazarken kullandığı kodlama stili var. kodlarınızı o kodların kodlanma stiline çevirebiliyor bu yazılımlar..

http://www.sourceformat.com/code-formatting.htm


Hocam bu programlar ne kadar güvenilebilir acaba ? İnceledim çok güzel duruyor... Bir tane karışık olan bir kodumda denedim gayet güzel gözüküyor. Uzun programlarda sıkıntı yaparmı acaba ?

serhat1990

Anladım Hocam Teşekkürler ,

Sizde biliyorsunuz ne kadar baştan dikkatli yazacam desende gözden kaçabiliyor kaptırıyorsun kendini sonra bir bakmışın parantezler düzensiz duruyor kodlar kaymış gitmiş vs :) Biraz incemek lazım.

peko


Hocam bu gibi durumlarla malisef günümüz şartlarında karşılaşmamak kaçınılmaz oldu demek ki... En iyi yol bence elbette işi yeniden kodlamakta yatıyor. Ama bazen öyle bir noktada kalıyorsunuz ki, geçmişi uzun olduğu gibi kodlamaya kalktınızda da zaman alacak bir durum ortaya çıkıyor. Özellikle live sistemlerde baş ağrısı oldukça fazla bu konuda..

Eğer karşınızdaki kişi "aşmış" bir kişiliğe sahipse zaten gerekli bilgiyi size verip, metadolojiyi anlamanızı sağlayıp yola devam etmeniz için gereken tüm detayı anlattığında kaldığı yerden aynen devam edebilirsiniz.
"Aşmış" olmayan kişilerden bunu beklemek tabii ki mümkün değil. Bu durumda zamana göre davranmak en akılcı çözüm. Vakit varsa baştan yapmak, yoksa live sistemi devam ettirecek seviyede yama yapmak ama mutlaka hakim olunacak şekilde de paralelde yeni bir kodlamaya girişmek gerek. (Yeni teknoloji, yeni metadoloji, gelişmiş fonksiyonlar, atılmış fazlalıklar vs ile..) 

Kısacası ; kısa bi "offf" çekip, kolları sıvayıp, gerekli alet edavatı yanımıza alıp "Bilmillahirahmanirrahim" diyerek girişmek :)
" Bazıları zeka'sını iş'i zorlaştırmak için, bazıları ise kolaylaştırmak için kullanır.. "

kantirici

@gerbay hocam açıklama için teşekkürler.Yeni bir şey daha öğrendim.

serhat1990

Alıntı yapılan: peko - 09 Eylül 2012, 17:59:00
Hocam bu gibi durumlarla malisef günümüz şartlarında karşılaşmamak kaçınılmaz oldu demek ki... En iyi yol bence elbette işi yeniden kodlamakta yatıyor. Ama bazen öyle bir noktada kalıyorsunuz ki, geçmişi uzun olduğu gibi kodlamaya kalktınızda da zaman alacak bir durum ortaya çıkıyor. Özellikle live sistemlerde baş ağrısı oldukça fazla bu konuda..

Eğer karşınızdaki kişi "aşmış" bir kişiliğe sahipse zaten gerekli bilgiyi size verip, metadolojiyi anlamanızı sağlayıp yola devam etmeniz için gereken tüm detayı anlattığında kaldığı yerden aynen devam edebilirsiniz.
"Aşmış" olmayan kişilerden bunu beklemek tabii ki mümkün değil. Bu durumda zamana göre davranmak en akılcı çözüm. Vakit varsa baştan yapmak, yoksa live sistemi devam ettirecek seviyede yama yapmak ama mutlaka hakim olunacak şekilde de paralelde yeni bir kodlamaya girişmek gerek. (Yeni teknoloji, yeni metadoloji, gelişmiş fonksiyonlar, atılmış fazlalıklar vs ile..) 

Kısacası ; kısa bi "offf" çekip, kolları sıvayıp, gerekli alet edavatı yanımıza alıp "Bilmillahirahmanirrahim" diyerek girişmek :)

:):) Katılıyorum Hocam...