Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
読みやすいコードを書こう
Search
Yutorin
May 16, 2022
Programming
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
読みやすいコードを書こう
社内のLT会で発表したスライドです。
Yutorin
May 16, 2022
More Decks by Yutorin
See All by Yutorin
新卒でサービス立ち上げから Hasuraを使って3年経った振り返り
yutorin
0
760
Other Decks in Programming
See All in Programming
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
1
150
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
110
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
240
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
1.3k
AIエージェント時代のコードレビューを設計する
nogu66
6
2.7k
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
180
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
330
setup-vp GitLab対応の裏側
naokihaba
0
100
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
130
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1k
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
330
速習iPhone Duo対応
yuukiw00w
1
520
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
700
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
280
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
A Modern Web Designer's Workflow
chriscoyier
699
190k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Tell your own story through comics
letsgokoyo
1
1.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
540
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
360
The Spectacular Lies of Maps
axbom
PRO
1
990
Transcript
読みやすいコードを書こう 2022/05/13 - Yutorin
2 自己紹介 Yutorin 日本語が下手です
・読みにくいコードがあると、 読みたくないし時間もかかる! 3 読みやすいコード書いてる? reference: https://qiita.com/shimataro999/items/ef6cd838d56f1fe87015
・レビューしたくなくなる ・治安が悪くなる ・ = 読みにくいコードが再生産される ・なにより次の日自分で読めない! 4 自分が読めればええやん?
いくつか抜粋して紹介します ・何が良いコードなのか? ・良くなるコードの書き方 ・コメントについて 5 そのために古事記を読め
・良いコードは1行で凄いことをすることじゃなくて、 理解しやすいかどうか ・コードは他の人が最短時間で理解出来るようにする ・そのためにコメントをつけることも大事 ・常に「このコードは理解しやすいだろうか?」と頭の中の誰かに問い 続ける 6 理解しやすいコード
・dataとかsizeとか曖昧な単語ではなく、明確で正確な単語を使おう ・data: property, description, result ・size: height, bytes, weight ・類語辞典を使おう
・get 類義語 ・get synonyms とか検索すると色々でてくる 7 名前に情報を詰め込もう
・変数に入っている情報が名前だけで読み取れないなら、追加したほう がいい ・base64化したchime_idなら encodedChimeId とか、 base64ChimeIdとか。 ・圧縮したjpg画像なら compressedImage とか compressedJpgとか
8 名前に情報を追加する
・プログラミングの時間のほとんどはコードを読む時間 ・同じようなことをするなら、同じようなものを作ろう 9 一貫性のあるコードを書こう
・コメントの目的は、書き手の意図を読み手に知らせること ・コードを書いているときの自分の考えを記録する ・他の方法がある場合、なんでこの方法を選んだか ・欠陥がある場合はFIXME、やることが残っているならTODOなど ・関数名やコード軽く眺めるだけでは得られない必要な情報 ・e.g. 7日より前のファイルは消えているためその日付以前は filter()している とか。 10 コメントをすべきこと
・コードからすぐわかることをコメントに書かない ・コメントをつけるよりも変数名を変える方がいい場合もある 11 コメントすべきではないこと
・コメント書いたほうが良いかな?と思った場合はとりあえず書こう ・後から丁寧に書き直してみたり、今まで振り返ってきたこと(改善 点を見つけてより良くする)をやってみる。 ・// ヤバいかも。重複してたら壊れちゃう。 →// 注意:この関数は重複を処理できません(難しいので) 12 とりあえず書いてみよう
・読む人の気持ちになろう ・コードを通して他の人と対話するように ・英語脳になろう ・英語が伝わってるかどうか考えることで良いコードになる・・かも? ・こだわりを持とう 13 要は...
14 読んでみてね!おわり!
15