AFAIK

Boilerplate Code Nedir?

Güncelleme:
Bir uygulamanın review öncesinde temiz ve planlı bir şekilde yazılması beklenir. Ancak, aynı anda birden fazla proje ile ilgilenilmesi, planda olmayan istekler, öngörülemeyen aksilikler ile ...
GÖRSEL

Bir uygulamanın review öncesinde temiz ve planlı bir şekilde yazılması beklenir. Ancak, aynı anda birden fazla proje ile ilgilenilmesi, planda olmayan istekler, öngörülemeyen aksilikler ile süreç pek de beklenen şekliyle ilerlemeyebilir. Analizler, dokümantasyon, test süreci derken karşılaşılan her aksilik sürecin de uzaması, kaynakların tüketilmesi anlamına gelebilmekte. Her kötü yönetilen sürecin, kötü yazılmış kodun bir maliyeti vardır. Robert C. Martin‘in dediği gibi; “Her kod güzel yazılmayı hakeder.“. Peki, bu tür durumlara dair nasıl çözümler üretilmekte? Elbette code review, sprint review gibi sürecin değerlendirilmesi önemli çözümler. Bunun yanı sıra, geliştirme süreçleri için kullanılabilecek, boilerplate code gibi basit başlangıç adımları da mevcut.

Boilerplate Code Nedir?

Boilerplate esasında yazılımla sınırlandırılamayacak bir tanım. Örneğin, üyelik ve gizlilik sözleşmeleri de boilerplate olarak ifade edilebilir. Sadece gerekli alanlar değiştirilir, gerekli ise güncellemeler yapılır ancak genel olarak şablon aynıdır.

Bilgisayar programcılığında ise, boilerplate code (ya da kısaca boilerplate) pek çok yere eklenen (include) ve genel olarak hiç ya da çok az değişikliğe uğrayan kod bölümlerini ifade eder. Basit işlevsellik için çok fazla kodun yazılması gerektiği durumlarda sıklıkla tercih edilirler. Pek çok dil ve yazılım projesi için farklı amaçlara yönelik olarak hazırlanmış şablonlar ve hatta özelleştirilebilen şablon motorları mevcuttur. Boilerplate bir projenin çerçevesi olarak da tanımlanabilir. Örneğin, aşağıdaki boilerplate, temel bir HTML sayfa şablonu olarak kullanılabilir:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8"/>
  <title></title>
</head>
<body>
 
</body>
</html>
Ya da bir Electron+Vue projesi için şu adımları izleyebiliriz.
npm install -g vue-cli
vue init simulatedgreg/electron-vue my-project
 
cd my-project
yarn install #ya da npm install
yarn run dev #ya da npm run dev

Bir geliştirici çalıştığı projeler için kendi boilerplate code’larını oluşturup benzer gereksinimlerde başlangıç sürecini kısaltmak adına kullanabilir, geliştirici takımındaki diğer arkadaşlarıyla paylaşabilir. Bu sayede, gereksiz vakit harcayan bir süreç ortadan kaldırılmış ve projenin çerçevesi herkes için ortak bir şekilde oluşturulmuş olur. Boilerplate kapsamı yinelenen iş ve özelleştirme gereksinimine bağlı olarak genişletilip daraltılabilir. DRY (Don’t repeat yourself) felsefesine oldukça uygun bir yaklaşımdır.

Bir Node.js projesi yapılandırmak istediğimizde git reposunu clone eder ve paket yönetici (örn. yarn) ile install ederiz. İndirdiğimiz clone’da node_modules çoğu zaman yer almaz. Install işlemiyle birlikte package.json içeriğine göre proje yapılandılır. Gulp, grunt, webpack gibi yardımcı uygulamalar da bu aşamada işlenir. Örneğin HTML5 Boilerplate HTML5 ve CSS düzenlemelerinin yanı sıra temel düzeyde server yapılandırması dahi içermektedir. Bir diğer örnek olan Initializr ile boilerplate code klasik, responsive veya Bootstrap için oluşturulabilmekte. Ek olarak, H5BP içeriğinde ve GitHub‘da pek çok seçenek mevcut.

Büyük projeler için kullanılabilecek boilerplate’in gerekli özellikleri (production ready):

  • İyi ve okunaklı dokümantasyon,
  • Derin bir soyutlama seviyesine sahip kod yapısı,
  • Doğru kodlama standardı,
  • Hızlı prototipleme ve kurulum için CLI aracı,
  • Ölçeklenebilir yapı,
  • Kolay test araçları,
  • Gerekli API modülleri,
  • Kurulum için server ve client kodları,
  • Uygun navigasyon ve routing yapısı

Kaynakça

  1. What is boilerplate and why do we use it? Necessity of coding style guide
  2. What is boilerplate code?
  3. What is boilerplate code?
  4. Boilerplate, @techopedia
  5. What is boilerplate code? Why & when to use the boilerplate code?
  6. Modern Front-end Development Boilerplate for Starters
Ceyhun Enki Aksan

Kullanıcı Davranışları Analizi (User Behavior Analysis) ve Kullanıcı Deneyim Tasarımı (UX Design) üzerine çalışmalar yürütmekte, bu süreçte edindiğim teknik ve pratik bilgileri fayda sağlamak motivasyonuyla (afaik / as far as i know) paylaşmaktayım.

HABERDAR OL

Yeni eklenen projeler, eğitimler, içerikler ve yayınlanan videolar e-posta adresine gelsin.