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
HTML5 and the Open Web Platform - Lecture 3 - Web Technologies (1019888BNR)
signer
PRO
2
3k
万博マニアックマップを支えるオープンデータとその裏側
barsaka2
0
940
Présentation_1ère_Spé_2025.pdf
bernhardsvt
0
410
the difficulty into words
ukky86
0
160
生態系ウォーズ - ルールブック
yui_itoshima
1
300
AI for Learning
fonylew
0
200
QR-koodit opetuksessa
matleenalaakso
0
1.7k
Evaluation Methods - Lecture 6 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
1.1k
~キャラ付け考えていますか?~ AI時代だからこそ技術者に求められるセルフブランディングのすゝめ
masakiokuda
7
510
ハッカソンを活用したモノづくり教育について
yusk1450
PRO
2
110
Transición del Management al Neuromanagement
jvpcubias
0
240
20250830_MIEE祭_会社員視点での学びのヒント
ponponmikankan
1
180
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
640
Making Projects Easy
brettharned
120
6.4k
Building Applications with DynamoDB
mza
96
6.7k
Raft: Consensus for Rubyists
vanstee
140
7.2k
It's Worth the Effort
3n
187
28k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
130k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
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
を要チェック︕