Forum: Ders Arası RSS
assert kontrol ifadesi hazırlama
assert
Sayfa:  önceki  1  2 
Avatar
Salih Dinçer #16
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 5928
zafer:
Salih, aslında amacım taşmayı yakalamaktan ziyade assert sunumu için çarpıcı bir örnek hazırlamaktı. Ancak bu konuda istediğim gibi içerik bulamadım.
Anladığım kadarıyla gerçekten işe yarar bir örnek istiyorsun. Bu konuda biraz düşüneceğim ama ben hiç assert() kullanmayan programcılardanım. Hiç bir zaman ihtiyaç duymadım. Ama kütüphaneler içinde çok yararlı olduğunu gördüm. Sadece assert ifadesine bakarak onun ne işe yaradığını denemeden anlayabiliyorum. Çünkü biliyorum ki o ifadeyi yerleştiren assert()'e takılmayan algoritma geliştirmiş. O halde güvenle kullanabilirim diyorum...:)

Bunlar dışında aklıma dosya okuma sırasında elzem olabilecek örnekler gelmiyor değil. Ancak onlar release olmuş bir uygulama için anlamsız olacak. Dolayısıyla try {} catch {} kümeleri kendi hata iletilerini veya log'lama sistemini oluşturmak için daha ideal görünmekteler. Bilmiyorum bu konulara da değinecek misin?
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
zafer #17
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Salih Dinçer:
Anladığım kadarıyla gerçekten işe yarar bir örnek istiyorsun.

Kesinlikle haklısın Salih. Amacım sadece anlatmış olmak için anlatmak değil, insanların aklında bir şeyler kalmasını, assert kelimesinin bir şeyler çağrıştırmasını istiyorum. Neticede bu kavram aslında D diline özgü bir şey değil genel bir programcılık tekniği ve bir önceki mesajda anlatılan örnek gibi hataların olmaması için programcılar bu olanakları içine sindirmeli ve kullanmalı, hangi dilde olursa olsun.

Salih Dinçer:
Hiç bir zaman ihtiyaç duymadım. Ama kütüphaneler içinde çok yararlı olduğunu gördüm.

Dıoğruyu söylemek gerekirse bende çok ender kullanıyordum ama özellikle Ali'nin dersanedeki dersini okuduktan sonra çok daha fazla kullanmaya ve faydasınıda görmeye başladım. Neticede assert bir kontrol ve bunu farklı bir takım imkanlarlada sağlayabiliyorsun, belki bu sebeple ihtiyaç duymadın ama assert kullanmaya başlayınca çok daha pratik ve etkili olduğunu görüyorsun.

Belki benzetme biraz kaba olacak ama ekmek kesmek için testerede kullanabilirsin ama bu iş için en uygunu bir ekmek bıçağıdır ve işi bilen bunu kullanır. Sanırım assert olayında durum biraz bu ve ben katılımcılara işi öğretmeye niyetliyim :)

Salih Dinçer:
Dolayısıyla try {} catch {} kümeleri kendi hata iletilerini veya log'lama sistemini oluşturmak için daha ideal görünmekteler. Bilmiyorum bu konulara da değinecek misin?

Genel manada değinmek istiyorum, sebebine gelince özellikle scope yapısı benim çok hoşuma gidiyor ve onuda bir araya şıkıştırmak niyetindeyim dolayısıyla try-catch olanağınıda açıklamak durumunda kalacağım. Aslında assert ve try-catch olayı birbirinden farklı, birbiri ile karşılaştırmak doğru değil. Sanırım bu konuda öncelikle kavramları açıklayıp herşeyi yerli yerine koyduktan sonra bu olnakları anlatmak daha doğru olacak.

Bakalım bir hazırlıkları bitirelim, şimdilik yapacağız edeceğiz diyoruz ama ortada bir şey yok :) Ayrıca açık öğretim sınavlarına kadar bir şeyler yapmamda zor. Ayrıca sınavdan sonraki hafta arkadaşımın düğünü için izin alıcam memlekete gidicez dolayısyla o haftada öyle gidecek. Bakalım dönüşta artık gece geç saatlare kadar yoğun bir çalışma yapacağız gibi görünüyor :)
https://github.com/zafer06 - depo
Avatar
Salih Dinçer #18
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Aklıma şöyle bir şey geldi:

Bir otomasyon yazılımı düşünelim. Bu bir elektrikli aleti kontrol ediyor. Tıpkı önceki sayfadaki tıbbi vakıa gibi. Örneğin uzaktan kumandalı bir vinç kumandası olsun. Motorun yanındaki pano ile iş birliği içinde çalıştığını farz edelim. Hatta bunu D programı ile yazmışız...:)

Biz vinçin, tutma/kilitleme aksamının yüksekteyken çalışmamasını istiyoruz. Bunun için gerekli tüm manuel (operatörü bilgilendirme ve kapaklı tuş koyma) ve otomatik güvenlik tedbirlerini aldık. Öyle ya, bu cihaz bir şekilde sapıttı, örneğin kablosuz olduğu için RF sinyaller karıştı. İşte bu durumda:

"Vinç tarafındaki yazılım,
yükseklik algılayıcısından aldığı değere rağmen,
gönderilen "yükü bırak" işlevini aldığında program,
ACİL BİR ŞEKİLDE DURMALI ve sonraki işlemi yapmamalı".

Elbette çeşitli durumlarda (senaryolarda) alçaktan yük alıp, yükseğe bırakma olabilir. Ancak bu işe alınmış tecrübesiz bir işçiye emanet edilecek vinç ise "KORUMALI MOD" gibi bir şey devreye alınabilir diye aklıma geldi. Belki bunu çeşitlendirebilir, ayrıntı katabilir ve daha güzel hale getirebilirsin. Hoşuna gittiyse sunumunda güzel bir vinç resmi ile kullanabilirsin.
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
zafer #19
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Çok hoşuma gitti Salih :) Her nekadar ülkemizde geliştiricilerin büyük bir kısmı (ben dahil) veritabanı programcılığı ile uğraşsada bu tür mekanik sistemlerle çalışan ve güvenliğin çok önemli olduğu alanlarda mevcut ve böyle alanlarda kod güvenliği çok daha fazla öne çıkıyor. Örneğin depolar için geliştirilen otomatik yükleme/boşaltma sistemleri (Automated Storage/Retrieval System) gibi sistemler bunlara örnek olabilir.

Bu senaryodan bir şeyler çıkarmaya çalışacağım, umarım istediğim gibi bir örnek elde edebilirim. Yeni fikirlerinide bekliyorum Salih. :)
https://github.com/zafer06 - depo
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Sayfa:  önceki  1  2 
Forum: Ders Arası RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-22, 02:58:40 (UTC -08:00)