Joel testi, 2000 yılında Joel Spolsky tarafından bilişim literatürüne kazandırılmış 12 soruluk bir testtir. Bu test yazılım ekiplerinin kalitesini belirlemek amacıyla kullanılır. Ben, stackoverflow kariyer sayfasında öğrendim ve bir kaç senelik tecrübemle bu soruların günümüzde geçerliliği bir yana, bir yazılım ekibi ne yapmalıdır konusunda yol gösterici olduğunu söyleyebilirim.
stackoverflow kariyer sayfasında kullanımı
Soruları ele almadan önce Joel Spolsky kimdir sorusunu cevaplayalım. Joel, 2000 yılında internet dünyasına adım atan, eski bir Microsoft çalışanı. 2008 yılında ortağı Jeff Atwood ile birlikte stackoverflow‘u kuruyorlar. Stackoverflow her yazılımcının uğrak noktası olan bir soru&cevap sitesidir. Daha sonrasında Stack Exchange adında bir soru&cevap siteleri ağına dönüşüyor. Kısaca günümüz programcılığını hızlandıran bir etkisi olmuştur.
Şimdi sorular: Toplam 12 sorudan oluşmaktadır ve her biri de bir diğeri kadar önemlidir.
Okumaya devam »
- Kaynak kodu kontrol sistemi kullanıyor musunuz?
- Tek bir adımda sistemi oluşturabiliyor musunuz?
- Derleme (build) işlemi günlük yapılıyor mu?
- Hata veritabanınız var mı?
- Yeni bir kod yazmadan önce hataları düzeltiyor musunuz?
- Güncel iş takviminiz var mı?
- İş tanımlamalarınız var mı?
- Programcıların sakin bir çalışma ortamı var mı?
- Paranın alabileceği en iyi araçları kullanıyor musunuz?
- Test elemanınız var mı?
- İş görüşmelerinde adaylara kod yazdırılıyor mu?
- Koridor kullanım testi yapıyor musunuz?
TCP üzerinde çalışan WCF servisin bağlantısını nasıl test ederiz?
svcutil net.tcp://localhost:9011/YanitsizBirakmayanServis/mex
Not: svcutil komutlarını Visual Studio Tools altında “Developer Command Prompt” ile çalıştırabilirsiniz.Okumaya devam »
Daha önceki yazıda AppFabric kurulumunu ve ayarlarını görmüştük. İşlemleri başarıyla gerçekleştirdiyseniz şu an çalışır vaziyette bir AppFabric sunucunuz olmalı. Sunucularımızı görebilmek için Caching Administration Windows PowerShell aracını Administator olarak çalıştırıyoruz ve aşağıdaki komutu giriyoruz.
Get-CacheHost
Eğer Powershell aracı açılırken hata aldıysanız. Daha önceki yazıda da bahsettiğimiz Remote Registry servisinin çalışmamasından dolayı hata vermiş olabilir. Bu servisi çalıştırmak için yine aşağıdaki komutu girebiliriz.
net start RemoteRegistry
Bu işlem sonrasında PowerShell aracını tekrar çalıştırmanız gerekir. Kısayol ayarlarından bakarsanız aslında modül ekleme komutu barından bir PowerShell kısayolu olduğunu görebilirsiniz. Sıklıkla PowerShell kullanan biriyseniz bu komutu buradan kopyalarak kullanabilirsiniz.Okumaya devam »
Microsoft Windows Server AppFabric, Windows Server’ın web uygulamaları ve orta katman servisler için hosting, yönetim ve cache’leme yeteneklerini arttıran bir sunucu uygulamasıdır.
Bu adresten indirerek başlayabiliriz; Microsoft AppFabric 1.1 for Windows Server Install
Eğer Windows 7 kullanıyorsanız IIS 7 Manager for Remote Administration kurmanız faydalı olabilir. Bu sayade uzaktan IIS sunucularınızı kontrol edebilirsiniz.
Aşağıdaki gibi tüm özelliklerin kurulumunu istiyoruz.
Okumaya devam »
Yağmurlu bir İstanbul gününde, yağmur damlalarının rastgele yağışını izlerken aklıma geldi. Acaba kodlarımızın içerisinde ürettiğimiz sayılarla, bu damlaların düştüğü noktalar arasında bir bağlantı kurulabilir mi? Yağış formülize edilebilir mi?
Bunun üzerine rastgele sayılar üzerine bir araştırma yaptım ve ne kadar güvensiz olduklarını öğrendim. Testlerde yeterince çeşitli olduğunu düşündüğümüz ama bir yerden sonra tekrar eden sayılar kümesi ile güvenliği sağlamaya çalışıyoruz. Farklılık yaratmak için kullanıldığında sorun olmayabilir ama güvenlik amaçlı kullanıldığında dayanaksız bir araçtır rastgelelik. Güvensizliğinin sebebi tahmin edilebilirliğidir.
Normalden biraz daha güvenli olması için tohumunda zaman faktörünü de kullanıyorlar ama bu da tavsiye edilmiyor. Henüz .NET kütüphanesinde güzel bir örnek bulamadım ama Java’da güvenli rastgelelik için ayrı bir class mevcut.
1 2 3 4 public static int generateRandom(int maximumValue) { SecureRandom ranGen = new SecureRandom(); return ranGen.nextInt(maximumValue); }