Programlama Yapısı ve Programlama Takibi

Programlama Yapısı ve Programlama Takibi

11 Mayıs 2018 Uncategorized 0

Kurumlarda genel olarak karşılaştığımız bir problem vardır. Kurumsal hafıza yoksunluğu veya bu kurumsal hafızanın sık sık değişen yönetim kadrosuyla silinmesi, geçmişi incelemenin zaman alması sebebiyle boş vermişlikten geçmekte. Öncelikle yapılan işlerin özetlenmesi, bu özet ağacının sebep sonuç sinsilesi içinde yerini bulması ve ulaşılmak istenen yolda büyük tablodaki yerine tam oturtulması gerektiği disiplinine tam olarak sahip olunması lazımdır. Eğer bir yöneticide ben gidersem gelen ne yaparsa yapsın mantığı var ise ve kayıtlarını bu sisteme uygun olarak tutmuyorsa sil baştan aynı hataların tekrarı ile boşa zaman ve para kaybı oluşacaktır. Haliyle kendi parasını değil halkın parasını harcıyor, milyonlarca kulun hakkı kayboluyor. Ahmağa yada haine göre hiçbir şey tabiki.

İşte programlama yapısı dahi aynı yapılara sahiptir. Programların içerisinde en alt seviyede veri toplayan hizmet brimleri, verileri işleyen kısımlar, bu verileri görselleştiren veya sisteme müdahale eden kısımları vardır.

Mesela fiziksel bir yapı inşa edeceğinizi düşünün, bir bina yapacaksınız. Bu binaya ait projeye ihtiyacınız vardır. Proje için ise yapılacağı yere ait tapu bilgileri, ne türde bir yapılaşmaya izin verildiği gibi birçok bilgiyi alır ve bir taslak proje çıkartırsınız. Programlamada dahi aynı şekilde altlık bilgilerine ihtiyacınız vardır. Elimizde neler var, neler eksik, nereden tamamlarız soruları sorulur. Bu soruların yanıtlarına ulaşılarak taslak proje çıkartılır.

Taslak projemize göre binanın inşası için taşıyıcı sistemlerin, temel, kolon, kiriş ve tabliyelerin dayanımları hesap edilir. Bu hesaplamada binanın ne kadar yük taşıyacağı, gelecekte neye ihtiyacı olacağı, depremde, fırtınada ne olacağı gibi birçok etken dikkate alınarak hesaba gidilerek boyutlandırılır. Programlamada ise bu durum alt hizmet rutinlerinin bağlanacağı nesne tabanlı bağımlılıklarda hangi kısıma nasıl  bir kod yazılacağı düşünülür. Mesela veri tablolarından veri çekecek bir rutin yazılacaksa bağlantı parametreleri, geri döndürülecek veri kümelerinin geneline uygun dönüş nesneleri, ileride değişiklik yapılmak istendiğinde farklı bir veri kümesine hızla adapte olmasını sağlayabilecek ve engel olmayacak şekilde ileriye yönelik destek sağlanır. Binadaki merdiven, asansör gibi düşünün. Bina bölümlerine, katlara ulaşamayacaksanız binayı kat kat çıkmanızın ne manası olabilir.

Binanın ana unsurları tamamlandıktan sonra bölümlendirmelerde ihtiyaç olacak ısıtma, soğutma, elektrik, su ihtiyaçları eklenir. Bina yapıldıktan sonra dahi geliştirebilmek için bölmeler içerisine koyulurlar. Program yapısında ise verileri işleyen kısımlara veri taşıyan nesneler gibidir. Bir veri kümesinde kişisel bilgiler varsa bunlarda kimlik numarası, isim, doğum, adres gibi bilgilerin olduğu veri nesnesi grupları gibidir. İyi tasarlanmamış veri nesneleri ek bilgi ihtiyaçları için tekrarlı olarak sisteme başvuracaktır. Süreçleri uzatacaktır.

Binanızı projelendirdiniz, hesapladınız. Şimdi kullanılacak malzeme bilgisi, miktarı, maliyeti gereklidir. Ana sistemlerde kullanılacak demir, çimento, kum, çakıl ve kalıp belirlenir. Mesela zeminde temel inşaatı yapacaksınız, asidik bir zemin ile karşılaştınız, burada zaten içerisinde asidik yapıya benzer sülfat bağları bulunan bir çeimento kullanırsanız çimentonun katılaşması yani hidrat bağlarının oluşması esnasında sülfatlar sudaki hidrojeni çekerek hidroksit serbestiyesi olan bir hidrasyona gidecektir. Zeminden gelen asit, iyonik birleşmeye gidemeyeceği bir ortamda betona daha zor zarar verecektir. Programlama tarafında bu yapı korumalı sınıf yapısı gibidir. Asit ise erişilebiliyorsa alırım, kullanırım diye düşünen programcı oluyor. Her malzemenin tipi, dayanımını belirlediğimiz gibi programlama yapısında da fonksiyonların ne kadar yükü kaldıracağı, kaldırdığı yük ile ne tipte bir üretim ortaya çıkartacağını, bu üretimin işlemci ve hafızadaki süreçleri önem arzeder. Nasıl bir inşaat mühendisi kullandığı malzemenin yapısını bilerek hesaba gitmesi gerekiyorsa bilgisayar mühendisi de kullandığı fonksiyonların davranışlarını, yapısını öngörebilmelidir.

Binanın duvarları, kapıları, pencereleri, boyası, yalıtımı binayı kullanacak olan insanların rahatına göre ayarlanır. Tüm verileri topladınız, işlediniz ve son kullanıcıya sundunuz. Fakat çöl sıcağı olan bir yerde devasa penccereler koydunuz, sera etkisi ile içerisi fırın gibi oldu. Ek olarak soğutma sistemleri için birçok doğal kaynağı kullanmanız gerekti. Programlama kısmında bunun karşılığı kullanıcı arayüzünde rahat hareket etmesini sağlamaktır. Bir kullanıcı, arayüzde yapmak istediği işlem için kullanacağı bölümü bulmak için uzun süre uğraşıyorsa, aklına geldiği anda şuradaki grubun içerisinde olması gerekiyor diyerek anında oraya yönelip o kısımda bulamıyorsa arayüz hatalıdır.

Programatik yapının ileriye yönelik eklemelere açık olması veya dinamik olarak kullanıcının veri yapılarını anında entegre edebilmesini sağlayabiliyor olmsı önemlidir. Mesela kurumca alınmış bir CBS programımız var. Fakat program ek veri katmanlarını ekleme, katmanları kullanıcı bazında gruplama gibi alışılageldik CBS arayüz yapısından uzak. NetCAD, AutoCAD gibi sık kullandığımız programlarda alışageldiğimiz esneklik yok. Güdük kalmış bir yapı ile gelen sistemler sık sık değişim için programcısına başvuru gerektireceğinden sürekli bir maliyet artışına sebebiyet verecektir.

Nesne tabanlılık yapısı her türlü koşula kısa sürede adapte olabilme yeteneği demektir. Nesnel ağacı sağlam oluşturulmuş, sınıfları düzenli hazırlanmış ve sürekli değişime girmeyecek, geleceğe ve geçmişe uyum sağlayacak şekilde tasarlanmış kodlar en düşük maliyet demektir. Maliyet ve zaman açısından en sevmediğim program yapısı JAVA, neden sevmiyorum derseniz; her ortama uyum sağlamak için kodları dağınık, uyumsuz ve her versiyonda farklılaşarak kod gelişimini engelliyor. Ancak ve ancak değişime uğramayacak, kalıcı olarak aynı kodu kullanacak yapılarda kullanılması halinde çtavsşye edilebilir. Aksi halde bu dile tam hakimiyet için tüm gelişimini, değişimiyle beraber hizmet kütüphanelerindeki uyumsuz fonksiyon, veri nesnesi yapılarını bilecek programcılarınızın olması şartını göz önüne almanız gerekiyor. Yarım java programcısı çok canınızı yakar.

Program yapısını bir binanın işleyişi gibi veya bir insan anatomisindeki her bir parça gibi detaylı göremiyorsanız siz bir yönetici değilsinizdir. Alt programcı ile sistem yöneticisi arasındaki farkı anlamak için yapı bilginizi geliştirmeniz, tüm ağı görebilmeniz gerekli.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir