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-2441). Di bawah judul itu ada 43 subbagian ### yang diurutkan alfabetis, dari Ada sampai XML (README.md:14-2441). 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-125). 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-262). Deskripsi boleh dilepas bila judul entri sudah menjelaskan isinya (contributing.md:22-262), 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-2441). Tiga di antaranya adalah format data, bukan bahasa, dan README memperlakukannya sebagai kawan sejajar bahasa lain (README.md:129-1313, README.md:145-1494, README.md:242-2446).
Judul halaman ini mengikuti rencana dokumentasi. README sendiri tidak memberi label paradigma pada subbagiannya (README.md:14-2441), 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.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-847, README.md:145-1494, README.md:190-1938, README.md:217-2209).
| Subbagian | Rujukan | Entri | Pedoman yang didaftarkan |
|---|---|---|---|
| Clojure | README.md:47-4910 | 1 | The Clojure Style Guide |
| Elixir | README.md:68-7011 | 1 | Elixir Styleguide |
| Erlang | README.md:81-847 | 2 | Secure Coding Guidelines, Erlang Coding Guidelines |
| Haskell | README.md:105-10712 | 1 | Haskell Programming guidelines |
| JSON | README.md:129-1313 | 1 | Google JSON Style Guide |
| Julia | README.md:133-13513 | 1 | Blue Style |
| Markdown | README.md:145-1494 | 3 | Google Markdown Style Guide, Markdown Style Guide, GitLab Markdown Style Guide |
| R | README.md:190-1938 | 2 | Google's R Style Guide, The tidyverse style guide |
| Solidity | README.md:217-2209 | 2 | Solidity Style Guide, Solcurity Standard |
| XML | README.md:242-2446 | 1 | Google 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-4910). Elixir menunjuk Elixir Styleguide, juga pedoman komunitas (README.md:68-7011). Haskell menunjuk Haskell Programming guidelines yang memuat best practice pemrograman Haskell (README.md:105-10712). Julia menunjuk Blue Style, pedoman gaya untuk paket Julia (README.md:133-13513).
JSON dan XML juga hanya punya satu tautan, yaitu pedoman terbitan Google untuk masing-masing format: Google JSON Style Guide (README.md:129-1313) dan Google XML Document Format Style Guide (README.md:242-2446). 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.
| Subbagian | Entri pertama | Entri kedua | Sumbu pembeda | Rujukan |
|---|---|---|---|---|
| Erlang | Secure Coding Guidelines | Erlang Coding Guidelines | keamanan vs gaya penulisan | README.md:81-847 |
| R | Google's R Style Guide | The tidyverse style guide | dua varian gaya | README.md:190-1938 |
| Solidity | Solidity Style Guide | Solcurity Standard | gaya kontrak pintar vs checklist keamanan | README.md:217-2209 |
Pada Erlang, tautan pertama menekankan keamanan: Secure Coding Guidelines membahas cara menulis kode Erlang yang aman sekaligus pitfall yang harus dihindari (README.md:81-847). Tautan kedua, Erlang Coding Guidelines, tidak diberi deskripsi (README.md:81-847).
Pada Solidity pembagiannya sejenis: Solidity Style Guide mengatur gaya penulisan kontrak pintar, sedangkan Solcurity Standard berupa checklist keamanan untuk kontrak (README.md:217-2209).
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-1938). Memilih salah satu di sini berarti memilih gaya, bukan memilih topik.
⚠️ Entri Erlang Coding Guidelines tampil tanpa deskripsi (README.md:81-847). Pedoman kontribusi mengizinkan itu bila judulnya sudah cukup jelas (contributing.md:22-262), jadi halaman ini tidak mengarang ringkasan untuknya.
Format data
Tiga subbagian format data semuanya mencantumkan pedoman terbitan Google: JSON (README.md:129-1313), Markdown (README.md:145-1494), dan XML (README.md:242-2446). 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-1494).
| Format | Rujukan | Entri | Penerbit | Berkas berformat sama di repository |
|---|---|---|---|---|
| JSON | README.md:129-1313 | 1 | package.json (package.json:2-714), package-lock.json (package-lock.json:1-515) | |
| Markdown | README.md:145-1494 | 3 | Google, cirosantilli.com, GitLab | README.md (README.md:116), contributing.md (contributing.md:117), code-of-conduct.md (code-of-conduct.md:118) |
| XML | README.md:242-2446 | 1 | tidak 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.Repository ini memakai dua dari tiga format tersebut. README.md, contributing.md, dan code-of-conduct.md adalah berkas Markdown (README.md:116, contributing.md:117, 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-714), dan test.js menjalankan awesomeLint.report() (test.js:1-319). Versi yang dipatok adalah v2.3.0 (package.json:2-714).
⚠️ 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-1494). Pilih berdasarkan cakupan, bukan urutan abjad.
⚠️ Jangan menebak format dari ekstensi URL. Pedoman JSON tertaut ke berkas
jsoncstyleguide.xml, sedangkan pedoman XML tertaut ke halamanxmlstyle.html(README.md:129-1313, README.md:242-2446).
Subbagian serumpun yang tidak dibahas
Empat subbagian di daftar yang sama juga berisi bahasa fungsional: Common Lisp (README.md:51-5420), Elm (README.md:72-7421), F# (README.md:86-8822), dan Racket (README.md:195-19723). 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.