Lompat ke konten
dokumentasi.id
Commit a27b09d
v2
Star11 rb

3.1

Bahasa Sistem dan Enterprise

Katalog ini menaruh seluruh pedoman bahasa dalam satu bagian datar. Bagian ## Programming Languages membentang dari baris 14 sampai 245 dan dipecah menjadi 43 subbagian ###, satu subbagian per bahasa, tanpa pengelompokan lanjutan (README.md:14-245). Halaman ini memilah subbagian yang menyasar kode tingkat sistem dan kode enterprise: 19 subbagian dengan total 51 tautan. Bahasa web dan skrip dinamis dibahas di Bahasa Web dan Skrip Dinamis, sedangkan bahasa fungsional dan format data dibahas di Bahasa Fungsional dan Format Data.

Tiga sumbu panduan

Entri pada halaman ini tidak seragam jenisnya. Ada yang mengatur gaya dan format penulisan, ada yang mengatur desain API publik, dan ada yang mengatur keamanan serta penamaan. Pemisahan itu terbaca dari deskripsi tiap tautan: Rust Style Guide dan Rust API Guidelines berdiri sebagai dua entri terpisah dalam satu subbagian (README.md:205-208), begitu pula .NET Standard, .NET Secure Coding Guidelines, dan .NET Naming Guidelines (README.md:151-155).

graph TD
  LS["Programming Languages: 43 subbagian"] --> ST["Gaya dan format"]
  LS --> AP["Desain API publik"]
  LS --> SC["Keamanan dan penamaan"]
  ST --> ST1["Google C++ Style Guide"]
  ST --> ST2["Rust Style Guide"]
  ST --> ST3["Metova Swift style guide, archived 2022"]
  AP --> AP1["Rust API Guidelines"]
  AP --> AP2["API Design Guidelines, Swift.org"]
  AP --> AP3[".NET Standard"]
  SC --> SC1["NASA C++ Coding Standards"]
  SC --> SC2[".NET Secure Coding Guidelines"]
  SC --> SC3[".NET Naming Guidelines"]
  style LS fill:#f59e0b,color:#000
  style ST fill:#2d7d46,color:#fff
  style AP fill:#8b5cf6,color:#fff
  style SC fill:#dc2626,color:#fff
  style SC1 fill:#dc2626,color:#fff
  style ST3 fill:#f59e0b,color:#000
%% fig: Tiga sumbu panduan pada bahasa sistem dan enterprise
%% desc: Subbagian bahasa dipetakan ke tiga jenis panduan; warna menandai jalur gaya, permukaan API publik, dan risiko keamanan.
Fig. 1: Tiga sumbu panduan pada bahasa sistem dan enterpriseSubbagian bahasa dipetakan ke tiga jenis panduan; warna menandai jalur gaya, permukaan API publik, dan risiko keamanan.

Sumbu gaya dan format dipenuhi hampir semua bahasa di halaman ini. Sumbu desain API publik hanya muncul eksplisit pada Rust dan Swift, yang masing-masing punya satu tautan khusus untuk itu (README.md:205-208, README.md:222-229). Sumbu keamanan muncul eksplisit pada C++, .NET, dan Swift.

Keluarga C: C, C#, Objective-C

BahasaPanduanSumberRujukan
CC Coding Standard, C Programming/Structure and style, Making The Best Use of CCarnegie Mellon University, buku panduan komunitas, GNUREADME.md:24-28
C#C# Coding Conventions, C# Style Guide, C# Coding Standards and Naming ConventionsMicrosoft, Kodeco, dofactoryREADME.md:30-34
Objective-CObjective-C Style guide, Google Objective-C Style Guide, NYTimes Objective-C Style GuideGitHub, Google, The New York TimesREADME.md:161-165

Subbagian C memuat tiga tautan dengan pembagian tugas yang jelas: satu panduan umum konvensi, satu uraian struktur dan gaya, dan satu bab khusus tentang cara memakai C saat menulis perangkat lunak GNU (README.md:24-28). Subbagian C# menaruh panduan resmi Microsoft di urutan pertama, lalu dua panduan komunitas dan vendor (README.md:30-34). Objective-C memuat tiga tautan yang seluruhnya berupa panduan gaya milik organisasi tertentu (README.md:161-165).

C++ sebagai subbagian terpadat

Subbagian C++ berisi 8 tautan, jumlah terbesar di antara bahasa mana pun di halaman ini, dan setiap tautan berasal dari organisasi berbeda (README.md:36-45). Sebaran pemiliknya lebih beragam daripada subbagian lain, sehingga pedoman C++ harus dipilih berdasarkan lingkup proyek, bukan diambil semuanya sekaligus.

graph TD
  CPP["Subbagian C++: 8 tautan"] --> CORE["C++ Core Guidelines"]
  CPP --> GGL["Google C++ Style Guide"]
  CPP --> LLVM["LLVM C++ Coding Standards"]
  CPP --> MZL["Mozilla C++ Coding style"]
  CPP --> CRM["Chromium C++ style guide"]
  CPP --> WKT["Webkit C++ Code Style Guidelines"]
  CPP --> OCB["OceanBase C++ Coding Standards"]
  CPP --> NSA["NASA C++ Coding Standards"]
  NSA --> SF["Safety-critical systems"]
  CPP -.-> LNX["Linux kernel coding style, halaman Platforms"]
  CPP -.-> APC["Apache Developers C Language Style Guide, halaman Platforms"]
  style CPP fill:#f59e0b,color:#000
  style CORE fill:#2d7d46,color:#fff
  style GGL fill:#8b5cf6,color:#fff
  style LLVM fill:#8b5cf6,color:#fff
  style MZL fill:#8b5cf6,color:#fff
  style CRM fill:#8b5cf6,color:#fff
  style WKT fill:#8b5cf6,color:#fff
  style OCB fill:#8b5cf6,color:#fff
  style NSA fill:#dc2626,color:#fff
  style SF fill:#dc2626,color:#fff
%% fig: Pemilik panduan pada subbagian C++
%% desc: Delapan tautan C++ dibagi menjadi panduan komunitas, panduan internal proyek, dan panduan safety-critical; garis putus-putus menunjuk entri C yang tinggal di halaman Platforms.
Fig. 2: Pemilik panduan pada subbagian C++Delapan tautan C++ dibagi menjadi panduan komunitas, panduan internal proyek, dan panduan safety-critical; garis putus-putus menunjuk entri C yang tinggal di halaman Platforms.

Enam dari delapan tautan itu adalah standar internal sebuah proyek: LLVM, Mozilla, Chromium, WebKit, Google, dan OceanBase (README.md:36-45). Satu tautan menyebut sasarannya secara eksplisit, yaitu NASA C++ Coding Standards and Style Guide untuk safety-critical systems (README.md:44).

⚠️ Tautan seperti OceanBase C++ Coding Standards dan Chromium C++ style guide diberi keterangan terikat pada proyeknya masing-masing. Jangan mengutipnya sebagai standar umum C++ tanpa menyebut sumbernya.

Entri C lainnya tidak berada di bagian bahasa. Apache Developers' C Language Style Guide dan Linux kernel coding style diletakkan di bagian Platforms, sehingga dibahas di Platforms dan Desain API (README.md:268-270, README.md:310-312).

JVM enterprise: Java, Kotlin, Scala, Groovy

BahasaPanduanSumberRujukan
JavaCode Conventions for the Java Programming Language, Google Java Style Guide, Java Programming Style Guide, Alibaba-Java-Coding-GuidelinesOracle, Google, forum komunitas, AlibabaREADME.md:109-114
KotlinCoding Conventionsdokumentasi resmi kotlinlang.orgREADME.md:137-139
ScalaEffective Scala, Scala Style Guide, Databricks Scala Guide, Scala Best PracticesTwitter, dokumentasi resmi Scala, Databricks, komunitasREADME.md:210-215
GroovyApache Groovy style guideApacheREADME.md:101-103

Subbagian Java adalah satu-satunya di kelompok ini yang menandai entrinya sebagai historis, dan entri itu justru yang berasal dari Oracle (README.md:111). Kotlin hanya punya satu tautan, yaitu konvensi resmi dari dokumentasi bahasa (README.md:137-139). Scala dan Groovy sebaliknya menumpuk panduan gaya pada tingkat organisasi pemakai bahasa, seperti Databricks dan Apache (README.md:210-215, README.md:101-103).

⚠️ Code Conventions for the Java Programming Language diberi keterangan Historical Java coding conventions (README.md:111). Pakai Google Java Style Guide sebagai rujukan aktif untuk Java (README.md:112).

Pemeriksaan kepatuhan Java di katalog ini ditangani di halaman lain lewat Checkstyle, yang disebut sebagai tool pemeriksa kepatuhan kode sumber Java terhadap sebuah Code Standard (README.md:366). Lihat Tools dan Linter.

Go dan Rust

BahasaPanduanSumberRujukan
GoEffective Go, Go Standard Project Layout, Google Go Style Guide, Uber Go Style Guidego.dev, golang-standards, Google, UberREADME.md:94-99
RustRust Style Guide, Rust API Guidelinesrust-langREADME.md:205-208

Go adalah satu-satunya bahasa di halaman ini yang menautkan panduan tata letak proyek, Go Standard Project Layout, di samping panduan idiom dan gaya (README.md:94-99). Rust hanya punya dua tautan, tetapi keduanya menutup dua sumbu sekaligus: gaya penulisan dan desain API publik (README.md:205-208).

.NET dan Swift

BahasaPanduanSumberRujukan
.NET.NET Standard, .NET Secure Coding Guidelines, .NET Naming Guidelinesdotnet, MicrosoftREADME.md:151-155
SwiftAPI Design Guidelines, Swift, Swift style guide, Swift Style Guide, Metova's Swift style guide, Xmartlabs Swift Style GuideSwift.org, GitHub, Kodeco, LinkedIn, Metova, XmartlabsREADME.md:222-229

Subbagian .NET tidak memuat panduan gaya penulisan biasa. Ketiga tautannya adalah spesifikasi API lintas implementasi, panduan penulisan kode aman, dan konvensi penamaan pustaka (README.md:151-155). Swift sebaliknya memuat 6 tautan dan merupakan subbagian terbesar kedua di halaman ini, dengan empat di antaranya berupa panduan gaya milik organisasi pemakai Swift (README.md:222-229).

⚠️ Metova's Swift style guide diberi keterangan archived, deprecated 2022 (README.md:228). Jangan jadikan rujukan untuk kode baru.

Bahasa sistem lain

BahasaPanduanSumberRujukan
AdaAda Programming/Coding standardsbuku panduan komunitasREADME.md:16-18
DThe D Styledlang.orgREADME.md:56-58
DelphiDelphi's Object Pascal Style GuideEmbarcaderoREADME.md:64-66
FortranFortran Best Practicesfortran-lang.orgREADME.md:90-92
NimNim Style Guidenim-lang.org, NEP-1README.md:157-159
PascalCoding style, GNU Pascal Coding StandardsFree Pascal, GNUREADME.md:167-170
Visual BasicVisual Basic Concepts, Visual Basic/Coding StandardsMicrosoft, buku panduan komunitasREADME.md:237-240

Tujuh subbagian ini berisi 1 sampai 2 tautan saja, sehingga tidak ada pilihan ganda yang perlu ditimbang (README.md:16-18, README.md:157-159, README.md:237-240). Nim menyebut panduannya sebagai RFC bernomor NEP-1 (README.md:157-159). Delphi dan Pascal sama-sama menunjuk ke panduan Object Pascal, satu dari Embarcadero dan dua dari Free Pascal serta GNU (README.md:64-66, README.md:167-170).

Batas dengan halaman lain

Beberapa pedoman yang secara teknis menyangkut bahasa sistem justru diletakkan di bagian Platforms, sehingga tidak diulang di sini. GNU coding standards mengatur kode dan dokumentasi perangkat lunak GNU (README.md:302-304), dan JavaEE Specification berupa spesifikasi resmi Java EE (README.md:306-308); keduanya dibahas di Platforms dan Desain API. Bahasa web dan skrip dinamis seperti JavaScript, TypeScript, PHP, Ruby, dan Python ada di Bahasa Web dan Skrip Dinamis, sedangkan Clojure, Haskell, F#, JSON, dan XML ada di Bahasa Fungsional dan Format Data.