14.10.2024

NestJS: Scheduled Tasks

 

Projelerimizde belli zamanlarda çalışması gereken görevler olabiliyor. Bu günün belli bir vaktinde ya da daha sık periyotlarla çalışması gereken görevleri ayarlamak için NestJS @nestjs/schedule paketini sunuyor. 

Basit bir örnek yapmak için öncelikle boş bir NestJS projesi oluşturalım. Bunun için daha önceki bu yazıma göz atabilirsiniz.

Projemizi oluşturduktan sonra aşağıdaki komutla ilgili paketi projemize ekleyelim.

npm install --save @nestjs/schedule


Daha sonra app.service.ts içine bir sonraki adımda zamanlanmış görev (scheduled task) olarak çalıştıracağımız basit bir metod yazalım. Bu metod her çalıştığında terminale zamanı yazacak. 

import { Injectable } from '@nestjs/common';

@Injectable()
export class AppService {
  getHello(): string {
    return 'Hello World!';
  }

  logCurrentTime() {
    console.log(new Date().toLocaleString());
  }
}

Şimdi hazırlıklarımızı tamamladığımıza göre bu metodu her saniye çalıştıracak kısmı ekleyebiliriz. Öncelikle ScheduleModule'u AppModule'e import ederek zamanlanmış görevleri aktive edelim.

7.10.2024

The Oversimplificator!

Başlıkta bahsi geçen Oversimplificator ben oluyorum. Bir kaç yıl önce maalesef kaybettiğimiz çok değerli arkadaşım Berkin Bozdoğan'ın uzun seneler önce benim için tasarladığı iki MTG (Magic The Gathering) kartının görselini aşağıya bırakıyorum. 


MTG bilenler ve beni tanıyanlar kümelerinin kesişimindeki az sayıda insan espriyi (eleştiriyi) anlamıştır muhtemelen. Berkin kendine has üslubuyla bana hediye ettiği bu kart tasarımlarında hem benim önemli bir yetenek olarak gördüğüm hem de aşırıya kaçılması halinde olumsuzluklara neden olabilecek basitleştirme (simplification 1 2) kavramından bahsediyor. 

Günlük hayat açısından basitleştirme ya da aşırı basitleştirme hakkında yazmayacağım. Bunlar insanın içinde bulunduğu durum, içinde yaşadığı toplum, kültür ve benim adını dahi bilmediğim pek çok şarta bağlı sanırım. Dolayısıyla beni aşar. Ama size yazılım geliştirme açısından basitleştirme ve aşırı basitleştirme hakkında bir iki cümle yazabilirim. Lütfen buyurun:

30.09.2024

5 Dakika Verin!

Dan Abramov'un muhteşem eğitimi "Just Javascript" içerisinde "Javascript Universe" diye bir bölüm var. Bu bölüm "In the beginning was the Value" cümlesi ile başlıyor ve oldukça etkileyici bir şekilde Javascript kodu yazarken kullandığınız değerler ve tipleri hakkındaki bakış açınızı yeniden gözden geçirmenizi sağlıyor. Tolkien severlerin Silmarillion'daki "There was Eru, the One." cümlesini derhal hatırladığına eminim.

Neyse konuyu dağıtmadan devam edeyim. Dan Abramov bu farklı bakış açısını sunarken bir beş dakika verin ne yaptığımı biliyorum diyerek Jason Fried'ın "Give it five minutes" yazısına link veriyor.  Çok da iyi yapıyor çünkü yazıyı okuduğunuzda benim de zaman zaman yaptığım ve yazılım sektöründe çok moda olan bir davranışı güzelce açıkladığını göreceksiniz.

Özetle bir fikri reddetmeden önce iyice düşünecek zamanı kendinize tanımanız gerektiğinden bahsediyor. Tabi herkes için ya da her konu için bu düşünme süresi 5 dakika olmayabilir ama durup düşünmeden reddettiğimiz fikirler sadece fırsatların kaçmasına değil o fikrin dile getirilmesi ile oluşacak beyin fırtınasının oluşmasına da engel oluyor.

Bir konuda en deneyimli olmak ya da ortamdaki en zeki kişi olmak her zaman haklı olacağınız anlamına gelmiyor. Kaldı ki haklı da olsanız size sunulan fikri iyice irdelemeniz karşınızdaki kişiler için de iş ilişkinizin gelişimi açısından da faydalı sonuçlar ortaya çıkaracaktır.

Tepkisel davranışlar sergileyen benim gibi insanlar için oldukça zor bir konu. :) Yine de denemeye devam edebiliriz değil mi?

Esen kalın.

9.09.2024

Javascript Nedir?

Bu soruyla oldukça başa dönmüş gibi görünsek de bu Javascript'in gelmişini geçmişini... ehem, yani Javascript dilinin nasıl gelişip bugünkü haline geldiğini şöyle bir özetlesem iyi olur diye düşündüm. Hatırlamadığım kısımları araştırmak ve bu sırada bilmediğim detaylara denk gelmek de hoş oldu. Ayrıca üşenmez de devamını getirirsem bu yazı bir Javascript serisinin de ilk yazısı niteliğini taşıyor.  

Bir tanımla başlayalım ve geçmişi ile devam edelim. Bir de "Hello World!" yazamadan bırakmayalım. Hatta ileriye yatırım yapıp bir iki programın bilgisayarınızda kurulu olduğundan da emin olalım. İyi okumalar.

Javascript ya da çoğu yerde kullanılan kısaltmasıyla JS çalıştırıldığı sırada yorumlanan bir programlama dilidir. Javascript birinci sınıf fonksiyonlara sahip yani fonksiyonları bir değer olarak değişkenlere atanabilen bir dildir. Çoğunlukla web sayfalarında interaktivite sağlamak için kullanımıyla bilinse de Javascript tarayıcılar dışında yer alan derleyici ve yorumlayıcılar tarafından da çalıştırılabilir. Javascript ile bir API geliştirebilir, Mobil uygulama yazabilir ya da masa üstü uygulaması geliştirebilirsiniz.