Kayıtlar

Dijital Dolandırıcılığa Dikkat

Resim
Sosyal medya paylaşımları yada kaynak araştırmalarındaki linklere dikkat, fishing olayları git gide artıyor. yanlış yönlendirmeler ve tuzaklarla dolu bir çok yöntem mevcut. Banka sayfalarının birebir kopyalarından virüslere kadar bir çok yolu deniyorlar. Şahit olduğum vakalarda herşey tuzak link yada SMS ile başlıyor.  - Öncelikle kendiniz bilerek yazmadığınız, önünüze pop-up olarak gelen hiç bir linkte finansal işlem denemeyin, şifre bilgilerinizi vermeyin yada sms ile gelen yönlendirmeleri takip etmeyin. - İşlemleri siz başlatmadığınız sürece OTP mesajlarını dikkate almayın ve hiç bir kanalda kullanmayın, paylaşmayın. Yaşanan bir örnekte, instagram üzerinden reklam linki ile kurumsal bir bankanın internet sitesini kopyalyan bir adrese yönlendirme yapılıyor, burada kampanyadan yararlanmak için login olmanız isteniyor ancak login işlemi  bir kaç defa sözde sistemsel hatalardan ötürü tekrarlanıyor, burada esas olan şeyse sahte sitede sizin girdiğiniz bilgiler ve OTP ...

Kotlin - 14 - Fonksiyonlar (2. Bölüm)

Resim
Inline Fonksiyonlar: Fonksiyonların tanımlarında obje mantığı ile yaratılan değişkenler ve reserve alanlar olacaktır, buda performans ve kaynak tüketimi demek oluyor. Ancak, Lambda ifadeler aracılığı ile yazılacak kodlarda bunun önüne geçilebilir. Extension Fonksiyonları Mevcut bir sınıfı değiştirmede bu sınıfı referans olarak ekleyen bir noktada yeni bir method eklemenizi sağlayan yazım tekniği olarak düşünebiliriz. Normal şartlar altında müdahale şansınız olmayan sınıflara method eklemek için oldukça yararlı bir özellik.”infix” notasyonu ile kullanılır. Üst seviyeli fonksiyonlar: Bir fonksiyonu input alan fonksiyonlar olarak düşünülebilir. Lambda ifadeler: Üst seviye fonksiyonlar gibidir, ancak tanımlı bir fonksiyon yerine inline fonksiyon ifadesini input olarak kullanırlar.

Kotlin - 13 - Fonksiyonlar (1. Bölüm)

Resim
Kotlin de fonksiyon tanımı “fun” anahtar kelimesi ile yapılır, kullanımı yani çağırımı ise daha standart bir yol ile alışıla gelen tarzdadır. Parametreler pascal notation’ı kullanılarak tek tek tanımlanmalıdır. İnitial değerler parametre tanımı esnasında yapılabilir. İnitial değer atamaları overload ihtiyaçlarını azaltacaktır, Ancak dikkat edilmesi gereken nokta overload yapılan method larda initial değer desteklenmez, method imza kısmından initial değer atama kısmı kaldırılmalıdır. Initial değer içeren bir değer kullanılacak ise, named parameter olarak değerler geçilmelidir. Named parameter kullanımı , çok parametreli method ların çağrılması adımında kod’un okunaklı olması adına oldukça faydalı olacaktır. Sıralı parametreler named argument olmaksızın kullanılabilir ancak arada atlanan parametre olduğunda artık kullanılamaz. Eğer fonksiyonumuz dönüşsüz olacaksa tipini “: Unit” olarak tanımlayabiliriz, ya da Unit opsiyonel bir tip olduğu için hiç yazmadığımı...

Kotlin - 12 - Delegasyon ve Delege Özellikler

Resim
Delegasyon: Delegasyon implemantation için oldukça iyi bir alternatif, Kotlin bunu oldukça kolay ve az bir kod ile destekler.  Aşağıdaki örnekte “Base” interface ini miras alan ve tüm public method larını destekleyen “Derived” adında sınıf yaratılıyor. “by b” ifadesi “b” nin “Derived” class’ı içinde obje olarak tutulacağını ifade ediyor ve derleyici “Base” in tüm method larını “b” için yaratacak. Yinede override etmek mümkün. Delegate edilmiş özellikler: Bazı durumlarda genel değişkenler olur ve sürekli manuel olarak eklememiz gerekiyor, her şey için bir kere eklemek iyi olabilir, bu doğrultuda ve aşağıdaki 3 fayda (Belkide fazlası) için Kotlin Delege özellikleri kullanır. Lazy properties: değer sadece ilk erişimde hesaplanır. Observable (gözlemlenebilir) properties: listener lar tarafından değer değişiklikleri yakalanır. Her alan için ayrı özellik tutmak yerine map içinde tutmak. Kotlin’de (1.1 sonrası) delege özellikler fonksiyon veya kod bloğu iç...

Kotlin - 11 - Nesneler

Resim
Object Expressions: Bir sınıf tan obje yaratmak için aşağıdaki şekilde tanım yapabiliyoruz, Örnekte “ab” isminde “A” ve “B” kullanılarak bir obje yaratılıyor. Dikkat edilecek bir diğer konuda “A” sınıfının constructor method’u input aldığı için oluşturma esnasında initial değerin sağlanması gerekiyor. Eğer sadece obje yaratmamız gerekiyor, ancak kalıtma ihtiyacımız yok ise: Object declarations: Obje tanımları local olamaz, mesela fonksiyon içinde nested olarak yer alamaz, ancak başka bir obje içinde nested olabilir. Bir class’ın içindeki obje tanımı “companion” ketword’ü ile işaretlenebilir. Expressions - Declarations: Expressions ilk anda initialize edilir ve çalıştırılır. Declarations laziy initialize olur ve ilk çağrımda çalışır. “companion” nesne ilgili class yüklendiğinde initialize edilir.