LINQPad Programcıların Oyun Alanı

25 Haz

LINQPad yazılımı, SqlServer, Oracle, OData servisleri gibi veri kaynakları üzerinde LINQ sorgularını kullanarak sorgular çalıştırabilen ve C#, VB, F# gibi programlama dillerini destekleyen bir editördür.

LINQPad ile desteklenen diller ve gerçekleştirilebilecek operasyonlar seçenekler halinde geliştiricilere sunulmuştur.

  • C# Expression
  • C# Statements
  • C# Program
  • VB Expression
  • VB Statements
  • VB Program
  • SQL
  • ESQL
  • F#Expression
  • F# Program

Adsız

Geliştiriciler olarak hızlı bir şekilde denemeler yapmak istediğimiz durumlar olabilir. Bu durumda hemen Visual Studio arayüzünde bir proje oluşturarak ya da mevcut bir proje üzerinde merak ettiğimiz kodları çalıştırmak durumunda kalırız. Ancak LINQPad ile hızlı bir şekilde istediğimiz sonucu hemen görebiliriz.

Örneğin C# LINQ ile rasgele şifre üretmek için hemen bir deneme yapmak istersek:

Adsız

Yazmak istediğimiz ifadeleri tamamladıktan sonra sonucu görmek için sadece .Dump() extension metodunu çalıştırmak yeterlidir.

Harici kütüphaneleri ve Nuget paketlerini referans olarak LINQPad’e eklemek ve çalıştırabilmek mümkündür.

 

Webstorm smartest javascript IDE

1 Eki

Jetbrains ürünleri bir geliştiricinin alet çantasında olması gereken başlıca araçlardandır. Bu yazıda frontend geliştirme aracı olan Webstorm ürününden bahsedeceğiz.

Webstorm sloganı “smartest javascript IDE” yani “akıllı javascript IDE” şeklindedir. Bu sloganın hakkını verdiği kanısındayım. Javascript dili özelliklerini tanıması ve birçok javascript framework için intellisense özelliği barındırması, kodlarken bize büyük bir kolaylık sağlamaktadır.

scr_main_01

Webstorm ile client-side tarafında Javascript, CSS ve HTML gibi diller desteklenirken, server-side tarafında Node.js dili ile geliştirme yapabilirsiniz.

Neden Kullanmalıyız?

  • Akıllı Geliştirme Ortamı Sunar: Kodlama yaparken projenizi tanır, anlar ve bize daha rahat bir geliştirme ortamı oluşturur. Örneğin JQuery, Angularjs veya bootstap kullanıyorsak IDE bu framework’leri otomatik olarak tanıyarak bize yardımcı olur. Çalışma esnasında hata algılama, refactoring ihtiyacı olan kod bölümlerini gösterme ve gelişmiş navigasyon özellikleri sayesinde kaliteli kod üretmemizi sağlar.
  • En Son Teknolojileri Destekler:En popüler teknolojileri destekler. JQuery, Angularjs, ECMAscript 6 gibi teknolojilere destek verir.
  • Bütünleştirici ve Tamamlayıcı Destekler: Proje geliştirirken ihtiyaç duyulan Debugger, VCS(versiyon kontrol sistemleri), Terminal, Deployment gibi özellikleri ve geniş eklenti deposu sayesinde başka bir ürüne ihtiyaç duymadan iş akışlarını düzgün bir şekilde tamamlayabilirsiniz.
  • Platform Genişliği: Windows, Linux ve Mac OS gibi işletim sistemlerinde tek bir lisans ile çalışma imkanı sunar.

Webstorm Özellikleri Nelerdir?

  • Code Completion: Projenizi analiz ederek fonksiyonlar, metodlar, modüller, değişkenler ve sınıflar için en iyi şekilde bütünleşik bir tecrübe sunar.

javascript_code_completion@2x

  • Navigation: Projeniz ne kadar büyü olursa olsun bir değişkenin nerede tanımlandığını, ToDo listelerinizi ve dosyalarınızı kolayca bulabilirsiniz. Değişkenleri, sınıfları ve fonksiyonları arayabilir tanımlandıkları yerlere ulaşabilirsiniz.

search_everywhere@2x

  • Code Quality: Kod kalitesini arttırmaya yönelik kod iyileştirici uyarılar verir. Kodun yeniden yapılandırması gereken noktalarda uyarılar verir.

javascript_warning@2x

  • Code Style: Kullandığınız programlama diline göre kod biçimlendirmesi yapar.

code_style_preferences@2x

  • Multiple Selection: Birden fazla seçim özelliği ile düzenleme işlemlerinin kolayca yapılmasını sağlar.

select_occurrences@2x

  • Debugging Javascript and Node.js: Javascript ve Node.js geliştirmeleri sırasında Google Chrome için debugging imkanı sunar.
  • Unit Testing: Javascript ve Node.js birim testlerini yazmayı destekler. Karma test çalıştırma aracı ile Javascript testlerinizi ve Mocha ile Node.js testlerinizi çalıştırabilirsiniz.

mocha_test_results@2x

  • Grunt and Gulp: Aynı arayüzde konsola ihtiyaç duymadan Grunt ve Gulp görevlerini çalıştırma imkanı sunar.

gulp_integration@2x

  • npm: node modüllerini kolayca yönetebilirsiniz.
  • Code Quality Tools: Webstorm kendi kod kontrolleri dışında JSHint, ESLint gibi ekstra araçları da kullanarak kod kalitesini kontrol edebilirsiniz.
  • vcs: Git, SVN, Mercurial ve Perforce gibi birçok versiyon kontrol sistemi ile Webstorm arayüzünden çalışabilirsiniz.

vcs@2x

  • Built in terminal: Kendi terminal penceresi sayesinde işletim sisteminin terminal penceresine ihtiyaç duymadan çalışabilirsiniz.

Fiyat performans açısından oldukça üstün bir IDE deneyimi sunan bu üründür. Öğrenciler için ücretsiz olarak sunulmaktadır.

Sublime Text Metin Editörü

23 Eyl

Alet çantası kategorisine ait bu yazıda Sublime Text metin editörünü incelemeye çalışacağız. Sublime Text kodlama yapmak, kod biçimlendirmek ve düz yazılar yazmak için geliştirilmiş bir metin editörüdür.

Sublime Text editörünün bana göre en çekici tarafları kullanıcıya akışkan bir yazım imkanı sağlaması ve kodlama sırasında göze hoş gelen bir renklendirme yapmasıdır. Performans bakımından ise son derece başarılıdır.

Adsız

Çok sayıda programlama dilini destekleyen ve bu dillerde kod biçimlendirmesi yapabilen bir yapıda olması performans konusunda hiç bir sıkıntı yaşatmıyor. Desteklediği programlama dilleri C, C++, C#, Java, XML, HTML, CSS, Javascript, PHP, Phyton, Ruby, SQL, Erlang, Heskel, MATLAB gibi popüler dillerdir.

Editörün code snippet özelliği sayesinde sık kullanılan kodları dosyalayarak istediğimiz zaman editör kısayolundan çağırabiliriz.

687474703a2f2f616e67756c61722d75692e6769746875622e696f2f416e67756c61724a532d7375626c696d652d7061636b6167652f696d616765732f73637265656e73686f742d717569636b5f70616e656c2d7365617263682e706e67

Çoklu seçim özelliği(multiple selection) birden fazla imleç ile aynı anda çoklu değişiklik yapmaya imkan sağlar.

thoughtsmultiple

Editörün özellikleri eklentilerle arttırabilir. Çok sayıda eklenti desteği ile geliştiricilere kolaylık sağlar. Gerçekten denemeye değer bir editör olduğunu düşünenlerdenim. Birçok geliştiricinin özellikle bu editörü tercih etmesi bu düşünceyi güçlendirir nitelikte.

Resharper Visual Studio Eklentisi

12 Ara

Bu yazıda Visual Studio eklentisi olan Resharper kodlama aracına bir göz atalım istedim. Bugüne kadar gördüğüm en akıllı eklentidir diyebilirim. Resharper aracı kod denetimlerini yaparak bize rehberlik eden bir uygulamadır. Yazdığımız kodu kontrol ederek hata, uyarı, eksik referans, gereksiz satır, işletilemeyen satır gibi eksiklikleri bize bildirir. Bir diğer özelliği refactoring konusunda geliştiriciye yardımcı olmasıdır. Kodun yerinden düzenlenmesi için yol gösterici özelliklere sahiptir. Ayrıca navigasyon özelliği sayesinde tüm solution bünyesinde aradığımızı bulma konusunda çok etkilidir. Kendi bünyesinde bulunan unit test aracı sayesinde testleri de çalıştırabilmektedir. Gelen olarak başlıca özelliklerini liste halinde verecek olursak:

  • Kod analizi
  • Navigasyon ve arama
  • Kodun yeniden yapılandırılması (Refactoring)
  • Kod düzenleme ve temizleme
  • Kod üretimine yardımcı olma

Visual Studio proje tiplerinden C#, VB.NET, ASP.NET, Javascript, Typescript gibi proje türlerine destek vermektedir.

Programcılar açısından bir baş ucu aracıdır diyebilirim. Ancak şunu belirtmeliyim, sizi kendine çok kolay bir şekilde bağlar ve bir süre sonra Resharper olmadan kod yazmak size çok sıkıcı gelebilir.

FakeItEasy ile Mocking işlemleri

14 Kas

FakeItEasy açık kaynak kodlu bir .Net mocking Framework’dür Bu framework sayesinde istediğimiz tipe ait dinamik fake nesneler oluşturabiliriz. Kolay anlaşılır ve uygulanabilir bir altyapıya sahiptir. Kullanımı ise basit bir şekilde şöyledir:


IMemberService service = A.Fake<IMemberService>();

A.CallTo(()=>service.IsValid("validUser")).Returns(true);
A.CallTo(()=>service.IsValid("invalidUser")).Returns(false);

MemberController controller = new MemberController(service);
bool isValid = controller.ValidateUser("validUser");

Yukarıda IMemberService türünden türetilmiş somut bir fake sınıf yazmamıza gerek kalmadı. Çünkü bu işlemi bizim yerimize FakeItEasy gerçekleştirdi. A.Fake<IMemberService>() şeklinde yeni bir somut nesne oluşturdu. Yine service nesnesinin metotlarına ait davranışları da biz veriyoruz. IsValid() metoduna hangi parametre ile çağrıldığında nasıl davranacağını A.CallTo() metodu ile bildiriyoruz. Artık MemberController sınıfı dışarıdan almaya ihtiyaç duyduğu IMemberService hazır.

FakeItEasy aracı Test Driven Development geliştirme için çok kullanışlı bir üründür. Eğer önceden aşina olduğunuz bir mocking framework yoksa kullanmaya değecek bir üründür.

NCrunch Visual Studio Eklentisi

6 Kas

NCrunch, kodlama esnasında birim testleri (unit tests) otomatik ve eş zamanlı olarak çalıştıran bir Visual Studio eklentisidir.

Projelerini teste dayalı geliştirenler için mükemmel bir araç diyebilirim. Performans konusunda donanımınızın yeterliliğine ve test sayınıza göre NCrunch analiz süresi değişiklik gösterebilir.

NCrunch aracı, siz kodunuzu yazarken arka planda otomatik olarak kodu testlerden geçirerek durumu size bildirir.

İsterseniz testleri otomatik olarak değil de el yordamıyla da yaptırabilirsiniz. Testlerin durumunu aşağıdaki pencereden de görebilirsiniz.

Büyük projeler düşünülerek, Visual Studio IDE performansı üzerindeki etkileri en aza indirmek için, proje mimarisindeki bağımlılıkları analiz ederek,  testleri yürütme işlemi için öncelik sırasına koyar ve asenkron süreçler, ek işlemci çekirdeği kullanır.

Bir diğer özellik ise test kapsamına girmeyen kodların belirlenmesidir.

Siyah noktayla işaretlenen satırların test edilmediğini anlayabilmekteyiz. Yeşil noktayla işaretlenen kod satırlarının testlerden başarıyla geçtiğini göstermektedir.

Testlerin çalıştırılma süresini ölçen özelliği sayesinde ise uzun sürebilecek testler işaretlenir.

NCrunch aracının noktasal işaretleme özelliğinin renkleri isteğe göre değiştirilebilmektedir.

Test Driven Development yapanlar için çok iyi bir araçtır.