Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
「動くものは作れる」の一歩先へ 〜「自走プログラマー」の紹介〜
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
mizzsugar
June 09, 2021
Programming
660
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
「動くものは作れる」の一歩先へ 〜「自走プログラマー」の紹介〜
mizzsugar
June 09, 2021
More Decks by mizzsugar
See All by mizzsugar
自分のPCにPython環境を用意して_VSCodeでStreamlitアプリを動かすまでの8ステップ.pdf
mizzsugar
0
110
Colabのみで初心者向けPythonハンズオン.pdf
mizzsugar
0
86
厳しさとゆるさの間で迷う人に捧げる個人開発記
mizzsugar
0
76
SQLModel入門〜クエリと型〜
mizzsugar
3
1.6k
フルリモート向いてないと思っていた私が、なんだかんだ健やかに 1年半フルリモート出来ている話
mizzsugar
1
170
Djangoでのプロジェクトだって型ヒントを運用出来る!
mizzsugar
4
9.2k
pytestの第一歩 〜「テスト駆動Python」の紹介〜
mizzsugar
3
490
データ分析ツール開発でpoetryを使う選択肢
mizzsugar
1
1.2k
unittest.mockを使ってテストを書こう
mizzsugar
5
7k
Other Decks in Programming
See All in Programming
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
240
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
240
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
550
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
330
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
140
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
280
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
180
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
4.7k
Webの地図
yosuke_furukawa
PRO
6
4.6k
AHC070解法紹介
eijirou
0
120
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
110
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
410
Featured
See All Featured
Bash Introduction
62gerente
615
220k
Believing is Seeing
oripsolob
1
220
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
510
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
500
Designing for Performance
lara
611
70k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
From π to Pie charts
rasagy
1
370
Evolving SEO for Evolving Search Engines
ryanjones
0
300
The Curse of the Amulet
leimatthew05
3
14k
Transcript
「動くものは作れる」の 一歩先へ 2021-06-09 @stapy mizzsugar0425 〜「自走プログラマー」の紹介〜 1
Agenda - 自己紹介 - 本の概要 - 対象読者 - おすすめポイント -
to プログラミング入門者の方 - to プログラミング入門者の方とチーム開発している先輩プログラマの方 2
お前、誰よ? - Twitterはこのアイコン (@mizzsugar0425)→ - Python歴3年 - Spready株式会社 (we are
hiring!!) - 好き: コーヒー、自転車、ビール - Stapy5代目LT女王 - 静岡住みでフルリモートで働いています - Django Congressで登壇します! Djangoでの型ヒントについて話ます。 https://djangocongress.jp/ 3
本の概要 - プロジェクト開発のベストプラクティス120項目を紹介 - 著者は、Pythonでの開発に定評のあるビープラウド社の方々 - 本のURL↓ https://amzn.to/3v260Lk 4
対象読者 - 簡単なスクリプトなら書けるけれど、小〜中規模のシステムとなると 何をすればいいのか分からなくなる人 - そんな方と一緒にチーム開発している先輩プログラマの方々 サンプルコードはPythonだけれども、 どの言語を扱う人にも役に立つ内容です!! ※データ構造の章は特に、 PythonのWebフレームワーク「Django」を使った内容になっていますが
ORMを使うならばどの言語の方にも刺さる内容だと思います。 5
おすすめポイント 6
to プログラミング入門者の方々 7
1. プログラミング言語を越えた普遍的な内容 - 関数の実装から始まり要件定義に終わる内容。 - 1章 コード実装 - 2章 モデル設計
- 3章 エラー設計 - 4章 システム設計 - 5章 やることの明確化 - 常日頃から知りたかったけれども、なかなか現場に知見がない内容も! - プロジェクト開発の仕事の抽象度がだんだん上がっていくイメージ - 要件定義〜運用までやっている身としてはとても有り難い内容でした🙏 8
2. リアルな開発現場でありそうなソースコード - サンプルコードあるある「簡単すぎて現場との乖離がある」 この本では「ああ〜見覚えある〜〜」という感想になりました! - 読むのが辛くはないが現場を想定出来そうな、ちょうど良い複雑さです🙆 (※個人の感想) - やりがちなNG実装と理想の実装両方が書かれているのも良いです👍
- ↑次からの実装に活かしやすいです! 9
to プログラミング入門者の方々と 開発している先輩方 10
1. 生生しい(?)先輩と後輩のやりとり def validate(data): """data['ids']を検査して、含まれる不正なidの一覧を返す """ ids = data.get('ids') #
ここが問題 err_ids = [] for id in ids: if ...: # idが不正かどうかをチェックする条件文 err_ids.append(id) return err_ids 11 「自走プログラマー ~Pythonの先輩が教えるプロジェクト開発のベストプラクティス120」より抜粋
会話の内容 * 先輩T:この ``def validate(data):`` 関数の中で ``data.get('ids')`` っていうコードがたくさん あるんだけど、フレームワークが ``data``
辞書を用意して ``validate`` を呼んでくれるから、 ``'ids'`` は必ずあるんじゃない? * 後輩W:ありますね。 * 先輩T:じゃあどうして ``data['ids']`` じゃなく ``data.get('ids')`` なの? * 後輩W: ``'ids'`` がない場合に例外を発生させないようにするためです。 * 先輩T:??? * 後輩W: ``validate`` に必ず ``'ids'`` を持つ辞書を渡してくれるかわからないですよね。 * 先輩T:それはフレームワークがよくわからないから過剰防衛してるだけでは。 「自走プログラマー ~Pythonの先輩が教えるプロジェクト開発のベストプラクティス120」より抜粋 12
会話の概要 - 渡されたdictの中にidsという項目がなかったらidsがNoneになる - 後輩さんは、idsがないためにKeyErrorが発生することを恐れた - そもそもDjangoなどのFWが引数dataの内容を精査済みで idsがないということはありえない - 仮にFWで精査してなかったとしても
idsがないことは異常なら、異常な状態で処理を続けるのは良くない - この会話が載っている抜粋版URL https://bit.ly/2TaRbJ7 13
会話を読んだ感想 後輩さんと同じやらかししたことある〜〜🤣 チームの人に同じこと言ったことある〜〜😅 てか後輩さん、やったことはアレだけど説明うますぎん?🤔 14
会話を読んだ感想 後輩さんと同じやらかししたことある〜〜🤣 チームの人に同じこと言ったことある〜〜😅 てか後輩さん、やったことはアレだけど説明うますぎん?🤔 ↑個人的注目ポイント↑ 15
2. レビューでの伝え方の幅が広がる - 適切な説明の言葉が見つからないだけで、実は後輩さんと同じことを考えて実装し ているのではないか? - 「こういう風に考えて実装した?」と聞く切り口にもなれるかと 16
自走プログラマー抜粋版 ビープラウドさんが公開しているこちらのサイトも レビューで使わせてもらっています🙏🙏🙏 PRのコメントにリンク貼ったりしています! jisou-programmer.beproud.jp 17