Categories: Backend

Catatan Belajar Ruby on Rails dari aliran Java dan Php

Telah di edit. Sumber Asli : https://twitter.com/nateberkopec/status/1250603032523370496/photo/1

Ruby on Rails merupakan framework web MVC menggunakan bahasa dynamic typed (Ruby) yang termasuk pertama (2005). Diikuti dengan django (2005), laravel (2011). Walaupun di dunia proyek jarang dipakai, di dunia produk/startup banyak dipakai karena lebih cepat waktu yang dibutuhkan untuk membuat nya.

https://dhh.dk/arc/000258.html
https://blog.karatos.in/a?ID=00050-92960018-bbf7-4d66-8afd-d7ff6571e83a

// TODO

Setup Environment

Macbook dan Linux aman

Windows, ram <8 gb = jruby atau dual boot linux

ram >= 8gb, pakai WSL

Intrepreted Language

Static vs Dynamic

Holy wars ini sudah ada sejak lama. Static typed language (java, go) pasti lebih aman(dalam artian mencegah error) daripada dynamic (php, javascript, ruby). Hal ini dikarenakan error dapat ditangkap di waktu compile time. Hal ini berimplikasi pada mudahnya refactor pada kode. Makanya akhir akhir ini Typescript (versi static type dari javascript) mulai ramai digunakan.

Sedangkan dynamic typed menggiurkan karena lebih cepet ngoding nya serta bisa melakukan berbagai magic/syntatic sugar. Waktu membuktikan bahwa dynamic type bisa “aman” juga seperti static typed jika di jaga dengan unit test yang coverall nya tinggi.

https://www.beust.com/weblog/2006/10/01/dynamic-language-refactoring-ide-pick-one
https://www.beust.com/weblog/2021/06/20/refactoring-a-dynamically-typed-language-do-it-safely-or-automatically-but-not-both
https://blog.cleancoder.com/uncle-bob/2016/05/01/TypeWars.html

Basic Syntax

Block, Proc

Filosofi

MVC

ORM Active Record

DSL

Sumber untuk Belajar

Agile Web Development with Rails 6

Influencer untuk Diikuti

Herbert Abdillah

Test

Recent Posts

Langchain JsonOutputParser Invalid json output Error

Sometimes json output from llm like this : {“key”: “value”}“` that langchain JsonOutputParser regex cant…

1 year ago

Ada Apa Didalam Sistem Operasi (Linux). Apa yang membedakan distribusi Linux seperti Ubuntu, Redhat, Alpine?

#include <stdio.h> int main() { FILE *f_ptr; char f_content[256]; char output[512]; f_ptr = fopen("/tmp/1337", "r");…

2 years ago

Convert OpenSSL 1 in Ruby Gem to OpenSSL 3

Version 3 have different interface Example: https://github.com/herbertabdillah/fabric-gateway-ruby/commit/c7377aaf2e62de1e2ac309965a09b5c7c72a2c7e

2 years ago

Deploy Spring Boot di Tomcat dan Berbagai Application Server Lain

Sebenernya spring boot sudah di embedd applicatoin server tomcat (hanya berisi web container, tidak bisa…

4 years ago

Mikrotik Custom DNS Record

// TODO IP -> DNS Static. Add New IP -> Firewall -> NAT. Klik Add New Action:…

4 years ago

Catatan Clonezilla

// TODO Menggunakan virtualbox untuk membuat image Buat 2 disk/vdi Untuk OS Untuk Menyimpan image…

4 years ago