Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Biome is for JavaScripters
Search
unvalley
December 08, 2023
5
950
Biome is for JavaScripters
A Slide for We Are JavaScripters! @43rd
unvalley
December 08, 2023
Tweet
Share
More Decks by unvalley
See All by unvalley
Thoughts and experiences on Rust and TypeScript
unvalley
2
240
Exploring Type-Informed Lint Rules in Rust based TypeScript Linters
unvalley
6
9.3k
Behind VS Code Extensions for JavaScript / TypeScript Linting and Formatting
unvalley
7
3.3k
Behind Biome
unvalley
12
3.2k
Better Unit Testing
unvalley
2
470
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
19
2.3k
A better future with KSS
kneath
238
17k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Producing Creativity
orderedlist
PRO
343
39k
Fireside Chat
paigeccino
34
3.1k
It's Worth the Effort
3n
183
28k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Making the Leap to Tech Lead
cromwellryan
133
9k
What's in a price? How to price your products and services
michaelherold
244
12k
The Language of Interfaces
destraynor
155
24k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Facilitating Awesome Meetings
lara
50
6.2k
Transcript
@unvalley_ Biome is for JavaScripters 1
About me - unvalley - A core contributor of Biome
- TypeScript / Rust / Scala @unvalley_ unvalley 2
Biome - One toolchain for your web project - パフォーマンスに優れたRust製のWebツールチェーン
- Analyzer / Linter / Formatterを提供(CLIとLSPで利用可能) - 採用事例が増えている Vercel (v0.dev)・Sentry (javascript-sdk)・ant-design, etc - Prettierと約97%の互換性(対象はJS, TS, JSX のフォーマット) - 181のLintルールを実装(ESLint, typescript-eslintなどからの移植や固有のもの) 3 Rome Biome
技術的な哲学 - エラーに対して、可能な限り修正提案・ヒントを示す - エラーメッセージを具体的にする - 専門用語の利用を減らす - コマンドやフラグの命名には冗長性をもたせる -
包括的な用語を利用する(差別的な用語を使わない) など他 https://biomejs.dev/internals/philosophy/ 4
Biomeを試す 5 - npm, yarn, pnpm, deno, bunで利用できます - Homebrewでもインストール可能:brew
install biome - 業務で使ってるプロジェクトやOSSなどで試してみてください - Docs : https://biomejs.dev - Playground : https://biomejs.dev/playground npx @biomejs/biome check --apply . // format and lint with npx
最近のアップデート - 🌎:ドキュメントの翻訳(・・) - 🤝:スポンサーの獲得(時雨堂・KANAME・個人) - 🎆:Prettier Challenge の達成 -
⚙:v1.4.1のリリース - 🌟:5.4k スター - 🎨:ウェブサイトのリブランディング 6
最近のアップデート - 🌎:ドキュメントの翻訳(・・) - 🤝:スポンサーの獲得(時雨堂・KANAME・個人) - 🎆:Prettier Challenge の達成 -
⚙:v1.4.1のリリース - 🌟:5.4k スター - 🎨:ウェブサイトのリブランディング 7
日本コミュニティの貢献 8 日本コミュニティはBiomeの普及を信じてくれている。 過去数週間で彼らはステップアップし、我々はコードと寄付による多くの貢 献を受けた。ありがとう!
最近のアップデート - 🌎:ドキュメントの翻訳(・・) - 🤝:スポンサーの獲得(時雨堂・KANAME・個人) - 🎆:Prettier Challenge の達成 -
⚙:v1.4.1のリリース - 🌟:5.4k スター - 🎨:ウェブサイトのリブランディング 9
Prettier Challenge : Write a pretty printer in Rust 10
Vjeux(Co creator of Prettier)・Guillermo Rauch(Vercel CEO)・ WASIX・napi-rs によるBountyプログラム。
Prettier Challengeで得られたもの - Bounty - 新規コントリビュータ - 多くのコントリビュータがPrettier Challengeに参加した -
@faultyserver, @TaKO8Ki がメンバーになった - Formatterのオプションに対する方向性 - https://biomejs.dev/formatter/option-philosophy/ - Prettierとは異なるフォーマットの判断(Divergence) - https://biomejs.dev/formatter/differences-with-prettier/ 11
Biomeの開発 12
Rust Part 13 - CSTによるError ResilientなParser実装 - RustによるAnalyzer / Linter
/ Formatterの実装 - CLI / VS Code Extension - WASMによるWeb Playground 他いろいろ
Web Part 14 - 対応言語(JavaScript / TypeScript / JSX /
JSON / CSS)の仕様 - 対応言語の既存Lint実装 - (ESLint / typescript-eslint, eslint-plugin-jsx-a11y etc) - 対応言語の既存Formatter実装 (Prettier) 他いろいろ
Lint Rule実装の雰囲気:noSvgWithoutTitle 15
自分の最初の貢献(2022-11-03) Rust初心者だったけど、Formatterの修正タスクをやってみた ここから関わり始めた 16
開発のためのドキュメント 17 - CONTRIBUTING.md : https://github.com/biomejs/biome/blob/main/CONTRIBUTING.md - 開発に関する情報のハブ - @ematipicoによるParserとFormatterの解説動画のリンクなどもあります
- Analyzer and Linter : https://docs.rs/biome_analyze/latest/biome_analyze/ - Parser : https://docs.rs/biome_parser/latest/biome_parser/ - JS Formatter: https://docs.rs/biome_js_formatter/latest/biome_js_formatter/
We seek contributors:参加方法はいろいろ 18 - コードコントリビューション(機能追加・バグ修正等)をする - ウェブサイトのデザインアイデアを投げる・実装する - GitHub
DiscussionやDiscordでアイデアを投げる・議論する・解決する - 他の利用者の質問に回答する - スポンサーになる Good First Issueがなくても、タスクは作れます(特にLintルール)。 興味があれば、気軽にDiscordやGitHub Discussionなどで、お声がけください。 自分ももっとBiomeの内部でも他のOSSでも、色々と幅を広げていきたい。