Programı geliştirmeye korkuyorum

Başlatan Zoroaster, 08 Ocak 2017, 15:02:19

Zoroaster

Visual programlamayı sistematik öğrenmedim. DOS zamanından kalma alışkanlıkları kullanarak önce VB daha sonra Delphide bir iki deneme yapıp  istediğim kodlamaları yapabildiğimi ve yazdığım kodların çalıştığını görünce
windows program yazımına devam ettim.

Takıldığım durumlarda gerek forumdan gerek googledan yardım alarak ihtiyacım olan kodlan yazıp proje üretebiliyorum.

Fakat şöyle bir sorunum var;

Başlayıp sonuçlandırdığım ve artık bir tool olarak kullanmaya başladığım projeyi zaman içinde yeni fikirler/ihtiyaçlar doğrultusunda daha da geliştiriyorum. Öyleki 2 sene önce bitirdiğim projemi hala geliştirmeye devam ediyorum.
Ancak ilerleyen dönemlerde, binlerce satıra ve karmaşaya ulaşmış proje üzerinde değişiklik yapmaya korkar oluyorum.

Bu tip sıkıntılar yaşamamak adına yürütülen projeyi yenilik yapacağım derken projeyi çalışamaz hale getirme korkusu olmadan geliştirebilmek için sıfırdan projeye başlarken ne önerirsiniz?



Seytan deliginden kacti.

malaga

Açıklama satırları en iyi çözüm çünkü ne olursa olsun bir hafta sonra bile yazdığım programa baktığım Zaman burası ne is yapıyordu diye 1 saat düşünüyorum ama açıklama satırları yazdığım programlarda bu enkazlar 5 dakikamı alıyor ama açıklama satırlarınıza yazarken biraz insan üşeniyor ama sonra kazandır digi vakit çok fazla oluyor
Hiç bir kimsenin gönlünü yapmak için Allahın hükmünü çiğneme

ByTEK

Aynı sıkıntı bende de oluyor. Ama kendimi açıklama satırlarına vurdum.. Şuanlık tek tesellim açıklama satırları.. Varsa başka bir yöntem bende öğrenmek isterim.

muhendisbey

Nesne yönelik program yaz. Class olarak programlarını yaz ve class kartı oluştur. Böylece yazdığın classları başka programda da kullanabilirsin. Örneğin seri iletişimi bir class yap, USB Hid'i başka bir class yap. Projende seri iletişim lazım olunca class kartına bak, girdi ne çıktı ne, sonra dahil et. Hem spagetti koddan kurtulursun hem de daha rahat düzenleme imkanın olur.
Kodlarına açıklama yazmalısın tabi bir de.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

Zoroaster

#4
Sorunum açıklama satırı değil.

Örneğin fonk1 adında bir fonksiyon yazıyorum. proje çalışıyor bir kaç ay sonra aklıma gelen yeniliği eklemek istediğimde fonk1'in yetersiz kaldığını parametre olarak yeni bir parametre eklemem gerektiğini fonk1 içinde de parametre değerine göre şunu yap şunu yapma gibi eklentiler yazmam gerekiyor.

Bir 5 ay sonra yeni bir eklenti yapacağım zaman o ana kadar tuttuğum değişkenlerin structure olması zorunluluğu doğuyor ve radikal bir kararla değişkenleri structure yapıp daha sonra da bunları array yapıyorum.  Bir sonraki geliştirmede fonk1'e yeni bir parametre eklemem gerekiyor vs vs.

Aslında projeyi bir ara durdurup sıfırdan yazmaya başlamak belki daha iyi olacak.

Bu tip yamalar öyle riskli ki bir anda proje çok rahatlıkla çalışmaz hale gelebilir.

Daha projeye yeni başlarken temeli sağlam atmak gerekiyor işte bu konu üzerine konuşalım istiyorum.
Seytan deliginden kacti.

Zoroaster

Ucu açık geliştirilmeye müsait projelere başlarken nelere dikkat etmeliyiz?
Seytan deliginden kacti.

OG

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

serdararikan

@muhendisbey e katiliyorum. Sorunun en iyi çözümü nesne tabanlı programlama

muhittin_kaplan

oop olmak, aciklama, versiyon kontrol.

Ben genelde oop olamiyorum.

Teğmen

Merhaba
Benim fikrim ;
1.Açıklama satırlarına çok önem göstermek.(Sadece şu şu değişkeni atadık veya şöyle olunca buna tıklanır gibi değil.Güncelleme yapılırsa global değişken olduğunu unutma tarzında;)
2.Programı sınıflar halinde veya modüllere bölmek.
3.Versiyon kontrol (Karışsa bile bir önceki durumu kurtarıp devam edebilirsiniz.)
4.Ucu açık da olsa projenin nerelere varacağı uzun süre düşünülüp ona uygun bir yazılım geliştirilmelidir.
5.En önemliside düşünülen projeye uygun ve gelişime uyum sağlayacak algoritmadır.


Yapılacak işi programa dökmek bir şekilde halledilir.Foruma yazılır,araştırma yapılır,kitaba bakılır v.s. Ama en önemlisi ALGORİTMA TASARIMIDIR.


Bu 5 maddeyi sağlam bir zeminde birleştirebilirseniz  mükemmel ve güncellenebilir projeler ortaya çıkacağına inanıyorum.


Kolay Gelsin.
"Girdim ilim meclisine kıldım eyledim talep,   Dediler ilim geride kaldı illa Edep illa Edep" Hz.Yunus Emre K.S.

Zoroaster

Alıntı Yap2.Programı sınıflar halinde veya modüllere bölmek.

O zaman benim yapmadığım kısım bu.

Bunu biraz açabilir miyiz?

STCubeMX tarzında bir program yazdım. Farkı sadece STM32F103C8 için işe yarıyor.

Ekrana çipin görüntüsü geliyor. Her bir bacağa tıklayarak ya da çevre birimleri kutucukları tıklanarak çipin init işlemleri çevre birimi kodları otomatik olarak oluşturuluyor.

Nesne tabanlı yazılımla bu projeyi yeni baştan ele alarak çipi bir nesne bacaklarının her birini gene bir nesne olarak tanımlayacağım.

Fakat dos üzerinde çalışan kodlara alışık olduğum için tavsiye ettiğiniz yapıda kod yazabilir miyim yoksa yazıyorum da haberim mi yok bilmiyorum.

Mümkünse bu konuyu biraz ele alabilir miyiz?

Sınıflar ve modüllerle ne demek istiyorsunuz?



Seytan deliginden kacti.

Teğmen

Merhaba
Sınıf ve modülden kastım şu; Programı belli parçacıklar ve bu parçacıkların birbiriyle bağlantılarını yalıtarak yapmaktır.

Yani atıyorum;
Buton işlemleri
Ekran işlemleri
Çıktı işlemleri gibi...

Dediğiniz projeyi biraz daha açarsanız iyi olabilir.Anladığım kadarıyla Pin uçlarını gösterecek ve bunlara tıkladığımızda o pine ait kodun yazılmasını  istiyorsunuz...?
"Girdim ilim meclisine kıldım eyledim talep,   Dediler ilim geride kaldı illa Edep illa Edep" Hz.Yunus Emre K.S.

Zoroaster

Zamanında programımın bir videosunu çekmiştim.

Programı geliştiriyorum fakat her an için patlayacak diye korkmaya başladım.

https://www.youtube.com/watch?v=KQ6r5LxJ46w

Seytan deliginden kacti.

Yuunus

Programi dll lere bolup ihtiyaciniz olan kismi cagirip onun ustunde calisabilirsiniz. Hem moduler olur, degisiklik yapmadiginiz bolumleri tekrar tekrar her deferinde derlemezsiniz, ortalik arap sacina donmez.

MrDarK

@Zoroaster  hocam;

Konuyu saptırmak istemem lakin sanal ortamda gördüğüm bir gif aynı bu dediğiniz senaryoyu anlatıyor;
http://skillprogramming.com/top-rated/when-change-some-codes-on-project-477

Yani bu sadece sizin yaşadğınız veya hissettiğiniz bir durum değil. Kodu her daim modüllere, fonksiyonlara bölmek #ifdef lerle komutlar yazmak yardımcı olabilir.
Picproje Eğitim Gönüllüleri ~ MrDarK