/images/uygar-aydin.webp

Uygar Aydin

Uygar Aydin — Full Stack Developer | JavaScript | Vue.js | Django

uygar.dev | Full Stack Developer

JavaScript ● Vue.js ● Django

TypeScript: Thinking of Types as Value Sets — Part II

Seriyi tek makale halinde ve Türkçe olarak buradan okuyabilirsiniz. Part one of the series can be found here Before starting, if you didn’t read the first part of the series for introduction, I advise you to read it for a better understanding. Then let’s get started. Literal Types (Unit Types)First, let’s define what a literal type is. Literal means mold, immutable, and complete, but literal types are subtypes obtained by limiting collective types such as number, string, and boolean.

JavaScript: What is Hoisting? — Part I

Seriyi tek makale halinde ve Türkçe olarak buradan okuyabilirsiniz. In this article, I will talk about hoisting, one of the most confusing concepts in Js. Hoisting puts declarations at the beginning of the code when the Engine runs our Js code. Two essential elements that affect the hosting behavior are the type of value and how it is defined. Hoisting in VariablesFirst, let’s talk about the mechanics of variable definition.

TypeScript: Thinking of Types as Value Sets — Part I

Seriyi tek makale halinde ve Türkçe olarak buradan okuyabilirsiniz. When we execute a JS code we have written, every variable we declare has a value in the javascript value universe, whether assigned a value or not. These values are “uygar”, 46, true, “saygin”, undefined, null, { name: ‘saygin’, field: ‘Physical Education’ }, (a,b) => a-b… and all possible values. When all these possible values are grouped according to their common properties, each decomposed group becomes a set containing its possible values.

TypeScript: Node.js ile Path Alias Kullanımı

Codebase büyüdüğünde ve kod yapısı derinleştiğinde .ts dosyalarında yaptığımız import’ların relative path’leri uzamaya başlar. import { MicrosoftRightAdapter } from "../../../../../adapters/right/infrastructure/api/microsoft/right.adapter.microsoft"; Bu durum kod okunabilirliğini zorlaştırmanın yanında kodu dosya sistemi yapısına bağlı hale getirir. Ayrıca relative path’ler dosya sistemi üzerinden arama yapılmasına sebep olduğu için büyük code base’lerde performans sorunu yaratabilir. Relative path yerine path alias kullandığımızda import’umuz aşağıdaki şekilde olacaktır. import { MicrosoftRightAdapter } from "@/adapters/right/infrastructure/api/microsoft/right.adapter.microsoft"; Hem typescript’te hem de /dist klasöründe bulunan compile edilmiş js dosyalarındaki @ ile başlayan path’lerin çözümlenebilmesi için ufak bir iki işlem yapmamız yeterli olacak.

JavaScript mi, ECMAScript mi?

Javascript, çoğunlukla adı karıştırılan bir programlama dili. Java ile bağının olup olmadığı genelde akıllara gelen bir soru. Ayrıca bir de ECMAScript var. Şimdi gelin bu kavramlara bir açıklık getirelim. Brendan Eic bu dili ilk tasarladığında kod adı Mocha’ydı. Sonrasında dil Netscape markasına dahil olarak LiveScript adını aldı. Resmi olarak açıklandığında ise JavaScript adı tercih edildi. Çünkü dilin hedef kitlesi Java programcılarıydı. Script kelimesi ise bu zamanlarda “lightweight” programları ifade etmesi açısından popülerdi.

TypeScript: Tipler ve Değer Kümeleri

Read this post in English here. Yazdığımız bir JS kodunu çalıştırdığımızda deklare ettiğimiz her değişken değer atanmış olsun veya olmasın javascript değer evreninde bir değere sahip olur. Bu değerler “uygar”, 46, true, “saygin”, undefined, null, { adi: “saygin”, brans: “Beden Eğitimi” }, (a,b) => a-b… gibi olası tüm değerler olabilir. Tüm bu olası değerler ortak özelliklerine göre gruplandığında her ayrışan grup kendi içerisinde, olası değerlerini içeren bir küme halini alır.

JavaScript: Hoisting Nedir?

Read this post in English here Bu yazıda Js’de en çok kafa karıştıran konseptlerden biri olan Hoisting kavramından bahsedeceğim. Hoisting Js kodlarımız Engine tarafından çalıştırıldığında deklerasyonların kodun en başına alınması işlemidir. Hosting davranışını etkileyen iki önemli unsur değer (value) türü ve tanımlanma şeklidir. Değişkenlerde HoistingÖncelikle değişken tanımlama mekaniğinden bahsedelim. Değişken tanımlama iki aşamadan oluşur. Deklerasyon (Declaration) ve Initialization. Bu işlemleri iki ayrı satırda yapabileceğimiz gibi aynı satırda da yapabiliriz. Örneğin: