Pemikiran yang berubah
- Kesederhanaan tidak datang dengan sendirinya, melainkan sesuatu yang memerlukan upaya berkelanjutan
- Saya sadar tidak ada alasan untuk merasa bangga karena mampu mengelola atau memahami kompleksitas
- Dalam tim yang berisi campuran tingkat pengalaman yang beragam, bahasa bertipe adalah keharusan
- Java adalah bahasa yang justru hebat karena membosankan
- REPL tidak terlalu berguna sebagai alat desain, tetapi berguna untuk eksplorasi
- Pemrograman yang sebenarnya seharusnya hampir seluruhnya selesai pada tahap sebelum menulis kode
- Pengembangan frontend telah menjadi wilayah seperti mimpi buruk Kafkaesque, dan tidak lagi menyenangkan
- Konsep keanggunan tidak bisa menjadi metrik yang benar-benar terukur
- Manajemen yang benar-benar baik sangatlah berharga (sepanjang karier saya, saya hampir tidak pernah melihat manajemen yang benar-benar baik)
- DynamoDB adalah database yang bagus jika benar-benar cocok dengan workload tertentu
- Pemrograman berorientasi objek adalah pendekatan yang sangat unggul di domain yang cocok. Sikap yang hanya memuja Functional adalah kebodohan
Pendapat yang saya peroleh
- Inti dari engineering adalah komunikasi
- Jangan menerapkan konsep Monad terlalu berlebihan di Java
- Query Planner adalah sesuatu yang kejam
- Saat merasa sesuatu itu 'mudah', sebenarnya itu tanda bahwa kita belum benar-benar memahaminya
- Pengembang junior perlu diberi ruang untuk bereksplorasi dan membuat kesalahan
- Soft skill harus dikembangkan secara aktif. Efek investasinya terlihat seketika
- Dalam pengembangan aplikasi umum, hampir tidak ada yang namanya 'abstraksi benar-benar serbaguna'. Lebih baik menulis hanya kode yang dibutuhkan
- Sebaliknya, pengembangan library adalah pekerjaan merancang abstraksi. Perlu meluangkan waktu untuk menemukan struktur yang tepat (bentuk aljabar)
- ORM bermasalah di semua bahasa dan semua implementasi. Lebih baik langsung menulis SQL sendiri
- Masalah Functional programming sering kali ada pada para pengikut fanatiknya
- Jika waktunya cukup panjang, Anda akan sangat menyesal membangun sistem di atas Serverless Functions
- Type adalah pernyataan yang kita buat saat memandang dunia
- Distributed lock tetap merupakan masalah yang sangat sulit
- Kemampuan pemodelan formal dan analisis adalah kompetensi yang wajib dimiliki
- Sifat terpenting dalam integration test suite adalah isolasi
- DynamoDB juga bisa menjadi pilihan terburuk untuk pengembangan aplikasi umum
- Kebanyakan orang tidak terlalu peduli pada 'craftsmanship' kode. Hargai mereka yang peduli, tetapi dengan yang lain, kita harus bekerja sama dari posisi mereka saat ini
- Saya pikir bahasa gradual, dependently typed adalah masa depan
- Saya yakin komentar di kode pengujian tidak akan pernah terlalu banyak
Pendapat yang tidak berubah
- Saya masih menganggap orang yang terobsesi pada hal-hal sepele seperti gaya kode dan aturan linting adalah golongan yang aneh. Kita harus fokus pada hal yang lebih penting
- Saya tetap berpendapat bahwa code coverage tidak ada hubungannya dengan kualitas kode (dalam banyak kasus bahkan cenderung berbanding terbalik)
- Monolith masih merupakan pilihan yang baik
- Saya mengakui sulit mengalahkan penelitian dan perbaikan RDBMS yang telah terakumulasi selama puluhan tahun
- Diperlukan alasan yang benar-benar masuk akal untuk menerapkan micro-service (sangat disayangkan belakangan ini semakin dianggap sebagai sesuatu yang wajar)
- Sebagian besar proyek (bahkan proyek internal AWS sekalipun) sebenarnya tidak membutuhkan 'scaling', dan sering kali justru merugikan jika dirancang dengan asumsi scaling sejak awal
- Saya pikir 93% manajer proyek, atau mungkin sekitar 95,2%, bisa hilang tanpa banyak dampak, atau bahkan efisiensi justru meningkat (persentasenya naik dibanding empat tahun lalu)
- Saya akan melihat lagi bagaimana pandangan ini berubah saat memasuki tahun ke-15
20 komentar
Sebagian besar adalah cerita yang terasa relevan.
Sebagian besar proyek tidak pernah mencapai momen ketika scaling benar-benar dibutuhkan, atau keburu hilang sebelum itu menjadi perlu...
Apa itu
Gradual, dependently typed languages..?Dari obrolan sepintas yang saya dengar di podcast, sepertinya ini sistem tipe di mana nilai memengaruhi tipe. Melihat penulis artikel ini menyebut bahasa fungsional, kemungkinan memang itu yang dimaksud. Karena ini sesuatu yang diteliti dan dikembangkan di ranah bahasa fungsional....
Misalnya, tipe
List... kalau nilainya semua sudah terurut maka menjadiSortedList....Kalau punya sifat seperti ini, pemeriksaan tipe saat kompilasi bisa membuktikan lebih banyak hal.
Kalau ada fungsi yang menerima
SortedListlalu mengembalikanSortedList... tetapi kalau ternyata ada bug di kodenya sehingga merusak kondisi terurutnya, maka saat kompilasi akan muncul type error.Tentu saja.... biaya pemeriksaan tipenya mungkin cukup mahal...
Saya sendiri sama sekali belum punya gambaran seberapa jauh kepraktisannya sudah berkembang.
Aha, terima kasih. Kedengarannya menarik dan keren...
Ini merujuk pada bahasa yang dapat diterapkan sambil berpindah secara fleksibel antara tipe statis dan dinamis.
Java membosankan, dan justru karena itu Java adalah bahasa yang hebat
Apa maksudnya?
Siapa pun yang membuatnya hasilnya mirip-mirip, jadi lebih mudah dirawat; mungkin maksudnya seperti itu.
Mungkin maksudnya adalah bahwa tidak ada bagian yang perlu diberi perhatian khusus atau yang akan mengejutkan para developer, sehingga justru memberi rasa stabil karena itulah adanya.
Hal-hal terkait gaya kode atau linting sebagian besar bisa diselesaikan dengan tool, jadi sebaliknya, kalau bertemu orang yang tidak peduli soal itu, saya jadi tidak ingin bekerja bersama mereka.
Setuju. Saya menambahkan pemeriksaan gaya ke CI agar jika gaya tidak dipatuhi, proses merge juga diblokir.
> Saya masih menganggap orang-orang yang terobsesi pada hal-hal sepele seperti gaya kode dan aturan linting sebagai golongan yang aneh. Kita harus fokus pada hal yang lebih penting.
https://www.youtube.com/watch?v=JcY35HD77lg&t=828s
Namun, ada juga pendapat bahwa hal-hal itu tidak boleh begitu saja diabaikan, karena sebagai manusia hal tersebut bisa menjadi faktor yang membuat kita sulit berkonsentrasi, jadi lebih baik diselesaikan lalu lanjut bekerja.
> Kebanyakan orang tidak terlalu peduli pada 'keahlian kerajinan' dalam menulis kode. Hargai orang-orang yang memang peduli, tetapi dengan yang lain, kita harus berkolaborasi dari posisi mereka berada.
Setuju..
Saya salah satu orang yang menyesal membangun sistem di atas serverless.
Cold start masih tetap lambat,
pada titik tertentu trafik melonjak drastis hingga akhirnya hampir tidak ada bedanya dengan on-demand,
dan meski sudah mengerahkan segala cara, deployment tetap terlalu lambat.
Code coverage tidak selalu berkaitan dengan kualitas kode jika
Saya rasa kemungkinan hanya ada dua hal itu.
Menurut saya, kode pengujian baru benar-benar bermakna ketika memiliki coverage yang tinggi dan menguji bagian yang sama berkali-kali dengan input yang berbeda melalui berbagai skenario yang memicu error.
Saya lebih merasa cocok menafsirkannya dalam arti yang belakangan. Angka code coverage yang tinggi tidak otomatis berkaitan langsung dengan kualitas kode; yang penting adalah mengisinya dengan test case yang bermakna.
> Java justru bahasa yang hebat karena membosankan
Agak lucu juga wkwkwk
Saya setuju
> Dalam pengembangan aplikasi umum, hampir tidak ada yang namanya 'abstraksi generik yang benar-benar universal'. Lebih baik menulis hanya kode yang dibutuhkan
Topik pengembangan perangkat lunak yang berubah pandangannya setelah 6 tahun berada di industri
Opini Hacker News