1年前に作ったWebアプリ振り返り

結論

Web開発経験がなかった自分、フロント側で出来ることがわかっていなかった。

1年前の自分に伝えたいこと:AS400とWebアプリの違い

AS400

AS400ではフロント側(DSPF)の役割は入出力フィールド含む画面の描写、処理の呼び出し。
プログラム側ではその値を使って処理をし結果を返します。
返すと言っても、一つのプログラム内でDSPFもその他のテーブルも宣言しているので、返すというイメージは浮かびにくいかもしれないです。

AS400AS400という箱の中にDBもOSもオブジェクト(プログラム)も全部入りで、
ユーザーはPCに入っているエミュレータからAS400にアクセスします。

Webアプリ

サーバー側とフロント側、と明確に分けて考えた方がとっつきやすいかもしれないです。

規模によりますがアプリケーションが入っているアプリサーバーとデータベースのサーバーは物理的に別のものです。
複数ある場合もありロードバランサーというのも登場します。ユーザー側はブラウザから操作します。

AS400 と Webアプリ

  • AS400:一つに全部入り
  • Webアプリ:いろいろ合わさって一つのシステムを構成

というイメージでしょうか。

Webアプリは、ユーザーがブラウザからURLにアクセスすると、 サーバーがJavaScript含むHTMLやらjpeg, json などの素材をブラウザに返しそれを描写します。

プログラムの構成もこんな感じです。

サーバー側

  • 処理の振り分け
    • コントローラークラス
  • ビジネスロジック
    • サービスクラス
  • データベースアクセス
    • レポジトリクラス
  • データベースをあらわす

    • エンティティクラス
  • データベース

    • テーブル
    • ビュー

AS400だとなにに当たるかをカッコ内に追記

サーバー側

  • 処理の振り分け
    • コントローラークラスRPGのメインロジック)
  • ビジネスロジック
    • サービスクラスRPGのロジック)
  • データベースアクセス
    • レポジトリクラスRPG内のREADやCHAINやWRITE、EDITロジック)
  • データベースをあらわす

    • エンティティクラス(論理ファイル)
  • データベース

    • テーブル(物理ファイル)
    • ビュー(論理ファイル)

1年前に作ったWebアプリ

改行ボタンを押下すると入力内容をいい感じに改行する。

https://shielded-taiga-82587.herokuapp.com/

  • 約1年前、初めてWebアプリを作成しえらい苦労してHerokuにUP
  • Rubyを勉強し2ヶ月くらいたったころの作品
  • Webについての知識がなかった
  • 本を読みながら作成
  • CSSは友人に全面的に協力してもらった(そもそもCSSって?ってレベルだった)

その時の私のスキル

  • 業務経験はAS400のみ。
  • Rubyは勉強し始め。
  • Javaは資格のみで実務経験なし。文法は知ってるけどWebアプリケーションの作り方はさっぱりわからない。
  • Webページの知識は大学時代にHTMLのみで作ったホームページ時代で止まってる。

最近作ったWebサイト

テキスト編集ツール。JavaScriptのみ。

https://mhaya18.github.io/jstools/

フォントもかっこいいし、BootStrapを使ってレスポンシブになってるし、いけてるよねw

比較

1年前に作った方は、入力内容を改行編集し、データベースに保管、
それを読んで画面に出力している。

AS400 のプログラムの動きを無理やり応用している感じです。
今作るなら、 JavaScript だけで作ると思います。 もう少し複雑なロジックや永続化が必要ならサーバー側でロジックを組むかもしれませんが。

おわり

間違えている部分もあると思いますが、Web開発経験が浅いのでごめんなさい。
うまく書けなかったかもしれませんが、この辺が最初にわかっていれば、しなければよかった苦労もあるかもしれなかったので、書きました。