1. yammerの日記
  2. gawkでつくるWebアプリケーシ..
2024-01-13 05:33

gawkでつくるWebアプリケーション

プログラミングやソフトウェアエンジニアリング、日常のことについて、歩きながら話す、yammerの日記です。通勤や散歩しながら録音しているので、その雰囲気と共にお楽しみください。

サマリー

わたしは、ソフトウェアエンジニアで、awkというプログラミング言語を使ってブログシステムを開発しています。

ブログシステム開発
こんにちは、yammerです。私は普段、ソフトウェアエンジニアとしてウェブアプリケーションの開発をしています。
ここでは、プログラミングやソフトウェアエンジニアリング、もしくは日々のことについて話していきたいと思います。
最近の趣味は、awkというプログラミング言語を使って、ウェブアプリケーションを作ることです。
ブログシステムを作っています。 今日は、今日から何回かその話について話したいと思います。
awkはテキスト処理に特化したプログラミング言語、スクリプト言語です。
awkというコマンドに続いて、コマンドラインの引数にそのプログラムを受け取って、
1行で書けるような短いプログラムを書く、というような用途で使われることが多いと思います。
デフォルトで標準入力を1行ごとに処理して、さらに空白で分解して、変数に入ったように扱えるというのが特徴で、
例えば、数百行とかあるようなテキストファイルを処理する時だったりとか、
そういったケースで、すごく有用なプログラミング言語です。 このawkはいくつかの処理型があります。
そのうちの一つのGNUのGawkと呼ばれている処理型は、
他の処理型よりも豊富な機能が拡張されて、実装されています。
C言語で言語の拡張を書いて、awkのプログラム上から読み出せるようなエクステンションだったりとか、
あとはネットワークプログラミングの機能が追加されています。 私はこのGawkのネットワークプログラミングの機能を使って、
ブログシステムを開発しています。 ネットワークプログラミングといっても、
あつかうのは、実は単純な通信であれば簡単に扱えるようなインターフェースとして設計されて実装されています。
awkはテキストを扱うのが得意で、 標準入力がファイルから文字を受け取ったり、
あとは、標準出力がファイルへ文字列を出力するというようなことが簡単に書ける記法が用意されています。
もしくは簡単に書けるような、 ゲットラインという関数みたいに書けるような記法だったりとか、そういったものが用意されています。
ファイルだったりとかに書き出したり読み込むっていうのと同じような扱い、似たような扱いで、
その通信先がTCPIPのネットワーク上の相手っていうふうに書くこともできるように記法が拡張されています。
HTTPサーバーの実装
httpサーバーを、 単純な文字列を返すだけのhttpサーバーを実装するには実は数行でかけて、
パイプの、よくシェルであるようなパイプの記法を使って出力を渡すっていうの、拡張みたいな感じの記法で、
その双方向のパイプみたいな感じでネットワークの通信から受けた入力とか出力を渡せるっていう風になっています。
httpはTCP通信の上で行われるテキストの通信ですので、テキストの扱いは多くは得意だろうということで、
httpヘッダーとかhttpボディとか、 そういうのは単なるテキストですから、
テキストを処理していけば通信ができるわけです。 と言ってもhttp2とか3とか、そういうのになるとちょっとややこしくなるので一旦置いておくんですけど、
今度はhttp1.1までの話にしておくと、 多くでそういった通信が実装できます。
とは言っても、現代のwebアプリケーションは複雑で、 例えばリレーショナルデータベースと通信したりとか、
その他にもいろんな外部のものを通信したり、処理をしたりというような複合的な機能を兼ね備えて提供されているというものが多くあります。
そういったものを多くで実装していくには困難な部分も複数あるので、そういったことについては次回以降話していきたいと思います。
今日は この辺りで終わりにします。
では明日もよろしくお願いします。 さようなら。
05:33

コメント

スクロール