Neden Genişletme (Extension) Yazmalıyız! Visual Studio Code ile Genişletmelere (Extensionlara) Giriş
Extension kelimesi çevrilirken aynı dosyalar için kullanılan uzantı kelimesi ile otomatik olarak yapılmış ve uzantı kelimesi kullanılmış.Fakat asli itibariyle genişletme anlamı ile çevrilmesi gerekmekteydi.Özellikle IDE’ler tarafındaki kullanımı bu şekildedir. Çünkü burada kullanılan anlamıyla bir sisteme bir şeyler eklemek ve onun kapsamını genişletmek anlamını taşımaktadır. Neden İngilizceden gelen çevrime bu kadar takıldın derseniz. Şayet bir terimi kendi kültürünüzle özümseyemezseniz onu gerçekten anlayamayacağınızı düşünüyorum. Tabii ki bazı teknik terimler ve kullanımlar dilimizin içine karışmış fakat bazıları tam anlamıyla kullanılmıyor.
Aslında bu makaleyi yazmamdaki amaç size bir genişletme (extension) nasıl yazılırı anlatmak değil.Bununla ilgili olarak bir çok makale bulabilirsiniz.Bu makalemizde size genişletmenin neden gerekliği olduğunu anlatmaya çalışacağım. Özellikle yazılım firmaları tarafında bu işin öneminin anlaşılması gerekmektedir. Genişletme paketlerini konuşmadan önce bir IDE’lere bakmak gerekmektedir.
IDE’lerden önce, geliştiriciler programlarını metin editöründe yazıyorlardı. Bir metin düzenleyicide bir uygulama yazıp kaydederlerdi. Daha sonra derleyici çalıştırıp hata mesajlarını not alırlardı. Sonra kodu düzeltmek için metin düzenleyiciye geri dönülürdü. Üniversite zamanlarımda Fortran programlama dili ile bu çileyi çekmiş biri olarak çok zor olduğunu gayet net biliyorum. 1983 yılında Borland Ltd. bir Pascal derleyicisini satın aldı ve ilk kez entegre bir editör ve derleyici içeren Turbo Pascal ortamını yayınladı. Aslında IDE’lerin kendisi de programcılar açısından büyük bir genişlemeydi. Bu genişleme sayesinde şuan rahatlıkta program yazabiliyoruz. Peki programla özelinde yapılmış bu genişlemeyi neden işlerimiz içinde yapmıyoruz? Aslında günlük rutin olarak adlandırdığımız işlere bakacak olursak bunları daha kolaylaştıran bir araç seti olarak kullanabiliriz. Ekibimize yeni dahil olanlar içinde onların uyumunu kolaylaştıracak ürünler haline getirebiliriz. Örnek olarak ORM ilk çıktığı zamanlarda DB den direk tabloları sınıflara dönüştüren araçlar yoktu. Bir çok kişi önce bunları kendileri yapmaya başladı.Önce bat dosyaları ile bu çevrimleri yapanları gördük. Hatta select sorgusu sonucunda sınıf yapısını döndüren ileri sql uzmanlarımız vardı. Sonra programlar yazıldı ve en sonunda ORM araçları bu işleri kendileri yapmaya başladı. Kendi paketlerine genişleme paketleri eklediler. Görüldüğü üzere aslında bir ihtiyacın araçlara aktarılması ve herkes tarafından rahatlıkla kullanılabilmesinden başka bir şey değildi.
Peki Nedir Genişletme
Genişletme; Yeni özellikler ekleyerek veya mevcut araçları tümleştirerek deneyiminizi geliştirmenize imkan tanıyan eklentilerdir. Temel amacı üretkenliğinizi artırmak ve iş akışı gereksinimlerinizi karşılamaktır. Özelleştirilebilir olması ile de size özgü deneyimler sunacaktır. Özetleyecek olursak kendiniz ve ekibiniz için hayatı kolaylaştıracak araçlardır.
Sektöre baktığımızda genişleme paketi kullanan bir çok firma başkalarının yazdıklarını kullanmaktadır. Evet bunlarda kullanılabilinir. Ama genel olarak baktığınızda bunlar kişilerin kendi sorunlarını çözmek için oluşturdukları yapılardır. Bir noktada size yardım ederken bir noktada da sizin proje içinde kitlenmenize sebebiyet verebilirler. Bundan dolayıdır çoğu proje açık kaynak olarak dağıtılmaktadır. Bunun nedeni ise kişilerin bu projeleri alarak kendi sorunlarına göre genelleştirmeleri veya spesifik sorunlarına göre bu projeleri kullanmalarıdır.
İlk olarak bakıldığında bir genişleme paketini yazmak proje süresinin artacağı yönünde bir kaygıya sebep olabilir. Özellikle bunu belki üst yönetime veya yazılıma uzak paydaşlara anlatmakta zorlanabilirsiniz. Aslında hepimizin şu işleri yapacak bir aracımız olsa dediğimiz olmuyor mu ? Mesela şöyle düşünün 5 kişilik bir ekibiniz var. Bu 5 kişi belli bir işi yapmak için sürekli sabit bir işi tekrarlı olarak yapmak zorunda kalıyor. Halbuki ekipten bir kişinin zamanını bir genişletme paketi için ayırırsanız. O paket bittikten sonra beş kişiyi o gereksiz iş yükünden kurtaracaksınız. Bu size neyimi getirecektir. Hepimizin konuştuğu o code review , unit test gibi işler için kafası daha rahat bir yazılım geliştirici getirecektir. Bakın buradaki önemli kelime kafası rahat yani asli olarak konsantre olması gereken yere kendini veren bir kişiden bahsediyor. Buda bize verimliliğin kapısını açacaktır. Bu arada bir eklentiyi ne kadar genel kullanım ile yazarsanız. Önünüze gelecek olan diğer projelerde de kullanabileceksiniz. Yani önünüzdeki projelerin de zamanında kısalma ve verimliliinde artış olarak size geri dönecektir.
Günümüz dünyasında, değişimin hızı da hızlanmaktadır. Sadece dillerin ve teknolojinin değişimini baz alarak bunu yakalayamayız. Çünkü elimizde var olan kaynaklarını kısıtlılığı ile de karşı karşıyayız. aynı zamanda elimizde olan kaynakların adaptasyonlarını da düşündüğümüzde kayıp olan en büyük kaynağın zaman olduğunu göreceğiz. Peki bir genişletme bize genel olarak neler kazandırmaktadır. Bunlara bir bakalım.
- Daha hızlı kurulum: Geliştiricilerin birden çok geliştirme aracını yapılandırmak için zaman harcamaları gerekir. Bir genişletme paketi ile geliştiriciler, sürekli kuruluma gerek kalmadan tek bir yerde aynı yeteneklere sahip olurlar.
- Daha hızlı geliştirme görevleri: Tüm geliştirme görevlerinin daha sıkı entegrasyonu, geliştirici üretkenliğini artırır. Bütüncül düşünmeyi teşvik ederek gelişimi kolaylaştırır.
- Sürekli öğrenme: Güncel kalmak ve eğitimli olmak başka bir avantajdır. Sürekli öğrenen ve en iyi uygulamalarla güncel olan programcıların ekibe ve işletmeye değer katması ve üretkenliği artırması daha olasıdır.
- Standardizasyon:Geliştiricilerin birlikte daha sorunsuz çalışmasına ve yeni işe alınanların daha hızlı bir şekilde hızlanmasına yardımcı olan geliştirme sürecini standartlaştırır.
Peki iyi bir genişleme paketi geliştirmek için nerelere dikkat edebiliriz. Aslında bu tanımlar çoğu framework , araç vb. araçlar içinde geçerlidir.
· İhtiyaçların ve ilgi alanlarının entegre bir analizini dahil edin, eylem için yeni ufuklar açın
· Enerjimizi ve kaynaklarımızı uygun yönlere kanalize etmeliyiz. Böylece ekibin iyi bir sinerji gerçekleştirilmesine yardımcı oluruz.
· Üst yönetimin desteğini alarak faaliyetlerin sürdürülebilirliğine veya genişlemesine destek sağlayın
· Ekibin kapasitesini, motivasyonunu, performansını ve özerkliğini sağlayın
· Sorunları ele alma ve çözme taahhüdü gösterin
· Projelerin kalitesini ve personel performansını güçlendirmek
Aşağıda inceleyebilmeniz için Microsoft’un örneğinin bir kısmını ekledim. Örneği detaylandırma ve kendi genişletme paketleriniz oluşturmak için aşağıda verdiğim linki takip edebilirsiniz.
Öncelikle Node.js ve Git’in kurulu olduğundan emin olun , ardından Yeoman ve VS Code Extension Generator’ı aşağıdaki şekilde yükleyin.


1
2
3
4


npm install -g yo generator-code
Aşağıdaki komut ile geliştirilmeye hazır bir TypeScript veya JavaScript projesini oluştulur.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16


yo code
# ? What type of extension do you want to create? New Extension (TypeScript)
# ? What's the name of your extension? helloworld
### Press to choose default for all options below ###
# ? What's the identifier of your extension? helloworld
# ? What's the description of your extension? LEAVE BLANK
# ? Initialize a git repository? Yes
# ? Bundle the source code with webpack? No
# ? Which package manager to use? npm
code ./helloworld
Ardından, Vscode içinde F5’e basın . Sistem otomatik olarak klasik bir merhaba dünya örneği ile açılacaktır. Bunu denemek için Yeni pencerede Komut Paletinden ( Ctrl + Shift + P ) Hello World komutunu çalıştırın.
Microsost Vs code örneğinin tamamı için linki takip edebilirsiniz.
Dediğim gibi makalenin amacı nasıl yazıldığı değil. Neden yazılması gerektiği üzerinedir.
iyi günler,