プログラミング学習のための写経入門

0.9K Views

February 29, 24

スライド概要

2024-02-28
西本卓也 @24motz / @nishimotz
すごい広島 IT初心者の会 [83]
https://pycon-hiroshima.connpass.com/event/310358/

profile-image

Shuaruta Inc. ウェブアクセシビリティ基盤委員会 (WAIC) NVDA日本語版 すごい広島 with Python

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

プログラミング学習のための写経入門 2024-02-28 西本卓也 @24motz / @nishimotz shuaruta.com 1

2.

テスト駆動開発 • Kent Beck / 和田卓人 訳 • オーム社 2017 • 原著 2003 • 付録C 訳者解説 • 写経とは能動的なソフトウェア技術書の読み方 2

3.

写経に必要なもの • テキストエディタ • Visual Studio Code • バージョン管理ツール • Git • サーバーやクラウドへの保存は不要 • プログラミング言語の実行環境 • ファイルからプログラムを読み込んで実行できること • コンパイラ • インタプリタ 3

4.

文字コードと改行コード • ファイル名に1バイト文字だけを使うのが無難 • UTF-8 • Shift_JIS (cp932) は不要になりつつある • BOMつき UTF-8 もあるが、不要になりつつある • LF • 改行コードが「ファイルごとに違う」「行ごとに違う」は避けたい • 環境によっては CRLF が必要な場合もある 4

5.

文字コードを確認する • 例: Unicode code point of current character • 16進数2桁 (U+00XX) であれば1バイト文字 5

6.

写経のやり方 • 新しいフォルダを作る • git init • 適切なファイル名と拡張子でファイルを作る • 繰り返す • • • • ファイルにプログラムを入力して保存 ファイルを実行 結果を確認 git commit 6

7.

最近やった写経 • テスト駆動開発 • Python3 • 第2部 テスト駆動開発で xUnit そのものを実装 • リファクタリング 第2版 (オーム社 2019) • JavaScript (node.js) • 第1章 請求書印刷 • F5 で実行できるように launch.json を作る • 保存するとフォーマッターを自動的に実行 • settings.json → "editor.formatOnSave": true 7

8.

テスト駆動開発 付録C • 精神状態のコントロール • 不安と自信の制御 • フィードバックループ • 手を動かす • 実行結果を見る • テスト駆動開発は結果ではなく過程に本質がある 8

9.

cursor で体験したこと • 書籍のプログラムが予測されて出てくる • LLMは Kent Beck も Martin Fowler も知っている • 勉強しない方が罪という感覚 • 足りないコードをAIに補完させる • JSON ファイルを読み込むなど • エディタのリファクタリング機能 • ときどき結果が一致しない • AIにリファクタリングさせる • 「変数のインライン化」など用語がわかれば命令しやすい 9

10.

自分がなぜ写経をしているか • いつのまにかレガシーコード • リファクタリングの沼 • 正しい知識と習慣を学び直す必要 • 和田さんが紹介している本をあれこれ読む • レガシーコード改善の技術を再確認 • オブジェクト指向とデザインパターン 10

11.

初心者のためのまとめ • ファイルとファイル名の概念 • Git の基本操作 • 書いたプログラムをすぐに実行できるエディタ • 写経しやすい技術書 • AIに何ができるか、何をさせるべきかを知る • 文字コードと改行コードに気をつける • ファイル名にマルチバイト文字を使わない • UTF-8 / LF になじんでおく 11

12.

個人的なまとめ • Copilot 駆動開発はテスト駆動開発を駆逐するのかと思いかけて いたが、テスト駆動したがる生成AIに素直に従うプログラマー を目指した方がよさそう 12