Dün gece konuyu açıp bir şeyler yazdım fakat eklemeye çalıştığımda hata verdi ve yazdıklarım gitti. Otomatik kaydetmemiş nerede aradıysam da bulamadım.
İlk olarak en temel konularını ele almak ve ileri seviye Labview geliştiricisi olmak isteyenlerin en temelden alışkanlık haline getirmeleri gereken ipuçlarına değinmek doğru bir yaklaşım olacaktır. Ancak, birbiriyle ilişkili ilerleyecek bu konular sadece bu başlık altında anlatılıp bitirilebilecek kadar kısa değil. Düşüncem en temel konuları örneklerle anlatırken ayrı bir konu başlığı kapsamında olanları ayrı konular olarak ele alalım ve burada konu başlıklarını ve bağlantılarını verelim.
Labview geliştirme ortamının metin tabanlı geliştirme ortamlarına göre üstünlüklerini ele alacak olsak, sanırım ilk akla gelecek olan görsel kodlamanın yazılım hâkimiyetini ve anlaşılabilirliği ne kadar çok artırdığı olacaktır. Nerdeyse hayatı boyunca hiç kodlama yapmamış ancak analiz kabiliyeti olan ve algoritma kurma mantığına sahip herkesin kısa sürede Labview ile temel uygulamalar geliştirebileceğini söyleyebiliriz. Bu yaklaşım Labview ilk ortaya sürüldüğünde de aslında böyleydi. NI’ın, özellikle kendi donanımları ile haberleşecek ve hiç uygulama geliştirmemiş kişilerin bile kolaylıkla uygulamalar geliştirebileceği bir çözüm üretmekti. O zamanlar C/C++ en yaygın geliştirme ortamları olsa da ileri düzey kodlama yetenekleri gerektirmesi sebebiyle sadece uzman kişilerin kullanabildiği geliştirme ortamlarıydı.
Günümüzde ise nerdeyse diğer yaygın geliştirme ortamlarıyla kafa kafaya gider duruma gelen Labview çıkış noktasından oldukça farklı bir noktaya gelmiştir. Labview artık NI donanımları ile haberleşmekten öte ciddi projelerde üst seviye geliştiricileri ekipleri tarafından kullanılmaktadır. Bu tür kapsamlı projeler eski geliştirme mantığıyla “düğmeye bas, çalısın yeter!” organize edilemez. Kod hatalarının hızlıca giderilebilmesi, kodun genişletilebilmesi, yeniden kullanılabilmesi, geliştirici ekiplerinin birlikte geliştirmelerine açık olabilmesi, vs gibi etkenler yazılımda uyulması gereken sıkı kuralları ve geliştirme tekniklerinin gerekliliğini ortaya çıkarmıştır.
Labview temelde “veri akışı programlama” (http://en.wikipedia.org/wiki/Dataflow_programming) esasını kullanmaktadır. Bu yaklaşımda diğer dillerde olduğu gibi işlemlerin nasıl gerçekleştiğine değil verinin kaynaktan hedeflere nasıl ilerlediğine yoğunlaşılır. Veri akışı programlamada esas olan veridir, veri işlemlerden geçer ve çıkış olarak alınır. Kod geliştirme ve düzenleme yaparken verinin kaynağından işlem noktalarına ve hedeflere nasıl aktığı her zaman önceliğimizdir. Veri birden çok hedefe yönlendirilecekse kopyaları oluşturulurken çıkış noktasındaki verinin adresinden tamamen farklı adreslerde işlem yapılmaktadır. Bu yapı Labview için en uygun olan ByVal (değer ile) modelini esas almayı doğru kılmaktadır. Diğer dillerde genelde ByRef (başvuru ile) modelini esas almaktadır.
ByVal modeli ile veri akışı kodlama, Labview içerisinde çoklu görev tanımlamayı, paralel çalışmayı, vs oldukça basitleştirmektedir. Diğer dillerde öncelik atamaları gibi ilave tanımlamalar yapılmasını gerektiren bu tür işlemlerde Labview bu tür tanımlamalar gerektirmez.
Labview kodlama yapısı bu esaslar üzerine kurulmuştur ve bu çerçevede kendi doğal kodlama yapısını geliştirmiştir. Bu yapıya uyulması geliştirme sürecinizi birçok yönüyle olumlu etkileyecektir. Kodunuzun okunabilirliği, genişletilebilirliği, hata giderme, performans, eşleme, vs gibi birçok esas bu kurallara ne kadar uyduğunuza bağlıdır.
Bu bağlamda ele alınabilecek ana başlıklar şöyledir;
1.Veri Akışı (Kablolama, düğümler)
2.Performans yönetimi
3.Paralel çalışma
4.Eşleme (senkronizasyon)
5.Rutinler, uygulamalar arası haberleşme
6.Geliştirme mimarileri (state machine, event handler, producer/consumer, queued message handler, functional global variable, subpanel plugins, asynchronous processes, object oriented design)