- #### Documentation in the same repo as the code The most important characteristic of internal documentation is trust: do people trust that documentation both exists and is up-to-date? If they don’t, they won’t read it or contribute to it. - https://github.com/thi-ng/umbrella baca code dan dokumentasinya menyenangkan. Dia extract documentationnya pake api-extractor punyanya microsoft. Di sisi lain, dia juga buatin extraksi dari dokumentasinya ke https://thi.ng/ - Sempet coba hal yang sama tapi nggak se-fancy yang atas. Di FE kita pake storybook untuk semuanya. Bariernya dipermudah dengan buat generator (kebetulan pake NX), jadi developer cukup clone repo dan dapet updated docs. - Trust ini penting imo. Sering males baca docs karena nggak update dan justru lari ke code untuk liat maksudnya apa. - #### Mechanisms for creating test data One way to handle this is to provide tooling to import production data into local environments. This has privacy and security implications—what if a developer laptop gets stolen that happens to have a copy of your largest customer’s data? - Masih belum tau gimana replicate ini. Sering kali database staging nggak se-rich production. Kemarin liat ini https://www.youtube.com/watch?v=8-_9nBsRhlw belum coba tapi mungkin bisa aja - #### Templates for new projects and components If you’re working with microservices, your team will inevitably need to build new ones. If you’re working in a monorepo, you’ll still have elements of your codebase with similar structures—components and feature implementations of some sort. Be sure to have really good templates in place for creating these “the right way”—with the right directory structure, a README and a test suite with a single, dumb passing test. - Nah untuk ini ngerasa NX solve masalah ini juga. Dua hal yang menarik, pertama executor dan yang lainnya generator. Untuk case ini, kita buat generator. Generator yang baru juga harus capture project yang udah ada (migration). Jadi semua sistem dapet improvement yang sama. https://nx.dev/recipe/local-generators - #### Automated code formatting This one’s easy. Pick a code formatting tool for your language—like [Black](https://github.com/psf/black) for Python or [Prettier](https://prettier.io/) for JavaScript (I’m so jealous of how Go has [gofmt](https://pkg.go.dev/cmd/gofmt) built in)—and run its “check” mode in your CI flow - Prettier FTW - #### Tested, automated process for new development environments The most painful part of any software project is inevitably setting up the initial development environment. The moment your team grows beyond a couple of people, you should invest in making this work better. At the very least, you need a documented process for creating a new environment—and it has to be known-to-work, so any time someone is onboarded using it they should be encouraged to fix any problems in the documentation or accompanying scripts as they encounter them. - Kemarin di rg sempet introduce nix, cuma untuk repo fe. Tapi hanya sebagian yang pake. Karena mungkin semuanya di node. Contoh menarik, tadi pagi cobain clone Metabase dan kurang clojure, dan jdk. `direnv` dan `nix shell` harusnya cukup untuk replicate ini. Not sure kalo pake cloud version. Hear a good story about coders - #### Automated preview environments Reviewing a pull request is a lot easier if you can actually try out the changes. The best way to do this is with automated preview environments, directly linked to from the PR itself. - Bagian ini relate banget. Karena belum ada plan untuk ini dan kita nggak pake service kayak vercel atau cloudrun. Kemarin coba buatin "paas" supaya temen temen di salman bisa buat preview env masing masing pake Caprover. https://alamisharia.atlassian.net/wiki/spaces/ENG/pages/108068941/Deployment+Use+Caprover. So far udah pada mulai pake (baru 2-3 orang) tapi hear the good story from them. Nampaknya kalo ini bisa di-push akan enak banget. hehe