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
Intel0tw5727
July 06, 2019
Education
1
100
読みやすいコードを書く技術
沖縄学生×企業エンジニア 7月大LT大会 にて発表した内容になります。
Intel0tw5727
July 06, 2019
Tweet
Share
More Decks by Intel0tw5727
See All by Intel0tw5727
PyConJP2021に行ってきたログ.pdf
intel0tw5727
0
15
ビジネス利用における長期的な学習モデルの評価
intel0tw5727
0
260
Other Decks in Education
See All in Education
”育てる”から”育つ”仕組みへ!スクラムによる新入社員教育
arapon
0
160
授業レポート:共感と協調のリーダーシップ(2025年上期)
jibunal
0
110
H5P-työkalut
matleenalaakso
4
40k
EVOLUCIÓN DE LAS NEUROCIENCIAS EN LOS CONTEXTOS ORGANIZACIONALES
jvpcubias
0
180
Introduction - Lecture 1 - Web Technologies (1019888BNR)
signer
PRO
0
5.6k
2025年度春学期 統計学 第13回 不確かな測定の不確かさを測る ー 不偏分散とt分布 (2025. 7. 3)
akiraasano
PRO
0
130
2025年度春学期 統計学 第12回 分布の平均を推測する ー 区間推定 (2025. 6. 26)
akiraasano
PRO
0
170
Avoin jakaminen ja Creative Commons -lisenssit
matleenalaakso
0
2k
CHARMS-HP-Banner
weltraumreisende
0
1k
20250830_本社にみんなの公園を作ってみた
yoneyan
0
130
日本の情報系社会人院生のリアル -JAIST 修士編-
yurikomium
1
130
小学校女性教員向け プログラミング教育研修プログラム「SteP」の実践と課題
codeforeveryone
0
130
Featured
See All Featured
Side Projects
sachag
455
43k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.7k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Optimizing for Happiness
mojombo
379
70k
Designing for Performance
lara
610
69k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Raft: Consensus for Rubyists
vanstee
139
7.1k
Statistics for Hackers
jakevdp
799
220k
Transcript
読みやすいコードを書く技術 いんてる@沖縄学⽣×企業エンジニア 7⽉⼤LT⼤会 © 2018 Chura DATA inc. PROPRIETARY &
CONFIDENTIAL.
みなさんに質問があります︕
コーディング好きな⼈挙⼿!
コーディング楽しいよね • 様々な問題を解決するために、みなさんはプログラミング⾔語を つかってコーディングをしているはず。 • コーディングに夢中になって つい数時間かけちゃうのも 気にならない。
さらにもう⼀つ質問です︕
⾃分のコードを他⼈に ⾃信を持って薦められますか︖!
なぜ数が減ったのか • 「⾃分のコード汚いし・・・」 • 「変数名適切につけてる⾃信ない・・・」 • 「半年前に書いたコード、 ⾃分が読んでもよくわからない・・・」
共通点は「オレオレ流コーディング」 • ⾔い換えれば 「⾃分⽤に最適化された⼀番いい⽅法でコーディング」 しているということ。 → このときコードの主軸が⾃分になっているため、 他⼈に⾃信をもって薦められない・・・
読みやすいコードを書く技術 • 他⼈に薦められるコードを書くためには︖ • 誰にでも読めるコードであること • 構造が複雑でなくシンプルであること • ⼀⽬でプログラムの⽬的がわかること •
etc...
読みやすいコードを書く技術 • 他⼈に薦められるコードを書くためには︖ • 誰にでも読めるコードであること • 構造が複雑でなくシンプルであること • ⼀⽬でプログラムの⽬的がわかること •
etc...
AGENDA • リンターを使ってみよう • リンターって何︖ • ビフォーアフター • リンターによって何が改善されるか⾒てみましょう •
まとめ 今⽇話すこと
遅れてやってくる事故紹介 • いんてる (@Intel0tw5727) • ちゅらデータ株式会社 新卒1年⽬ • 普段はPythonでデータ分析とか 画像処理してます
• PyCon Kyushu in Okinawa の 実⾏委員⻑とかしてました。 • 最近は三度の飯より筋⾁が好きです。
企業理念 make a future - 次の常識をつくる わたしたちは『最⾼に⾯⽩い仕事』を沖縄に創りたい︕という 想いのもと創業しました。 沖縄の労働問題をぶち破り、 「⾼賃⾦」で「最先端かつやりがいのある」仕事を「最⾼の仲間」
と⼀緒に創り上げることを⽬指しています。 社員それぞれが誇りを持って仕事を楽しめる場所であること、 それがわたしたちの理想です。 © 2019 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. ‹#›
リンターを使ってみよう
リンターってなーに︖ • 簡素に⾔うと「厳密な構⽂チェッカー」 • いわば「各々の書くコードの書き⽅の基礎的なところを統⼀しましょう」 というもの。 • リンターに則って書くことで、⾃然と⼀般的な書き⽅が ⾝につくというもの。
例︓Python の場合 • pycodestyle(旧pep8) • 「コードは書かれる時間よりもずっと多くの時間読まれる」と いうことから「コードに⼀貫性」をもたせようというガイドライン。 • pylint •
pep8より古くからあるリンターで、pep8にはない様々なチェック項⽬と オプションを持つガイドライン
ビフォーアフター
⼈⽣初ライブコーディング • 5分弱で収まる気がしないですがやります。 • コードは⾃分が学部2年の頃に書いた、「画像を回転させて データのかさ増しを⾏うスクリプト」です。
Let's Live coding!!
今回のポイント • ちゃんと各関数にはどういうことをやるのか書こうね。 (Docstringをきちんと書きましょう。引数や返り値の詳細もね。) • 変数名は省略せずきちんと書きましょう (readImgとかfolderとか⼀⽬で⾒て何が⼊ってるか わからないのは良くない) • 1⾏が⻑くなるようなら複数⾏に分けたり、
⼀旦変数に格納したりしましょう。
これ以外にもたくさん項⽬はあります︕ • 各関数内で使⽤する変数名は15個以内にしましょう • インポートは 「標準ライブラリ・外部ライブラリ・⾃作モジュール」 の順番に記載しましょう。 • etc.
まとめ
読みやすいコード = コードに⼀貫性がある • 共通した書き⽅に則るために、リンターというガイドラインを つかうことで誰が⾒ても読めるコードになる。 • ⼀⾒めんどくさいように⾒えるけど、リンターを通す通さない では今後のチーム開発でかなり差が出ます。 •
他⼈のコードを読んで修正することが学⽣のころよりも圧倒的に増えます。 • なによりバグが発⽣したときに⼀⽬で発⾒しやすい • エラーが出た際に箇所を特定しやすく、関数⽬的が明確なため、 修正しなければいけないところを抑えやすい。
ご静聴ありがとうございました︕
(時間あってもなくても)宣伝
申し訳程度の宣伝 • ちゅらデータ株式会社ではサマーインターンを参加学⽣を 募集しています︕ • 今回はUnityとPythonで深層強化学習にチャレンジして 頂きます︕ • 応募詳細はtwitterに流しますので、 @intel0tw5727
を要チェック︕