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
命名をリントする
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
chiroruxx
December 15, 2024
Programming
1k
1
Share
命名をリントする
2024/12/15 Kyoto.go #56 で発表した資料です。
chiroruxx
December 15, 2024
More Decks by chiroruxx
See All by chiroruxx
初心者エンジニアから中級者エンジニアになるためにオススメの1冊
chiroruxx
0
120
Laravelのパッケージ全部紹介する
chiroruxx
2
130
Gopher のための「自由な話し合い」ワークショップ
chiroruxx
0
40
PHPをGoで動かす
chiroruxx
0
91
Goを使ってTDDを体験しよう!
chiroruxx
1
1k
今ならできる!PhpStormプラグイン開発
chiroruxx
0
98
Go Connectへの想い
chiroruxx
0
210
eBPF with PHPをさわる
chiroruxx
0
180
sl完全に理解したつもり
chiroruxx
0
170
Other Decks in Programming
See All in Programming
AI時代だからこそ「Bloc」を採用する価値があるのかもしれない
takuroabe
0
240
分析エージェント精度向上における データアナリストの役割
oura_shoya
0
120
ReactとSvelteのその先、Ripple-TS / Beyond React and Svelte: Ripple-TS
ssssota
3
990
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
130
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
250
AIとRubyの静的型付け
ukin0k0
0
140
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
1
360
誰も頼んでない機能を出荷した話
zekutax
0
140
サーバーレスで作る、動画データ管理基盤
oyasumipants
0
280
TSKaigi 2026 TypeScriptバックエンドのオブザーバビリティ戦略 — Datadog × NestJSの実践
taiseiyamamotoan
1
200
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
320
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
9
2.7k
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
130
Code Review Best Practice
trishagee
74
20k
Designing for Timeless Needs
cassininazir
1
230
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
130
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
How STYLIGHT went responsive
nonsquared
100
6.1k
sira's awesome portfolio website redesign presentation
elsirapls
0
260
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
270
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
360
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
300
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
44k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.2k
Transcript
命名をリントする 2024/12/15 Kyoto.go #56
自己紹介 ちひろ 株式会社モリサワ X: @chiroruxxxx
1年をカンファレンスに 例えるなら
年末のLTは
懇親会LTのような ものですよね!?!?
ということで 明日からすぐに役に立たない! 身にならない話をします!
本題
命名をリントする 2024/12/15 Kyoto.go #56
良い命名とは 観点は色々とある 時間をかけ、一生懸命考えた命名は良い命名かもしれない 人生の中で、一番命名を気にしているタイミングがどこだろ う
良い命名とは 子どもの名付け
子どもの 名付け 子どもの名づけも、色々な観点がある 言葉の意味 子どもがどうなってほしいか よびやすさ・語感
周りから浮かないか 画数
画数占い 赤ちゃん命名ガイド
つまり
良い命名とは 良い画数の命名 かもしれない?
命名と画数 画数の良い命名を変数にすれば その変数が起因のバグが起こらない かもしれない?
われわれは 画数をチェックする 必要がある! ということでつくりました
作ったよ https://github.com/chiroruxx/lucky-lint-go go vet で動くよ 以下の命名に対応
変数・定数の宣言・代入 型 フィールド名 関数名 パッケージのエイリアス名
ドメイン部分 「ローマ字の姓名判断・商品名画数」を参考に https://meimeimaker.com/articles/strokes-alphabet.php
ドメイン部分 「ローマ字の姓名判断・商品名画数」を参考に https://meimeimaker.com/articles/strokes-alphabet.php
こんなかんじ
まとめ 良い画数の名前を選ぼう! CIでリンターをまわしてチェックすれば安全だね!
その他細かい話 時間があれば
予約語 予約語の命名は開発者がどうにもできないので除外 変数名の _ (アンダーバー) 関数名の
main init ドットインポート
慣用的な名前 変数名の ok, err メソッドのレシーバ名 1文字にすることが多いが、1文字はたいてい良い画数ではない
見るべき ノード asciicheck では、ast.Ident のみを対象としている ast.Ident を対象とすると、自分の定義していない命名も 見てしまう
例えば Printf は ast.Ident だが、開発者が定義してない 細かく見ていく必要がある