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
940
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
230
Exploring Type-Informed Lint Rules in Rust based TypeScript Linters
unvalley
6
9.2k
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
460
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
244
12k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.6k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
It's Worth the Effort
3n
183
28k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Automating Front-end Workflow
addyosmani
1366
200k
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でも、色々と幅を広げていきたい。