Archive: 9月 26, 2026

還暦杉の django (序)

“ruby on Rail” という風潮にも左右されず、いままで、Webアプリは PHP+Smarty で構築してきました。が、今回、とある実装課題において、C言語、PHP+Smarty、django のそれぞれでプロトタイピングし、性能比較を行いました。Web エンジン、CSS、グラフ描画としては、nginx、bootstrap, Chat.js を用いました。

実装期間 : django < PHP+Smarty < C言語
学習期間 : django : 12 時間、PHP+Smarty: 0時間、C言語: 0時間

さて、高度なものに入信してこなかった、還暦杉が django で Web アプリ開発を行ってゆきます。つづく。

高度なフレームワークや開発環境を身に付ければ、その枠組みの中での実装効率(*1)が大きく向上することは、私自身も実感しています。(*1) 誰でもできる簡単な実装作業
一方で、そのフレームワークや環境の仕組みそのものを理解せず、使い方だけを身に付けている場合、想定された範囲を超える要求に直面したとき、内部で何が起きているのか見通せず、柔軟に対応することが難しくなることも理解できます。
私自身は、学生時代に機械語から学び始めました。表面的な使い方を覚えるのではなく、「底から掘り起こして理解する」ことを、技術者としての糧にしてきました。
例えば Django を学習した際にも、単にフレームワークの使い方を覚えるのではなく、Django のソースコードを実際に読みながら、その内部でどのような処理が行われているのかを確認しました。
そうして根本にある思想や仕組み、そしてそれを実現するための方法論を理解すると、一見高度に見えるフレームワークであっても、その本質は意外とシンプルな仕組みの組み合わせであることが分かります。
私にとって技術を学ぶということは、単に「使えるようになる」ことではなく、「なぜそうなっているのか」まで掘り下げて理解することです。
その積み重ねが、未知の技術や新しい要求に直面したときにも、既存の知識だけに頼らず、自分で仕組みを理解し、応用して解決していく力につながっていると考えています。
SQLもわからない場合は、このようなプラットフォームしかないのだと感じました。
django が発行する SQL 文を mysql general ログで検証していましたが、実行効率の良いDB操作(SQL文)をしようと思ったら、django でのコードも工夫できるところが多々あります。『やっぱりな』という感じです。
実行環境(ハードやOS)が高速になってゆくにつれ、このように実行効率をあげる工夫は不要となるという意見もありますが、それは片手落ちです。『扱うデータ、ロジックはそれ以上に増えてゆき、その優位性を打ち消します。今後』

さて、高度なものに入信してこなかった、還暦杉が django で Web アプリ開発を行ってゆきます。つづく