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
読みやすいコードを書く技術
沖縄学生×企業エンジニア 7月大LT大会 にて発表した内容になります。
Intel0tw5727
July 06, 2019
More Decks by Intel0tw5727
See All by Intel0tw5727
PyConJP2021に行ってきたログ.pdf
intel0tw5727
0
21
ビジネス利用における長期的な学習モデルの評価
intel0tw5727
0
270
Other Decks in Education
See All in Education
2026年度春学期 統計学 第1回 イントロダクション ー 統計的なものの見方・考え方について (2026. 4. 9)
akiraasano
PRO
0
140
モブ社員がモブエンジニアを名乗って得られたこと_20260413
masakiokuda
4
520
SL AMIGOS 教育格差と私たちの取り組み - スリランカの支援学校への支援プロジェクト:リシンドゥ リオ 氏 (別府溝部学園短期大学 ビジネス観光コース 留学生):2720 Japan O.K. ロータリーEクラブ2026年4月6日卓話
2720japanoke
0
610
Course Review - Lecture 13 - Information Visualisation (4019538FNR)
signer
PRO
1
2.6k
0318
cbtlibrary
0
160
Padlet opetuksessa
matleenalaakso
12
15k
【セーフィー】テクニカルライティング&コミュニケーション実践講座(26新卒エンジニア向け研修資料)
ymzaki_m4
0
190
Dashboards - Lecture 11 - Information Visualisation (4019538FNR)
signer
PRO
1
2.7k
AIには考えられないことを考えられる人になるために
iqbocchi
1
130
Gesture-based Interaction - Lecture 6 - Next Generation User Interfaces (4018166FNR)
signer
PRO
1
2.3k
From Days to Minutes: How We Taught an AI to Onboard 50+ Tenants on our AI Features
mfcabrera
0
160
면접관 눈에 띄는 데이터 분석 포트폴리오 만드는 법 | 2026년 5월 세미나
datarian
0
600
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
130
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Prompt Engineering for Job Search
mfonobong
0
330
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
400
What's in a price? How to price your products and services
michaelherold
247
13k
Speed Design
sergeychernyshev
33
1.8k
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
を要チェック︕