3.2
Bahasa Web dan Skrip Dinamis
Delapan blok bahasa skrip dinamis di README.md masuk cakupan halaman ini: JavaScript, TypeScript, PHP, Python, Ruby, Perl, Lua, dan R. Kedelapannya berada di bawah ## Programming Languages dan memakai satu bentuk entri, yaitu [Judul](url) - Deskripsi. dengan deskripsi berhuruf kalimat dan diakhiri titik contributing.md:22-281. Total entri di kedelapan blok itu 28.
Blok dan jumlah entri
Tabel berikut memakai rentang baris entri, bukan baris heading, agar setiap baris bisa diperiksa langsung di README.md.
| Blok | Rentang entri | Jumlah entri | Entri pertama |
|---|---|---|---|
| JavaScript | README.md:118-1272 | 10 | AngularJS Style Guide |
| TypeScript | README.md:233-2353 | 3 | Google TypeScript Style Guide |
| PHP | README.md:180-1824 | 3 | PHP FIG |
| Python | README.md:186-1885 | 3 | Style Guide for Python Code |
| Ruby | README.md:201-2036 | 3 | The Ruby Style Guide |
| Perl | README.md:174-1767 | 3 | Perl best practices v4 |
| Lua | README.md:1438 | 1 | Lua Style Guide |
| R | README.md:192-1939 | 2 | Google's R Style Guide |
Blok JavaScript adalah yang terbesar di halaman ini. Isinya bercampur pedoman organisasi (Google JavaScript Style Guide, Airbnb JavaScript Style Guide), pedoman proyek (jQuery Core Style Guide), satu ringkasan tautan (JavaScript Style Guides And Beautifiers), dan satu adaptasi buku (JavaScript Clean Code) README.md:118-1272. Satu entri menyasar framework, yaitu AngularJS Style Guide, bukan JavaScript secara umum. Entri terakhir, Mozilla Coding Style Guide for JavaScript, tidak memuat deskripsi.
Urutan blok JavaScript juga tidak abjad. Airbnb JavaScript Style Guide diletakkan setelah Google JavaScript Style Guide, dan Code Conventions for the JavaScript muncul setelah JavaScript Style Guide and Coding Conventions. Padahal panduan kontribusi meminta tautan dan kategori diurutkan menurut abjad contributing.md:22-281.
⚠️ Menambah entri ke blok JavaScript menuntut keputusan sadar. Mengikuti abjad berarti menyisipkan entri di tengah blok, sedangkan menyalin pola yang ada sekarang berarti menambah entri tanpa deskripsi seperti entri Mozilla. Pilih salah satu dan jelaskan alasannya di pull request.
TypeScript, PHP, dan Python
Blok TypeScript memuat tiga entri README.md:233-2353. Google TypeScript Style Guide adalah pedoman yang dipakai di Google. Dua entri lain bukan pedoman resmi: TypeScript deep dive - Style Guide menyebut dirinya sebagai pedoman tidak resmi, dan TypeScript Lang - Do's and Don'ts berisi saran dari organisasi TypeScript.
Blok PHP juga memuat tiga entri README.md:180-1824. PHP FIG menunjuk ke PSR, kumpulan rekomendasi standar PHP. PHP The Right Way berbentuk referensi cepat, sedangkan Clean Code PHP mengadaptasi prinsip Clean Code untuk PHP. Pedoman PHP tingkat framework tidak ada di blok ini; Symfony Coding Standards berada di blok Frameworks README.md:349-35410.
Blok Python memuat tiga entri README.md:186-1885. Style Guide for Python Code menunjuk PEP 8 dan disebut sebagai pedoman resmi. Google Python Style Guide dan The Hitchhiker's Guide to Python melengkapinya dengan praktik yang lebih luas. Tidak ada tool Python di daftar Tools README.md:365-37611.
Ruby, Perl, Lua, dan R
Blok Ruby memuat tiga entri README.md:201-2036, tetapi dua di antaranya berjudul persis sama: Ruby Style Guide. Keduanya hanya bisa dibedakan lewat URL, yaitu airbnb/ruby dan rubocop/ruby-style-guide. Entri ketiga, The Ruby Style Guide, menunjuk rubystyle.guide. RuboCop di daftar Tools disebut sebagai analyzer yang berdasarkan community Ruby style guide README.md:365-37611.
Blok Perl memuat tiga entri README.md:174-1767: slide Perl best practices v4, daftar praktik yang sebaiknya dihindari lewat Perl Elements to Avoid, dan halaman manual perlstyle. Lua hanya punya satu entri, Lua Style Guide README.md:1438. R punya dua entri, Google's R Style Guide dan The tidyverse style guide README.md:192-1939.
Pedoman dan pemeriksa otomatis
Diagram berikut memetakan setiap blok ke pemeriksa yang benar-benar tercantum di daftar Tools README.md:365-37611. Hanya JavaScript, PHP, Ruby, dan Shell yang punya pemeriksa di daftar itu. TypeScript dan Python tidak punya, sehingga pedoman kedua bahasa itu belum bisa ditautkan ke tool di repository ini.
graph TD
JS["JavaScript README 118-127"] --> ESLint["ESLint"]
JS --> Standard["JavaScript Standard Style"]
PHP["PHP README 180-182"] --> PCS["PHP_CodeSniffer"]
PHP --> Fixer["PHP Coding Standards Fixer"]
PHP --> Pint["Laravel Pint"]
RB["Ruby README 201-203"] --> RuboCop["RuboCop"]
SHR["Shell README 248-259"] --> ShellCheck["ShellCheck"]
TS["TypeScript README 233-235"] -.-> TSGap["no checker in Tools list"]
PY["Python README 186-188"] -.-> PYGap["no checker in Tools list"]
style ESLint fill:#2d7d46,color:#fff
style Standard fill:#2d7d46,color:#fff
style PCS fill:#2d7d46,color:#fff
style Fixer fill:#2d7d46,color:#fff
style Pint fill:#2d7d46,color:#fff
style RuboCop fill:#2d7d46,color:#fff
style ShellCheck fill:#2d7d46,color:#fff
style TSGap fill:#f59e0b,color:#000
style PYGap fill:#f59e0b,color:#000
%% fig: Pemeriksa otomatis per blok bahasa dinamis
%% desc: Setiap blok bahasa dipetakan ke tool yang tercantum di daftar Tools README; TypeScript dan Python tidak punya pasangan.PHP mendapat tiga tool sekaligus, yaitu PHP_CodeSniffer, PHP Coding Standards Fixer, dan Laravel Pint. JavaScript mendapat dua, yaitu ESLint dan JavaScript Standard Style README.md:365-37611. Nama node di diagram adalah judul entri persis seperti yang tertulis di daftar Tools.
Batas halaman ini
Beberapa bahasa skrip dinamis tidak berada di ## Programming Languages. Tabel berikut mencatat lokasinya di README.md dan halaman yang membahasnya.
| Lokasi di README | Entri | Halaman |
|---|---|---|
## Development Environment | Shell, PowerShell (README.md:248-25912) | Development Environment |
## Platforms | Node.js (README.md:326-32913) | Platforms dan Desain API |
### Frontend Development | CoffeeScript (README.md:29414) | Platforms dan Desain API |
Pedoman tingkat framework seperti Symfony Coding Standards, Django Coding Style, Vue Style Guide, dan Angular Style Guide dibahas di Frameworks dan Content Management System README.md:349-35410. Daftar tool beserta konfigurasinya dibahas di Tools dan Linter, sedangkan urutan pemanggilannya di Pipeline Lint dan CI.