Lompat ke konten
dokumentasi.id
Commit a27b09d
v2
Star11 rb

Kamu membaca versi lama. Halaman ini hanya bisa dibaca.

3.3

Bahasa Fungsional dan Format Data

README.md menaruh semua pedoman bahasa dan format data di bawah satu subjudul, ## Programming Languages (README.md:14-244). Di bawah judul itu ada 43 subbagian ### yang diurutkan alfabetis, dari Ada sampai XML (README.md:14-244). Urutan tersebut bukan pembagian paradigma: pedoman kontribusi hanya meminta kategori dan tautan tersusun alfabetis (contributing.md:22-26). Karena itu ### JSON duduk di antara ### JavaScript dan ### Julia, dan ### Markdown di antara ### Lua dan ### .NET (README.md:129-131, README.md:145-149).

Daftar Contents di awal README hanya memuat lima judul tingkat dua (README.md:5-12). Tidak ada tautan jangkar per bahasa, sehingga pembaca yang mencari Haskell atau XML harus menggulir bagian itu langsung.

Setiap entri memakai bentuk [Title](url) - Description. (contributing.md:22-26). Deskripsi boleh dilepas bila judul entri sudah menjelaskan isinya (contributing.md:22-26), jadi entri pendek tanpa keterangan tetap sah.

Cakupan: tujuh bahasa dan tiga format data

Sepuluh subbagian masuk halaman ini: Clojure, Elixir, Erlang, Haskell, JSON, Julia, Markdown, R, Solidity, dan XML (README.md:14-244). Tiga di antaranya adalah format data, bukan bahasa, dan README memperlakukannya sebagai kawan sejajar bahasa lain (README.md:129-131, README.md:145-149, README.md:242-244).

Judul halaman ini mengikuti rencana dokumentasi. README sendiri tidak memberi label paradigma pada subbagiannya (README.md:14-244), sehingga R, Julia, dan Solidity tampil di sini karena pedomannya bersifat khusus domain, bukan karena murni fungsional.

graph TD
  PL["## Programming Languages, 43 subbagian (README.md:14-244)"] --> L["7 bahasa di halaman ini"]
  PL --> F["3 format data di halaman ini"]
  PL --> O["33 subbagian lain"]
  O --> O1["Bahasa Sistem dan Enterprise"]
  O --> O2["Bahasa Web dan Skrip Dinamis"]
  L --> L1["Clojure (README.md:47-49)"]
  L --> L2["Elixir (README.md:68-70)"]
  L --> L3["Erlang (README.md:81-84)"]
  L --> L4["Haskell (README.md:105-107)"]
  L --> L5["Julia (README.md:133-135)"]
  L --> L6["R (README.md:190-193)"]
  L --> L7["Solidity (README.md:217-220)"]
  F --> F1["JSON (README.md:129-131)"]
  F --> F2["Markdown (README.md:145-149)"]
  F --> F3["XML (README.md:242-244)"]
  style PL fill:#f59e0b,color:#000
  style L fill:#2d7d46,color:#fff
  style F fill:#8b5cf6,color:#fff
  style O1 fill:#336791,color:#fff
  style O2 fill:#336791,color:#fff
  %% fig: Pembagian 43 subbagian Programming Languages
  %% desc: Halaman ini memuat tujuh subbagian bahasa dan tiga format data; 33 subbagian sisanya dibahas di halaman 4.1 dan 4.2.
Fig. 1: Pembagian 43 subbagian Programming LanguagesHalaman ini memuat tujuh subbagian bahasa dan tiga format data; 33 subbagian sisanya dibahas di halaman 4.1 dan 4.2.

Kesepuluh subbagian itu memuat 15 tautan: enam subbagian berisi satu tautan, Erlang dan R masing-masing dua, Solidity dua, dan Markdown tiga (README.md:81-84, README.md:145-149, README.md:190-193, README.md:217-220).

SubbagianRujukanEntriPedoman yang didaftarkan
ClojureREADME.md:47-491The Clojure Style Guide
ElixirREADME.md:68-701Elixir Styleguide
ErlangREADME.md:81-842Secure Coding Guidelines, Erlang Coding Guidelines
HaskellREADME.md:105-1071Haskell Programming guidelines
JSONREADME.md:129-1311Google JSON Style Guide
JuliaREADME.md:133-1351Blue Style
MarkdownREADME.md:145-1493Google Markdown Style Guide, Markdown Style Guide, GitLab Markdown Style Guide
RREADME.md:190-1932Google's R Style Guide, The tidyverse style guide
SolidityREADME.md:217-2202Solidity Style Guide, Solcurity Standard
XMLREADME.md:242-2441Google XML Document Format Style Guide

Satu tautan, satu rujukan

Enam subbagian hanya memuat satu tautan. Clojure menunjuk The Clojure Style Guide, yang menyebut dirinya pedoman gaya komunitas untuk bahasa Clojure (README.md:47-49). Elixir menunjuk Elixir Styleguide, juga pedoman komunitas (README.md:68-70). Haskell menunjuk Haskell Programming guidelines yang memuat best practice pemrograman Haskell (README.md:105-107). Julia menunjuk Blue Style, pedoman gaya untuk paket Julia (README.md:133-135).

JSON dan XML juga hanya punya satu tautan, yaitu pedoman terbitan Google untuk masing-masing format: Google JSON Style Guide (README.md:129-131) dan Google XML Document Format Style Guide (README.md:242-244). Keduanya mengatur format data, bukan bahasa.

Di dalam subbagian ini tidak ada pilihan. Pedoman yang tercantum langsung menjadi rujukan tunggal pembaca.

Dua tautan dalam satu subbagian

Erlang, R, dan Solidity masing-masing memuat dua tautan. Pasangan itu tidak selalu setara.

SubbagianEntri pertamaEntri keduaSumbu pembedaRujukan
ErlangSecure Coding GuidelinesErlang Coding Guidelineskeamanan vs gaya penulisanREADME.md:81-84
RGoogle's R Style GuideThe tidyverse style guidedua varian gayaREADME.md:190-193
SoliditySolidity Style GuideSolcurity Standardgaya kontrak pintar vs checklist keamananREADME.md:217-220

Pada Erlang, tautan pertama menekankan keamanan: Secure Coding Guidelines membahas cara menulis kode Erlang yang aman sekaligus pitfall yang harus dihindari (README.md:81-84). Tautan kedua, Erlang Coding Guidelines, tidak diberi deskripsi (README.md:81-84).

Pada Solidity pembagiannya sejenis: Solidity Style Guide mengatur gaya penulisan kontrak pintar, sedangkan Solcurity Standard berupa checklist keamanan untuk kontrak (README.md:217-220).

R berbeda. Kedua tautannya adalah varian gaya: Google's R Style Guide memuat konvensi gaya R, dan The tidyverse style guide mengatur kode R di ekosistem tidyverse (README.md:190-193). Memilih salah satu di sini berarti memilih gaya, bukan memilih topik.

⚠️ Entri Erlang Coding Guidelines tampil tanpa deskripsi (README.md:81-84). Pedoman kontribusi mengizinkan itu bila judulnya sudah cukup jelas (contributing.md:22-26), jadi halaman ini tidak mengarang ringkasan untuknya.

Format data

Tiga subbagian format data semuanya mencantumkan pedoman terbitan Google: JSON (README.md:129-131), Markdown (README.md:145-149), dan XML (README.md:242-244). Markdown menambahkan dua tautan lain, yaitu Markdown Style Guide yang berisi panduan praktis menulis Markdown yang mudah dibaca, dan GitLab Markdown Style Guide untuk about.GitLab.com (README.md:145-149).

FormatRujukanEntriPenerbitBerkas berformat sama di repository
JSONREADME.md:129-1311Googlepackage.json (package.json:2-7), package-lock.json (package-lock.json:1-5)
MarkdownREADME.md:145-1493Google, cirosantilli.com, GitLabREADME.md (README.md:1), contributing.md (contributing.md:1), code-of-conduct.md (code-of-conduct.md:1)
XMLREADME.md:242-2441Googletidak ada
graph LR
  MD["Markdown (README.md:145-149)"] --> M1["README.md"]
  MD --> M2["contributing.md"]
  MD --> M3["code-of-conduct.md"]
  M1 --> LINT["awesome-lint lewat test.js"]
  JS["JSON (README.md:129-131)"] --> J1["package.json"]
  JS --> J2["package-lock.json"]
  XL["XML (README.md:242-244)"] --> X1["tidak ada berkas XML"]
  style MD fill:#2d7d46,color:#fff
  style JS fill:#2d7d46,color:#fff
  style XL fill:#f59e0b,color:#000
  style LINT fill:#8b5cf6,color:#fff
  style X1 fill:#dc2626,color:#fff
  %% fig: Format data dan berkas repository yang memakainya
  %% desc: Markdown dan JSON punya berkas nyata di repository ini, sedangkan XML hanya berhenti sebagai pedoman tanpa berkas pendamping.
Fig. 2: Format data dan berkas repository yang memakainyaMarkdown dan JSON punya berkas nyata di repository ini, sedangkan XML hanya berhenti sebagai pedoman tanpa berkas pendamping.

Repository ini memakai dua dari tiga format tersebut. README.md, contributing.md, dan code-of-conduct.md adalah berkas Markdown (README.md:1, contributing.md:1, code-of-conduct.md:1), sedangkan package.json dan package-lock.json adalah berkas JSON (package.json:2-7, package-lock.json:1-5). Tidak ada berkas XML di akar repository, jadi pedoman XML tidak punya sasaran langsung di sini.

Pemeriksaan Markdown berjalan lewat npm test: skrip test memanggil awesome-lint (package.json:2-7), dan test.js menjalankan awesomeLint.report() (test.js:1-3). Versi yang dipatok adalah v2.3.0 (package.json:2-7).

⚠️ Tiga pedoman Markdown punya cakupan berbeda: tautan Google menyasar proyek yang berasal dari Google, tautan GitLab untuk about.GitLab.com, dan Markdown Style Guide bersifat umum (README.md:145-149). Pilih berdasarkan cakupan, bukan urutan abjad.

⚠️ Jangan menebak format dari ekstensi URL. Pedoman JSON tertaut ke berkas jsoncstyleguide.xml, sedangkan pedoman XML tertaut ke halaman xmlstyle.html (README.md:129-131, README.md:242-244).

Subbagian serumpun yang tidak dibahas

Empat subbagian di daftar yang sama juga berisi bahasa fungsional: Common Lisp (README.md:51-54), Elm (README.md:72-74), F# (README.md:86-88), dan Racket (README.md:195-197). Halaman ini tidak membahasnya, dan tautannya tidak digandakan di sini. Pedoman bahasa lain dibahas di Bahasa Sistem dan Enterprise dan Bahasa Web dan Skrip Dinamis.