Bu eğiticide, etcd'yi arka uç olarak ve Flutter'ı ön uç olarak kullanarak bir yönetici kullanıcı arayüzü uygulaması oluşturacağız.
etcd, uygulama yapılandırmanızı düzenli tutmanın harika bir yoludur. Kritik yapılandırma verilerini anahtar-değer çiftleri olarak depolar. Etcd'nin en güçlü özellikleriyle ilgili bir makale yayınladım , daha detaylı bilgi edinmek isterseniz kontrol edebilirsiniz.
Ayrıca Flutter'da
DataTabledinamik bir iç
TabBargörünümü nasıl oluşturacağımızı ve bunu etcd arka ucundan gelen verilerle nasıl dolduracağımızı da öğreneceğiz.
Kodlamaya başlayalım!
Basit olması için bir Docker görüntüsü kullanacağız.
docker-compose.ymlAşağıdaki içeriğe sahip bir dosya oluşturun :
Bu komutu terminalinizde yürütün:
docker-compose up -d
Öncelikle etcd değerlerini alma ve yazma hakkında birkaç söz. Anahtar / değer çiftleri bir Base64 algoritmasında kodlanmalıdır.
Diyelim ki yönetici uygulamamız için, bir e-posta istemcisi, bulut depolama alanı ve bir mesaj aracısı için yapılandırma verilerini depolamak istiyoruz. Örneğin, - Bu tür veriler bir kullanıcı adı, şifre, konak ve port numarası olabilir
rabbitmq/user=user123,
rabbitmq/password=secretvb.
Aynı yapılandırma öğesi için tüm anahtar / değer çiftlerini yapılandırabilmek için, anahtarlarımıza bir önek vereceğiz. Etcd ile ilgili en iyi şey, verilen anahtara ait tüm değerleri öneke göre almasıdır. Böylece istediğimiz kadar değeri yapılandırabiliriz.
curl -L http://localhost:2379/v3/kv/put \ -X POST -d '{"key": "Zm9v", "value": "YmFy"}'
curl -L http://localhost:2379/v3/kv/range \ -X POST -d '{"key": "Zm9v"}', "range_end": "Zm9w"}'
Bu eğiticiye devam etmek için Flutter SDK'nın kurulu olması gerekir. Yardıma ihtiyacınız varsa, resmi kontrol edinhttps://flutter.dev/docs/get-started/install.
httpGönderi isteklerini arayacağımız için bağımlılığı almanız gerekiyor .
pubspec.yamldosyayı açın ve bunu bağımlılıklar bölümüne yazın:
http: any
configdata.dartAşağıdaki kodla çağrılan yeni bir dosya oluşturun :
etcdservice.dart
main.dart
MyApp
TabBarViewiçini oluşturun
MyApp. Bu amaçla kullanıyoruz
DefaultTabController. Görüntülenen sekmelerin sayısı dinamiktir. Sekmeleri oluşturun ve sekme sütunlarını oluşturun:
getConfigData(String prefix)Yöntemi oluşturarak etcd hizmetini çağırın :
DataTable
_DataTableWidgetStateşunlardan hemen sonra sınıfı oluşturalım
DataTableWidget:
DataTableAynı sınıfın içini oluşturun :
setConfigValue(ConfigData config)Etcd anahtar / değer çiftlerini güncellemek için bir yöntem oluşturun :
Kodlama kısmı için bu kadar. Şimdi uygulamanın nasıl göründüğüne bakalım ve işlevsellik için bazı testler yapalım.
flutter channel beta
flutter config -enable-web
flutter create web
flutter run -d web
Yönetim konsolunuz şöyle görünmelidir:
Şimdi etcd kullanarak bazı konfigürasyonlar ekleyelim. Bulut Depolama sekmesi için bir kullanıcı adı ve şifre ekleyeceğim. MinIO'yu örnek bir sistem olarak alacağım. Anahtarlar
minio/userve olacak
minio/pass. Değerler sırasıyla
myuserve
secretolacaktır. Bu anahtar değerleri, çevrimiçi bir Base64 kodlayıcı aracının yardımıyla zaten kodladım.
Verileri curl kullanarak gönderelim:
curl -L http://localhost:2379/v3/kv/put \ > -X POST -d '{"key": "bWluaW8vdXNlcg==", "value": "bXl1c2Vy"}' curl -L http://localhost:2379/v3/kv/put \ > -X POST -d '{"key": "bWluaW8vcGFzcw==", "value": "c2VjcmV0"}'
Bir değeri değiştirmek için, üzerine çift tıklayın ve yeni bir değer yazın.
EnterTuşuna basılarak veriler etcd'ye gönderilir ve bu anahtarın değerini hemen günceller. Sayfayı yenilerseniz, yeni değeriniz korunmalıdır. Benimkini şu şekilde değiştirdim
user123:
Bu eğiticide, anahtar / değer çiftlerini alma ve değiştirme gibi bazı temel etcd özelliklerini inceledik. Biz de bir nasıl oluşturulacağını öğrendim
DataTablebir ile
TabBarViewdinamik olarak kullanarak Flutter çerçevesi.
Bu projenin tam kaynak kodu, aşağıda bağlantısı verilen GitHub depomda bulunabilir.
Okuduğunuz için teşekkürler ve mutlu kodlamalar!
Teknoloji dünyasında, işletmeler sürekli olarak siber suçluların şeytani faaliyetlerinin tuzağına düşme riski altındadır. Endişe verici derecede sık hale gelen böyle bir taktik, kimlik bilgilerini doldurmaktır.
Kasım 2020'nin başlarında SalesForce, açıklanamayacak şekilde JARM adlı yeni bir aktif TLS parmak izi alma aracını duyurdu. JARM'ın temeli, bir hedef sunucu özel olarak hazırlanmış çeşitli farklı TCP "İstemci merhaba" paketleri kullanılarak tarandığında, elde edilen yanıtların birleştirilip, paylaşılan veya benzer bir uygulama veya sunucunun göstergesi olan bir parmak izi sağlamak için karma hale getirilebilmesidir. yığını.
Harika geliştiriciler yapan teknik olmayan şeyler Bir süredir bu makaleyi yazmayı erteliyorum - yazmak için hiç nitelikli hissetmedim. Bugün onu yazma zamanının geldiğini düşündüm.
Teknoloji endüstrisindeki bir pozisyon için mülakat yaparken, herhangi bir teklif değerlendirilmeden önce genellikle en az üç tur mülakattan geçeceksiniz. Mermiler genellikle şuna benzer: Eğer öyle düşünüyorsan, yanılıyorsun.
Pragmatik Programcı ilk olarak 1999'da yayınlandı ve o zamandan beri tüm zamanların en iyi programlama kitabı seçildi. Yazarlar Andy Hunt ve David Thomas, Agile Manifesto'nun orijinal yazarları arasındaydı ve bazı ciddi referanslara sahipler.