Apakah stail kejuruteraan? + Contoh

Apakah stail kejuruteraan? + Contoh
Anonim

Jawapan ringkas ialah kami menggunakan Flask for Python pada backend, Backbone untuk Javascript di depan-depan, dan menyimpan data kami di MongoDB, Redis, dan ElasticSearch. Kami dihoskan pada AWS.

Apa tumpukan?

Banyak kepingan teknologi diperlukan untuk menyampaikan laman web kepada anda, dan mereka melakukan pelbagai fungsi, termasuk:

  • Mewujudkan halaman dalam pelayar atau aplikasinya, menggayakannya (warna, fon), dan menjadikannya interaktif (contohnya menjadikan jantung merah dan menunjukkan kotak komen apabila anda mengklik padanya). Ini dipanggil front end, atau sisi pelanggan
  • Mengumpulkan maklumat yang diperlukan untuk halaman (mis. Soalan, jawapan, nama pengguna dan gambar, bilangan hati), dan menghantarnya ke komputer atau telefon anda. Ini dipanggil backend, atau sisi pelayan
  • Menyimpan maklumat ini supaya tersedia bila-bila masa diperlukan, dan membolehkan kami mencari tepat maklumat yang kami perlukan. Ini dipanggil pangkalan data, atau datastore
  • Komputer yang disambungkan ke Internet dan selalu pada siapa sahaja boleh mengakses laman web pada bila-bila masa. Komputer dipanggil pelayan dan mereka dihoskan suatu tempat.
  • Banyak fungsi kritikal dan kecil yang lain

Di setiap lapisan ini, terdapat beberapa pilihan yang baik dan pilihan mana-mana satu pasukan membuat berdasarkan pengalaman dan keselesaan ahli pasukan, serta perkara praktikal seperti keperluan kos dan keperluan spesifik.

Kami (hampir) penuh timbunan

Sesetengah teknologi dipasang, dikemas kini, dan dikendalikan oleh ahli pasukan kami di pelayan dan komputer riba kami sendiri. Mereka termasuk:

  • Backbone untuk menyusun Javascript kami
  • Kompas untuk menggunakan semula dan atur CSS kami
  • Flask, rangka kerja Python untuk melayani API HTML JSON + dan untuk membuat halaman HTML penuh
  • pyres untuk giliran tugas kami (mungkin Saderi tidak lama lagi)
  • MongoDB untuk menyimpan data kami (mungkin Postgres tidak lama lagi)
  • Redis ke perkara cache seperti suapan di sekitar tapak, pertanyaan tren, dan semua jenis statistik penggunaan
  • Elastik Mencari carian kuasa
  • Nginx untuk berkhidmat di laman web ini
  • Mengelakkan untuk meminimumkan, memampatkan dan menyemak semula Javascript dan CSS kami
  • Capistrano akan menggunakan aplikasi kami dan melaksanakan beberapa tugas membantu yang lain
  • Wayang untuk menubuhkan perisian yang kami perlukan pada pelayan baru

Sesetengah teknologi adalah perkhidmatan yang dibina dan diuruskan oleh syarikat lain. Ia sering lebih berkesan untuk membiarkan orang lain berfokus pada masalah tertentu dan bukannya melakukan segala-galanya. Sesetengah perkhidmatan yang kami gunakan ialah:

  • AWS aka Perkhidmatan Web Amazon untuk menjadi tuan rumah pelayan kami, aset statik, dan sebagai CDN
  • Cloudflare untuk DNS, caching, dan beberapa tahap keselamatan
  • Google Analytics dan Mixpanel untuk analitik
  • Papertrail untuk pembalakan terpusat
  • Sentry untuk mengesan kesilapan pihak klien
  • DataDog untuk memantau pelayan dan perkhidmatan kami
  • Relik Baru untuk memantau prestasi aplikasi Flask
  • Customer.io untuk menghantar e-mel berdasarkan apa yang anda lakukan atau tidak lakukan dalam aplikasi
  • Github untuk kod kerjasama dan hosting

Dan mungkin ramai yang lain.

Ia memerlukan banyak potongan untuk membina dan mengendalikan sebuah laman web, tetapi dengan bantuan alat binaan yang baik, itu tidak terlalu keras!