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
1
950
命名をリントする
2024/12/15 Kyoto.go #56 で発表した資料です。
chiroruxx
December 15, 2024
Tweet
Share
More Decks by chiroruxx
See All by chiroruxx
Laravelのパッケージ全部紹介する
chiroruxx
0
6
Gopher のための「自由な話し合い」ワークショップ
chiroruxx
0
18
PHPをGoで動かす
chiroruxx
0
70
Goを使ってTDDを体験しよう!
chiroruxx
1
800
今ならできる!PhpStormプラグイン開発
chiroruxx
0
70
Go Connectへの想い
chiroruxx
0
200
eBPF with PHPをさわる
chiroruxx
0
150
sl完全に理解したつもり
chiroruxx
0
140
良い命名かを調べるリンターを作った + α
chiroruxx
0
140
Other Decks in Programming
See All in Programming
Fluid Templating in TYPO3 14
s2b
0
110
GISエンジニアから見たLINKSデータ
nokonoko1203
0
190
Fragmented Architectures
denyspoltorak
0
140
dchart: charts from deck markup
ajstarks
3
970
ゆくKotlin くるRust
exoego
1
210
CSC307 Lecture 07
javiergs
PRO
0
520
Grafana:建立系統全知視角的捷徑
blueswen
0
310
rack-attack gemによるリクエスト制限の失敗と学び
pndcat
0
260
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
5.8k
CSC307 Lecture 05
javiergs
PRO
0
490
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
170
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.3k
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
84
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
750
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
110
Technical Leadership for Architectural Decision Making
baasie
1
220
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
130
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
The SEO identity crisis: Don't let AI make you average
varn
0
57
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
100
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.6k
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 だが、開発者が定義してない 細かく見ていく必要がある