30 Mart 2020 Pazartesi

Ne Nedir?

    S.A. Arkadaşlar,
    Evde sakince çalışabilmenin, sessiz bir ortamda düşünebilmenin dinginliği ile bu yazıyı yazıyorum. Çoğu zaman kendimce notlar alırım. Sonrasında zaman zaman dönüp tekrar bakıyorum notlarıma, eklemeler, düzenlemeler yaptıktan sonra, iyice olgunlaştığına kanaat getirdiğim an paylaşmaya özen gösteriyorum. Bu makalemde de araştırdığım ya da öğrenmeyi hedeflediğim konuları ele aldım. Herhangi bir sıralama bulunmuyor konularda. Eklemelere devam ederek bu makaleyi güncel tutmaya çalışacağım. Aşağıda ele aldığım konulara eklemeler yapmak isterseniz çok memnun olurum..

Firebase: JSON verilerimizi uzak bir sunucuda gerçek zamanlı olarak depolayabildiğimiz, bulut (Cloud) tabanlı bir platformdur.[Dahası]

Apache Cordova gibi kütüphaneler sayesinde hem web programlamanın nimetlerini kullanabiliyor hem de ince ayrıntılarına kadar optimize edilmiş kullanışlı mobil uygulamalar geliştirebiliyoruz. [Dahası]

PhoneGap’i de HTML5, CSS3 ve Javascript ile farklı platformlarda mobil uygulamalar hazırlamamızı sağlayan bir HTML5 frameworküdür.[Dahası]

Phonegap ile cordova, Ionic aynı mantıktadır. Hibrit uygulama HTML, CSS, JS gibi frontend dillerini kullanarak mobil uygulama geliştirmeye verilen isimdir. Uygulamayı geliştirip daha sonra ios android ve windows için ayrı sürümler çıkarılabilir.

Native : Tek dille bir uygulama geliştirmektir. Hibrit ile birbirine göre avantaj ve dezavantajları vardır. [Dahası]

Repository Pattern: Veri tabanına veri ekleme, güncelleme ve okuma gibi CRUD (Create Read Update Delete) işlemlerimiz için oluşturmuş olduğumuz kodların tekrar kullanılabilirliğini sağlamaktır.[Dahası]

Unit of Work: Veri tabanı ile yapılacak olan tüm işlemleri, tek bir kanal aracılığı ile gerçekleştirme ve hafızada tutma işlemlerini sunmaktadır. Bu sayede işlemlerin toplu halde gerçekleştirilmesi ve hata durumunda geri alınabilmesi sağlamaktadır.[Dahası]

Code first: Kod ile veri tabanı tasarımı oluşturan yapıdır. DB first ise veri tabanını db'den ui veya ile db kodları ile oluşturur. [Dahası]

Identity Map: ORM geliştirirken güncelleme (update) işlemleri sırasında veri tabanından çekilmiş olan nesnenin, sadece değişime uğrayan alanlarını güncelleyebilmemizi sağlayan bir desendir.

Dapper: Stackoverflow'un geliştirdiği açık kaynaklı performansı olarak oldukça hızlı olan bir orm aracıdır.[Dahası]

RabbitMQ: Mesajlaşma kuyruk yapısıdır. Uygulama ve sunucular arası veri akışı sağlar. Bu verileri kuyruğa ekler, karşı taraf bu verileri alabilir. Bu sayede  maliyet işlemini düşürürler. [Dahası]

Apache Zookeeper: Dağıtık uygulamalarda koordinasyonu sağlar.[Dahası]

Kafka: Yüksek performanslı dağıtık mesajlaşma olanağı sağlar. Bu da gerçek zamanlı mesajlaşmaya yakın bir olanak sağlamaktadır.[Dahası]

Elastic Search: Büyük verileri doğru bir şekilde saklayıp analiz etmek ve full text arama yapmak amacıyla kullanılır.[Dahası]

Hadoop: Büyük verileri birden fazla makinede paralel olarak saklanıp yönetilmesi için geliştirilmiş açık kaynaklı kütüphanedir.[Dahası]

Spark: Hadoop ile benzer işlemler yaparken verileri daha hızlı ve kolay işler. [Dahası]

Boostrap: Web üzerinde duyarlı, mobil-öncelikli projeler geliştirmek için en popüler HTML, CSS,  JS kütüphanesidir.[Dahası]

Jwt: Birden fazla yapı arasında kullanıcı doğrulama, tanıma ve benzer işler yapan standart bir token biçimidir. [Dahası]

Swagger: Rest API için sözleşme standardı sunan bir dokümantasyon aracıdır.[Dahası]

Serilog: Loglama işlemi yapan bir kütüphanedir. Rakiplerinden farkı yapısal olarak veriyi tutmasıdır.[Dahası]

Ocelot: .NET Core micro-servis yapısında gateway işini üstlenen kütüphanedir.[Dahası]

Graphql: Sunucu ile istemci arasında kendi sorgularını yazma olanağı sağlar.[Dahası]

Uygulama Sunucusu: Belirli bir uygulamanın çalışması için var olan sunuculardır. IIS, wildfly, nginx, tomcat, weblogic bunlardan bazılarıdır.

S3 Bucket: AWS'de verileri binary formatta saklayabileceğimiz ürünüdür.[Dahası]

IAM: AWS'ye erişimi olan bütün kullanıcıları yönetebildiği ürünüdür.[Dahası]

EC2: AWS'nin web servisler içerisinde sanal makine oluşturabilmesi için kullanılır.[Dahası]

Framework : Bir çok özellik ve kütüphane sunan yapılarıdır. Son dönemlerin en popüler frameworkleri: React, Angular, Vue

React Hooks : React'ın component yapısını bozmadan tek kökten gelen yapıyı kullanmaksızın state ve life cycle özelliklerin kullanımını sağlar.[Dahası]

Redux: Componentler arasındaki bilgi akışını sağlayan araçtır. Store gibi ayrı bir şekilde verileri depoluyor ve istediğin componenti kullanabiliyorsun.[Dahası]

Socket: Sunucu ile istemci arası iletişimi sağlayan yapıdır.[Dahası]

WebHooks : Socket ile benzer işlemi yapar, socket web browser ile konuşurken, webhooks uygulama ile konuşur.[Dahası]

SignalR: Gerçek zamanlı uygulamalar geliştirmek amacıyla geliştirilmiş bir kütüphanedir. [DahasıDahasıDahası]

Reflection: Run time'da, bir (sınıfa)tipe ait özelliklere, metotlara, tipin değişkenlerine, constructor'ün bir örneğinin elde edilmesine yarar. [Dahası]

Sonarqube: Daha çok kodun kalitesi ile ilgilenir. Çok kabaca statik kod analizi kavramının içine girer. Sunucu tarafından farklı seviyeler ile source code tarafı denetlenebilir ve istenilen çıktılar müşteriye ya da şirket içerisinde raporlanabilir. [Dahası]

Cucumber: BDD (Behavioral Driven Development) için kullanılan açık kaynaklı bir test aracıdır (Java). Specflow da .net için benzeri bir araçtır. BDD için [Dahası], Cucumber için [Dahası], Specflow için [Dahası]

Integration Test: Servislerin birbiriyle olan iletişimini garantiye almak için kullanılır. [Dahası]

Unit Test: En küçük birimlerin çalışırlığını garantiye almak için kullanılır. [Dahası]

Karma: Testleri oluşturmak için olan framework'tür. [Dahası]

Jasmin: Oluşan testleri çalıştırmak için kullanılır. [Dahası]

Selenium: Testleri otomatize etmeye yarayan bir araçtır.. [Dahası]

Mock Object: Unit testler yaparken uygulamamızın tümünü ayakta tutmak/tutabilmek zor olacaktır. Bunun yerine uygulamamızın test ortamında çalışabileceği kadar fonksiyonları içeren sınıflar denir.
Selim Şenyurt ise şöyle bir tanım yapmıştır:" Ulaşamayacağımız servis veya veritabanlarını sanal olarak oluşturulan objelerdir."

Okudukça öğrenmek, öğrendikçe daha çok paylaşmak dileğiyle...

Hiç yorum yok:

Yorum Gönder