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
99
読みやすいコードを書く技術
沖縄学生×企業エンジニア 7月大LT大会 にて発表した内容になります。
Intel0tw5727
July 06, 2019
Tweet
Share
More Decks by Intel0tw5727
See All by Intel0tw5727
PyConJP2021に行ってきたログ.pdf
intel0tw5727
0
14
ビジネス利用における長期的な学習モデルの評価
intel0tw5727
0
260
Other Decks in Education
See All in Education
2025年度春学期 統計学 第1回 イントロダクション (2025. 4. 10)
akiraasano
PRO
0
180
Pydantic(AI)とJSONの詳細解説
mickey_kubo
0
120
計算情報学研究室 (数理情報学第7研究室)紹介スライド (2025)
tomonatu8
0
550
より良い学振申請書(DC)を作ろう 2025
luiyoshida
1
3.3k
万博非公式マップとFOSS4G
barsaka2
0
400
OJTに夢を見すぎていませんか? ロールプレイ研修の試行錯誤/tryanderror-in-roleplaying-training
takipone
1
160
演習問題
takenawa
0
7.2k
SkimaTalk Teacher Guidelines
skimatalk
0
800k
SkimaTalk Tutorial for Students
skimatalk
0
1.8k
미국 교환학생 가서 무료 홈스테이 살면서 인턴 취업하기
maryang
0
110
SkimaTalk Tutorial for Corporate Customers
skimatalk
0
290
人になにかを教えるときに考えていること(2025-05版 / VRC-LT #18)
sksat
4
1k
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Making Projects Easy
brettharned
116
6.3k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Making the Leap to Tech Lead
cromwellryan
134
9.4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
The World Runs on Bad Software
bkeepers
PRO
69
11k
For a Future-Friendly Web
brad_frost
179
9.8k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
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
を要チェック︕