Pelajari cara menggunakan Phoenix Framework untuk bersenang -senang membuat aplikasi web/seluler real-time
yang cepat bagi " pengguna akhir ", dapat diandalkan , terukur , dapat dipelihara , dan ( mudah ) dapat diperluas !
Sebagai pengembang aplikasi web/seluler, kita perlu memanfaatkan pekerjaan yang telah dilakukan oleh orang lain ( yang sangat cerdas ).
daripada terus-menerus membangun sesuatu “ dari awal ” sepanjang waktu; itulah sebabnya kami menggunakan kerangka kerja untuk membangun aplikasi kami!
Lihat: " 10 Alasan Teratas Mengapa Phoenix " ( lebih jauh di bawah halaman ini! )
Ada banyak kerangka kerja yang dapat dipilih ( beberapa kerangka kerja yang "populer" disebutkan di bawah pada bagian " Pertanyaan " ).
Namun jika kita mengikuti apa yang “ populer ” kita akan tetap menunggang kuda ( dan kereta ) kemana-mana dan tidak akan ada kemajuan yang dicapai.
Catatan : semua alasan " Mengapa " untuk Elixir juga berlaku untuk Phoenix !
lihatlah: https://github.com/dwyl/learn-elixir#why
Kerangka aplikasi web tanpa kompromi !
Kendala terbesar dalam setiap proyek teknologi adalah manusia . Seorang "Entrepreneur"/"Founder" atau "Product Owner" bisa mempunyai semua ide bagus yang ada di dunia, jika tidak mampu mengubah ide menjadi realita , percuma saja .
Tentu saja , Anda harus menjalankan tolok ukur Anda sendiri pada perangkat keras/cloud Anda sendiri dan membuat keputusan yang tepat berdasarkan persyaratan aplikasi/produk Anda, namun... ketika kita membaca statistik berapa banyak pengguna secara bersamaan yang dapat ditangani oleh Aplikasi Phoenix ( dengan siaran langsung Koneksi WebSocket ) kami terpesona ! Artinya, kami dapat membangun aplikasi real-time dengan sumber daya yang 90% lebih sedikit.
Semua ini berarti Anda menghabiskan lebih sedikit uang untuk infrastruktur Perangkat Keras/Cloud sehingga aplikasi/perusahaan Anda dapat memperoleh keunggulan kompetitif dalam hal biaya .
Jika Anda beruntung mempertimbangkan untuk menggunakan sesuatu yang jauh lebih baik untuk proyek Anda berikutnya , Anda bisa mengunjungi Phoenix!
Baca selengkapnya: http://www.phoenixframework.org
Banyak orang/tim/perusahaan telah menggunakan Erlang/Elixir dan Phoenix dan melihat hasil yang fenomenal!
Termasuk: Adobe, BBC, Spotify, Pinterest, Discord (Aplikasi Obrolan Gamer), Groupon (Fave), Lonely Planet, Brightcove, Slack ...
Lihat: https://github.com/doomspork/elixir-companies
Anda tidak dapat membuat Aplikasi Phoenix tanpa mengetahui Elixir.
Jika Anda baru mengenal Elixir, "beri bintang" ( tandai ) repo this
( sehingga Anda dapat kembali lagi besok )
lalu buka: github.com/dwyl/ learn-elixir pelajari ramuan sampai Anda merasa memahami sintaksisnya, lalu kembali lagi dan pelajari Phoenix!
Secara khusus, Anda harus fokus mempelajari "Dasar-Dasar" Elixir:
Phoenix menggunakan Node.js untuk mengkompilasi aset seperti file JavaScript dan CSS ( menggunakan Webpack).
Cukup pastikan Anda telah menginstal Node.js. https://nodejs.org
Anda tidak perlu mengetahui Node untuk menggunakan Phoenix.
Jika Anda sudah mempelajari beberapa Elixir dan menginstal Node.js, maka langkah pertama untuk memulai dengan Phoenix adalah instalasi!
Dokumentasi Phoenix luar biasa, jadi kami sarankan untuk mengikuti petunjuk resmi instalasi phoenix!
Anda juga harus menginstal PostgreSQL, ada tutorial tentang cara melakukannya yang tertaut dalam panduan instalasi Phoenix yang tertaut di atas, tetapi Anda juga dapat melihat repo learn-postgresql
kami untuk mendapatkan petunjuk, dan ajukan masalah jika Anda mengalami masalah !
Meskipun pemahaman dasar tentang JavaScript terkadang berguna , Anda tidak perlu mengetahui cara menggunakan Node untuk menggunakan Phoenix.
Jika Anda penasaran mengapa mereka memilih Brunch.io daripada " alternatif ",
jawaban singkatnya adalah: Kesederhanaan & Kecepatan! lihat: http://brunch.io/docs/why-brunch
Catatan : Phoenix v1.4 ( belum dirilis pada saat penulisan ) menggunakan WebPack untuk kompilasi aset, lihat: CHANGELOG.md
Biasakan diri Anda dengan panduan "Berjalan dan Berjalan" ( resmi ): https://hexdocs.pm/phoenix/up_and_running.html#content
Setelah Anda menginstal phoenix dan mengikuti panduan resmi "aktif dan berjalan",
kembalilah dan coba contoh ramah pemula ini:
Kami menyarankan agar orang-orang membeli ( atau meminjam ) buku @chrismccord: "Pemrograman Phoenix"
lihat: https://pragprog.com/book/phoenix14/programming-phoenix-1-4
Para penulis secara individual mengesankan dan secara kolektif mereka meliput Phoenix secara komprehensif seperti yang tidak bisa dilakukan orang lain! Chris menciptakan Phoenix, José menciptakan Elixir dan Bruce adalah penulis teknis yang sangat berpengalaman dengan banyak buku sukses atas namanya!
( yaitu: buku ini adalah pilihan yang jelas tentang cara belajar Phoenix! )
https://youtu.be/MD3P7Qan3pw
https://youtu.be/srtMWzyqdp8
" Phoenix memberikan produktivitas Ruby-on-Rails
dengan konkurensi dan toleransi kesalahan Erlang ."
Phoenix menggunakan bahasa pemrograman Elixir yang berarti aplikasi Anda dikompilasi dan dijalankan di Mesin Virtual Erlang "BEAM".
Erlang adalah VM yang sangat toleran terhadap kesalahan yang telah teruji dan digunakan oleh banyak perusahaan telekomunikasi
WebSockets (" saluran ") sudah terpasang di dalam kerangka kerja yang berarti membangun aplikasi dengan komunikasi dan interaksi "waktu nyata" jauh lebih mudah daripada kerangka/platform lainnya ! ( tidak diperlukan modul magic
pihak ketiga! semua yang Anda butuhkan sudah siap untuk melayani jutaan orang!! )
lihat: http://www.phoenixframework.org/docs/channels
Asinkronisasi yang mudah karena semua pemrograman di Phoenix ( Elixir ) Fungsional ! Artinya, sangat mudah untuk mengabstraksi fungsionalitas yang berguna seperti meminta autentikasi, login, dan memproses ke dalam " piplines " yang mudah dibaca manusia ! ( tidak diperlukan modul async
pihak ketiga! tidak ada "janji", "generator" atau "yang dapat diamati" untuk dikelola!! )
Pola Pikir Keamanan & Ketahanan adalah default
. Enkripsi (SSL) mudah dilakukan di Phoenix/Elixir dan mitigasi injeksi SQL , Cross-site Scripting ( XSS ) dan perlindungan CSRF sudah terpasang ( diaktifkan secara default
) sehingga hampir mustahil bagi programmer " pemula " untuk memperkenalkan jenis ini bug keamanan.
Kode Ringkas tidak bisa diremehkan ! Kita dapat menulis baris yang jauh lebih sedikit dibandingkan dengan aplikasi Node.js/Java/Rails/Go yang setara , ini berarti pengembang lebih produktif dan lebih sedikit kode yang perlu dipelihara !
Testabilitas karena pemrograman fungsional semua pengontrol!
Penerapan Mudah : https://hexdocs.pm/phoenix/heroku.html
Penerapan tanpa waktu henti itu gratis ! ( sekali lagi karena Erlang ). Erlang mengelola transisi pengguna " langsung/aktif " dari versi lama ke versi baru aplikasi Anda tanpa mereka menyadari bahwa aplikasi tersebut telah ditingkatkan/diperbarui!!
Pemantauan/Manajemen bawaan aplikasi Anda melalui supervisor Erlang berarti Anda tahu persis bagaimana kinerja aplikasi Anda, bagian mana yang mogok/di-restart dan alasannya! Ini adalah fitur yang kami bayar ( banyak ) untuk kerangka lain dan ini gratis !!
Dapatkah Anda memikirkan alasan lain mengapa menggunakan Phoenix itu luar biasa ?!
Silakan Bagikan pemikiran Anda di thread ini: #13
before
mencoba/menggunakan Phoenix?Ya . Lihat: https://github.com/dwyl/learn-elixir
TIDAK . Anda dapat mulai mempelajari/menggunakan Elixir hari ini dan memanggil fungsi Erlang bila diperlukan,
tapi kamu tidak perlu mengetahui Erlang before
bisa menggunakan Phoenix!
Ada banyak kerangka aplikasi web yang dapat Anda/kita pilih: https://en.wikipedia.org/wiki/Comparison_of_web_frameworks
Jadi mengapa ada orang yang memilih kerangka kerja yang ditulis dalam bahasa pemrograman yang bukan " mainstream "...?
Ini adalah informasi yang salah . Kami masih menggunakan Hapi.js untuk sejumlah proyek jika diperlukan .
Ini mencakup beberapa proyek klien dan aplikasi/alat dwyl internal.
Kami memutuskan untuk menggunakan Phoenix untuk proyek baru kami karena alasan sederhana berikut:
#LessIsMore
#LessButBetter
#SmallIsBeautiful
#SyntaxMatters
Untuk proyek baru kami, kami memerlukan toleransi kesalahan multi-pusat data !
kita mendapatkannya " gratis " dengan menggunakan Erlang -> Elixir -> Phoenix !!
Menurut kami Hapi.js masih merupakan framework Node.js yang " terbaik " dan kami akan continue
menggunakan dan merekomendasikannya
kepada orang-orang yang membutuhkan aplikasi sederhana yang dapat diperluas dan mudah dikelola.
lihat: https://github.com/dwyl/learn-hapi
Kami juga masih menggunakan JavaScript untuk semua Layanan Mikro AWS Lambda kami, itu tidak akan berubah.
Mereka sederhana, efisien, dan berskala sangat baik!
lihat: https://github.com/dwyl/learn-aws-lambda
Kerangka kerja web " produktif " yang asli adalah "Ruby-on-Rails" dan "Django" ( python ) pada tahun 2005!
(Kami menggunakan keduanya selama beberapa periode dalam " perjalanan " kami dan dapat membahas kelebihan masing-masingnya!)
Tidak ada " tidak ada yang salah " dengan menggunakan Rails atau Django.
Menurut kami, masih banyak kasus penggunaan untuk kedua kerangka kerja tersebut.
Kami hanya tahu bahwa ( jauh ) lebih mudah untuk membangun "waktu nyata"
dengan Phoenix karena "Saluran" ( WebSockets ) sudah terpasang,
dan konkurensi Elixir/Erlang adalah permainan yang sangat berbeda!
Erlang (dan Phoenix) dapat menangani jutaan pengguna secara bersamaan di satu server,
sedangkan server Rails/Django hanya dapat menangani beberapa ribu ( paling banter !)
jika aplikasi Anda hanya melayani beberapa ribu orang sekaligus, maka Anda baik-baik saja!!
Kami menyukai kenyataan bahwa Erlang menggunakan proses " ringan dan berumur panjang ",
yang berarti kita dapat menghubungkan jutaan perangkat ( IOT ) ... Untuk IoT Erlang ( tidak diragukan lagi ) adalah Jawabannya!
Untuk aplikasi web yang lebih sederhana di mana Anda hanya mengharapkan beberapa pengguna per hari, Rails/Django masih dapat dijalankan.
Namun untuk apa berkompromi jika Anda tidak perlu melakukannya ?
Jika Anda bisa memiliki Tesla dengan "harga" Ford Focus, mengapa tidak ?!?
Mengapa harus puas dengan kebaikan ketika Anda dapat dengan mudah memiliki/menggunakan yang terbaik ?
Ya , GitHub masih menggunakan Rails untuk Aplikasi/Situs Web mereka.
Namun tanyakan kepada salah satu tim inti di GitHub apakah (jika diberi kesempatan untuk memulai kembali ) mereka akan memilih Rails
untuk membangun GitHub pada tahun 2017, dan lihat berapa banyak dari mereka yang mengatakan " ya, tentu saja " ( dengan wajah datar... )!
Selain itu, GitHub melakukan banyak hal pada Scale Rails di latar belakang.
Dan banyak fitur terbarunya ( sisi klien ) ditulis dalam JavaScript! lihat: https://github.com/github
Intinya adalah: apa pun dapat dibuat sesuai skala menggunakan "DevOps",
tetapi Phoenix dibuat sesuai skala secaradefault
karena Erlang diciptakan (untuk) skala!
" Ada dua jenis bahasa pemrograman - yang tidak digunakan oleh siapa pun dan yang dikeluhkan semua orang " ~ Bjarne Stroustrup ( pencipta
C++
)
Go sangat populer. Sebagian besar disebabkan oleh fakta bahwa Google " mensponsori " itu.
Itu dimaksudkan untuk menyederhanakan ( mengganti ) C++
dan Java di dalam Google ...
dan sebagian besar berhasil!
Kami sangat menyukai Go. Itu adalah pilihan "nomor dua" kami ketika memutuskan bahasa pemrograman apa
( setelah Elixir ) di "tumpukan posting JS" kami... Keputusan untuk menggunakan elixir
daripada yang else
sangatlah mudah :
Bacaan Lebih Lanjut:
Play
Framework saja ...? Jika Anda sudah terbiasa menulis Java atau menerapkan JVM, Play Framework adalah pilihan tepat : https://www.playframework.com
Scala adalah bahasa pemrograman yang bagus dan setiap orang harus mempelajarinya! https://www.scala-lang.org/what-is-scala.html
Kami telah menggunakan Play beberapa kali ( sebelum kami mengadopsi Node.js ) dan sangat menyukainya!
Tapi Scala adalah bahasa pemrograman "kitchen sink" ( multi-paradigma ) yang memungkinkan orang menggunakan " seluruh Java " ...
Menurut kami, "Interoperabilitas Java" Scala berarti "terlalu mudah" untuk memungkinkan kompleksitas dalam basis kode Anda. Khususnya "Mutasi OOP" ...
Jadi mengapa kami (DWYL) tidak lagi menggunakan "Play" untuk proyek baru ? Pertama, kami beralih ke Hapi.js ( Node.js ) beberapa tahun yang lalu karena lebih " ringan " dan memungkinkan kami menulis program kecil yang hanya menggunakan beberapa MB RAM ( di mana aplikasi Play kami sangat haus sumber daya. .! pernahkah Anda mencoba menjalankan aplikasi Scala di laptop "dasar" seperti Chromebook...?
Ringkasan "alasan" Phoenix daripada Play:
Kami hanya berpikir bahwa untuk proyek kami , model Konkurensi Erlang bekerja lebih baik dan kode Fungsional yang mengubah data yang tidak dapat diubah lebih mudah untuk diuji dan dipelihara .
Jika Anda memiliki bukti bahwa " Scala Lebih Sederhana " kami akan senang mendengar pendapat Anda!
Beritahu kami: https://github.com/dwyl/learn-phoenix-web-development/issues
Jika Anda sangat menyukai Pemrograman Fungsional ( FP ), mengapa tidak menggunakan Haskell?