Başlanğıcınızı Python, reaksiya ver, doğma və AWS ilə qurun

Hamısı bir fikirdən başlayır.

Fikirlər maraqlıdır. Dərhal işə başlamaq və fikrinizi həyata keçirmək istəyirsiniz. Ola bilər ki, yan bir layihə etməyi, işdə yeni texnologiyaları sınamağı və ya bir başlanğıc hazırlamağı düşünürsən.

Yanvar ayında ilk startapım Proximistyle işə saldım. Hər hansı bir material üçün, Proximistyle, hansı dükanların içində, ölçüsünüzdə, yaxınlığınızda olduğunu görməyə imkan verir. Proximistyle React, React Native, Python və AWS yığını üzərində qurulub. Mən də bu yığını seçdim, çünki köhnə işimdən əvvəl sistemli bir hedc fondunda kvant hazırlayan kimi işləmişdim və işə götürmək asandır.

Proximistyle veb saytı React istifadə edərək hazırlanmışdır

Proximistyle veb saytı reaktiv hala gətirildi və iPhone tətbiqi React Native istifadə edərək hazırlanmışdır. İkisi də eyni API-dən istifadə edərək paylaşılan AWS Python arxa planı ilə danışmaq üçün istifadə edirlər.

Reaksiya verin

Reaktiv, interaktiv UI etmək ağrısız edən JavaScript kitabxanasını öyrənmək asandır. Reaksiya gücü, UI-nu kitabxana və xüsusi komponentlərin modul bir qarışığından qurmağa imkan verir. Komponentlərin gücü ondadır ki, veb saytınızın bir hissəsini bir dəfə yaza və sonra dəfələrlə istifadə edə bilərsiniz.

Bəzi komponentləri vurğulayan bir TODO siyahısı

Bu TODO siyahısını nümunə kimi götürün. TODO siyahınızdakı tapşırıq bir komponentdir (narıncı). Bu o deməkdir ki, bütün tapşırıqlarınızı bir ulduz emoji ilə başlamaq üçün dəyişdirmək istəsəniz, yalnız tapşırıq komponentinizi yeniləməlisiniz. Task komponentinizdən istifadə edən bütün yerlər dərhal yenilənəcəkdir. TODO siyahısının özü (bənövşəyi) də bir komponentdir. Bu, özünüzü təkrar etməyin (DRY) proqramlaşdırma prinsipinə əməl edir.

Görkəmli reaksiya xüsusiyyətləri

Reaksiya kodu bir sıra komponentlərə qurulmuş və iyerarxiya ağacı kimi yığılmışdır. Üst tərəfdə bir kök komponentiniz var və səhifənin qalan hissəsi buna bağlıdır.

# 1 Birtərəfli Məlumat axını

React-də məlumat axını valideyndən uşağa bir istiqamətlidir. Bir uşağa verilən məlumatlar dəyişməz sayılır.

# 2 Virtual DOM

React, bütün veb saytın yaddaş yaddaşındakı bir virtual DOM istifadə edir. Bir komponent üçün məlumatlar dəyişdikdə bir diff hesablanır və yalnız təsirlənən komponentlər yenilənir. Bu o deməkdir ki, veb saytınızda dəyişiklik olanda çox tez yenilənir.

# 3 JSX

React, JSX adlı bir dil istifadə edir, bu da JavaScript-də HTML yazmağınıza imkan verən JavaScript XML-ə dayanır.

JSX-də # 4 Şərtli Bildirişlər

JSX-dəki şərti ifadələr dəyişənlərdən asılı olaraq məzmunu dinamik olaraq dəyişdirmək imkanı verir. Məsələn, bir düymə tıklandığında məzmunu göstərə bilərsiniz.

# 5 Kitabxanalar

Reaksiya verməyin ən böyük faydalarından biri kitabxanaların geniş olmasıdır. Veb saytınızın olmasını istədiyiniz hər hansı bir komponent üçün mövcud kitabxanalar mövcuddur. Sürgülər, karusellər, xəritələr və s. Bu veb saytı işə salmağı çox sürətli edir. Kitabxanalar üçün iki ümumi paket meneceri NPM və ipdir.

Reaksiya istifadə əsas üstünlükləri

# 1 Sürət, Sadəlik, Ölçülük

React komponentlərinə əsaslanan memarlıq, hobbi və ya unicorn miqyasında veb saytını tez və asanlıqla yaratmağa imkan verir.

# 2 Özünüzü təkrar etməyin

Komponentlərdən istifadə etmək bir dəfə yaratmaq və hər yerdə təkrar istifadə etmək deməkdir.

# 3 Öyrənmək asandır

HTML və JavaScript-ni bilirsinizsə, Reaksiya ilə başlamaq çox asandır.

# 4 Geniş Sənaye Qəbulu

Reakt, Facebook, Instagram və Airbnb kimi digər şirkətlər arasında sənayedə geniş istifadə olunur. Bu o deməkdir ki, işə götürmək asandır və onlayn sənədlər və dərs vəsaitləri tapmaq asandır.

Doğma reaksiya

Reaktiv Native, bir veb saytının əvəzinə Android və iOS üçün tərtib etməyincə React-a çox oxşardır. Mobil tətbiqinizi React-də yazmağınıza imkan verir, yəni UI-ni zəngin, dekorativ komponentlərdən tərtib edə bilərsiniz. React Native-dən istifadə etmək hələ mobil veb tətbiq yazmağınız demək deyil. Doğma tətbiq üçün tərtib edir.

Əgər siz əvvəlcədən reaksiya bilirsinizsə, React Native öyrənmək olduqca asandır, çünki sintaksis eynidir. Əsas fərqlər mövcud kitabxanalar və müxtəlif daxili komponentlərdir.

React Native, mobil və veb üçün tərtib etdiyi kimi React istifadə etdiyi HTML etiketlərindən istifadə etmir. Reaksiyada istifadə edərdiniz və etiketləri paraqraf göstərmək üçün, React Native-də əvəzinə istifadə edərdiniz və etiketlər.

Reaksiya VS reaksiya Native kodu misal

Kodun təkrarlanmaması üçün React and React Native layihələrinizdə bir çox komponentdən təkrar istifadə etməyə imkan verən React Primitives adlı bir kitabxana var. Bu layihənin məqsədi bir gündə bir dəfə yazmaq və 3 dəfə - veb, Android və iOS-a yerləşdirməkdir. Airbnb-dən Leland Richardson, veb, iOS və Android-i bir kod bazasına birləşdirərək qurtarmaq üçün ümid etdikləri kodların çarpılması haqqında çox gözəl bir danışma etdi.

Reaktiv Doğma istifadə əsas üstünlükləri

# 1 Bir dəfə yaz, İki dəfə yerləşdir. Arıq mühəndislik komandası.

React Native istifadə etməyin əsas üstünlükləri odur ki, bəzi kodlarınızı yenidən istifadə edə bilərsiniz və tətbiqinizi iki dəfə yox, yalnız bir dəfə yazmalı olacaqsınız. Arıq bir mühəndis heyəti saxlaya biləcəyiniz üçün işə qəbulu asanlaşdırır. Bir eary mərhələsi başlanğıc olduğunuzda bu, alt xəttinizdə böyük fərq yaradır.

# 2 Geniş Sənaye Qəbulu

React Native, digərləri arasında, sənaye, Airbnb, Facebook və Instagram arasında çox geniş istifadə olunur. Bu, işə qəbulu asanlaşdırır, çünki geniş yayılmış bir bacarıqdır. Bu da çox sayda onlayn resursun mövcud olduğunu göstərir. Ən çox yayılmış ehtiyaclarınızı həll edən çox sayda müasir kitabxananı və StackOverflow-da və blog yazılarında cavablarınızı tapacaqsınız.

Seksual yenidən yükləmə istifadə edərək # 3 sürətli inkişaf

React Native-də bir tətbiq hazırlamaqla bağlı ən yaxşı şeylərdən biri inkişaf sürətidir. Seksual Yenidən yükləmə istifadə edərək, yenidən yazmadan dərhal yükləyə bilərsiniz. Bir veb saytı canlandırmaq qədər sanki sürətlidir. İsti Yeniləmə, yeni kodu işləyərkən tətbiq vəziyyətini saxlamağa imkan verir.

Doğma Yazılı Komponentlər üçün # 4 Dəstək

React Native həm JavaScript, həm də doğma kodu (Swift, Objective-C və ya Java) dəstəkləyir. Bu o deməkdir ki, probleminizi həll edən bir kitabxana tapa bilmirsinizsə, öz komponentinizi ya React, ya da doğma kodu ilə yaza bilərsiniz. Tətbiqiniz doğma kodu birbaşa istifadə edə bilər və başqa bir komponent kimi idxal edə bilər.

# 5 Öyrənmək asandır, Fikirdən App Store-a tez keçin

Proximistyle iPhone tətbiqetməsini istifadəçilərimiz davamlı olaraq bir app istəməyindən sonra fevral ayında etməyi qərara aldım. Əvvəllər heç bir tətbiq etməmiş, amma reaksiya verərək, mart ayının ortalarına qədər Apple app mağazasına aparmağı bacardım.

Reaksiya veb saytı olaraq bir tətbiq kimi Proximistyle edilməsi arasındakı fərqlər əvvəlcə gözlədiyimdən daha böyük idi (bir həftə sonu daha uzun çəkir), amma öyrənmə əyriliyinin əsas hissəsi tətbiqinizi telefonunuzda necə işə salmağı və istifadə etməyi öyrənməkdir. xcode-a və bütün özəlliklərinə.

UI dizaynınızdakı əsas fərqlərdən biri də React Native-in CSS şəbəkəsi yerinə flexbox istifadə etməsidir. Barmaqlıqlar ilə işləməyə alışmış olsanız, alışmaq üçün bir az vaxt lazımdır. React Native də hərəkət etmə komponentləri üçün animasiya kitabxanaları, yerli dəyişdirmə və səliqəli daxili məlumat quruluşları var.

Vərdiş etdikdən sonra axını çox bəyəndim və Proximistyle'nin bir mobil brauzerdə bir tətbiq olaraq istifadə etmə təcrübəsinin qərarlı olaraq 10x olduğunu gördüm.

React ilə başlamaq

Facebook-un yaratmaq-reaksiya-tətbiq skriptini istifadə etsəniz, React ilə başlamağınız olduqca asandır. GitHub-dan yüklədiyiniz və depozitlərinizi işə salmaq üçün terminalınızda işlədiyiniz bir yazıdır.

npx create-reaksiya-app my-app cd my-app npm start

Yaratmaq-reaksiya etmə tətbiqi, Webpack və Babel ilə bütün çətin quraşdırma addımlarına diqqət yetirir, buna görə işləmək hüququ əldə edə bilərsiniz. Bunları əl ilə konfiqurasiya etməlisinizsə, bunu blog yazılarımda necə edəcəyinizi və ya keçən il EuroPython-dan danışmağımı görə bilərsiniz.

Reaksiya Sürətli İtirişlərə imkan verir

Başlanğıc üçün MVP qurarkən, UI kimi göründüyünüzü eskizlə adətən başlayacaqsınız. Bir prototipi sınaqdan keçirməyin ən sürətli yolu Sketch və InVision kimi bir şeydən istifadə edərək istehza etmək, telefonunuza qoymaq və insanlara göstərmək olar. Proximistyle etdiyim budur. Bu mərhələni keçdikdən sonra tez bir zamanda interaktiv UI qurmaq istəyəcəksiniz.

Reaktiv bir veb sayt qurarkən, API zənglərinizin normal qayıdacağı sistemə dummy məlumatlarını daxil etmək mənasızdır. Məlumat axını bir yönlü olduğundan, məlumatları ağacın üstünə əlavə edə və tətbiqinizin gözlənildiyi kimi davranacağını yoxlaya bilərsiniz. Daha sonra istifadəçi istifadəçilərinizin istədiklərini yoxlamaq üçün erkən interaktiv prototipinizi sınaya bilərsiniz. Bu, qiymətli inkişaf vaxtına qənaət edəcəkdir.

API zəngləri etmək

Ön cəbhənizdən məmnun olduğunuzdan sonra onu API API-yə bağlaya bilərsiniz. Mən adətən jQuery-dən istifadə edərdim, Reaksiya kodundan API zəngləri almaq üçün və ya vədlər verərdim.

fetch ('api.example.com') .then (cavab => cavab.json ()) .catch (səhv => console.log (səhv));

Sistemimi tez və sürətli işlətmək istəyərdim, Pythonda kodlaşdırıb AWS-də yerləşdirərdim.

Python

Python oradakı ən çox yönlü dillərdən biridir. Onu kiçik skriptlərdən tutmuş, məlumat elmi və müəssisə sistemlərinə qədər hər şey üçün istifadə edə bilərsiniz. Bir çox sistemli hedc fondları, o cümlədən işlədiyim fond Python evləridir. Araşdırma o deməkdir ki, Pythonda, SciPy və Numpy ilə olur. Ticarət sistemləri, ehtimal ki, Docker sarğısı ilə Python-da yazılmışdır və insanların bit və bobləri avtomatlaşdırmaq üçün yazdıqları təsadüfi skriptlər Pythonda da yazılacaqdır. Python-dan istifadə edərək veb saytları qıra bilərsiniz.

Python, standart olaraq Mac və Linux-da quraşdırılmış gəlir və işə başlamaq üçün səy göstərmir. Terminaldan istifadə edin və ya sevdiyiniz redaktoru açın və yazmağa başlayın.

def hello_world (): çap ('Salam Dünya!')
əgər __name__ == '__main__': salam_world ()

Geriyimizə ev sahibliyi

Veb saytımız və ya tətbiqimiz üçün arxa yazı yazmağa gəldikdə, qurmağa çalışdığımızdan asılı olaraq bir çox seçimimiz var. Bir seçim, bir yerə yerləşdiyimiz bir server yaratmaq üçün Flask, Django və ya Piramida istifadə etməkdir. Digər seçim isə serversiz bir arxitekturadan istifadə etməkdir.

Serversiz hesablama arxitekturasından istifadə etməyin faydası yalnız server mənbələri və istifadə etdiyiniz vaxtın tam məbləğini ödəməyinizdir. Bu, başlanğıcınızın əməliyyat xərclərini və mürəkkəbliyini əhəmiyyətli dərəcədə azalda bilər, xüsusilə də arxa planınız tez-tez çağırılmadığı təqdirdə. Ən populyar serversiz hesablama həlli AWS Lambda.

Amazon Veb Xidmətləri (AWS)

Amazon Web Services, şübhəsiz ki, dünyanın ən məşhur bulud hosting həllidir. Eyni hobbiistlər, startaplar, unicorns və müəssisələr tərəfindən istifadə olunur. Yəqin ki, AWS istifadə edənlər haqqında eşitdiyiniz bəzi startuplar Spotify, Airbnb, Slack və Lyftdir. Bu texnologiya yığımının qalan hissəsində olduğu kimi, geniş sənaye qəbulu bunu bilən birini işə götürməyi asanlaşdırır və internetdə ümumi məsələlərə çox cavab tapa bilərsiniz.

AWS xəyal edə biləcəyiniz hər bir xidməti təklif edir. Anbar, hesablama, monitorinq, şəbəkə, analitik və maşın öyrənməsi. Seçmək üçün yüzlərlə seçim var, bunlar bir şeyə ev sahibliyi etməyiniz üçün ilk çətinliyiniz ola bilər. Məkandakı dostlardan xüsusi AWS xidmətlərini tövsiyə etmələrini xahiş etdim, çünki ağaclar üçün meşəni görmək olduqca çətin idi. İnternetdə də bir araşdırma etdim. Sonda kəşf etdim ki, əsasən ehtiyaclarınızın 90% -ni ödəyəcək ən populyar xidmətlərdən xəbərdar olmalısınız. Onlar:

  • 53 nömrəli marşrut (DNS. SSL üçün lazımdır)
  • Bulud Ön (Veb saytınız üçün Ümumdünya Edge Keshləmə)
  • S3 (Veb Hosting)
  • API Gateway (ümumi API son nöqtəniz)
  • AWS Lambda (Serversiz hesablama)
  • EC2 (Hesablayın)
  • DynamoDb (NoSQL verilənlər bazası)

Əsas AWS Memarlıq

AWS başlamaq üçün istifadə etməyinizi tövsiyə etdiyim bir neçə faydalı işə başlamaq üçün sehrbazlar və dərsləri təklif edir. Quraşdırmanı çox asanlaşdırır və heç bir şeyi səhv tənzimləməməyinizi təmin edir. AWS-in necə işlədiyini ilə tanış olmaq üçün də gözəl bir yoldur.

S3 Kovalar

Sadə saxlama xidməti üçün nəzərdə tutulan S3, qalayda deyilənlərdən xeyli çoxdur. Sənədlərinizi yüklədiyiniz bir çömçə. Daha sonra çömçə özəl və ya ictimai olduğuna qərar verə bilərsiniz. Reaksiya kodunuzu yükləsəniz və açıq edərsinizsə, statik bir veb saytınız var. Bu qədər asandır.

// bir S3 kovası yaratmaq $ aws s3 mb s3: // bucketName
// Reaktiv tətbiqinizi qurun və yerləşdirin $ npm run && aws s3 sync build / s3: // bucketName

S3 üçün xərclər ~ $ 1-3 / aydır, əgər istəsəniz hamısı statik bir veb sayt keçirməkdir.

API Gateway

API Gateway veb saytınız və geribildiriminiz arasında əlaqə yaratmaq üçün istifadə olunur. Konfiqurasiya etmək olduqca sadədir və beta və prod kimi öz-özünə təyin olunan mərhələlərdə API dəyişikliklərini asanlıqla itələməyə imkan verir. API Gateway API-ləriniz üçün giriş və ya istifadə məhdudiyyətləri də əlavə edə bilərsiniz. Bir API zəngi üçün gözləmə müddəti 30 saniyədir.

AWS Lambda

Amazon-un serversiz hesablamasına AWS Lambda deyilir. Bir lambda funksiyası əslində yalnız onu işə salmaq üçün vaxtı mövcud olan bir funksiyadır. Bir lambda funksiyasını çağırdığınız zaman bir anın bir hissəsini xərcləyir, gedir və istədiyi şeyi edir və nəticəni qaytarır. Normal bir server üçün dəqiqə və ya saatda ödəmə ilə müqayisədə, funksiyanı yerinə yetirmək üçün aldığınız hər 100ms-ə görə haqq tutulur. Kodunuz işləməyəndə heç bir şey tutulmur.

Bir lambda funksiyası üçün özəl fasiləsiz vaxtı təyin edə biləcəyinizi unutmayın, ancaq unutmayın ki, onu API Gateway-dən çağırırsınızsa, lambda funksiyası bitməmişdən əvvəl API çağırışı gözləyə bilər, yəni görünə bilər zəng etmədiyiniz zaman uğursuz oldu.

Lambda istifadə AWS Lambda ana səhifəsindən bir nümunə veb tətbiqi.

Lambdaları istifadə etməyin başqa bir faydası genişlənməlidir. Bütün lambalarınız paralel olaraq işlədiyinə görə tətbiqetmə tərəzi mükəmməldir, nə qədər əlaqə saxladığı da miqyasını idarə edə bilər.

Lambdaları istifadə etməyi seçməyimin əsas səbəblərindən biri, öz serverlərimi saxlamağım lazım olmadığı demək idi. Digər hobbi layihələri üçün serverlərdən istifadə edərək və bir neçə il əvvəl Linux istifadəçisi olanda bilirəm ki, vaxt aparan serverin saxlanması nəinki şəxsi miqyasda ola bilər. Bu da Linux-dan Mac-a çox keçməməyimin səbəblərindən biri idi. Əngəl olmağa dəyməz.

AWS Pulsuz dərəcəli

İlk dəfə AWS hesabı qurursan, AWS Free Tier üçün əlverişlidir. Bir çox mənbədən istifadə etmədiyiniz müddətcə AWS-i bir il ərzində pulsuz olaraq sınamağa imkan verir. Yeni bir başlanğıc başlatdığınız təqdirdə bu çox böyük bir köməkdir, çünki parlaq yeni ideyanızı qurmağa başlayanda çox güman ki, pulunuz olmayacaqdır. Yeni bir başlanğıc olduğunuzu AWS-ə sübut edə bilsəniz, pulsuz AWS kreditində 1000 dollar verən Bulders qrantına da təsdiqlənə bilərsiniz. Çox səslənə bilməz, amma çox uzun bir yol gedir.

Pitfalls və Gotchas

Xüsusilə başlanğıcda AWS istifadə etmək üçün bir çox tələ var. Bir komponentin niyə digəri ilə əlaqə qurmadığını anlamaq üçün çox vaxt itirmək çox asandır, yalnız şəbəkə və ya icazələrin düzgün qurulmadığını anlamaq üçün. Bu barədə bir əvvəlki blogpost-da yazmışam, bəzi baş ağrısı verməməyi nəzərdən keçirməyi məsləhət görürəm.

Final Düşüncələr

İndi başlanğıcınızın texnologiya yığını niyə işə başlamaq, işə götürmək və Google-a aid məsələlərin nə qədər asan olmasına əsaslanaraq yaxşı bir fikir seçməyiniz barədə daha yaxşı bir düşüncəyə sahib olmalısınız. İnşallah bu yazı sizi fikirlərinizdən MVP-yə aparmaq üçün düzgün istiqamətdə köməkçi bir təkandır.

Bunu oxuyursan və sonra bir şey qurmağı başa düşsən, mənə bildir. Çalışdığınız işi eşitmək istərdim. Bu barədə mənə məlumat vermək üçün [email protected] elektron poçtuna göndər!

Angela Branaes, Proximistyle, yaxınlıqda axtardığınızı tapmağa kömək edən bir pərakəndəTech başlanğıcının yaradıcısıdır. London İmperial Kollecindən bir Hesablama dərəcəsinə sahibdir və əvvəlcədən sistematik bir hedc fondunda, səviyyəli bir bankda və bir silikon vadisində bir şirkətdə işləmişdir.