Armağan Amcalar

Istanbul Coders, Istanbul

6 Ağustos 2015

Ben Kimim?

Armağan Amcalar

Startup Kitchen Kurucu ortak, Baş Yazılım Mimarı
Lonca Kurucu, Kethüda

 

Hobi projeleri

pedals.io
trax.io

UI Mimarilerinin durumu

Framework ekonomisi

Pazarlama temelli

Framework temelli

Fazla karışık

Çözüm odaksız

Bilgi kirliliği

Bilgisizlik, deneyimsizlik

Neden Vieux?

Yazılım geliştiriciler daha iyisini hak ediyor

Kolay anlaşılır, kolay uygulanır

Çatı-bağımsız

Eskinin yükünü taşımıyor

Tartışmasız kavramlar

En zorlu uygulamalarda kendini kanıtlamış

Yaklaşım

Tutarlı bir hikâye

Terbiyecilik değil, yol arkadaşlığı

Modüler mimari

Tekil sorumluluk

Genişletilebilir

Düşük kompleksite

Nesne tabanlı

Olay güdümlü

 

Yapı

3-katmanlı mimari

4 çekirdek, 3 seçmeli rol

 

Culture
Representative
Regime
Undertaker
Stereotype
Diplomat
Satellite

Union*

Yapı

Roller

Stereotype*

Kimliği belli, özgün verileri saklayan sınıflar

Kullanıcı, Hesap, Ürün, AlışverişSepetiNesnesi, KrediKartı vb.

Veri ve bu veriler üzerinde çalışacak ufak davranışlar barındırabilir

Regime'ler tarafından yaratılır ve yönetilir

 

 

*Entity

Roller

Culture*

Kullanıcı arayüzünü yönetir

Çeşitli davranışlar gösterir

Mümkün olduğunca *cahil*dir, kendi hafızası ya da durumu yoktur

Kullanıcı girdilerini anlayıp, Representative'lere gönderir

Farklı davranışlar gösteren altkültürler barındırabilir

Liste, ListeÖğesi vb.

 

*View

Roller

Representative*

Bir Culture'yi temsil eder
Culture'nin durumlarını saklar
Eğer Culture'nin bir Stereotype'si söz konusuysa, onu saklar
Her Culture kendi Representative'sini yaratır

 

 

*ViewModel

Roller

Regime*

Uygulama katmanında uygulama durumunu saklar ve yönetir
Stereotipler doğurur, yönetir ve işler
Diğer Regime'lerle Diplomat'lar yoluyla haberleşebilir
Durumun kaydedilmesi işini Undertaker'a bırakır
Karmaşık uygulamalarda iki katman Regime uygulanabilir
Singleton olarak yaşar

 

*Domain Model / Service

Roller

Undertaker*

Altyapı katmanında uygulama durumunun kaydedilmesi için gerekli işlemleri yapar
Kendisi durum saklamaz, Regime'den direktif alır
Genellikle tek bir teknoloji (WebSQL, LocalStorage, AJAX, WebSockets) ile çalıştığı için teknolojiye özel yapılar barındırabilir
Durumun birden fazla teknoloji ile kaydedilmesi gerekiyorsa bu sorumluluğu Satellite'ye gönderir
Singleton olarak yaşar

 

*Repository

Roller

Diplomat*

Ana görevi Regime'ler arası iletişimi organize etmektir
Özerk yapıdadırlar
Singleton olarak yaşarlar
Regime-Regime iletişimini sağlamakla birlikte, nadir durumlarda Representative-Representative iletişimini de organize edebilirler

 

*Event Manager

Roller

Union*

Bağlamsal olarak birlikte anılan, birlikte çalışan rolleri, Regime'leri bir araya getiren kavramdır

Dosya vb. yapılarının anlaşılmasını kolaylaştırır

Büyük resmi görmeyi kolaylaştırır

 

 

 

*Package

Örnek

Chat uygulaması

 

Google Closure versiyonu

React versiyonu

Diğer versiyonlar yakında!

Nasıl katkıda bulunabilirsiniz?

GitHub Organizasyonumuz

https://github.com/vieuxio

 

Slack grubumuz

http://slack.vieux.io

 

Daha fazla örneğe, daha detaylı dokümentasyona, daha fazla sese ihtiyacımız var!

Takım, önemli!

WE WANT YOU!

Teşekkürler!

Armağan Amcalar

hello@arm.ag
twitter: @dashersw
github: dashersw
blog: arm.ag

Vieux'e giriş

By Armağan Amcalar

Vieux'e giriş

Çatı-bağımsız, ileri görüşlü UI mimarisi

  • 4,198