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
120
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
読みやすいコードを書く技術
沖縄学生×企業エンジニア 7月大LT大会 にて発表した内容になります。
Intel0tw5727
July 06, 2019
More Decks by Intel0tw5727
See All by Intel0tw5727
PyConJP2021に行ってきたログ.pdf
intel0tw5727
0
24
ビジネス利用における長期的な学習モデルの評価
intel0tw5727
0
270
Other Decks in Education
See All in Education
Gitがない時代 インターネットがない時代の 開発話
sapi_kawahara
0
360
エビデンスベースト英語教育入門:エビデンスは科学的知見(だけ)ではない,制度だ!
terasawat
0
150
Case Studies and Future Research - Lecture 12 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
230
Examen de Selectividad. Geografía junio 2026 (Convocatoria Ordinaria). UCLM
juanmartin2026
1
4.9k
【セーフィー】テクニカルライティング&コミュニケーション実践講座(26新卒エンジニア向け研修資料)
ymzaki_m4
0
300
Visionary Initiative: Materials-Positive Society 「モノの進化をポジティブな社会の原動力に」|Science Tokyo(東京科学大学)
sciencetokyo
PRO
0
1k
Geografía y fútbol. Atlanta. la megalópolis del fútbol
juanmartin2026
1
12k
新しいJavaを学んで・使っていこう! / osd26do
gishi_yama
0
220
遊ぶかね欲しさの犯行(ルビ:労働)です
shirayanagiryuji
0
230
Geografía y Fútbol: Chattanooga Geografía del Búnker de La Roja.
juanmartin2026
1
12k
[2026前期火5] 論理学(京都大学文学部 前期 第14回)「計算は、証明ではない——ハルシネーションを三層ハーモニーで診る」
yatabe
0
200
プロポーザルを書く技術とアンチパターン/proposal-writing-and-antipatterns
moriyuya
13
3.7k
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
480
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Done Done
chrislema
186
16k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
440
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
990
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Git: the NoSQL Database
bkeepers
PRO
432
67k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
Bash Introduction
62gerente
615
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
を要チェック︕