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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
gs
May 27, 2020
Programming
39
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
開発でより良いコードを書くために
pythonで開発する場合に、どのようにコードを書くべきかまとめました。
gs
May 27, 2020
More Decks by gs
See All by gs
bayesian_machine_learning 1
gggggssss
0
59
Other Decks in Programming
See All in Programming
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
970
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
490
Kubernetes祭り #2 OP/ED
bells17
0
110
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
330
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
590
ActionController meets Protocol Buffers
sorah
0
190
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
160
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
Agents on Rails - Rails at Scale 2026
irinanazarova
0
530
contenteditable と日本語入力に向き合う
colorful12
0
190
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
22
22k
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
360
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
930
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Navigating Team Friction
lara
192
16k
A Soul's Torment
seathinner
8
3.7k
Code Review Best Practice
trishagee
74
20k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
700
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
400
Between Models and Reality
mayunak
4
490
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
590
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
Transcript
開発でより良いコードを書くために
参考文献
変数名で中身がわかるようにする 例えばresultやgraphだけでは対象が何かわからないので、対象をつけるもしくは、 resultは使わない 例 result → detection_rate_result、total_detection_rate 例 graph →
loss_graph
導入 開発での良いコードとは ☓短いこと △最速で動くこと ◦他の人(1年後の自分含めて)が最短時間で理解できること
名前は短くしない 他の人が読んですぐに意味が理解できるように、一般的ではない、誤解を招く省略形は使わない bad examples ・gen→generate ・no → number ・epoch→ep good
examples ・directory→ dir ・maximize→max 例外・iterator→i (for i, name in enumerate(names))
関数名で処理内容がわかるようにする おすすめは def 動詞_名詞() 動詞は具体的にする 例 get_score()→calculate_score() 例 def loss_graph()
→ def draw_loass_graph()、def draw_save_loss_graph()
変数の型は書いておく intやstrと型の指定も重要だが、最低限 data frameなのか、listなのかは書いて置くとわかりやすい names_df names_list names_dic names_set names_array names
型チェックするmypy https://qiita.com/k-saka/items/8f05c89f675af219e081
単数と複数の区別を明確に イテレータでの単数と複数を明確にしておくとわかりやすい name_list = [“Mike”, “Taro”] for name in name_list:
name XXXX names_list = [“Mike”, “Taro”] for name in names_list: name XXXX
同じ変数に繰り返し違うものを代入しない 同じ変数に繰り返し違うものを代入すると中身が把握しづらくなる data = pd.read_csv(data.csv) data = f1(data) data=f2(data) total_price=f3(data)
return total_price data = pd.read_csv(data.csv) price = f1(data) price_including_tax = f2(price) total_price=f3(price_including_tax) return total_price
処理2 Detect 構造ごとにコードを分ける (class文で分けることをおすすめします) 前処理 処理1 グラフ作成 main main文 from
preprocess import Preprocess from detect import Detect from praph import Graph data = pd.read_csv(data.csv) for epoch in epochs: preprocess = Preprocess(data) detction = Detect(data) Preprocess Graph
処理2 Detect 構造ごとにコードを分ける 上位概念でまとめるとより良い 前処理 処理1 グラフ作成 main main文 from
object_detection import ObjectDtection data = pd.read_csv(data.csv) for epoch in epochs: obj = ObjectDtection(data) object_detection Preprocess Graph
フローは手書き画像のほうがわかりやすい アルゴリズムやコードの流れはコメントではなく、手書き画像が入れるのが Best ・手書きの画像をコードに入れられる VSCodeの拡張機能がある ・手書きできるデバイスが必要になる https://qiita.com/tkrkt/items/2fc9a9a59ce679aab728
PEP8に従っているかは拡張機能で確認 書いたコードがPEP8に従っているかはFlake8やBlackで自動検証すべき ・Flake8 Flake8はコードがこの規約通りに書けているか、シンタックスエラーがないかなどをチェックしてくれるツール ・Black Blackはpep8に関するエラーをチェックするだけでなく、自動で修正してくれる。さらに、改行の仕方やクォー テーションの使い方まで統一してくれる。 多人数開発でコードを合わせるのなら Blackがよい? https://www.macky-studio.com/entry/2019/07/04/152323
読みやすさも 考えないとね 人間だもの