Thoughtworks Technology Radar, Volume 31 dirilis
(thoughtworks.com)Memvisualisasikan dan menjelaskan tren terbaru di bidang teknik/alat/platform/bahasa pemrograman dan framework dalam 4 tahap: Hold/Assess/Trial/Adopt
Antipola asisten coding
- Tidak mengejutkan, pada Radar kali ini pembahasan didominasi oleh AI generatif dan LLM yang umum digunakan para pengembang
- Pola pada akhirnya akan mengarah ke antipola, yaitu situasi kontekstual yang harus dihindari pengembang
- Di ruang AI yang terlalu panas, beberapa antipola mulai muncul:
- anggapan keliru bahwa manusia dengan AI sebagai pendamping dapat sepenuhnya menggantikan pair programming
- ketergantungan berlebihan pada saran bantuan coding
- masalah kualitas kode yang dihasilkan
- laju pertumbuhan codebase yang lebih cepat
- AI cenderung menyelesaikan masalah secara brute-force alih-alih menggunakan abstraksi
- contoh: memakai puluhan pernyataan kondisional alih-alih Strategy design pattern
- Khususnya, masalah kualitas kode menegaskan area yang memerlukan perhatian berkelanjutan agar pengembang dan arsitek tidak terjebak pada kode yang "berfungsi, tetapi buruk"
- Karena itu, anggota tim harus semakin berfokus pada praktik engineering yang baik seperti unit test, fungsi kesesuaian arsitektur, serta teknik tata kelola dan verifikasi lain yang telah terbukti
- ini untuk memastikan AI benar-benar membantu pekerjaan, bukan justru mengenkripsi codebase dengan kompleksitas
Rust is anything but rusty - Rust sama sekali tidak berkarat
- Rust perlahan menjadi bahasa pemrograman sistem yang semakin disukai
- Di setiap sesi Radar, Rust berulang kali muncul dalam konteks percakapan
- Banyak alat yang dibahas ditulis dengan Rust
- Rust adalah bahasa pilihan saat menggantikan utilitas lama tingkat sistem atau menulis ulang sebagian ekosistem demi peningkatan performa
- Julukan yang paling sering muncul untuk alat berbasis Rust tampaknya adalah "sangat cepat"
- Misalnya, di ekosistem Python ada beberapa alat yang memiliki alternatif berbasis Rust untuk mendukung performa yang jauh lebih baik
- Perancang bahasa dan komunitasnya berhasil membangun ekosistem SDK inti, library, dan alat pengembangan yang sangat disukai, sambil menawarkan kecepatan eksekusi luar biasa dengan lebih sedikit jebakan dibanding banyak bahasa sebelumnya
- Banyak orang di tim adalah penggemar Rust, dan tampaknya sebagian besar pengembang yang menggunakannya juga sangat menghargainya
Kebangkitan bertahap WASM
- WASM(WebAssembly) adalah format instruksi biner untuk mesin virtual berbasis stack
- Bagi kebanyakan minat pengembang, ini terdengar terlalu esoteris dan terlalu low-level, tetapi orang-orang melihat maknanya: kemampuan menjalankan aplikasi kompleks di dalam sandbox browser
- WASM dapat dijalankan di dalam mesin virtual JavaScript yang ada, sehingga pengembang dapat menanamkan ke browser aplikasi yang sebelumnya hanya bisa diimplementasikan melalui framework dan ekstensi native
- Empat browser utama (Chrome, Firefox, Safari, Edge) kini mendukung WASM 1.0, membuka kemungkinan menarik untuk pengembangan yang canggih, portabel, dan lintas platform
- Selama beberapa tahun terakhir kami mengikuti standar ini dengan minat besar, dan kini senang melihatnya mulai menunjukkan kemampuannya sebagai target deployment yang sah
Ledakan Kambrium alat AI generatif
- Jika mengikuti lintasan yang disajikan dalam beberapa edisi Radar terakhir, kami memang memperkirakan AI generatif akan mendapat porsi besar dalam diskusi kami
- Meski begitu, kami tetap terkejut dengan ledakan ekosistem teknologi yang mendukung model bahasa:
- guardrail, evaluasi, alat pembangun agent, framework untuk pekerjaan structured output, vector database, layanan cloud, dan alat observability
- Pertumbuhan yang cepat dan beragam ini dalam banyak hal sepenuhnya dapat dipahami
- Pengalaman awal, yaitu kesederhanaan memberikan prompt teks biasa ke model bahasa, kemudian berkembang menjadi software product engineering
- Ini mungkin tidak memenuhi mimpi dan klaim berlebihan yang muncul setelah orang mengirim prompt pertama mereka ke ChatGPT, tetapi kami melihat penggunaan AI generatif yang bijak dan produktif di banyak pelanggan, dan semua alat, platform, serta framework ini memainkan peran penting dalam membawa solusi berbasis LLM ke production
- Seperti ledakan ekosistem JavaScript sekitar tahun 2015, pertumbuhan yang kacau ini diperkirakan akan terus berlanjut untuk sementara waktu
[Techniques]
Adopt
-
1% canary
- mendorong umpan balik awal terhadap versi perangkat lunak baru dan mengurangi risiko dengan menggunakan canary deployment
- teknik meluncurkan fitur baru ke 1% pengguna sehingga tim dapat menangkap umpan balik, mengamati dampak, dan merespons bila diperlukan
- penting untuk deployment skala besar seperti aplikasi mobile, perangkat edge computing, dan software-defined vehicle
-
Component testing
- otomatisasi pengujian adalah landasan pengembangan perangkat lunak yang efektif
- berfokus pada pengujian frontend untuk memastikan stabilitas dan kecepatan
- menggunakan jsdom untuk component testing yang dijalankan di memori
- untuk end-to-end testing menggunakan alat browser
-
Continuous deployment
- mengadopsi praktik continuous deployment jika memungkinkan
- secara otomatis men-deploy ke operasi setiap perubahan yang lolos pengujian otomatis
- memungkinkan loop umpan balik yang cepat dan penyampaian nilai yang sigap kepada pelanggan
- rujuk buku Valentina Servile, "Continuous Deployment", yang menyediakan roadmap untuk mencapai tingkat kematangan yang dibutuhkan
-
Retrieval-augmented generation (RAG)
- pola pilihan untuk meningkatkan kualitas respons model bahasa skala besar
- telah berhasil digunakan dalam proyek seperti platform AI Jugalbandi
- menyimpan informasi tentang dokumen yang relevan dan tepercaya di database
- mencari dan menambah dokumen yang relevan ke dalam prompt untuk menyediakan konteks yang kaya
- menghasilkan kualitas output yang lebih baik dan secara signifikan mengurangi halusinasi
Trial
-
Domain storytelling
- domain-driven design (DDD) telah menjadi dasar pendekatan kami terhadap pengembangan perangkat lunak
- banyak tim merasa sulit memulai DDD
- domain storytelling adalah alternatif atau pelengkap untuk pengembangan model domain awal
- memperjelas pemahaman bersama dengan memvisualisasikan penjelasan aktivitas para ahli bisnis
-
Fine-tuning embedding models
- saat membangun aplikasi LLM berbasis retrieval-augmented generation, kualitas embedding berdampak langsung pada pencarian dan respons
- akurasi dan kesesuaian embedding untuk tugas atau domain tertentu dapat ditingkatkan
- tim kami melakukan fine-tuning embedding ketika ekstraksi informasi yang presisi penting dalam aplikasi LLM spesifik domain
- perlu mempertimbangkan kelebihan dan kekurangan pendekatan ini
-
Function calling with LLMs
- kemampuan LLM untuk menentukan dan memanggil fungsi yang tepat berdasarkan kueri dan dokumen terkait yang diberikan
- memperluas LLM agar dapat melakukan lebih dari sekadar menghasilkan teks
- melalui pemicu fungsi atau API, LLM dapat melakukan tugas yang sebelumnya berada di luar cakupan kemampuannya yang berdiri sendiri
- LLM juga dapat terhubung ke sistem internal, database, atau melakukan pencarian internet melalui browser
- pola abstrak ini perlu dipahami dalam konteks retrieval-augmented generation dan arsitektur agent
-
LLM as a judge
- membangun sistem yang dapat memberikan jawaban berdasarkan pertanyaan terhadap dataset besar, tetapi sulit melacak bagaimana jawaban itu dicapai
- menggunakan LLM untuk mengevaluasi respons sistem lain (yang mungkin juga berbasis LLM)
- digunakan untuk menilai relevansi hasil pencarian katalog produk dan arah panduan pengguna pada chatbot berbasis LLM
- memerlukan pengaturan dan kalibrasi yang hati-hati pada sistem evaluator
- dapat meningkatkan efisiensi dan menurunkan biaya
-
Passkeys
- dipimpin oleh aliansi FIDO dan didukung Apple, Google, Microsoft, kini mendekati kegunaan arus utama
- saat menyiapkan login baru, pasangan kunci dibuat - situs web menerima kunci publik, pengguna menyimpan kunci privat
- memproses login menggunakan kriptografi asimetris
- membuktikan kepemilikan kunci privat yang disimpan di perangkat pengguna dan tidak dikirim ke situs web
- akses ke passkey dilindungi dengan biometrik atau PIN
- untuk pengguna multiplatform, passkey dapat disimpan di perangkat lain selain perangkat yang diperlukan untuk pembuatan kunci atau login melalui CTAP
-
Small language models
- Model bahasa besar (LLM) berguna, tetapi ukurannya dapat menimbulkan masalah
- Membutuhkan banyak sumber daya komputasi untuk respons prompt sehingga lambat dan mahal
- Karena model bersifat proprietari dan berukuran besar, model harus di-host di cloud pihak ketiga, yang menimbulkan masalah untuk data sensitif
- Dalam kebanyakan kasus, pelatihan model terlalu mahal
- Pola RAG dapat mengatasi kebutuhan pelatihan dan fine-tuning model dasar, tetapi masalah biaya dan privasi tetap ada
- Minat terhadap small language model (SLM) meningkat
- Memiliki bobot dan presisi yang lebih kecil (umumnya 3,5 miliar hingga 10 miliar parameter)
- Jika dikonfigurasi dengan benar dalam konteks yang tepat, dapat memberikan kinerja setara atau lebih baik daripada LLM
- Karena ukurannya, dapat dijalankan di perangkat edge
- Bidang ini berkembang pesat, seperti Google Gemini Nano dan seri Microsoft Phi-3
- Model bahasa besar (LLM) berguna, tetapi ukurannya dapat menimbulkan masalah
-
Synthetic data for testing and training models
- Mencakup pembuatan data sintetis yang dapat meniru skenario nyata tanpa bergantung pada sumber data sensitif atau yang aksesnya dibatasi
- Data sintetis untuk set data terstruktur telah dieksplorasi secara luas
- Penggunaan ulang data sintetis untuk data tidak terstruktur meningkat
- Terutama bagi perusahaan yang menghadapi kekurangan data berlabel dan spesifik domain untuk pelatihan atau fine-tuning LLM
- Alat seperti Bonito dan Microsoft AgentInstruct dapat menghasilkan data penyetelan instruksi sintetis dari sumber mentah seperti dokumen teks dan file kode
- Mempercepat pelatihan model sambil mengurangi biaya dan ketergantungan pada kurasi data manual
- Pembuatan data sintetis untuk mengatasi masalah data yang tidak seimbang atau jarang juga merupakan use case penting
- Umum pada tugas seperti deteksi penipuan atau segmentasi pelanggan
- Teknik seperti SMOTE menyeimbangkan set data dengan membuat instance kelas minoritas secara artifisial
- Di industri seperti keuangan, GAN digunakan untuk mensimulasikan transaksi langka agar model lebih tangguh dalam mendeteksi edge case dan meningkatkan kinerja secara keseluruhan
-
Using GenAI to understand legacy codebases
- AI generatif (GenAI) dan model bahasa besar (LLM) membantu developer menulis dan memahami kode
- Sangat berguna terutama untuk codebase lama yang dokumentasinya buruk, usang, atau menyesatkan
- Teknik dan produk untuk menggunakan GenAI dalam memahami codebase lama semakin berkembang
- Khususnya telah berhasil digunakan untuk mendukung pekerjaan reverse engineering dalam modernisasi mainframe
- Pendekatan retrieval-augmented generation (RAG), di mana pengambilan informasi dilakukan dari knowledge graph tentang codebase, terlihat menjanjikan
- Knowledge graph dapat mempertahankan informasi terstruktur tentang codebase yang melampaui apa yang bisa diturunkan LLM dari kode teks
- Sangat membantu terutama untuk codebase lama yang kurang deskriptif dan kurang kohesif
- Ada juga peluang untuk lebih memperkaya graph dengan dokumentasi yang sudah ada maupun yang dihasilkan AI, dependensi eksternal, pengetahuan domain bisnis, dan lain-lain yang dapat mempermudah pekerjaan AI
Assess
-
AI team assistants
- Alat bantu coding AI terutama dibahas dalam konteks mendukung dan meningkatkan pekerjaan kontributor individu
- Namun, penyampaian software adalah kerja tim dan akan tetap demikian, sehingga perlu dicari cara membuat AI team assistant yang membantu menciptakan tim 10x alih-alih engineer 10x
- Perkembangan pasar alat belakangan ini membawa hal ini selangkah lebih dekat menjadi kenyataan
- Unblocked adalah platform yang mengintegrasikan semua sumber pengetahuan tim dan menggabungkannya secara cerdas ke dalam alat yang digunakan anggota tim
- Atlassian Rovo menghadirkan AI ke platform kolaborasi tim yang paling banyak digunakan dan menyediakan jenis baru pencarian serta akses ke dokumen
- Kami juga secara langsung mengeksplorasi potensi AI untuk amplifikasi pengetahuan dan dukungan praktik tim
- Menyediakan Haiven team assistant sebagai open source dan mulai belajar dari dukungan AI untuk pekerjaan non-coding seperti analisis kebutuhan
-
Dynamic few-shot prompting
- Berdasarkan few-shot prompting, contoh tertentu dimasukkan secara dinamis ke dalam prompt untuk memandu respons model
- Dengan menyesuaikan jumlah dan relevansi contoh tersebut, panjang konteks dan relevansi dapat dioptimalkan sehingga efisiensi dan kinerja model meningkat
- Library seperti scikit-llm menerapkan teknik ini dengan menggunakan pencarian nearest neighbor untuk mengambil contoh yang paling relevan dengan kueri pengguna
- Memanfaatkan jendela konteks model yang terbatas dengan lebih baik dan mengurangi konsumsi token
- Generator SQL open source vanna menggunakan dynamic few-shot prompting untuk meningkatkan akurasi respons
-
GraphQL for data products
- Menggunakan GraphQL sebagai output port dari produk data, yaitu teknik bagi klien untuk mengonsumsi produk tersebut
- Menggunakan GraphQL untuk membuat lapisan API terpadu yang mengabstraksikan kompleksitas data dasar dan memberikan antarmuka yang lebih konsisten serta mudah dikelola kepada klien
- Saat menggunakan GraphQL untuk produk data, konsumen dapat dengan mudah menemukan format dan relasi data melalui skema GraphQL serta memakai alat klien yang sudah familier
- Tim kami sedang mengeksplorasi teknik ini dalam use case tertentu untuk menelusuri dan menemukan insight big data dengan bantuan LLM
- LLM menyusun kueri GraphQL berdasarkan prompt pengguna dan skema GraphQL sebagai referensi
-
LLM-powered autonomous agents
- Dengan kemunculan framework seperti Autogen dan CrewAI, teknologi ini berkembang melampaui sistem agen tunggal dan multiagen statis
- Teknik untuk memecah aktivitas kompleks menjadi beberapa tugas kecil dan melaksanakannya dengan memberi setiap agen peran tertentu
- Developer dapat menggunakan alat yang telah dikonfigurasi sebelumnya untuk menjalankan tugas, dan agen dapat saling berbicara serta mengorkestrasi alur
- Masih dalam tahap awal pengembangan, dan tim kami menghadapi masalah seperti agen yang terjebak dalam loop berkelanjutan atau perilaku yang tidak terkendali
- Library seperti LangGraph memberikan kontrol yang lebih besar atas interaksi agen dengan kemampuan mendefinisikan alur sebagai graph
- Saat menggunakan teknologi ini, disarankan menerapkan mekanisme fail-safe termasuk timeout dan pengawasan manusia
-
Observability 2.0
- Pergeseran dari alat pemantauan tradisional yang terpisah-pisah menuju pendekatan terpadu yang memanfaatkan data peristiwa terstruktur dengan kardinalitas tinggi dalam satu penyimpanan data
- Menangkap event yang kaya dan mentah bersama metadata terperinci untuk menyediakan satu sumber kebenaran bagi analisis yang komprehensif
- Menyimpan event dalam bentuk mentah menyederhanakan korelasi, mendukung analisis real-time dan forensik, serta memungkinkan insight yang lebih dalam terhadap sistem yang kompleks dan terdistribusi
- Menyediakan pemantauan beresolusi tinggi dan kemampuan investigasi yang dinamis
- Memprioritaskan penangkapan data berkardinalitas tinggi dan berdimensi tinggi untuk inspeksi terperinci tanpa bottleneck kinerja
- Penyimpanan data terpadu mengurangi kompleksitas, memberikan pandangan yang konsisten tentang perilaku sistem, dan menyelaraskan praktik observability lebih dekat dengan siklus hidup pengembangan software
-
On-device LLM inference
- Kini model bahasa besar (LLM) dapat dijalankan di browser web dan perangkat edge seperti smartphone serta laptop
- Memungkinkan pemrosesan aman atas data sensitif tanpa pengiriman ke cloud, memberikan latensi sangat rendah untuk tugas seperti edge computing dan pemrosesan gambar/video real-time, mengurangi biaya dengan menjalankan komputasi secara lokal, dan tetap menyediakan fungsi bahkan saat koneksi internet tidak stabil atau tidak tersedia
- Ini adalah bidang dengan riset dan pengembangan yang aktif; sebelumnya kami menyoroti MLX, framework open source untuk machine learning yang efisien di Apple silicon
- Alat baru seperti Transformers.js dan Chatty juga bermunculan
- Transformers.js memungkinkan menjalankan transformer di browser menggunakan ONNX Runtime (mendukung model yang dikonversi dari PyTorch, TensorFlow, dan JAX)
- Chatty memanfaatkan WebGPU untuk menjalankan LLM secara native dan privat di browser, sehingga menghadirkan pengalaman AI yang kaya fitur
-
Structured output dari LLM
- Mengacu pada praktik membatasi respons model bahasa ke skema yang telah ditentukan
- Dapat dicapai dengan menginstruksikan model umum untuk merespons dalam format tertentu atau dengan melakukan fine-tuning model untuk keluaran "default" seperti JSON
- OpenAI kini mendukung structured output, sehingga developer dapat membatasi respons model dengan memberikan JSON schema, pydantic, atau objek Zod
- Sangat berguna terutama ketika akurasi dan kepatuhan format penting, seperti pada function calling, interaksi API, dan integrasi eksternal
- Tidak hanya meningkatkan cara berinteraksi dengan kode, tetapi juga mendukung berbagai use case yang lebih luas seperti menghasilkan markup untuk rendering chart
- Juga membantu mengurangi kemungkinan halusinasi dalam output model
Hold
-
Rasa puas diri terhadap kode yang dihasilkan AI
- AI coding assistant seperti GitHub Copilot dan Tabnine sangat populer
- Menurut survei developer StackOverflow tahun 2024, "72% dari semua responden bersikap positif atau sangat positif terhadap alat AI untuk pengembangan"
- Kami juga mengakui manfaatnya, tetapi tetap waspada terhadap dampak jangka menengah hingga panjang pada kualitas kode dan mengingatkan developer agar tidak cepat puas dengan kode hasil AI
- Setelah beberapa pengalaman positif, mudah untuk menurunkan kewaspadaan saat meninjau saran AI
- Menurut riset GitClear, ada tren codebase yang tumbuh lebih cepat, yang diduga sejalan dengan pull request yang lebih besar
- Riset GitHub ini mempertanyakan apakah kenaikan 15% pada tingkat merge pull request benar-benar hal yang baik, atau justru orang terlalu memercayai hasil AI sehingga merge pull request yang lebih besar lebih cepat
- Kami masih menggunakan saran dasar "memulai" yang kami berikan setahun lalu, dan perlu mewaspadai automation bias, sunk cost fallacy, anchoring, serta review fatigue
- Selain itu, ada baiknya programmer mengembangkan kerangka berpikir yang baik tentang di mana dan kapan harus menggunakan AI, dan kapan tidak boleh terlalu memercayainya
-
Lingkungan pengujian integrasi skala perusahaan
- Praktik yang umum namun boros dan membuat segalanya menjadi lebih lambat
- Cenderung menjadi sumber daya berharga yang sulit direplikasi dan akhirnya menjadi bottleneck dalam pengembangan
- Memberikan rasa aman yang semu karena ketidaksesuaian data antarlingkungan dan overhead konfigurasi tidak dapat dihindari
- Alasan penolakan yang umum terhadap alternatifnya (lingkungan sementara atau beberapa lingkungan pengujian on-premise), ironisnya, adalah biaya
- Namun hal itu tidak memperhitungkan biaya keterlambatan akibat lingkungan pengujian integrasi tingkat perusahaan
- Terjadi saat tim pengembangan harus menunggu tim lain selesai atau versi baru dari sistem dependensi dideploy
- Sebagai gantinya, tim sebaiknya menggunakan lingkungan sementara dan memanfaatkan fake stub alih-alih replika nyata agar dapat membuat dan membuang set pengujian yang dimiliki tim pengembang dengan biaya rendah
- Teknik lain yang mendukung alternatif ini berfokus pada contract testing, pemisahan deployment dan rilis, mean time to recovery, serta pengujian di production
-
Larangan LLM
- Alih-alih memberlakukan larangan LLM yang menyeluruh di tempat kerja, fokuslah pada pemberian akses ke kumpulan alat AI yang disetujui
- Larangan hanya akan mendorong karyawan mencari jalan pintas yang tidak disetujui dan berpotensi tidak aman
- Seperti pada masa awal komputer pribadi, orang akan menggunakan alat yang mereka anggap efektif untuk menyelesaikan pekerjaan terlepas dari hambatan yang ada
- Tanpa menyediakan alternatif yang aman dan terjamin, perusahaan justru berisiko membuat karyawan menggunakan LLM yang tidak disetujui sehingga memicu risiko hak kekayaan intelektual, kebocoran data, dan tanggung jawab hukum
- Sebaliknya, dengan menyediakan LLM atau alat AI yang aman dan disetujui perusahaan, keamanan dan produktivitas dapat sama-sama dijaga
- Melalui pendekatan yang dikelola dengan baik, organisasi dapat memberdayakan karyawan dengan kemampuan LLM sambil mengelola isu privasi data, keamanan, kepatuhan, dan biaya
- Dalam skenario terbaik, akses yang dikelola dengan baik ke alat AI dapat mempercepat pembelajaran organisasi tentang cara terbaik menggunakan AI di tempat kerja
-
Mengganti pair programming dengan AI
- Saat membicarakan coding assistant, topik pair programming hampir pasti muncul
- Profesi kami memiliki hubungan cinta-benci dengan pair programming
- Sebagian sangat meyakininya, sementara yang lain tidak tahan melakukannya
- Kini coding assistant memunculkan pertanyaan apakah manusia bisa berpasangan dengan AI, alih-alih manusia lain, dan tetap mendapatkan hasil yang sama bagi tim
- GitHub Copilot bahkan menyebut dirinya sebagai "AI pair programmer Anda"
- Kami menilai coding assistant memang dapat memberikan sebagian manfaat pair programming, tetapi tidak merekomendasikan penggantian pair programming sepenuhnya dengan AI
- Menganggap coding assistant sebagai pair programmer membuat kita mengabaikan salah satu manfaat utama pairing, yaitu mendorong tim menjadi lebih baik, bukan hanya individu kontributor
- Coding assistant dapat membantu mengatasi kebuntuan, mempelajari teknologi baru, onboarding, atau menyelesaikan tugas taktis lebih cepat sehingga fokus bisa dialihkan ke desain strategis
- Namun, hal itu tidak membantu manfaat kolaborasi tim seperti menjaga pekerjaan yang sedang berjalan tetap rendah, mengurangi handoff dan pembelajaran ulang, memungkinkan integrasi berkelanjutan, serta meningkatkan kepemilikan kode secara kolektif
[Platforms]
Adopt : Tidak ada
Trial
-
Databricks Unity Catalog
- Merupakan solusi tata kelola data untuk aset seperti file, tabel, dan model ML di Lakehouse
- Merupakan solusi open source terkelola yang dapat digunakan untuk mengelola dan melakukan kueri atas data di penyimpanan eksternal maupun data yang dikelola Databricks
- Keunggulannya adalah mendukung tata kelola, pengelolaan metastore, dan penemuan data secara terpadu sehingga mengurangi kebutuhan mengelola banyak alat
- Ketiadaan pemulihan bencana otomatis pada Unity Catalog yang dikelola Databricks teridentifikasi sebagai kekurangan
- Tim harus mengonfigurasi sendiri fitur backup dan recovery
- Meski merupakan solusi terpusat, delegasi izin tetap dimungkinkan agar tiap tim dapat mengelola aset mereka sendiri
-
FastChat
- Merupakan platform terbuka untuk pelatihan, serving, dan evaluasi large language model
- Dapat meng-host beberapa model (Llama 3.1, Mistral 7B, Llama-SQL, dan lainnya) secara konsisten dalam format OpenAI API
- Menggunakan arsitektur controller-worker untuk meng-host berbagai model di beberapa worker
- Mendukung berbagai jenis worker seperti vLLM, LiteLLM, dan MLX
- Sesuai use case, berbagai jenis model worker FastChat dapat dibuat dan diskalakan
- Saran kode di IDE developer memerlukan latensi rendah sehingga diskalakan ke beberapa worker
- Text-to-SQL memiliki permintaan rendah sehingga tidak memerlukan banyak worker
- Dapat dimanfaatkan untuk A/B testing
- Mengatur nilai hyperparameter yang berbeda pada model yang sama untuk mengidentifikasi nilai optimal
- Dapat memverifikasi migrasi tanpa downtime saat melakukan pergantian model di layanan live
-
GCP Vertex AI Agent Builder
- Merupakan platform fleksibel untuk membangun AI agent dengan pendekatan natural language atau code-first
- Terintegrasi secara mulus dengan data perusahaan melalui konektor pihak ketiga
- Menyediakan semua alat yang dibutuhkan untuk membangun, membuat prototipe, dan menerapkan AI agent
- Memungkinkan developer membuat prototipe agent dengan cepat dan menangani tugas data yang kompleks dengan setup minimal
- Berguna untuk membangun basis pengetahuan atau sistem dukungan otomatis yang mengelola data terstruktur/tidak terstruktur secara efisien
-
Langfuse
- Merupakan alat untuk observabilitas, pemantauan, dan evaluasi aplikasi berbasis LLM
- Melalui kemampuan tracing, analitik, dan evaluasi, kinerja completion dan akurasi dapat dianalisis
- Memungkinkan perbaikan berbasis data dengan mengelola biaya dan latensi serta memahami pola penggunaan di production
- Memanfaatkan data instrumentasi yang memberikan keterlacakan penuh atas alur request-response dan langkah-langkah perantara
- Dapat digunakan bersama RAG dan autonomous agent berbasis LLM
- Dengan menganalisis jejak percakapan bernilai rendah, area arsitektur yang perlu ditingkatkan dapat diidentifikasi
-
Qdrant
- Merupakan mesin pencarian kemiripan vektor dan database open source yang ditulis dalam Rust
- Mendukung berbagai model embedding vektor dense untuk teks dan multimodal
- Embedding open source seperti MiniLM-v6 dan BGE dapat dimanfaatkan untuk beberapa basis pengetahuan produk
- Digunakan sebagai vector store enterprise yang mendukung multi-tenancy
- Menyimpan vector embedding dalam koleksi terpisah untuk mengisolasi basis pengetahuan tiap produk
- Kebijakan akses pengguna dikelola di lapisan aplikasi
-
Vespa
- Merupakan mesin pencari open-source dan platform pemrosesan big data
- Cocok untuk aplikasi yang membutuhkan latensi rendah dan throughput tinggi
- Memungkinkan implementasi pencarian hibrida dengan menggunakan berbagai teknologi pencarian
- Mendukung pemfilteran dan pengurutan yang efisien untuk beragam metadata
- Memungkinkan implementasi pemeringkatan multi-tahap
- Dapat mengindeks beberapa vektor per dokumen tanpa duplikasi
- Memungkinkan pencarian data sekaligus di beberapa field yang telah diindeks
Assess
-
Azure AI Search
- Merupakan layanan pencarian berbasis cloud untuk memproses data terstruktur/tidak terstruktur bagi aplikasi seperti knowledge base
- Mendukung berbagai jenis pencarian seperti keyword, vektor, dan pencarian hibrida
- Dapat secara otomatis mengambil format data tidak terstruktur umum seperti PDF, DOC, dan PPT untuk menghasilkan konten yang dapat dicari
- Terintegrasi dengan layanan Azure lain seperti Azure OpenAI sehingga memungkinkan pembangunan aplikasi dengan integrasi manual yang minimal
- Cocok untuk proyek yang di-host di lingkungan Azure dan menunjukkan performa yang stabil
- Dapat menentukan langkah pemrosesan data tertentu melalui skill kustom
-
Databricks Delta Live Tables
- Merupakan framework deklaratif untuk membangun pipeline pemrosesan data yang andal, mudah dipelihara, dan dapat diuji
- Mendefinisikan transformasi data dengan pendekatan deklaratif dan secara otomatis mengelola infrastruktur dasar serta aliran data
- Menyediakan fitur pemantauan yang kuat dan merepresentasikan DAG dari seluruh pipeline data secara visual
- Berguna untuk pelacakan lineage dan dependensi data
- Karena terintegrasi secara mendalam dengan ekosistem Databricks, mungkin ada keterbatasan dalam kustomisasi antarmuka
-
Elastisys Compliant Kubernetes
- Merupakan distribusi Kubernetes khusus untuk industri yang sangat diatur seperti kesehatan, keuangan, dan pemerintahan
- Menyediakan proses keamanan otomatis
- Mendukung multi-cloud dan on-premises
- Dibangun berdasarkan arsitektur keamanan zero trust
- Kepatuhan terhadap regulasi seperti GDPR, HIPAA, dan kontrol seperti ISO27001 sudah tertanam
-
FoundationDB
- Merupakan database multimodel yang diakuisisi Apple pada 2015 dan di-open-source-kan pada 2018
- Intinya adalah penyimpanan key-value terdistribusi yang menyediakan transaksi serializable yang ketat
- Telah mengalami peningkatan utama seperti distribusi data cerdas untuk mencegah write hotspot dan storage engine baru
- Melalui arsitektur unbundled, berbagai bagian klaster dapat diskalakan secara independen
- Meski fiturnya luas, pengoperasian klaster berskala besar tetap mudah
-
Golem
- Merupakan platform komputasi terdistribusi yang menggunakan arsitektur state machine eksplisit untuk komputasi yang tahan lama
- Cocok untuk workflow seperti saga microservice yang berjalan lama atau orkestrasi AI agent
- Komponen WebAssembly dapat ditulis dengan bahasa apa pun yang didukung
- Bersifat deterministik dan mendukung waktu mulai yang cepat
-
Iggy
- Merupakan platform streaming pesan persisten yang ditulis dengan Rust
- Mendukung multi-stream, topik, dan partisi
- Menyediakan at-most-once delivery, message expiration, dukungan TLS untuk protokol QUIC/TCP/HTTP, dan lainnya
- Mencapai throughput baca/tulis yang tinggi dengan satu server
- Clustering dan dukungan io_uring direncanakan, sehingga berpotensi menjadi alternatif Kafka
-
Iroh
- Merupakan sistem penyimpanan file terdistribusi dan pengiriman konten yang mengembangkan IPFS
- Tidak memiliki batas ukuran blok maksimum dan menyediakan mekanisme sinkronisasi data melalui range-based set reconciliation
- Dukungan browser melalui WASM termasuk dalam roadmap
- Layanan cloud tersedia melalui iroh.network
- Menyediakan SDK untuk berbagai bahasa dan lebih ramah pengguna dibanding IPFS
-
Large vision model (LVM) platforms
- Merupakan platform model visi skala besar yang mampu melakukan segmentasi, sintesis, rekonstruksi, dan analisis video stream serta gambar
- Dapat digunakan bersama diffusion model atau CNN standar
- Terdapat tantangan terkait penerapan di lingkungan produksi
- seperti pengumpulan data pelatihan, segmentasi dan pelabelan objek, serta fine-tuning model
- Alat seperti V7, Nvidia Deepstream SDK, dan Roboflow muncul untuk membantu mengatasi tantangan ini
- Deepstream dan Roboflow menyediakan GUI dan API terintegrasi untuk pengelolaan video stream
-
OpenBCI Galea
- Merupakan platform teknologi non-invasif untuk brain-computer interface (BCI)
- Menggunakan sinyal elektrofisiologis seperti EEG untuk menawarkan alternatif yang lebih rendah risikonya dibanding implan otak
- Merupakan produk terbaru OpenBCI yang menggabungkan fungsi headset VR dan BCI
- Menyediakan aliran data fisiologis yang tersinkronisasi waktu, sensor posisi spasial, dan pelacakan tatapan
- Data sensor dapat digunakan di Unity maupun Unreal
- Disediakan sebagai platform open-source untuk mendukung inovasi para peneliti
-
PGLite
- Merupakan build WASM dari database PostgreSQL
- Dapat dijalankan langsung di browser web tanpa virtual machine Linux
- Menyediakan pembuatan database sementara di memori atau persistensi disk melalui indexedDB
- Bersama Electric, memungkinkan pembangunan aplikasi local-first reaktif berbasis PostgreSQL
-
SpinKube
- Merupakan runtime serverless open-source untuk WebAssembly di atas Kubernetes
- Dengan waktu mulai WebAssembly dalam hitungan milidetik, menawarkan solusi serverless yang lebih dinamis dan fleksibel untuk workload on-demand
- Menyederhanakan pengembangan dan deployment workload berbasis WebAssembly
-
Unblocked
- Merupakan alat pencarian aset dan artefak SDLC
- Terintegrasi dengan alat ALM dan kolaborasi untuk membantu memahami codebase dan sumber daya terkait
- Menyediakan konteks yang langsung dan relevan terhadap kode sehingga memudahkan penelusuran dan pemahaman sistem yang kompleks
- Memungkinkan tim engineering mengakses diskusi, aset, dan dokumentasi terkait pekerjaan secara aman
- Menangkap dan membagikan pengetahuan anggota tim yang berpengalaman agar dapat dimanfaatkan semua anggota
Hold : Tidak ada
[Tools]
Adopt
-
Bruno
- Bruno adalah alternatif desktop open-source untuk Postman dan Insomnia yang ditujukan untuk pengujian, pengembangan, dan debugging API
- Bertujuan menyediakan kolaborasi, privasi, dan keamanan yang unggul dengan desain sederhana yang sepenuhnya offline
- Koleksi ditulis dalam Bru Lang, bahasa markup plaintext kustom, disimpan langsung di sistem file, dan dapat dibagikan dengan Git atau alat version control pilihan untuk kolaborasi
- Tersedia sebagai aplikasi desktop dan alat CLI, menyediakan ekstensi resmi VS Code, dan berencana menambah dukungan IDE lainnya
- Telah menjadi pilihan default bagi beberapa tim Thoughtworks, tetapi perlu berhati-hati karena ada laporan request yang gagal secara tak terduga saat bekerja di lingkungan VPN dan proxy
-
K9s
- K9s telah meningkatkan kemampuan visualisasi dengan mengintegrasikan grafik dan tampilan yang lebih rinci
- Kini lebih baik dalam merepresentasikan log dan metrik serta menampilkan custom resource (CRD) dengan lebih fleksibel
- Operasi terhadap pod telah diperluas, integrasi dengan alat debugging (misalnya
kubectl debug) diperkuat, dan dukungan untuk lingkungan multi-cluster ditingkatkan - Dukungan untuk CRD telah meningkat secara signifikan, sehingga resource ini kini dapat dijelajahi dan dikelola dengan lebih baik, serta interaksi dengan custom resource menjadi lebih mulus
- Panel shortcut juga telah ditingkatkan sehingga lebih mudah diakses oleh developer yang belum terbiasa dengan kubectl
- Ini merupakan peningkatan penting karena pada awalnya K9s terutama berfokus pada tim DevOps
-
SOPS
- SOPS adalah editor file terenkripsi yang mendukung berbagai format file yang dienkripsi dengan KMS
- Saran kami dalam pengelolaan rahasia selalu memisahkannya dari kode sumber
- Namun, dalam semangat infrastructure as code, saat harus memilih antara otomatisasi penuh dan beberapa langkah manual untuk mengelola, melakukan seeding, dan merotasi seed secret (menggunakan alat seperti vault), tim sering kali menghadapi kompromi
- Sebagai contoh, tim kami menggunakan SOPS untuk mengelola kredensial seed untuk bootstrap infrastruktur
- Namun, dalam beberapa situasi, rahasia tidak dapat dihapus dari repositori kode lama
- Dalam kasus seperti itu, kami menggunakan SOPS untuk mengenkripsi rahasia dalam file teks
- SOPS terintegrasi dengan penyimpanan kunci terkelola cloud seperti AWS dan GCP Key Management Service (KMS) atau Azure Key Vault sebagai sumber kunci enkripsi
- Selain itu, SOPS bekerja lintas platform dan mendukung kunci PGP
- Saat harus mengelola rahasia di repositori kode, beberapa tim kami menggunakan SOPS sebagai pilihan default
-
Visual regression testing tools
- Sebelumnya kami telah menyoroti alat pengujian regresi visual dan mengamati algoritmenya berevolusi dari perbandingan tingkat piksel mentah menjadi pencocokan pola yang canggih dan optical character recognition (OCR)
- Alat pengujian regresi visual awal menghasilkan banyak false positive dan hanya berguna pada tahap akhir pengembangan ketika antarmuka sudah stabil
- BackstopJS menghindari masalah ini dengan mengonfigurasi selector dan viewport untuk melakukan pengujian visual secara presisi pada elemen tertentu di halaman
- Namun, machine learning telah mempermudah deteksi dan perbandingan elemen visual dengan lebih akurat, bahkan ketika elemen tersebut berpindah atau memuat konten dinamis
- Alat-alat ini semakin berguna dan berada pada posisi yang baik untuk memanfaatkan perkembangan terbaru dalam AI dan machine learning
- Beberapa alat komersial seperti Applitools dan Percy kini mengklaim menggunakan AI dalam pengujian regresi visual
- Salah satu tim kami telah menggunakan Applitools Eyes secara luas dan puas dengan hasilnya
- Pengujian regresi visual memang tidak dapat menggantikan pengujian fungsional end-to-end yang ditulis dengan baik, tetapi merupakan tambahan yang berharga dalam kotak alat pengujian
- Kami mengadopsinya karena kini telah menjadi opsi default yang aman sebagai salah satu elemen dari strategi pengujian UI yang komprehensif
-
Wiz
- Wiz telah menjadi platform keamanan cloud pilihan di banyak proyek
- Tim kami sangat menghargai kemampuannya untuk terus memeriksa perubahan sehingga dapat mendeteksi risiko dan ancaman lebih cepat daripada alat serupa
- Wiz dapat mendeteksi dan memberi peringatan tentang konfigurasi yang salah, kerentanan, dan rahasia yang bocor baik pada artefak yang belum dideploy ke lingkungan live (image container, infrastructure as code) maupun pada workload live (container, VM, dan layanan cloud)
- Kami juga menghargai kemampuan pelaporannya yang kuat bagi tim pengembang maupun pihak kepemimpinan
- Analisis ini membantu memahami bagaimana kerentanan dapat memengaruhi layanan tertentu sehingga masalah dapat diselesaikan dalam konteks tersebut
Trial
-
AWS Control Tower
- AWS Control Tower tetap menjadi pilihan terbaik untuk mengelola akun AWS di lingkungan multi-tim
- Layanan ini menyediakan mekanisme yang praktis untuk mengonfigurasi terlebih dahulu kontrol keamanan dan kepatuhan yang akan diterapkan secara otomatis pada landing zone baru
- Ini adalah contoh dari "compliance at the point of change", di mana kontrol diterapkan dan divalidasi setiap kali infrastruktur baru dibuat sehingga pemeriksaan kepatuhan manual di kemudian hari tidak diperlukan
- AWS Control Tower Account Factory for Terraform (AFT) terus berkembang sejak volume terakhir dan kini tersedia di lebih banyak region AWS
- Dengan AFT, Anda dapat memprovisikan akun Control Tower melalui pipeline infrastructure as code
- Kami menyukai bahwa AFT dapat dikustomisasi untuk mengirim webhook atau menjalankan tindakan tertentu agar dapat terintegrasi secara aman dan andal dengan alat eksternal seperti GitHub Actions
- Tim kami memperoleh hasil besar dengan menggunakan AWS Control Tower untuk mengelola akun, tetapi kami berharap AWS menerima kontribusi komunitas terhadap proyek ini ketika ada peluang untuk perbaikan
-
CCMenu
- Bagi tim yang menerapkan continuous integration, penting untuk mengetahui status build pusat dari sistem continuous integration (CI)
- Sebelum pandemi, dashboard pada layar TV besar di ruang tim memberikan informasi ini secara sekilas
- Seiring berlanjutnya kerja jarak jauh, dibutuhkan solusi yang berjalan di workstation masing-masing pengembang
- Untuk Mac, celah tersebut diisi oleh aplikasi kecil bernama CCMenu yang dibuat oleh seorang Thoughtworker
- Awalnya merupakan bagian dari CruiseControl, aplikasi ini bekerja dengan server mana pun yang dapat menyediakan informasi dalam format cctray, termasuk Jenkins dan TeamCity
- Penulisan ulang baru-baru ini menambahkan dukungan untuk GitHub Actions dan membuka jalan bagi integrasi yang lebih mendalam dengan lebih banyak server CI dan gaya autentikasi
-
ClickHouse
- ClickHouse adalah database open source OLAP (online analytical processing) berbasis kolom untuk analitik real-time
- Dimulai sebagai proyek eksperimental pada 2009, ClickHouse telah matang menjadi database analitik dengan performa tinggi dan skalabilitas linear
- Berkat mesin pemrosesan kueri yang efisien dan kemampuan kompresi data, ClickHouse cocok untuk menjalankan kueri interaktif tanpa pra-agregasi
- ClickHouse adalah pilihan yang baik untuk menyimpan data OpenTelemetry
- Melalui integrasi dengan Jaeger, ClickHouse dapat menyimpan data tracing dalam jumlah besar dan menganalisisnya secara efisien
-
Devbox
- Meskipun alat pengembangan terus berkembang, menjaga konsistensi lingkungan pengembangan lokal tetap menjadi tantangan bagi banyak tim
- Onboarding engineer baru sering kali mengharuskan menjalankan perintah atau skrip kustom yang dapat gagal secara tidak terduga di berbagai sistem, yang dapat menyebabkan ketidakkonsistenan
- Untuk mengatasi masalah ini, tim kami semakin mengandalkan Devbox
- Devbox adalah alat command-line yang menyediakan antarmuka yang mudah diakses untuk membuat lingkungan pengembangan lokal yang dapat direproduksi dan spesifik per proyek dengan memanfaatkan package manager Nix tanpa menggunakan virtual machine atau container
- Setelah dikonfigurasi sekali untuk sebuah codebase, hanya diperlukan satu perintah CLI (
devbox shell) untuk mereproduksi lingkungan yang telah didefinisikan di perangkat baru, sehingga alur kerja onboarding menjadi jauh lebih sederhana - Devbox mendukung shell hook, skrip kustom, dan pembuatan
devcontainer.jsonuntuk integrasi dengan VSCode
-
Difftastic
- Difftastic adalah alat yang menyoroti perbedaan antar file kode dengan cara yang memahami sintaks
- Ini sangat berbeda dari alat pembeda teks seperti perintah Unix diff
- Sebagai contoh, Difftastic mengabaikan line break yang disisipkan untuk memecah pernyataan panjang dalam bahasa yang dipisahkan titik koma seperti Java atau TypeScript
- Alat ini hanya menyoroti perubahan yang memengaruhi sintaks program
- Untuk melakukannya, Difftastic terlebih dahulu mengurai file menjadi abstract syntax tree, lalu menggunakan algoritma Dijkstra untuk menghitung jarak antar tree
- Kami menemukan Difftastic sangat berguna terutama saat meninjau codebase besar untuk memahami perubahan
- Difftastic dapat digunakan untuk bahasa pemrograman apa pun yang memiliki parser, dan secara default mendukung lebih dari 50 bahasa pemrograman serta format teks terstruktur seperti CSS dan HTML
- Ini bukan alat baru, tetapi kami rasa layak diperhatikan di era asisten coding LLM ketika peninjauan dalam loop oleh manusia menjadi semakin penting
-
LinearB
- LinearB, platform software engineering intelligence, memberikan insight berbasis data kepada para pemimpin engineering untuk mendukung perbaikan berkelanjutan
- Platform ini menyelaraskan area-area utama seperti benchmarking, otomatisasi alur kerja, serta investasi terarah untuk meningkatkan pengalaman dan produktivitas developer
- Pengalaman menggunakan LinearB menekankan kemampuannya dalam membangun budaya perbaikan dan efisiensi di dalam tim engineering
- Tim kami menggunakan platform ini untuk melacak metrik engineering inti, mengidentifikasi area yang perlu ditingkatkan, dan menerapkan tindakan berbasis bukti
- Kemampuan-kemampuan ini sangat selaras dengan proposisi nilai utama LinearB: benchmarking, otomatisasi pengumpulan metrik, dan memungkinkan perbaikan berbasis data
- LinearB terintegrasi dengan source code, application lifecycle, CI/CD, dan alat komunikasi, serta memberikan insight kuantitatif yang komprehensif tentang pengalaman developer, produktivitas, dan kinerja tim melalui metrik engineering bawaan maupun kustom
- Sebagai pendukung DORA, kami menghargai bagaimana LinearB menekankan metrik-metrik spesifik ini dan meningkatkan kemampuan untuk mengukur aspek-aspek utama kinerja pengiriman software yang penting untuk meningkatkan efisiensi
- Secara historis, tim mengalami kesulitan mengumpulkan metrik spesifik DORA dan sering bergantung pada dashboard kustom yang kompleks atau proses manual
- LinearB terus menawarkan solusi yang menarik dengan mengotomatisasi pelacakan metrik ini dan menyediakan data real-time yang mendukung pengambilan keputusan proaktif terkait pengalaman developer, produktivitas, dan prediktabilitas
-
pgvector
- pgvector adalah ekstensi pencarian kemiripan vektor open source untuk PostgreSQL yang memungkinkan vektor disimpan bersama data terstruktur dalam satu database yang sudah tertata dengan baik
- Meskipun tidak memiliki beberapa fitur lanjutan dari database vektor khusus, pgvector tetap mendapatkan manfaat dari kepatuhan ACID, point-in-time recovery, dan fitur-fitur kuat lain dari PostgreSQL
- Seiring meningkatnya aplikasi berbasis AI generatif, kami melihat pola yang semakin umum untuk menyimpan dan mengambil vektor embedding secara efisien demi kebutuhan similarity, dan pgvector menanganinya dengan efektif
- Mengingat meningkatnya penggunaan pgvector di lingkungan production, terutama pada tim yang sudah memakai penyedia cloud dengan managed PostgreSQL, serta kemampuannya yang terbukti untuk memenuhi kebutuhan umum pencarian vektor tanpa memerlukan vector store terpisah, kami yakin akan potensi pgvector
- Tim kami telah memanfaatkannya dengan baik dalam proyek yang membandingkan data terstruktur dan tidak terstruktur, yang menunjukkan potensi adopsi yang lebih luas
- Karena itu, kami memindahkan pgvector ke tahap trial
-
Snapcraft build tool
- Snapcraft adalah alat command-line open source untuk membangun dan mengemas aplikasi mandiri yang disebut snap untuk Ubuntu, distribusi Linux lainnya, dan macOS
- Snap dapat dengan mudah dideploy dan dipelihara di berbagai platform hardware, termasuk komputer Linux, lingkungan virtual, dan sistem komputer onboard kendaraan
- Snapcraft menyediakan app store publik untuk publikasi snap, tetapi tim kami menggunakan build tool ini untuk mengemas sistem autonomous driving sebagai snap tanpa memublikasikannya ke app store publik
- Dengan demikian, software system tertanam dapat dibangun, diuji, dan di-debug secara lokal, sambil tetap dapat dipublikasikan ke repositori artefak internal
-
Spinnaker
- Spinnaker adalah platform continuous delivery open source yang dibuat oleh Netflix
- Platform ini mengimplementasikan manajemen cluster dan deployment image baked ke cloud sebagai fitur kelas satu
- Kami menyukai pendekatan Spinnaker yang opinionated untuk mendeploy microservice
- Pada versi sebelumnya kami menyoroti bahwa pipeline tidak dapat dikonfigurasi sebagai kode, tetapi masalah ini telah teratasi dengan tambahan spin CLI
- Kami tidak merekomendasikan Spinnaker untuk skenario CD yang sederhana, tetapi dalam situasi yang kompleks ia telah menjadi alat pilihan banyak orang bersama pipeline deployment yang sama kompleksnya
-
TypeScript OpenAPI
- TypeScript OpenAPI (atau tsoa) adalah alternatif Swagger untuk menghasilkan spesifikasi OpenAPI dari kode
- Pendekatannya code-first, menggunakan controller dan model TypeScript sebagai single source of truth, serta memanfaatkan anotasi atau decorator TypeScript alih-alih file dan konfigurasi yang lebih kompleks saat menggunakan alat OpenAPI di TypeScript
- Alat ini menghasilkan spesifikasi API 2.0 dan 3.0, serta dapat membuat route untuk Express, Hapi, dan Koa
- Jika Anda menulis API dengan TypeScript, proyek ini layak untuk dilihat
-
Unleash
- Menggunakan feature toggle sesederhana mungkin tetap menjadi pendekatan yang kami rekomendasikan, tetapi pembesaran skala tim dan pengembangan yang lebih cepat membuat pengelolaan toggle buatan tangan menjadi lebih kompleks
- Unleash adalah opsi yang banyak digunakan oleh tim kami untuk mengatasi kompleksitas ini dan memungkinkan CI/CD
- Unleash dapat digunakan sebagai layanan atau di-self-host
- Platform ini menyediakan SDK untuk berbagai bahasa dan memiliki UI yang familier untuk pengalaman developer dan pengelolaan
- Dukungan resmi untuk spesifikasi OpenFeature belum ada, tetapi tersedia provider yang dikelola komunitas untuk Go dan Java
- Unleash dapat digunakan tidak hanya untuk feature toggle sederhana, tetapi juga untuk segmentasi dan gradual rollout, sehingga menjadi opsi yang cocok untuk manajemen fitur dalam skala besar
Assess
-
Astronomer Cosmos
- Astronomer Cosmos adalah plugin Airflow yang dirancang untuk memberikan dukungan yang lebih native bagi workflow dbt core di Airflow
- Setelah plugin dipasang, DbtDag mengubah node dbt menjadi task/grup task Airflow saat membungkus workflow dbt, sehingga engineer dapat memvisualisasikan graf dependensi dbt dan progres eksekusi langsung di UI Airflow
- Plugin ini juga memungkinkan penggunaan koneksi Airflow alih-alih profil dbt, sehingga dapat mengurangi penyebaran konfigurasi
- Kami sedang bereksperimen dengan alat ini karena potensinya untuk membuat pekerjaan dbt di Airflow menjadi lebih mulus
-
ColPali
- ColPali adalah alat baru untuk menelusuri dokumen PDF menggunakan vision language model, yang mengatasi kesulitan membangun aplikasi retrieval-augmented generation (RAG) yang kuat untuk mengekstrak data dari dokumen multimedia yang berisi gambar, diagram, dan tabel
- Berbeda dari metode tradisional yang mengandalkan embedding berbasis teks atau teknologi optical character recognition (OCR), ColPali memproses seluruh halaman PDF dan memanfaatkan visual transformer untuk menghasilkan embedding yang mempertimbangkan baik teks maupun konten visual
- Pendekatan holistik ini tidak hanya menghasilkan pencarian yang lebih baik, tetapi juga memungkinkan penalaran tentang mengapa dokumen tertentu ditemukan, sehingga secara signifikan meningkatkan performa RAG untuk PDF yang kaya data
- Kami telah menguji ColPali dengan beberapa klien dan hasilnya menjanjikan, tetapi teknologi ini masih berada pada tahap awal
- Khususnya bagi organisasi yang memiliki data dokumen visual yang kompleks, alat ini layak dievaluasi
-
Cursor
- Persaingan alat pemrograman berbantuan AI terus berlanjut, dan yang paling menonjol adalah Cursor
- Cursor adalah editor kode AI-first yang dirancang untuk meningkatkan produktivitas developer dengan mengintegrasikan AI secara mendalam ke dalam workflow coding
- Kami telah menyoroti Cursor dalam evaluasi Radar sebelumnya, tetapi kini jelas bahwa peningkatan berkelanjutan pada Cursor telah menghasilkan lompatan kualitatif
- Dalam penggunaan kami, Cursor menunjukkan kemampuan penalaran konteks yang kuat berdasarkan codebase yang ada
- Sementara alat kode AI lain seperti GitHub Copilot cenderung menghasilkan potongan kode dan berkolaborasi, kemampuan Cursor untuk mengedit banyak baris dan banyak file membuatnya menonjol
- Cursor di-fork dari VSCode dan dikembangkan di atasnya, serta menawarkan cara interaksi yang cepat dan intuitif yang selaras dengan intuisi developer
- Fungsionalitas yang kuat dapat dijalankan dengan ctrl/cmd+K dan ctrl/cmd+L
- Cursor memimpin persaingan baru dalam alat pemrograman AI dalam hal interaksi developer dan pemahaman codebase
-
Data Mesh Manager
- Data Mesh Manager menyediakan lapisan metadata untuk platform data mesh pada umumnya
- Secara khusus, alat ini berfokus pada definisi produk data dan spesifikasi kontrak data dengan menggunakan inisiatif OpenContract, serta dapat diintegrasikan ke dalam pipeline build menggunakan DataContract CLI yang terhubung
- Aplikasi ini juga menyediakan katalog data untuk mencari dan menjelajahi produk data beserta metadatanya, serta memungkinkan tata kelola federatif termasuk definisi metrik kualitas data dan pengelolaan aturan kualitas data
- Sebagai salah satu alat native pertama yang muncul di ruang ini, alat ini tidak berupaya memodifikasi platform yang sudah ada agar sesuai dengan paradigma data mesh
-
GitButler
- Antarmuka baris perintah Git sangat kuat dan berguna, tetapi terkenal sangat rumit saat mengelola banyak branch dan melakukan staging commit di dalamnya
- GitButler adalah klien Git yang menyediakan antarmuka grafis yang bertujuan menyederhanakan proses ini
- Caranya adalah dengan melacak perubahan file yang belum di-commit secara independen dari Git, lalu melakukan staging perubahan tersebut ke virtual branch
- Bisa dikatakan ini adalah solusi untuk masalah yang seharusnya tidak perlu ada sejak awal. Jika Anda sering melakukan perubahan kecil dan mendorongnya ke trunk, banyak branch tidak diperlukan
- Namun, jika workflow Anda mencakup pull request, terutama bila ada siklus review yang panjang sebelum PR digabungkan, struktur branching dapat menjadi rumit
- Untuk mengatasinya, GitButler terintegrasi dengan GitHub sehingga perubahan dapat dikelompokkan secara selektif ke dalam pull request dan diterbitkan langsung dari alat tersebut
- GitButler menjadi tambahan lain dalam kategori blip yang terus berkembang untuk mengelola kompleksitas yang melekat pada proses PR
-
JetBrains AI Assistant
- JetBrains AI Assistant adalah asisten coding yang dirancang agar terintegrasi mulus dengan semua IDE JetBrains untuk membantu code completion, pembuatan test, dan kepatuhan terhadap style guide
- Dibangun di atas model seperti OpenAI dan Google Gemini, alat ini menonjol karena kemampuannya mengingat gaya coding untuk sesi mendatang sehingga menghasilkan output yang konsisten
- Para developer kami menganggap fitur pembuatan test sangat berguna, dan mencatat kemampuannya menangani output yang lebih panjang tanpa masalah stabilitas
- Namun, tidak seperti beberapa pesaingnya, JetBrains tidak meng-host modelnya sendiri, sehingga mungkin kurang cocok bagi pelanggan yang khawatir tentang pemrosesan data oleh pihak ketiga
- Meski begitu, integrasi alat ini dengan IDE JetBrains menjadikannya pilihan yang menjanjikan bagi tim yang mengeksplorasi asisten coding berbasis AI
-
Mise
- Developer yang bekerja di lingkungan polyglot sering harus mengelola banyak versi dari berbagai bahasa dan alat yang berbeda
- mise bertujuan mengatasi masalah ini dengan menyediakan satu alat yang dapat menggantikan nvm, pyenv, rbenv, rustup, dan lainnya, serta bisa menjadi pengganti asdf
- Mise ditulis dalam Rust untuk kecepatan interaksi shell, dan tidak seperti asdf yang menggunakan shim berbasis shell, mise memodifikasi variabel lingkungan PATH terlebih dahulu sehingga waktu eksekusi alat menjadi seperti pemanggilan langsung
- Ini adalah salah satu alasan mengapa mise lebih cepat daripada asdf
- Bagi developer yang sudah akrab dengan asdf, mise menawarkan fungsionalitas yang sama tetapi dengan beberapa perbedaan penting
- Karena ditulis dalam Rust, alat ini lebih cepat dan memiliki beberapa fitur yang tidak ada di asdf. Misalnya, alat ini dapat memasang beberapa versi dari alat yang sama secara bersamaan dan menyediakan perintah yang lebih longgar termasuk fuzzy matching
- Alat ini juga menyediakan task runner terintegrasi yang berguna untuk menjalankan linter, test, builder, server, dan tugas lain yang spesifik untuk proyek
- Jika Anda agak lelah harus menggunakan banyak alat untuk mengelola lingkungan pengembangan dan dengan sintaks beberapa alat lain yang terkadang canggung, mise jelas layak untuk dilihat
-
Mockoon
- Mockoon adalah alat mocking API open source
- Alat ini menawarkan antarmuka yang intuitif, rute yang dapat disesuaikan, respons dinamis, serta kemampuan untuk mengotomatiskan pembuatan kumpulan data tiruan
- Mockoon kompatibel dengan OpenAPI dan dapat membuat berbagai skenario yang bisa diuji secara lokal dan diintegrasikan ke dalam pipeline pengembangan
- Anda juga dapat mencegat permintaan dan hanya memalsukan panggilan yang didefinisikan di Mockoon untuk membuat "partial mock"
- Partial mock membantu mensimulasikan rute atau endpoint API tertentu sambil meneruskan permintaan lain ke server yang sebenarnya
- Partial mock dapat berguna dalam skenario tertentu, tetapi jika digunakan berlebihan berisiko menimbulkan kompleksitas yang tidak perlu
- Selain itu, Mockoon tetap menjadi alat yang berguna untuk menyiapkan API tiruan dengan cepat serta meningkatkan dan mengotomatiskan workflow pengembangan
-
Raycast
- Raycast adalah launcher premium untuk macOS yang memungkinkan Anda menjalankan aplikasi dengan cepat, mengeksekusi perintah, mencari file, dan mengotomatiskan tugas langsung dari keyboard
- Tim kami sangat menghargai fitur bawaan untuk developer serta kemudahan ekstensibilitasnya untuk berinteraksi dengan aplikasi dan layanan pihak ketiga seperti VSCode, Slack, Jira, Google, dan lainnya
- Raycast berfokus pada produktivitas dan merupakan alat yang berguna bagi orang yang ingin menyederhanakan pekerjaan sehari-hari dengan meminimalkan context switching
- Pengguna Pro dapat mengakses Raycast AI, asisten pencarian khusus berbasis AI
-
ReadySet
- ReadySet adalah cache kueri untuk MySQL dan PostgreSQL
- Tidak seperti solusi caching tradisional yang bergantung pada invalidasi manual, ReadySet memanfaatkan stream replikasi database untuk memperbarui cache secara bertahap
- Melalui partial view materialization, ReadySet mencapai tail latency yang lebih rendah dibandingkan read replica tradisional
- ReadySet kompatibel pada level wire dengan MySQL dan PostgreSQL, sehingga dapat ditempatkan di depan database tanpa perubahan aplikasi untuk menskalakan workload baca secara horizontal
-
Rspack
- Banyak tim kami yang bekerja pada frontend berbasis web telah beralih dari alat bundling lama seperti Webpack ke Vite
- Pendatang baru di bidang ini adalah Rspack, yang merilis versi 1.0 setelah 18 bulan pengembangan
- Alat ini dirancang sebagai pengganti Webpack dan kompatibel dengan plugin serta loader dalam ekosistem Webpack
- Ini bisa menjadi keunggulan dibandingkan Vite saat memigrasikan konfigurasi Webpack yang kompleks
- Alasan utama tim kami bermigrasi ke alat modern seperti Vite dan Rspack adalah developer experience, terutama kecepatan
- Tidak ada yang lebih merusak alur pengembangan selain harus menunggu sekitar 1~2 menit sebelum menerima umpan balik atas perubahan kode terakhir
- Ditulis dalam Rust, Rspack menawarkan performa yang jauh lebih cepat daripada Webpack, dan dalam banyak kasus bahkan lebih cepat daripada Vite
-
Semantic Router
- Saat membangun aplikasi berbasis LLM, penting untuk menentukan niat pengguna sebelum mengarahkan permintaan ke agen tertentu atau memanggil alur tertentu
- Semantic Router berperan sebagai lapisan pengambilan keputusan ultra-cepat untuk LLM dan agen, sehingga dapat merutekan permintaan secara efisien dan andal berdasarkan makna semantik
- Dengan menggunakan vector embedding untuk menyimpulkan niat, Semantic Router mengurangi panggilan LLM yang tidak perlu dan menawarkan pendekatan yang lebih sederhana serta hemat biaya untuk memahami niat
- Potensinya melampaui inferensi niat dan meluas menjadi komponen serbaguna untuk berbagai tugas semantik
- Berkat kecepatan dan fleksibilitas yang ditawarkannya, alat ini menempatkan dirinya sebagai pesaing kuat di lingkungan yang memerlukan pengambilan keputusan cepat dan real-time tanpa overhead LLM
-
Agen rekayasa perangkat lunak
- Salah satu topik terpanas di ranah GenAI saat ini adalah konsep agen rekayasa perangkat lunak
- Alat bantu pengodean ini melakukan lebih dari sekadar membantu engineer menulis potongan kode di sana-sini. Alat-alat ini memperluas skala masalah yang dapat diselesaikan dan idealnya dapat bekerja secara otonom dengan intervensi manusia yang minimal
- Gagasannya adalah bahwa alat-alat ini dapat mengambil issue GitHub atau tiket Jira, lalu mengusulkan rencana dan perubahan kode, atau bahkan membuat pull request untuk ditinjau manusia
- Ini adalah langkah logis berikutnya untuk meningkatkan dampak bantuan pengodean AI, tetapi tujuan menghadirkan agen umum yang mampu menangani berbagai tugas pengodean seperti yang sering diiklankan sangat ambisius, dan kondisi tooling saat ini belum secara meyakinkan menunjukkan hal itu
- Namun, kami melihat bahwa untuk tugas-tugas sederhana dengan cakupan yang lebih terbatas, ini dapat segera berfungsi dan membebaskan waktu developer untuk masalah yang lebih kompleks
- Beberapa alat yang telah merilis versi beta agen antara lain GitHub Copilot Workspace, qodo flow, agen Tabnine untuk JIRA, dan Amazon Q Developer
- Benchmark SWE Bench mencantumkan lebih banyak alat di ruang ini, tetapi kami mengingatkan agar benchmark di ranah AI disikapi dengan sedikit skeptisisme
-
uv
- Rust cocok untuk menulis alat command-line karena performa startup-nya yang cepat, dan kami melihat orang-orang menulis ulang beberapa toolchain dalam Rust
- Di Radar sebelumnya, kami telah menyebut Ruff, linter Python yang ditulis dalam Rust
- Pada volume ini, kami mengevaluasi uv, alat manajemen paket Python yang ditulis dalam Rust
- Nilai jual uv adalah "sangat cepat", dan dalam benchmark ia jauh mengungguli alat manajemen paket Python lainnya
- Namun, selama evaluasi Radar kami mendiskusikan apakah mengoptimalkan build tool hingga hitungan detik merupakan perbaikan yang marginal
- Dibanding performa, hal yang lebih penting bagi sistem manajemen paket adalah ekosistem, komunitas yang matang, dan dukungan jangka panjang
- Meski begitu, umpan balik dari tim proyek menunjukkan bahwa peningkatan performa kecil ini dapat sangat membantu meningkatkan siklus umpan balik dan pengalaman developer secara keseluruhan - kami cenderung membuat caching CI/CD manual menjadi sangat rumit demi mencapai peningkatan performa kecil ini; uv menyederhanakan pengelolaan environment Python
- Mengingat masih banyak ruang untuk perbaikan dalam manajemen paket dan env untuk pengembangan Python, kami menganggap uv sebagai opsi yang layak dievaluasi
-
Warp
- Warp adalah terminal untuk macOS dan Linux
- Warp membagi output perintah ke dalam blok-blok untuk meningkatkan keterbacaan
- Warp mencakup fitur berbasis AI seperti saran perintah cerdas dan pemrosesan bahasa alami
- Warp juga menyertakan fitur notebook yang memungkinkan pengguna menyusun perintah dan output, serta menambahkan anotasi dan penjelasan
- Dengan memanfaatkan fitur-fitur ini, pengguna dapat membuat file README atau materi onboarding, serta menyajikan dan mengelola alur kerja terminal secara terstruktur dan interaktif
- Warp juga mudah terintegrasi dengan Starship, prompt lintas shell yang fleksibel, untuk menyesuaikan pengalaman terminal dengan mengambil informasi tentang proses yang sedang berjalan, versi spesifik alat yang digunakan, detail Git, atau pengguna Git saat ini
-
Zed
- Setelah proyek editor teks Atom dihentikan, para pembuatnya membuat editor baru bernama Zed
- Ditulis dalam Rust dan dioptimalkan untuk memanfaatkan hardware modern, Zed terasa cepat
- Zed memiliki semua fitur yang diharapkan dari editor modern, termasuk dukungan untuk banyak bahasa pemrograman, terminal bawaan, dan pengeditan multibuffer
- Bantuan pengodean AI tersedia melalui integrasi dengan beberapa penyedia LLM
- Sebagai penggemar pair programming, kami tertarik pada fitur kolaborasi jarak jauh yang tertanam di Zed
- Developer dapat saling menemukan melalui ID GitHub lalu berkolaborasi di workspace yang sama secara real time
- Masih terlalu dini untuk menilai apakah tim pengembang bisa dan ingin melepaskan diri dari daya tarik ekosistem Visual Studio Code
- Namun, Zed adalah alternatif yang layak dieksplorasi
Hold
- CocoaPods
- CocoaPods adalah alat manajemen dependensi yang sudah lama dicintai dalam proyek Cocoa berbasis Swift dan Objective-C
- Selama lebih dari 10 tahun, alat ini telah menjadi perangkat penting bagi developer iOS dan macOS
- Tim CocoaPods kini mengumumkan bahwa proyek ini akan beralih ke mode maintenance dan pengembangan aktif akan dihentikan
- Alat CocoaPods dan sumber daya terkait akan tetap tersedia untuk digunakan, tetapi tidak akan ada pengembangan fitur baru atau peningkatan lebih lanjut
- Developer disarankan untuk beralih ke Swift Package Manager
- Swift Package Manager menawarkan integrasi native dengan Xcode dan dapat memperoleh dukungan jangka panjang dari Apple
[Language and Frameworks]
Adopt
-
dbt
- tetap dianggap sebagai opsi yang kuat dan bijak untuk mengimplementasikan transformasi data dalam pipeline ELT
- Kami menyukai bahwa dbt memungkinkan disiplin engineering serta praktik seperti modularitas, kemudahan pengujian, dan penggunaan ulang transformasi berbasis SQL
- dbt terintegrasi dengan baik dengan banyak cloud data warehouse, lakehouse, dan database seperti Snowflake, BigQuery, Redshift, Databricks, dan Postgres, serta memiliki ekosistem paket komunitas yang sehat di sekitarnya
- Dukungan bawaan yang baru diperkenalkan untuk unit test (dbt core 1.8+ dan pengalaman dbt Cloud "versionless" yang baru diperkenalkan) semakin memperkuat posisinya dalam toolbox
- Fitur unit test yang baru memungkinkan pendefinisian data uji statis dengan mudah, penetapan ekspektasi output, dan pengujian baik mode incremental maupun full refresh pada pipeline, dan ini sangat dihargai oleh tim
- Dalam banyak kasus, hal ini memungkinkan pembuangan script buatan sendiri sambil tetap mempertahankan tingkat kualitas yang sama
-
Testcontainers
- Testcontainers dipandang sebagai opsi default yang berguna untuk menciptakan environment yang andal bagi eksekusi pengujian
- Ini adalah library yang diport ke berbagai bahasa yang mendockerisasi dependensi pengujian umum, termasuk berbagai jenis database, teknologi antrean, layanan cloud, dan dependensi pengujian UI seperti web browser, serta dapat menjalankan Dockerfile kustom saat diperlukan
- Baru-baru ini telah dirilis versi desktop yang menyediakan pengelolaan visual sesi pengujian dan kemampuan menangani skenario yang lebih kompleks, yang menurut tim sangat berguna
Trial
-
CAP
- Library .NET untuk mengimplementasikan pola Outbox guna menjalankan pembaruan database dan publikasi event secara atomik dalam sistem messaging terdistribusi
- Mengatasi masalah ini dengan mencatat niat untuk memublikasikan event dalam transaksi database yang sama
- Mendukung beberapa database dan platform messaging serta berguna karena menjamin pengiriman setidaknya sekali
-
CARLA
- Simulator open source untuk penelitian kendaraan otonom yang digunakan untuk menguji sistem autonomous driving sebelum deployment ke produksi
- Memungkinkan pembuatan dan penggunaan ulang model 3D kendaraan, medan, manusia, hewan, dan lainnya secara fleksibel sehingga berbagai skenario dapat disimulasikan
- Sistem autonomous driving harus mengenali objek-objek dinamis ini dan mengambil tindakan yang tepat seperti pengereman
- Dimanfaatkan untuk pengembangan dan pengujian berkelanjutan sistem autonomous driving
-
Databricks Asset Bundles
- DABs, yang mencapai GA pada April 2024, memantapkan diri sebagai alat packaging dan deployment aset Databricks yang mendorong adopsi praktik software engineering di tim data
- Workflow dan konfigurasi job, beserta kode yang akan dijalankan dalam job tersebut, dapat dikemas sebagai bundle dan dideploy ke berbagai environment melalui pipeline CI/CD
- Mendukung template untuk jenis aset umum maupun template kustom sehingga memungkinkan pembuatan template layanan yang disesuaikan untuk proyek data engineering dan ML
- Semakin banyak diadopsi sebagai bagian utama dari workflow engineering
- Meskipun mencakup template notebook dan mendukung deployment ke produksi, memproduksikan notebook tidak direkomendasikan
- Sebaliknya, alat ini mendorong penulisan kode produksi secara sengaja dengan praktik engineering yang mendukung kebutuhan maintainability, resilience, dan scalability
-
Instructor
- Pustaka yang berguna saat menggunakan LLM untuk meminta jawaban terstruktur (JSON, YAML, dan sebagainya), lalu mem-parsing-nya agar dapat digunakan dalam aplikasi
- Karena LLM bersifat nondeterministik, model mungkin tidak selalu berperilaku sesuai permintaan
- Dapat mendefinisikan struktur output yang diinginkan dan mengatur percobaan ulang jika LLM tidak mengembalikan struktur yang diminta
- Juga menyediakan kemampuan untuk mem-parsing struktur parsial dari stream sehingga hasil dapat di-stream tanpa harus menunggu seluruh respons
-
Kedro
- Alat MLOps yang telah mengalami peningkatan signifikan sambil tetap berfokus pada modularitas dan praktik rekayasa
- Menekankan modularitas, termasuk dengan memperkenalkan paket
kedro-datasetsmandiri untuk memisahkan kode dan data - Peningkatan pada CLI, template proyek starter, dan fitur telemetri
- Pengalaman pengembang ditingkatkan melalui peluncuran ekstensi VS Code terbaru
-
LiteLLM
- Pustaka yang terintegrasi mulus dengan berbagai API penyedia LLM dan menstandarkan interaksi melalui format API OpenAI
- Mendukung banyak penyedia dan model serta menyediakan antarmuka terpadu untuk completions, embeddings, dan pembuatan gambar
- Menyederhanakan integrasi dengan mengubah input agar sesuai dengan kebutuhan endpoint spesifik dari tiap penyedia
- Menyediakan framework untuk mengimplementasikan fitur operasional yang dibutuhkan aplikasi produksi, seperti caching, logging, rate limiting, dan load balancing
- Memudahkan pertukaran antar model, yang merupakan kemampuan penting dalam situasi saat ini ketika model berkembang sangat cepat
- Perlu disadari bahwa karena respons model terhadap prompt yang sama dapat bervariasi, metode pemanggilan yang konsisten saja mungkin sulit mengoptimalkan performa completion
- Karena tiap model mengimplementasikan fitur tambahan secara unik, satu antarmuka tunggal mungkin sulit memenuhi semua kemampuan
-
LlamaIndex
- Mencakup engine untuk merancang aplikasi LLM yang spesifik domain dan berbasis konteks, serta mendukung tugas seperti pengumpulan data, pengindeksan vektor, dan tanya jawab bahasa alami atas dokumen
- Dengan menggunakan LlamaIndex, dimungkinkan membangun pipeline RAG (Retrieval-Augmented Generation) yang mengotomatisasi pengumpulan dokumen, mengindeks embedding dokumen, dan melakukan query terhadap embedding tersebut berdasarkan input pengguna
- Dengan LlamaHub, modul LlamaIndex dapat diperluas atau dikustomisasi, dan aplikasi LLM dapat dibangun bersama penyedia LLM, embedding, dan vector store pilihan
-
LLM Guardrails
- Sekumpulan pedoman, kebijakan, atau filter untuk mencegah LLM menghasilkan konten yang berbahaya, menyesatkan, atau tidak relevan
- Juga dapat digunakan untuk melindungi aplikasi LLM dari pengguna berniat buruk yang mencoba menyalahgunakan sistem melalui teknik seperti manipulasi input
- Berfungsi sebagai pengaman dengan menetapkan batasan pada cara model memproses dan menghasilkan konten
- Framework yang sedang muncul di bidang ini, seperti NeMo Guardrails, Guardrails AI, dan Aporia Guardrails, berguna
- Direkomendasikan untuk menempatkan guardrail pada semua aplikasi LLM dan terus menyempurnakan aturan serta kebijakan
- Penting untuk membangun aplikasi chat LLM yang bertanggung jawab dan dapat dipercaya
-
Medusa
- Solusi e-commerce untuk membangun sebagian besar situs belanja cenderung terjebak pada jebakan 80/20
- Medusa adalah platform commerce open source yang sangat dapat dikustomisasi dan seimbang, memungkinkan pengembang menciptakan pengalaman belanja yang unik dan disesuaikan
- Dibangun di atas Next.js dan PostgreSQL, mempercepat proses pengembangan dengan cakupan modul yang komprehensif, mulai dari shopping cart dan manajemen pesanan hingga fitur lanjutan seperti modul gift card dan perhitungan pajak per wilayah
- Telah diterapkan pada beberapa proyek dan dinilai sebagai framework yang berharga
-
Pkl
- Bahasa dan alat konfigurasi open source yang awalnya dibuat untuk penggunaan internal di Apple
- Fitur utamanya adalah sistem tipe dan validasi yang dapat menangkap kesalahan konfigurasi sebelum deployment
- Dapat mengurangi duplikasi kode (misalnya pada override lingkungan) dan melakukan validasi sebelum perubahan konfigurasi diterapkan ke lingkungan live
- Menyediakan integrasi IDE dan bahasa yang luas, termasuk pembuatan file JSON, PLIST, YAML, dan
.properties, serta code generation
-
ROS 2
- Framework open source untuk pengembangan sistem robotik
- Menyediakan pustaka dan alat yang memungkinkan implementasi modular aplikasi yang menangani fitur seperti komunikasi antaproses, eksekusi multithread, dan quality of service
- Merupakan peningkatan dibanding versi sebelumnya, termasuk perbaikan kemampuan real-time, peningkatan modularitas, dukungan platform yang lebih luas, dan default yang masuk akal
- Bagi produsen dengan aplikasi kendaraan yang kompleks dan terus berkembang, seperti kemampuan autonomous driving, arsitektur berbasis node dan model komunikasi berbasis topik sangat menarik
- Semakin banyak digunakan di industri otomotif
-
seL4
- Dalam SDV maupun skenario penting keselamatan lainnya, stabilitas real-time sistem operasi sangat penting
- Karena hambatan masuk yang tinggi membuat hanya sedikit perusahaan mendominasi bidang ini, solusi open source seperti seL4 sangat berharga
- seL4 adalah microkernel sistem operasi dengan jaminan tinggi dan performa tinggi
- Menggunakan metode verifikasi formal untuk memastikan bahwa perilaku sistem operasi mematuhi spesifikasi secara “matematis”
- Arsitektur microkernel meminimalkan tanggung jawab inti untuk menjamin stabilitas sistem
- Perusahaan kendaraan listrik seperti NIO sedang bekerja sama dengan ekosistem seL4, dan mungkin akan ada lebih banyak perkembangan di bidang ini ke depan
-
SetFit
- Saat ini, sebagian besar alat berbasis AI bersifat generatif, menghasilkan teks dan gambar serta menggunakan GPT
- Untuk tugas teks yang lebih tradisional (klasifikasi teks atau penentuan intent), sentence transformer lebih disukai
- SetFit adalah framework untuk fine-tuning sentence transformer
- Dengan menggunakan contrastive learning, SetFit dapat memisahkan kelas intent yang berbeda dan sering kali mencapai pemisahan yang jelas hanya dengan jumlah contoh yang sangat sedikit
- Sentence transformer juga dapat berperan dalam sistem AI generatif
- Dalam sistem chatbot yang berhadapan langsung dengan pelanggan dan menggunakan LLM, SetFit berhasil digunakan untuk deteksi intent, dan classifier berbasis SetFit dipilih untuk filtering yang lebih ketat
-
vLLM
- Engine inferensi untuk LLM dengan throughput tinggi dan efisiensi memori yang dapat dijalankan di cloud maupun on-premises
- Mendukung berbagai arsitektur model dan model open source populer secara mulus
- Dengan menerapkan worker vLLM yang telah didockerisasi pada platform GPU seperti NVIDIA DGX dan Intel HPC, model seperti Llama 3.1 (8B dan 70B), Mistral 7B, dan Llama-SQL di-host untuk dukungan coding pengembang, pencarian pengetahuan, interaksi database bahasa alami, dan lainnya
- Kompatibel dengan standar OpenAI SDK, sehingga mempermudah model serving yang konsisten
- AI Model Catalog milik Azure meningkatkan performa model serving menggunakan container inferensi kustom dan memakai vLLM sebagai engine inferensi default karena throughput tinggi dan pengelolaan memori yang efisien
- Framework vLLM sedang muncul sebagai pilihan default untuk deployment model berskala besar
Assess
-
Apache XTable™
- Belum muncul pemenang yang jelas di antara format tabel terbuka yang tersedia
- Alat seperti Delta UniForm memungkinkan interoperabilitas antarformat tersebut
- Apache XTable™ adalah proyek Apache Incubator yang mendorong interoperabilitas dua arah penuh antara Hudi, Delta, dan Iceberg
- Karena perbedaan kemampuan di antara format-format ini, ketergantungan besar pada interoperabilitas dua arah penuh dalam jangka panjang dapat membuat tim hanya dapat menggunakan fitur “penyebut umum terendah”
-
dbldatagen
- Menyiapkan data uji untuk data engineering merupakan tantangan yang besar
- Memindahkan data dari produksi ke lingkungan pengujian bisa berisiko, sehingga tim sering mengandalkan data palsu atau sintetis
- dbldatagen (Databricks Labs Data Generator) adalah pustaka Python untuk menghasilkan data sintetis di dalam lingkungan Databricks untuk pengujian, benchmarking, demo, dan lainnya
- dbldatagen dapat menghasilkan miliaran baris dalam hitungan menit, sehingga memungkinkan pembuatan data sintetis dalam skala besar sambil mendukung berbagai skenario seperti banyak tabel, change data capture, dan operasi merge/join
-
DeepEval
- DeepEval adalah framework evaluasi open source berbasis Python untuk menilai performa LLM
- Dapat digunakan untuk mengevaluasi RAG (retrieval-augmented generation) dan jenis aplikasi lain yang dibangun dengan framework populer seperti LlamaIndex atau LangChain, serta menetapkan baseline dan benchmark saat membandingkan berbagai model sesuai kebutuhan
- DeepEval menyediakan metrik dan fitur yang komprehensif untuk mengevaluasi performa LLM, termasuk deteksi halusinasi, relevansi jawaban, dan optimasi hyperparameter
- Menyediakan integrasi dengan pytest, sehingga kumpulan pengujian dapat dengan mudah diintegrasikan ke dalam pipeline CI (continuous integration) bersama assertion
-
DSPy
- Saat ini, sebagian besar aplikasi berbasis language model bergantung pada template prompt yang disesuaikan secara manual untuk tugas tertentu
- DSPy adalah framework untuk mengembangkan aplikasi semacam ini, dengan mengambil pendekatan berbeda yang menghilangkan prompt engineering secara langsung
- Sebagai gantinya, DSPy memperkenalkan abstraksi tingkat tinggi yang terkait dengan alur program (melalui modul yang dapat ditumpuk satu di atas yang lain), metrik yang akan dioptimalkan, serta data untuk pelatihan atau pengujian
- Setelah itu, prompt atau bobot dari language model dasar dioptimalkan berdasarkan metrik yang telah ditentukan
- Codebase yang dihasilkan sangat mirip dengan pelatihan neural network menggunakan PyTorch
-
Flutter for Web
- Flutter dikenal karena dukungan lintas platformnya untuk aplikasi iOS dan Android
- Kini, jangkauannya telah diperluas ke lebih banyak platform
- Anda dapat membangun aplikasi untuk iOS, Android, dan browser dari codebase yang sama
- Tidak semua aplikasi web cocok dibuat dengan Flutter, tetapi sangat sesuai terutama untuk progressive web app, single-page app, dan kasus mengubah aplikasi mobile Flutter yang sudah ada ke web
- Flutter sudah mendukung WebAssembly (WASM) sebagai target kompilasi di channel eksperimental, yang berarti masih dalam pengembangan aktif dengan potensi bug dan masalah performa
- Pada rilis terbaru, dukungan tersebut telah distabilkan
- Performa aplikasi web Flutter yang dikompilasi ke target WASM jauh lebih baik daripada target kompilasi JavaScript
- Performa yang mendekati native di berbagai platform juga menjadi salah satu alasan banyak pengembang awalnya memilih Flutter
-
kotaemon
- kotaemon adalah alat dan framework open source berbasis RAG untuk membangun aplikasi tanya jawab bagi dokumen berbasis pengetahuan
- Dapat memahami beberapa jenis dokumen, termasuk format PDF dan DOC, serta menyediakan web UI berbasis Gradio agar pengguna dapat menyusun basis pengetahuan dan berinteraksi melalui antarmuka chat
- Memiliki pipeline RAG bawaan dengan vector store dan dapat diperluas melalui SDK
- Juga mendukung kutipan dokumen sumber dalam respons, beserta pratinjau inline berbasis web dan skor relevansi
- Bagi siapa pun yang menginginkan aplikasi tanya jawab dokumen berbasis RAG, framework yang dapat dikustomisasi ini merupakan titik awal yang sangat baik
-
Lenis
- Lenis adalah library smooth scrolling yang ringan namun kuat, dirancang untuk browser modern
- Library ini memungkinkan pengalaman smooth scrolling seperti sinkronisasi scroll WebGL dan efek parallax, sehingga ideal bagi tim yang membangun halaman dengan interaksi scroll yang fleksibel dan mulus
- Para pengembang menilai Lenis sederhana dan mudah digunakan, serta menawarkan pendekatan yang lebih ringkas untuk membuat smooth scrolling
- Namun, library ini dapat menimbulkan masalah aksesibilitas, terutama karena interaksi scroll vertikal dan horizontal dapat membingungkan pengguna dengan disabilitas
- Meski menarik secara visual, implementasinya perlu dilakukan dengan hati-hati agar aksesibilitas tetap terjaga
-
LLMLingua
- LLMLingua meningkatkan efisiensi LLM dengan mengompresi prompt menggunakan language model kecil untuk menghapus token yang tidak esensial, sehingga meminimalkan penurunan performa
- Pendekatan ini memungkinkan LLM memproses prompt yang lebih panjang secara efisien sambil mempertahankan kemampuan reasoning dan in-context learning, sehingga membantu mengatasi tantangan seperti efisiensi biaya, latensi inferensi, dan pemrosesan konteks
- Kompatibel dengan berbagai LLM tanpa pelatihan tambahan dan mendukung framework seperti LLamaIndex, LLMLingua cocok untuk mengoptimalkan performa inferensi LLM
-
Microsoft Autogen
- Microsoft Autogen adalah framework open source yang menyederhanakan pembuatan dan orkestrasi AI agent, sehingga memungkinkan kolaborasi multi-agent untuk menyelesaikan tugas yang kompleks
- Mendukung workflow otonom maupun human-in-the-loop, serta kompatibel dengan berbagai LLM dan alat untuk interaksi agent yang beragam
- Sebuah tim menggunakan Autogen untuk klien guna membangun platform berbasis AI, di mana setiap agent merepresentasikan keahlian tertentu seperti pembuatan kode, code review, atau peringkasan dokumen
- Dengan mendefinisikan model dan workflow yang tepat menggunakan framework ini, tim dapat membuat agent baru secara mulus dan konsisten
- Dengan memanfaatkan LlamaIndex untuk mengorkestrasi workflow, agent dapat menangani tugas seperti pencarian produk dan usulan kode secara efisien
- Autogen telah menunjukkan potensi, khususnya di lingkungan produksi, tetapi kekhawatiran tentang skalabilitas dan pengelolaan kompleksitas tetap ada seiring bertambahnya jumlah agent
- Diperlukan evaluasi lebih lanjut untuk menilai kelayakan jangka panjangnya dalam perluasan sistem berbasis agent
-
Pingora
- Pingora adalah framework Rust untuk membangun layanan jaringan yang cepat, andal, dan dapat diprogram
- Awalnya dikembangkan oleh Cloudflare untuk mengatasi kelemahan Nginx, Pingora sudah menunjukkan potensi besar, dengan proxy baru seperti River yang dibangun di atas fondasinya
- Kebanyakan orang memang tidak menghadapi skala setingkat Cloudflare, tetapi tetap menjumpai skenario di mana routing application-layer yang fleksibel sangat penting bagi layanan jaringan
- Arsitektur Pingora memungkinkan pemanfaatan penuh kapabilitas Rust dalam situasi tersebut tanpa mengorbankan keamanan maupun performa
-
Ragas
- Ragas adalah framework yang dirancang untuk mengevaluasi performa pipeline retrieval-augmented generation (RAG), sambil menangani tantangan evaluasi pada komponen retrieval dan generation
- Menyediakan metrik terstruktur seperti fidelity, relevansi jawaban, dan pemanfaatan konteks untuk membantu menilai efektivitas sistem berbasis RAG
- Para pengembang menganggapnya berguna untuk menjalankan evaluasi rutin guna melakukan fine-tuning pada parameter seperti top-k retrieval dan embedding model
- Beberapa tim mengintegrasikan Ragas ke dalam pipeline yang dijalankan setiap hari setiap kali template prompt atau model berubah
- Meski metriknya memberikan insight yang kuat, ada kekhawatiran bahwa framework ini mungkin tidak mampu menangkap seluruh nuansa dan interaksi kompleks dalam pipeline RAG yang rumit, sehingga disarankan untuk mempertimbangkan framework evaluasi tambahan
- Meski demikian, Ragas menonjol karena kemampuannya menyederhanakan evaluasi RAG di lingkungan produksi dan menghadirkan peningkatan berbasis data
-
Score
- Banyak organisasi yang membangun platform pengembangan internal sendiri cenderung membuat sistem orkestrasi platform mereka sendiri untuk menerapkan standar organisasi antara pengembang dan tim hosting platform
- Namun, fungsi dasar platform deployment beraspal untuk meng-host workload container dengan cara yang aman, konsisten, dan patuh regulasi serupa di berbagai organisasi
- Bukankah akan bagus jika ada bahasa bersama untuk mendefinisikan kebutuhan ini?
- Score menunjukkan potensi untuk menjadi standar di bidang ini
- Sebuah bahasa deklaratif berbasis YAML yang menjelaskan cara menerapkan workload yang dikontainerisasi serta layanan dan parameter spesifik yang dibutuhkan untuk menjalankannya
- Score awalnya dikembangkan sebagai bahasa konfigurasi untuk produk Platform Orchestrator milik Humanitec, tetapi kini menjadi proyek open source di bawah pengelolaan CNCF (Cloud Native Computing Foundation)
- Dengan dukungan CNCF, Score berpotensi digunakan lebih luas melampaui produk Humanitec
- Dirilis bersama dua implementasi referensi, yaitu Kubernetes dan Docker Compose
- Ekstensibilitas Score diharapkan mendorong kontribusi komunitas untuk platform lain
- Score memiliki kemiripan dengan spesifikasi Open Application Model (OAM) untuk Kubevela, tetapi lebih berfokus pada deployment workload container daripada keseluruhan aplikasi
- Ada sedikit tumpang tindih dengan SST, tetapi SST lebih berfokus pada deployment langsung ke infrastruktur cloud daripada platform engineering internal
- Score adalah sesuatu yang terus kami amati dengan penuh minat seiring perkembangannya
-
shadcn
- shadcn menantang konsep tradisional library komponen dengan menyediakan komponen yang dapat digunakan kembali serta bisa disalin dan ditempel
- Pendekatan ini memberi tim kepemilikan dan kontrol penuh, memungkinkan kustomisasi dan perluasan yang lebih mudah, area yang sering kali kurang kuat pada library tradisional yang lebih umum seperti MUI dan Chakra UI
- Dibangun dengan Radix UI dan Tailwind CSS, shadcn dapat terintegrasi mulus ke aplikasi berbasis React apa pun, sehingga cocok untuk proyek yang memprioritaskan kontrol dan skalabilitas
- Menyertakan CLI yang mendukung proses menyalin dan menempel komponen ke dalam proyek
- Karena juga memiliki keuntungan mengurangi dependensi tersembunyi dan mencegah implementasi yang terlalu erat terikat, shadcn mendapat perhatian sebagai alternatif menarik bagi tim yang menginginkan pendekatan frontend development yang lebih praktis dan adaptif
-
Slint
- Slint adalah framework GUI deklaratif untuk membangun antarmuka pengguna native bagi aplikasi Rust, C++, atau JavaScript
- Ini adalah framework UI multiplatform dengan fitur penting seperti live preview, desain UI responsif, integrasi VS Code, dan pengalaman pengguna native, tetapi kami terutama ingin menyoroti kegunaannya untuk embedded system
- Tim yang mengembangkan aplikasi embedded secara tradisional memiliki pilihan terbatas untuk pengembangan UI, dan masing-masing memiliki kelebihan serta kekurangannya sendiri
- Slint menggunakan bahasa markup mirip HTML yang mudah digunakan dan dikompilasi langsung ke machine code, memberikan keseimbangan ideal antara pengalaman developer dan performa
- Saat runtime pun, ia menawarkan jejak sumber daya yang rendah, yang penting untuk embedded system
- Singkatnya, kami menyukai bagaimana Slint membawa praktik yang telah terbukti dari pengembangan web dan mobile ke ekosistem embedded
-
SST
- SST adalah framework untuk men-deploy aplikasi ke lingkungan cloud bersama semua layanan yang dibutuhkan untuk menjalankan aplikasi tersebut
- SST bukan sekadar alat IaC, melainkan framework dengan API TypeScript untuk mendefinisikan lingkungan aplikasi, layanan yang men-deploy aplikasi ketika dipicu oleh Git push, serta GUI console yang mengelola aplikasi hasil deployment dan memanggil kemampuan manajemen SST
- SST awalnya dibangun di atas AWS Cloud Formation dan CDK, tetapi versi terbarunya diimplementasikan di atas Terraform dan Pulumi sehingga secara teori tidak terikat pada cloud tertentu
- SST secara bawaan mendukung deployment berbagai framework aplikasi web standar termasuk Next.js dan Remix, tetapi juga mendukung aplikasi API headless
- SST tampaknya berada dalam kategorinya sendiri
- Ada kemiripan dengan alat orkestrasi platform seperti Kubevela, tetapi SST juga menyediakan fitur kenyamanan developer seperti live mode yang mem-proxy pemanggilan AWS Lambda ke fungsi yang berjalan di mesin lokal developer
- Saat ini SST masih sedikit menjadi objek rasa ingin tahu, tetapi seiring perkembangannya ini adalah proyek yang layak diperhatikan sekaligus bagian dari kategori alat yang patut dicermati
10 komentar
Terima kasih. Menarik ya.
Kerja keras Anda sangat dihargai... terima kasih!
Kalau menambahkan sedikit pemikiran soal library scroll bernama Lenis yang muncul di tengah itu.. animasi scroll yang mulus seperti di homepage Apple justru terasa agak tidak nyaman buat saya.
Saat mencoba melihatnya sambil memutar roda scroll mouse, rasanya animasinya terus tersendat, dan kalau berpindah dengan menekan tombol panah bawah, lajunya terlalu cepat sehingga sulit membaca isinya.
Pada akhirnya, satu-satunya cara untuk 'menikmati' situs web seperti itu di Windows adalah dengan mengklik roda scroll lalu menggerakkannya sedikit saja agar turun pelan-pelan, tapi saya tidak yakin itu benar-benar sepadan. Singkatnya, saya tidak yakin itu teknik yang bagus.
Databricks muncul sangat banyak sampai terasa menakutkan.
Baca sampai pusing. T_T
Saya merangkum produk/layanan yang pernah diposting di GeekNews.
Platforms - Assess
Platforms - Trial
Language and Frameworks - Adopt
Language and Frameworks - Assess
Language and Frameworks - Trial
Tools - Adopt
Tools - Assess
Tools - Trial
Terima kasih. Menarik ya~
Saya sudah membacanya dengan baik. Terima kasih.
Saya membacanya dengan antusias dan menikmatinya. Terima kasih.
Thoughtworks Technology Radar, Volume 30
Thoughtworks Technology Radar, Volume 29
Thoughtworks Technology Radar, Volume 28
Thoughtworks Technology Radar, Volume 27
Thoughtworks Technology Radar, Volume 26
ThoughtWorks Technology Radar, Volume 23
ThoughtWorks Technology Radar, Volume 22
Berita teknologi yang diterbitkan ThoughtWorks setiap 6 bulan - Radar Vol.21