Sunday, January 31, 2016

Di Balik Teknologi Website Pemrograman Interaktif Codesaya.com

Belajar Pemrograman Secara Interaktif Melalui Web

Di Balik Teknologi Website Pemrograman Interaktif Codesaya.com

Juragan Coding - siapa yang tidak kenal dengan situs ini, namanya codesaya website untuk belajar pemrograman secara interaktif melalui web, seperti hal nya codeacademy namun di codeacademy sendiri tidak mendukung bahasa indonesia sehingga membuat kita kesulitan dalam belajar nya.
sosok di balik pencipta codesaya adalah Ganis Zulfa Santoso mahasiswa lulusan Universitas Indonesia di jurusan Teknik Elektro dan S2 teknik komputer di Chosun University Korea ini
 Ganis Zulfa Santoso
 Ganis Zulfa Santoso
Alasan Ganis untuk membuat situs codesaya adalah  Karena ingin membantu memajukan dunia coding di Indonesia dan aplikasi web seperti CodeSaya itu fun dan menantang untuk dibuat dan sudah hampir 9.000 user terdaftar. fantastis bukan

Teknologi Situs Codesaya

Berbicara teknologi yang digunakan codesaya memang tak ada habis nya untuk di bahas, terlebih teknologi codesaya mengusum "teknologi terbaru tetapi yang sudah matang dan sesuai dengan kebutuhan" Ungkap Ganis berikut ini beberapa teknologi yang menghiasi sisi backend dan front end codesaya

Django

Django adalah sebuah framework dalam membuat web apps. Alasan pertama kenapa Django yang dipilih adalah karena Django menggunakan Python. Menulis dan membaca code di python sangatlah mudah dan menyenangkan. Saat proyek menjadi sangat besar, keringkasan dan kekuatan dari sebuah bahasa sangatlah penting. Karena kita lebih banyak membaca code dibandingkan menuliskannya. Jika code sudah ngejelimet, jangankan untuk menambahkan fitur, memperbaiki bugs saja pasti malas.

... kita lebih banyak membaca code dibandingkan menuliskannya. Jika code sudah ngejelimet, jangankan untuk menambahkan fitur, memperbaiki bugs saja pasti malas.

Framework di python bukan hanya Django tentunya, tetapi Django adalah framework yang sangat powerful dan sudah mature. Belajar django pertama kali cukup sulit tetapi setelah sudah terbiasa maka development sebuah fitur baru di app anda akan sangat cepat.

Bootstrap

Bootstrap adalah framework untuk HTML dan CSS. Menggunakan bootstrap membuat tampilan CodeSaya menjadi lebih sedap di mata. Keputusan memilih bootstrap adalah karena framework ini memiliki tampilan yang indah, mudah dimengerti, dan sangat populer. Popularitas dari framework sangatlah penting, karena akan lebih mudah untuk mencari solusi jika ada masalah.

Jquery

JQuery mungkin merupakan framework JavaScript de facto untuk pengembangan website. Sebenarnya framework ini adalah framework default dari bootstrap, jadi jika anda menggunakan bootstrap maka anda harus menggunakan JQuery. I don't mind at all, because JQuery is AWESOME! Jquery sebenarnya punya framework CSS sendiri, yang disebut JQuery UI, tetapi tidak terlihat bagus dan modern.

PostgreSQL


Mungkin anda sering mendengar sebaiknya menggunakan MySQL sebagai database untuk website anda. Tetapi menurut kami sebaiknya anda menggunakan PostgreSQL. PostgreSQL memiliki lebih sedikit masalah dan performa yang lebih baik dibandingkan dengan MySQL. Selain itu, PostgreSQL tidak dimiliki oleh perusahaan seperti halnya MySQL yang dimiliki oleh Oracle. Untungnya, banyak hosting di Indonesia yang telah mendukung PostgreSQL. Jika anda masih ingin menggunakan MySQL, alangkah lebih baiknya anda menggunakan MariaDB. MariaDB dibuat oleh coder asli dari MySQL (sebelum ‘dibajak’ oracle) dan 100% open source!

Oh ya, Django memiliki ORM yang sangat hebat. Di CodeSaya, karena ORMnya, kami tidak perlu menuliskan code SQL sama sekali untuk melakukan operasi terhadap database. Dan juga dengan Django, berpindah dari satu sistem database ke database yang lainnya sangatlah mudah.

Nginx + Gunicorn


Nginx berguna sebagai web dan proxy server yang akan mengatur request dari internet. Jika request-nya adalah file statis (gambar, dokumen js atau css, dll) maka Nginx akan melayaninya sendiri. Tetapi jika request-nya bukan file statis, maka Nginx akan mengarahkannya ke Gunicorn. Gunicorn adalah server yang berguna untuk menjalankan kode Python untuk melayani permintaan HTTP. Selain Gunicorn sebenarnya ada uWSGI yang memiliki performa sedikit lebih baik, tetapi Gunicorn dipilih karena mudah untuk konfigurasi dan untuk menjalankannya. Jika ada dua solusi untuk permasalahan anda, pilihlah solusi yang paling sederhana untuk diimplementasikan. Sementara Nginx adalah pemain baru jika dibandingkan dengan Apache tetapi Nginx memiliki performa yang lebih baik dan bisa melayani ribuan concurrent request.

Lainnya

Memcached untuk caching di CodeSaya. Untuk code editor onlinenya, sebuah proyek open source bernama CodeMirror digunakan. CKeditor dipakai untuk editor dalam menulis artikel. Untuk analisa traffic kami menggunakan Google Analytic. Dan akhirnya Ubuntu 14 adalah operating system yang menjalankan semua software tersebut. 

Teknologi Kedepannya

Saat ini kami hanya menggunakan satu virtual machine (VM) dari DigitalOcean. Seluruh komponen di atas berada di satu VM. Untuk saat ini itu cukup, tetapi jika traffic terus bertambah, kami akan menggunakan lebih dari satu VM. Untuk berikutnya kami mempertimbangkan untuk menggunakan Docker dan Ansible di technology stack kami untuk mempermudah menjalankan CodeSaya di lebih dari satu VM. Kami juga memikirkan kemungkinan bagi Varnish untuk masuk membantu Nginx. Dan juga kami mengkaji penggunaan Redis di stack kami untuk menggantikan memcached.

Jika anda memiliki komentar atau pandangan terhadap pilihan teknologi kami, silahkan sampaikan di komentar. Atau lebih baik lagi, tuliskan artikel anda sendiri untuk menceritakan technology stack di web app anda!

Nah itu mungkin di balik teknologi yang digunakan codesaya, dan di balik pencipta codesaya semoga kita semua terinspirasi oleh kehebatan ganis, sampai jumpa

Artikel Terkait