おわりに

ここまで、C言語とCGIを使って、Webアプリケーションの基本的な部品をひとつずつ見てきました。

本書で扱ったCGIは、現代のWeb開発で主流の方式ではありません。それでも、HTTPリクエスト、環境変数、標準入力、レスポンスヘッダ、Cookie、SQL、JSONといった要素を、自分の手で組み立てて確認できる題材としては、今でも十分に価値があります。


学んだこと

本書では、次のような流れで内容を進めました。

どれも、フレームワークを使えば短いコードで済む処理です。しかし、その短さの裏側で何が起きているかを知っていると、普段のWeb開発でも判断しやすくなります。


「設計入門」として

C言語CGIは、便利な抽象化が少ないぶん、設計上の判断がそのままコードに表れます。

こうした判断は、言語やフレームワークが変わっても残ります。本書の目的は、C言語で大規模なWebアプリを作ることではなく、Webアプリケーションを構成する境界と責任を見える形で学ぶことでした。


この教材に込めたこと

C言語は、簡単な言語ではありません。日常的なアプリケーション開発で、C言語を選ぶ場面も多くはありません。

それでも、C言語には「中身を見に行く」ための教材としての強さがあります。文字列がどのようにメモリに置かれるのか、入力はどこから来るのか、出力はどこへ行くのか、確保したものをいつ解放するのか。そうした問いを避けずに進むことになります。

プログラミングの本質のひとつは、ものごとをどこまで分解して理解できるかにあります。Webアプリケーションも同じです。フォーム送信、Cookie、DB接続、JSONレスポンスは、フレームワークを使えば数行で扱えます。しかし、その数行の奥には、入力、解析、検証、保存、出力という具体的な処理があります。

この教材は、その奥にある処理をC言語とCGIで見に行くために作りました。古い題材に見えるかもしれませんが、古いからこそ余計な層が少なく、仕組みを観察しやすい面があります。

BASICから始まり、アセンブリで機械に近づき、C言語でOSやメモリの手触りを得る。そうした時代の学び方には、コンピュータを分解して理解していく楽しさがありました。本書も、その感覚をWebの入口に持ち込む試みです。


AIとの制作について

本教材は、ChatGPTとの対話を使いながら、構成、説明、コード例を検討して作成しました。

AIは、草案の作成や別案の提示、説明の整理には役立ちます。一方で、生成されたコードや文章をそのまま信頼するのではなく、仕様、セキュリティ、実行環境、読者の理解に照らして見直す必要があります。

この教材自体も、その見直しを重ねながら改善していく前提のものです。AIを使った教材制作の例としても、コードを読む目、疑う目、直す手順が重要だと考えています。


次に進むなら

この教材を土台に発展させるなら、次の方向があります。

教材として読むだけでなく、手元で動かし、壊し、直していくことで理解が深まります。


最後まで読んでいただき、ありがとうございました。