Kategoriler


SON YORUMLAR
Tugba ince
Bu ne zman yayınlandı
Tatar Ramazan
C#, ASP.NET, T-SQL, HTML, CSS, Javascript falan bilen iyi para kazanırdı 2005-2010 yılları arası. Şimdi çok sıradan hale geldi. Aç karnınızı bile doyuramazsınız artık bu niteliklerle. Çünkü rakip çok 10 tane teknoloji biliyorum, İngilizcem de iyi bi sövmedikleri kaldı bana. Çok buluyorlar boyanıyorlar. Aç gözlü firmalar. Hakkını aramayan, her şeye razı olan, birbirini geçmeye çalışan tipler olduğunuz için çıkıyorlar kafanıza. 20 binlik nitelik isteyip 8 bin TL veriyorlar. Sizin gibi fedailer sayesinde ekonomi hızlı büyür işte. Albaraka bankası ilan vermişti kariyernette C#, ASP.NET, T-SQL istiyor. 6000 kişi başvurmuş. "Ya çok nitelik isterler başvuramazsın ya da az nitelik isterler çok başvuru gider gene işi alamazsın" demedik mi size? Kurumsal firma, C#, ASP.NET, T-SQL gibi nitelikleri isteyen sade bir iş ilanı verdiyse zaten en az 3000 başvuru gidiyor. Hondanın öyle bir ilanı vardı, başvurduk. Sonra elemek için Java, AS 400 işletim sistemi bilgisine sahip olmayı ilave ettiler niteliklere çok gelen başvuruları elemek için. Sinirlendim bir daha başvurmadım. Bunun gibi bir ton saçmalık yaşadım 2008 de mezun olduktan sonra. İş dünyasına yaranacağım diye hayatı ıskaladık. Din kültürü öğretmeni benden çok daha rahat etti. Mutlu oldu. Bilişim sektörüne yaranılmaz. Ne kadar çalışsanız doyuramazsınız onları. Gençler ne mi yapsın? Biliyorsunuz Lisans KPSS zorlaştı. Önlisans okusanız daha iyiydi çoğunuz için. 5000TL tekniker maaşı cepte. 22 yaşında arabanız olurdu. Adamlar kolayca atanıyor. Her sene iş değiştiriyor. Lisans mezunlarının atanması zor atansa bile sonradan başka yere geçemiyor. Lisans okuyan bir sürü mühendisin hayatı gecikiyor. Sürünüyor. 30 yaşında arabası yok eşi yok. Telef olacaksınız. Devlete veya belediyeye taşeron 4750 TL ile girerseniz öpün başınıza koyun. Çok iyi olan azınlığın içine giremeyeceksen bilg. mühendisliği enayilik, sürünmek. Kötü bir yerde kötü bir işte çalışırım sıkıntı yok diyorsanız o başka. Site sahibinin yazdığı şeyler 2000-2011 yılları arası geçerliydi. O yıllarda bilgisayar mühendisleri azdı. Biraz bilgili yazılımcılar iyi para kazanıyordu. Geçti o devirler. Bizim kuruma Marmara bilgisayar mezunu derece yapmış adam kaçtı Turkcell?den. Başka kaçanlar da çok.
Ercan Sezdi
Elektrik Elektronik Mühendisliği son sınıf öğrencisiyim. Python ve C++ ödevlerinizi makul ücretler karşılığında yapabilirim. iletişim: ercansezdizero@gmail.com
Kazma Ramazan
Tatar yoruldun demek. Tabi bilgisayar işleri zordur. Ama kolay olan ne var ki? Fabrikada asgari ücretle sabahtan akşama kadar çalışmak çok mu kolay? Zor diyorsun ama başka bir yol göstermiyorsun. Söyle bakalım Türkiyedeki kafası sayısala basan gençler ne iş yapsınlar? Doktor olup dayak mı yesinler? Bu işte sürekli kendini geliştirmelisin evet ama başka işlerdede para yok. Sorun bilgisayar mühendisliğinde değil. Sorun Türkiyede. Onca yıl okumuş etmiş adam düzgün para kazanamıyorsa suç onda mı? Avrupanın gelişmiş ülkelerinde ortalama yazılımcı maaşı 4000-4500 euro. Burda iyi para vermiyorlarsa sizde kendinizi geliştirin yurtdışında çalışın. Hem bu tatar gibi ketumlarla bir arada kalmak zorundada olmazsınız.
Tatar Ramazan
Kimsenin umrunda olmayan zavallılarsınız. En iyi olanınıza bile iyi para vermiyorlar. Her çıkan teknolojiyi öğrenmek için koşturun durun. Noolacaksa!? Nefsi (mal, mülk, şöhret, güzel kadın, para, övülme vs..) için çalışan şeytanın yolundadır. Müslüman hak (Allahu Teala) için, halk için çalışır. 3 günlük dünyaya çalışacağınıza namaz kılın. Zekat verin.
Tatar Ramazan
Mezun olunca memur maaşına çalışacaksınız çoğunuz. Başka bir şansınız yok. Çok iyi de olsanız Devlet veya Kurumsal firmalar size iyi para vermeyecekler. Küçük yerler kaliteli adam çekmek için mesela Garanti Teknolojide tecrübe kazanmış adama 12000 TL maaş verebilir. Ama herkes öyle yerlere geçmeye cesaret edemez. Risktir. Kurumsal firmayı bırakıp küçük yere geçmek. Zor karar. Çalışma koşulları da ağır olabilir. Hayat böyle. Bir şeyi tercih edersen başka şeyi feda edersin. Bu açıdan bakınca kimsenin kimseye üstünlüğü yok. Veya çok çalışarak dünyadan daha fazla haz, mutluluk alınmıyor. Özelde çalışan iyi kazanıyor ama sıkıntı stres çekiyor, zamanını feda ediyor. Memur çok kazanmıyor ama kendine daha fazla zaman kalıyor. Rahat ediyor. Sıkı ders çalışan kariyer yapan güzel hatun bulamıyor. Güzel kız peşinde koşanlar da iş hayatında başarı gösteremiyor. Kimisi gençliğini yaşar, kimisi de gençliğini feda eder orta yaşlarında zengin ve başarılı olur. Ortalamada iki grup de aynı derecede mutlu olmuş oluyor. Gene de tabi çalışkan olmak iyidir. Tembeller sevilmez. Saygı kazanırsın. Uhrevi hayat için de çalışmak esastır. En iyisi ahirete yatırım yapmak. 3 günlük dünya için uğraş dur. Sonra karanlık mezarda azap çek. Günümüzde herkes dünyaya düşkün olmuş. Sokağa çıktın mı seni de kendilerine benzetiyorlar. Yeniden görüşüciiz...
İHSAN
ANDROİD - JAVA - PYTHON - C - C++ - C# GİBİ HER TÜRLÜ YAZILIM DİLİ İLE HER TÜRLÜ ÖDEV VE PROJE HAZIRLANIR. İLETİŞİM :latifihsanbulut95@gmail.com MAİLLERE EN KISA ZAMANDA DÖNÜŞ YAPILIR.
Kaan
C#, Asp.net, Java SE, Java EE, Spring Framework, Android, C++, C, PHP, Python ödevlerinizde yardımcı olabilirim. Geçmişte yaptığım projelerden birkaç tanesini https://github.com/kaantopcuw adresinden inceleyebilirsiniz.Not: Whatsapp üzerinden iletişime geçerseniz daha hızlı cevap verebilirim. İletişim için; Mail: kaan8792@gmail.com | Whatsapp: 05428339141
Kaan
C#, Asp.net, Java SE, Java EE, Spring Framework, Android, C++, C, PHP, Python ödevlerinizde yardımcı olabilirim. Geçmişte yaptığım projelerden birkaç tanesini https://github.com/kaantopcuw adresinden inceleyebilirsiniz.Not: Whatsapp üzerinden iletişime geçerseniz daha hızlı cevap verebilirim. İletişim için; Mail: kaan8792@gmail.com | Whatsapp: 05428339141
İHSAN
ANDROİD - JAVA - PYTHON - C - C++ - C# GİBİ HER TÜRLÜ YAZILIM DİLİ İLE HER TÜRLÜ ÖDEV VE PROJE HAZIRLANIR. İLETİŞİM :latifihsanbulut95@gmail.com MAİLLERE EN KISA ZAMANDA DÖNÜŞ YAPILIR.
bir dost
TFOE 20-30 k bine girmek demek çok şey demek ben 78k ile ortalama bi yere gittim sonuç ortalama bir hayat elinizden gelenin en iyisini yaparsınız en iyi şekilde ilgi ve alaka görürsünüz,unutmayın hayata ne verirseniz onu alırsınız,ömürlük bir yatırım... sağlıcakla
Kaan
C#, Asp.net, Java SE, Java EE, Spring Framework, Android, C++, C, PHP, Python ödevlerinizde yardımcı olabilirim. Geçmişte yaptığım projelerden birkaç tanesini https://github.com/kaan8792 adresinden inceleyebilirsiniz.Not: Whatsapp üzerinden iletişime geçerseniz daha hızlı cevap verebilirim. İletişim için; Mail: kaan8792@gmail.com | Whatsapp: 05428339141
İSMET
ANDROİD - JAVA - PYTHON - C - C++ - C# GİBİ HER TÜRLÜ YAZILIM DİLİ İLE HER TÜRLÜ ÖDEV VE PROJE HAZIRLANIR. İLETİŞİM :latifihsanbulut95@gmail.com MAİLLERE EN KISA ZAMANDA DÖNÜŞ YAPILIR.
Kaan
C#, Asp.net, Java SE, Java EE, Spring Framework, Android, C++, C, PHP, Python ödevlerinizde yardımcı olabilirim. Geçmişte yaptığım projelerden birkaç tanesini https://github.com/kaan8792 adresinden inceleyebilirsiniz.Not: Whatsapp üzerinden iletişime geçerseniz daha hızlı cevap verebilirim. İletişim için; Mail: kaan8792@gmail.com | Whatsapp: 0542833914

Bilgisayar Mühendisleri
Here is the website inspired me to use 
it as a guide when I tried to define 
myself as an engineer candidate a few 
years ago. It really helped me to work
 and study feeling in confidence with 
being on the right way. I suggest this 
website to whom it may direct her/his 
to find the right career path. It 
includes many articles varies from 
real life experiences to detailed 
software engineering issues. But the 
most dignified parts for me are the 
articles in general and career titles.
Son okunan makaleler:
STORED PROCEDURE'LERE NİÇİN İHTİYAÇ DUYARIZ?
Açık Kaynak Kodlu Yazılım (Open Source Software) Nedir?
BİLGİSAYAR MÜHENDİSLİĞİ GEREKSİZ BİR MESLEKTİR !!!
Differences between ASP and ASP.NET
Transact-SQL - T-SQL - SQL NEDİR?
Türkiye'de Bilgisayar Mühendisliğinin Durumu? Bilg. Mühendisliğinin bugünü ve geleceği
En iyi bilgisayar mühendisliği bölümüne sahip üniversiteler
ASP.NET ve ASP Session Paylaşımı
Bilgisayar Mühendisi Ne İş yapar? Program Nedir? Çeşitli Sorular?
ASP.NET 2.0 - New Features
Bilgisayar Mühendisi olacaklara üniversite seçme rehberi?
Para ile ödev yapmak üzerine
Bilgisayar Mühendisliği Hakkındaki 10 Büyük Yalan!
İSTANBULU SEÇİN!
Niye bu kadar çok programlama dili var?
Bilgisayar mühendisliği öldü?
Dizin (Directory) ve LDAP (Lightweight Directory Access Protocol) Kavramları
Kısa sorular Kısa Cevaplar - 2
Dizin (Directory) ve LDAP (Lightweight Directory Access Protocol) Kavramları
ASP.NET ile GIS Uygulamaları

Bilgisayar Mühendisleri Portalı

STORED PROCEDURE'LERE NİÇİN İHTİYAÇ DUYARIZ?

STORED PROCEDURE'LERE NİÇİN İHTİYAÇ DUYARIZ?

Belki siz T-SQL kodlarınızı bir SQL Command objesi ile kullanmak için yazmışsınızdır. Bu yüzden hiç bunları business logic kodlarından ayrı bir yerde yazmayı düşünmemişsinizdir. Belki sizin, zaman geçtikçe yapısında değişikliklerin meydana geldiği karmaşık T-SQL procedurelerinizden oluşan uygulamalarınız olabilir. Stored procedureler size bu kodları enkapsüle ederek saklamak için gerekli bir yer sunar.

Çoğunuzun stored procedureler hakkında az da olsa bir bilgisi vardır diye düşünüyorum. Fakat yine de bunlar hakkında bilgisi olmayanlar için söylemek gerekirse ; stored procedure'ler databasede saklanan bir grup T-SQL komutlarından oluşur. Stored procedure'lere runtimeda parametre input'u yapabilirsiniz ve parametre ya da bir data output'u geri döndürebilirsiniz. Stored procedure ilk kez çağrıldığında derlenir. Bir işleyiş planı üretilir burada T-SQL olarak kodlanmış yapı SQL Server tarafından çalıştırılacak ve gerekli sonuçlar yine SQL Server tarafından üretilecektir. Bu işleyiş planı daha sonraki kullanımlar için memory'de cache edilecektir. Bu performansı artıracaktır. Çünkü SQL server tekrar T-SQL komutlarını analiz ederek gerekli işleyiş planını üretmek zorunda kalmayacaktır. Basit olarak cache edilmiş işleyiş planı kullanılacaktır. Peki bu işleyiş planı ne kadar süre ile cache edilir derseniz cevap olarak şunu söyleyebiliriz; birincisi SQL server tekrar re-start edilene kadar, ikincisi uzun  bir süre az kullanımdan dolayı yaşlanana(aging) kadar. İkincisini biraz açmak gerekirse hafıza yönetimin etkin kılınabilmesi için çeşitli algoritmalar işlemektedir. Bu algoritmalarda kullanılacak yöntemlerden birisi de en uzun süre referans verilmeyeni uygun şartlarda memory'den silmedir.

Performance

Cache edilmiş işleyiş planı performans açısından çok iyi olduğunu söylemiştik. Ancak SQL Server'ın son iki versiyonunda işleyiş planlarının bir stored procedure'den dolayı oluşup oluşmadığına bakılmaksızın tüm T-SQL komutları hafızada cache edilmektedir. Bu yüzden stored procedure'lerin bu noktada kazanmış olduğu performans avantajından söz etmek mümkün değildir. Herhangi bir statik sentaksta yazılmış T-SQL komut kümesi de, uzun bir süre referans verilmeyerek yaşlanma dışında, tamamen bir stored procedure'ün ortaya koyacağı performans ile aynı performansı sağlayacaktır. Yalnız burada statik olması önemlidir. Çünkü herhangi bir değişiklik, hatta bu değişiklik sadece bir comment bile olsa, hafızadaki cache edilen yapıyı bulmamızı engeller. Bu yüzden tekrar cache edilir.

Ancak stored procedure'ler yine de performans olarak önemli bir artısını network trafiğini azaltarak sağlar. Siz sadece EXECUTE stored_proc_name ifadesini hat üzerinden gönderirsiniz. Tamamen T-SQL komutları(bazı uygulamalarda bu komutlar oldukça yüklü olabilir) göndermek yerine bu daha performanslı olacaktır. İyi tasarlanmış bir stored procedure kullanımı client ile server arasındaki round triplerdeki trafiği bir fonksiyon çağırma gibi kullanım şeklinden dolayı azaltır.

Ek olarak,  RPC'ler ile server'daki stored stored procedure kullanımı, işleyiş planını tekrar kullanma şeklini geliştirmenize izin verir, bu yüzden performansınızı artırır. Stored procedure'lerin SQLCommand.CommandType'larından birisini kullanırsanız, stored procedure RPC aracılığıyla işletilir. RPC'nin serverdaki procedure'e parametre aktarımları ve çağrımlarını(calls) uygun bir şekilde yapması,  SQL Server'ın engine'inin gerekli işleyiş planını bulmasını ve gerekli parametreleri aktarmasını daha kolay yapmasını sağlayacaktır.

Stored procedure'leri kullanarak performans artırmak için düşünülecek son şeylerden birisi de acaba T-SQL dilinin tüm gücünden yararlanabiliyor muyuz sorusudur. Data ile ne yapmak istediğinizi düşünün.

» Set halinde işlemler mi yapıyorsunuz, ya da T-SQL dilinin iyi desteklediği diğer işlemleri mi yapıyorsunuz? Eğer burada bir query'yi satır içerisinde yazabiliyorsak, stored procedure kullanımı bizim için basit bir opsiyondan öteye gitmeyecektir.
» Satır tabanlı işlemler mi yoksa karmaşık string manipülasyonları mı yapıyorsunuz? En azından Yukon ve CLR entagrasyonu tamamlanana kadar bu işlemleri stored procedure yazmadan T-SQL'de gerçekleştirmeyi muhtemelen düşünebilirsin.

Bakım yapılabilirlik ve Özetlenebilirlik

İkinci potansiyel fayda olarak bakım yapılabilirliği düşünebiliriz. Mükemmel bir dünyada, veritabanı şemanız ve işlem kurallarınız hiç değişmez. Fakat gerçek dünyada böyle bir şeyden söz etmek mümkün değildir. Örneğin yeni oluşturduğunuz X, Y, Z tablolarınızı var olan bir stored procedure içerisinde sisteme entegre etmek, kod içerisinden sisteme entegre etmekten daha kolaydır. Stored procedure içerisinden bu işlemi gerçekleştirmak uygulamanız açısından transparent bir değişim olacaktır. Çünkü kodunuzu değiştirmek zorunda değilsiniz. Kodunuzun da bu değişiklikten haberdar olması gerekmemektedir. Ayrıca stored procedure'lerin güncellenmesi kod içerisinde güncelleme yapmaktan daha kolaydır. Çünkü daha az zaman alır. Ve projeyi tekrar derlemek, test etmek ve deploy etmek zorunda kalmazsınız.

Ayrıca bu stored procedure'lerin özetlenebilir* yani  tek bir yerde olup bir çok uygulama için kaynak teşkil etmesi sistemin tutarlılığı açısından çok önemlidir. Dolayısıyla sadece stored procedure içerisinde güncelleme  yapılırsa bunu kullanan bir takım uygulamalar için değişiklik yapmaya gerek kalmayacaktır.

Stored procedure kullanmanın diğer bir yararı da daha iyi versiyon kontrolü(değişim kontrolü) yapılabilmeyi sağlamasıdır. Normal olarak kodlardaki versiyonlar gibi stored procedure yapıları için de aynı şekilde versiyonlar tutabilirsiniz. MS Visual Source Safe ya da diğer kaynak kontrolü araçları ile istenilen stored procedure versiyonlarına dönüşüm, geri alma sağlanabilir.

Ancak yine de stored procedure kullanmak sizi tamamen tüm değişklikleri kolay bir şekilde, tek bir yerden yani stored procedure içerisinden yapmayı sağlamaz. Eğer değişiklikler parametrelerde ve geri dönüş değerlerinde meydana gelirse kodunuzu güncellemek zorunda kalırsınız.

Diğer bir mesele de stored procedure kullanmak taşınabilirliği sınırlandırmaktadır. Çünkü sizin muhatabınız sadece SQL Server olmayabilir. Eğer uygulmanız açısından taşınabilirlik önemli ise bunu stored procedure'lü bir yapıda kurmamanız gerekir. Sizin ek bir efor sarfederek kendi veri erişim katmanınızı* doğal RDBMS'e göre implement etmeniz gerekir.

Güvenlik

Güvenlik noktasında stored procedure'lerin size ne kazandırıp ne kazandırmayacağını düşünmeniz gerekir.

Stored procedure üzerinde gerekli güvenlik ayarlarını yaparak hangi sp'ün hangi kimse ya da kimseler için kullanılabileceğini belirtebilirsiniz. (Çevirmen notu; stored procedure'e bundan sonra kısaca sp diyelim) Sp'ler aynı sql server'ın view'ları gibidir. Tek bir farkları vardır. Sp'ler çalıştıklarında kullanıcılardan alacakları parametrelere göre sunacakları değerleri dinamik olarak değiştirebilirken view'lar hep aynı sonucu geri döndürürler ve parametre girişi kabul etmezler.

SP'ler kod güvenliğini artırır. Sql injection ataklarına karşı sistemi korurlar. Ayrıca sp'ler içlerindeki implementasyonu gizleyerek belli bir güvenlik sağlamış olurlar.

SP'lerde parametre tanımlarken  ado.net'in SqlParameter classını kullanarak tanımlama gerçekleştirebilirsiniz. Bu size kullanıcı tanımlı değerlerin geçerliliğini test etmenizde yardım sağlar. Kısaca sp'ler parametre kullanırken sizi istenilen parametre tipini kullanmanız konusunda sınırlandırır. Biliyorsunuz normal query yaparken böyle bir sınırınız yoktur.

Sp'lerde güvenlik yönüyle yine de zayıf noktalar ortaya çıkabilir. SQL server'da gerekli güvenlik ayarlarının yapılamamış olması veya kötü yapılmış olması istenmeyen kullanıcıların bu sp'leri çalıştırmasını sağlayabilir. Aynı şekilde giriş parametreleri bir şekilde ayarlanarak yine sql injection saldırıları gerçekleştirilebilir.

Data tiplerinin geçerliliğini sağlamak için kullandığımız parametreler tamamen doğru bir iş yaptığımızı kanıtlamaz. Bizim aptalca yapacağımız hatalar nedeniyle de parametre tipleri istenilenin dışında sisteme giriş olarak verilebilir. Bu yüzden mutlaka sp'lere parametre göndermeden daha önce bunların geçerli olup olmadığı kontrol edilmelidir. Bütün yük sp'lere bırakılmamalıdır.

Stored Procedure'ler benim için gerekli bir yapı mıdır?

Evet, belki. Tekrar sp'leri özetleyelim.

» Network trafiğini azaltarak performansı artırır.
» Tek bir noktadan bakım yapılabilmeyi sağlar.
» Birçok uygulamanın aynı sp'yi çalıştırmasıyla güvenlik ve tutarlılık daha iyi kontrol edilir.
» Bazı saldırıların etksini azaltarak güvenlik yönüyle iyileşme sağlar.
» İşleyiş planının tekrar kullanılmasına olanak verir.

Eğer uygulamanız açısından yukarıda bahsedilen özellikler önemli ise sp kullanmanızı şiddetle öneririm. Uygulamanız için datayı kullanma olanağınızı önemli ölçüde geliştirir. Ancak diğer yandan, eğer uygulamanız açısından taşınabilirlik önemli ise ve T-SQL dışı çalışmalar çoksa ya da sürekli database değişimi gerçekleşiyorsa diğer alternatifleri denemelisiniz.

Diğer bir önemli nokta da sizin T-SQL dilinde ne kadar uzman olduğunuzdur. Oldukça iyi bir tecrübeniz var mı yoksa sadece öğrenmeyi mi istiyorsunuz? Alternatif olarak,  sizin sp'leri yazacak bir DBAiniz var mı? Ne kadar iyi T-SQL bilirseniz, o kadar iyi sp yazarsınız ve daha az bakım yaparsınız. Örneğin, T-SQL satır tabanlı işlemlerden daha çok grup tabanlı işlemler için kullanılır. Eğer T-SQL dilini bilmiyorsanız, bunu öğrenme fırsatını kaçırmayın. Çünkü bu bilgi, sp kullanmasanız bile, kodunuzun gelişimini sağlar.

Bu makaleyi beğendin mi? Yorumunu Yaz!







Sizden Gelen Yorumlar:

Yorum Yazın

mühendis(16.10.2014 13:44:36)
kk. Sql injection ataklarına karşı sistemi korurlar.bb


Hayır Korumazlar
%20 %0 %80
Katılıyorum Çekimserim Katılmıyorum



Yakup(22.10.2009 10:15:47)
Tam Değil Eksiklikler Var Mesela SP ile nasıl VB.NET Arasında Nasıl bağlantı kurarız Bunun Anlatılması Olsaydı

Çok Yararlı Olurdu
%14 %9 %77
Katılıyorum Çekimserim Katılmıyorum






Copyright© 2001-2020. Bilgisayar Mühendisleri Portalı | Bütün hakları saklıdır.