Gambaran Besar Bahasa Pemrograman Elixir
Gambaran Besar Bahasa Pemrograman Elixir – Elixir membuat programmer lebih baik dalam pekerjaan mereka, dan itu membuat pekerjaan mereka lebih baik Sekitar setahun yang lalu, saya memutuskan untuk mengejar kesempatan bekerja dengan Elixir penuh waktu sebagai lead engineer di CityBase.
Gambaran Besar Bahasa Pemrograman Elixir
elixir-memory – Sejak saya mulai menggunakan bahasa pemrograman pada tahun 2014, tujuan saya adalah menggunakan, mengembangkan, dan belajar lebih banyak dari Elixir. Basis kota juga menarik saya karena alasan lain. Saya selalu ingin tahu tentang membuat sistem yang kompleks bekerja lebih baik. Dengan teknologi pemerintah, kami memiliki tantangan untuk membuat beberapa sistem yang paling kompleks bekerja lebih efektif bagi orang-orang dalam skala besar, hingga berdampak besar.
Baca Juga : Alasan Kenapa Elixir Wajib Pelajari Di Tahun 2023
Tujuan ini-menumbuhkan Elixir dan membuat kode untuk dampak skala besar-menurut saya sama. Saya sangat percaya bahwa saat ini, keandalan, konkurensi, dan toleransi kesalahan adalah kualitas dasar yang harus dibangun oleh sebagian besar aplikasi. Elixir dapat membantu dengan itu berdasarkan daftar aplikasi dan konsep yang telah terbukti dalam pertempuran.
Bahasa Baru dengan Akar yang Teruji
Elixir adalah bahasa baru yang dibuat pada tahun 2011. Itu dibangun dengan prinsip-prinsip Erlang, sebuah sistem yang dikembangkan pada tahun 1986 untuk industri telekomunikasi. Erlang adalah alasan mengapa ponsel Anda tidak pernah dimatikan sementara untuk pemeliharaan. Ini bertanggung jawab atas fleksibilitas dan skalabilitas perangkat keras, sehingga Anda dapat mengganti telepon dan akun Anda berfungsi sama, dan menambahkan saluran telepon baru tanpa memengaruhi kinerja.
Meskipun Elixir relatif muda, Elixir bergantung pada mesin virtual (VM) Erlang yang telah terbukti, yang disebut BEAM, dan prinsip ketersediaan tinggi, kemampuan beradaptasi, dan skalabilitasnya. Fitur-fitur ini sangat penting dalam aplikasi govtech, di mana layanan dasar yang diberikan oleh teknologi harus tersedia untuk semua orang.
Bahasa Pemrograman Programmer
Insinyur seperti saya sangat senang bekerja dengan Elixir karena membantu kami menjadi lebih baik dalam pekerjaan kami. Untuk membuat kode dengan Elixir, pengembang harus selaras dengan tujuan bisnis secara keseluruhan, dan membuat kode dengan mempertimbangkan fleksibilitas di masa mendatang. Ini mencakup alat yang mendorong pemrogram untuk merencanakan apa yang bisa salah, dan fokus untuk sedekat mungkin dengan hasil yang ideal bagi pengguna akhir. Memiliki pemrogram yang memahami hasil gambaran besar yang diinginkan dapat menjadi pengubah permainan.
Jika Anda meminta seseorang untuk menulis kode yang menjalankan fungsi tertentu, mereka akan menulis kode tersebut. Tetapi jika Anda meminta mereka untuk menulis kode yang mengarah pada pengalaman atau memecahkan masalah, mereka mungkin memikirkan solusi yang tidak pernah Anda pertimbangkan — dan meramalkan masalah yang tidak Anda ketahui keberadaannya.
Elixir mendorong pemikiran gambaran besar semacam ini dalam DNA-nya. Karakteristik bersama dari Elixir dan Erlang adalah bahwa keduanya adalah bahasa pemrograman holistik. Anda dapat dengan mudah menggunakan Elixir untuk mengembangkan hanya satu layanan, tetapi Elixir dioptimalkan untuk mengembangkan sistem besar dengan banyak layanan.
Bahasa yang Toleran terhadap Kesalahan
Seperti kematian dan pajak, kepastian lain dalam hidup adalah bahwa segala sesuatunya akan salah. Elixir memiliki toleransi kesalahan asli untuk dua jenis kesalahan pemrograman utama.
Jenis Kesalahan 1
Masalah paling langka biasanya ditemukan dalam produksi dan menurut definisi lebih sulit untuk diuji. Misalnya, konektivitas (saat layanan mati atau membutuhkan waktu lebih lama dari yang diharapkan) antara layanan pihak ketiga atau sumber daya sistem, seperti database. Agar toleran terhadap kesalahan terhadap masalah ini, sistem Anda harus selalu tersedia untuk pelanggan dengan menggunakan setidaknya dua server. Ini untuk mengatasi masalah perangkat keras, masalah jaringan, atau kesalahan lain yang terjadi di luar program Anda.
Elixir berjalan pada VM BEAM Erlang, yang dikonfigurasi sebagai OS mini di atas OS server. VM bertanggung jawab atas komunikasi antara server dan node. Sebuah node akan diberi tahu saat node lain tidak aktif, dan sistem akan bertindak sebagai respons.
Jenis Kesalahan 2
Masalah yang terkait dengan data lebih mudah untuk diuji dan dapat direproduksi secara lokal. Misalnya, jika fungsi yang melakukan perhitungan matematika menerima string alih-alih angka, fungsi tersebut akan gagal. Agar program menjadi toleran terhadap kesalahan di sini, sistem Anda harus dapat “menyembuhkan” dirinya sendiri selama kesalahan yang berasal dari bug logika, data input yang salah, dan kegagalan internal lainnya.
Karena Elixir adalah bahasa yang dikompilasi, kesalahan apa pun dalam kode akan mencegah aplikasi dimulai. Ini memastikan bahwa aplikasi yang berjalan setidaknya memiliki status awal yang valid. Agar ini bekerja dengan lancar, VM Erlang menggunakan sesuatu yang disebut prinsip supervisi, yang berbunyi seperti ini:
- Proses disusun berdasarkan gagasan bahwa ada modul “pekerja” dan “pengawas” yang dibangun ke dalam program tertentu.
- Pekerja melakukan perhitungan, dan pengawas memantau pekerja.
- Jika terjadi kesalahan, supervisor dapat memulai ulang pekerja ke status awal yang valid.
Prinsip supervisi dikaitkan dengan isolasi proses, ketika satu modul dapat berjalan dalam satu proses yang terisolasi. Ini memastikan bahwa kesalahan dalam satu modul tidak akan memengaruhi bagian lain dari aplikasi, dan Anda juga dapat memulai ulang modul tersebut secara terpisah.
Bahasa yang Modular dan Dibuat Sesuai Skala
Elixir adalah bahasa modular, artinya Anda dapat memodifikasi bagian mandiri tanpa khawatir memengaruhi bagian lain yang tidak terkait. Layanan mikro berfungsi secara bersamaan. Semua tindakan berbasis kode ini memainkan peran dalam program yang lebih besar yang telah Anda buat, tetapi tugas didistribusikan sehingga tidak bergantung satu sama lain untuk bekerja. Ini memperkuat manfaat gagal dengan cepat-Anda mengeluarkan satu pemain yang salah, dan permainan masih berlanjut.
Ini juga menjadi sangat penting seiring berkembangnya basis kode: dalam sistem non-modular, tidak selalu jelas kapan satu bagian memengaruhi bagian lain — atau bagian lain mana yang mungkin memengaruhi. Ini berarti bahwa perubahan sekecil apa pun mengharuskan Anda menguji semuanya untuk memastikan bahwa perubahan tersebut tidak merusak apa pun. Ini membuat jumlah pekerjaan yang menakutkan, yang berarti proyek bergerak lambat dan membutuhkan banyak orang.
Ini juga berarti bahwa melatih pengembang baru itu sulit dan memakan waktu, karena mereka harus membiasakan diri dengan warisan kode yang kompleks agar dapat mengembangkannya secara efektif. Dengan Elixir, pengembang fokus pada masa depan, dan memastikan mereka membuat kode untuk tujuan baru atau yang terus berkembang , daripada visi sebelumnya yang dimasukkan ke dalam kode yang terlalu rumit.
Di luar modularitasnya, Elixir juga sangat dapat diskalakan. Bahasa ini memungkinkan Anda untuk mulai membangun aplikasi yang hanya menjalankan satu atau dua server dan menambahkan lebih banyak sesuai kebutuhan. Bersama-sama, server berfungsi sebagai bagian dari cluster dalam sistem terdistribusi untuk mencapai ketersediaan dan skalabilitas yang tinggi.
Di dalam kluster tersebut, server berkomunikasi menggunakan protokol berbasis Erlang, daripada harus mengimplementasikan atau menggunakan protokol aplikasi apa pun seperti HTTP, dan memilih opsi serialisasi/deserialisasi data seperti JSON atau Buffer Protokol. Itu berarti Anda tidak perlu mengimplementasikan apa pun untuk meneruskan data antar layanan di server/node yang berbeda. Ini sangat besar dalam hal kompleksitas logika untuk komunikasi.
Bahasa yang tidak memiliki ceruk
Jelas, saya penggemar Elixir. Ada banyak hal untuk itu, mulai dari infrastrukturnya yang telah terbukti hingga skalabilitasnya. Tapi mungkin hal paling keren tentang bahasa ini adalah bahasa ini agnostik industri. Sudah diadopsi oleh berbagai perusahaan, untuk berbagai tujuan: WhatsApp, Bleacher Report, Netflix, Pinterest, Postmates, dan beberapa situs. gov semuanya menggunakan Elixir atau Erlang.
Ini merupakan nilai tambah karena beberapa alasan: pertama, ini berarti bahwa bahasa tersebut kemungkinan akan terus semakin populer karena perusahaan menyadari manfaat yang dapat ditawarkannya. Itu, pada gilirannya, berarti bahwa pengembang akan terus mempelajarinya, yang berarti kemungkinan besar tidak akan ada kekurangan pengembang yang mengenal Elixir. Perusahaan dari semua ukuran harus dapat menemukan pengembang di semua tingkatan untuk bekerja dengan Elixir.
Mengingat kekuatan bahasa ini untuk meningkatkan pengalaman pengguna, meminimalkan waktu henti, dan membuat hidup lebih mudah bagi tim pengembang, ini adalah indikator yang harus didukung semua orang-terutama kita di bidang teknik dan pemrograman. Bagi kita di govtech, Elixir sangat menjanjikan, karena mewujudkan jenis ketahanan dan fokus jangka panjang yang penting untuk membuat pemerintah berfungsi lebih baik bagi semua orang.