「在庫管理アプリ」のPostgreSQL化に取り組んでいます
私は「サムライテラコヤ」でWebプログラミングを本格的に学び始めたのですが(プログラミングの学習自体はそれ以前にC言語を使ってやっていました。コンピュータの動作原理など低レイヤーにも関心があります)、その教材で「在庫管理アプリ」というWebアプリを作りました。
これはプログラミング言語のPHPを使って、データベースとの連携を学ぶためのものです。
Java Servletで開発を始めて最初に目指したのが、このPHP版のアプリをJava Servletで作り変えるということでした。
インプレス社刊の『スッキリわかるサーブレット&JSP 第5版』の第14章「Webアプリケーションの設計」を参考に、データベースの設計から始め、PHP版のアプリの動きだけを見て、全て自分で設計しました。その際、PHPのコードは参考にせず、全て自分の頭で考えることを大切にしました。
完成したアプリは、契約があるHerokuを使ってデプロイして公開しています。ただこのアプリで使っている「H2 Database」というデータベースでは、Herokuでの仕様上、データを永続的に保持しておくことができないのです。アプリにアクセスするたびにデータが消えてしまうため、使い勝手がよくありません。
この不具合を解消するため、データベースをHerokuでもサポートされている「PostgreSQL」に変更することにしました。
実はこの在庫管理アプリを開発したあとに「つぶやきアプリ」と「ブログアプリ」を開発し、以前に在庫管理アプリをデプロイした経験から、HerokuではH2 Databaseではデータを永続化できない問題があることが分かっていたので、これら2つのアプリは最初から「PostgreSQL」にしてました。
今回、この2つのアプリで「PostgreSQL」を使って開発した経験を元に、「H2 Database」の仕様になっているところを「PostgreSQL」にする作業をしています。
このように経験を重ねることにより、できることが増えていくことはもちろん、現在のデータベースの設定では問題があるのではないかなど、問題点にも気付けるようになってきています。
今後も学習と開発の往復作業をしながら、時代が進んでも廃れない技術の核を身に着けていきたいと思っています。
ブログアプリ「Hiroshiの開発ブログ」v1.0.0をリリースしました!
今回は完全にオリジナルのアプリということで、設計をしながら格子となる機能を中心に開発を進めました。
途中、表示機能と管理機能の分離を思いつき設定を変更。DBも3つのテーブルを連携させるなど、今までのJava Servletのアプリにはない機能を実装しました。
今後、機能を追加するなどバージョンアップを重ねていく予定です。
新しい技術・知識が身につく喜び
ブログアプリの開発を続けています。
アプリを開発すると同時に、適宜、関連技術の復習・学習をしながら進めていますが、今日、Javaの文字列をやった際に、このメソッドを使えば、こんなことができるんだ! と感慨を新たにしたという出来事がありました。
いままで素通りしてきた技術・知識でも、改めて学んでみると新鮮な驚きや感動があるものですね。「技術を身につけることは楽しい!」、この喜びを大切にしていきたいと思います。
ブログアプリの開発に着手
ブログアプリの開発に着手しました。
現在までに、Java Servletの技術を使って「在庫管理アプリ」「つぶやきアプリ」の2つを開発し、現在は、関連技術のブラッシュアップをしながら、その改善・改良に取組んでいます。
この「在庫管理アプリ」は、実は「サムライテラコヤ」というプログラミング学習サイトの教材として、過去にPHPというプログラミング言語を使って作成したものを、今回Javaの技術を使って再現したものです。
また「つぶやきアプリ」は、インプレス社の『スッキリわかるサーブレット&JSP入門 第5版』に載っているサンプルアプリを骨格として、それにPostgreSQLを導入し、Herokuでデプロイしたものです。著者の許可をいただいて改良盤として公開しています。
どちらも意図があって、このような形で開発・改良に取組んでいるものですが、現在までにJava Servletを使った完全にオリジナルなアプリというものはありませんでした。
そこで、いままでに身につけた技術を使って完全オリジナルなアプリを作りたいと思い立ち、この度、ブログアプリの開発に着手しました。
ブログアプリや掲示板アプリというと、Webアプリ開発の教材としてよく採用されているものですが、今回着手したアプリの特徴は、主に私自身のニーズに合ったものにすることを開発の目標にしている、ということです。
顧客のニーズにあったアプリを開発する訓練としての意味があります。
現在、要求分析から初め、設計を行っています。このアプリの開発の様子も、随時お伝えできればと思っています。
最初はシンプルな機能のVersion 1.0.0 をなるべく早い時期に公開し、その後、徐々に改良に取り組んでいく、というスタイルを取っていく予定です。
どうぞご期待ください!
見本と同じ見た目のCSSを作る
Java Servletの技術を使って開発している「在庫管理アプリ」。実はこれ、以前、サムライテラコヤの教材として「PHP」を使って作成したアプリの「Java版」です。
制作の基本スタンスは、元のPHPのコードを一切見ずに、同じ動きになるようにJava Servletの技術を使って再現すること。そのため、設計から始め、基本的に全部自分で考えて作りました。
しかし、見た目を同じにするために、CSSだけは元のアプリのものを流用していたんです。
CSSに苦手意識があったため、この度CSSを集中的に学習し直しました。その成果として、この度、PHP版のアプリと同じ見た目になるようなCSSを自分で作ることに成功しました。
これは、Webサイトを制作するときに、そのサイトの見本を作り(デザインカンプといいます)、その見た目のとおりにHTMLとCSSを使ってサイトを構築していく作業に似ています。
今回の作業の焦点はここにありました。「同じ見た目のものを再現する」、この技術を磨きたかったのです。
今回、この目標を達成することができたので、次はオリジナルなデザインにすることにも挑戦していこうと思います。
在庫管理アプリ(PHP版):https://hnomura-php-db-app-528f8a8a4a66.herokuapp.com/
在庫管理アプリ(Java版):https://inventory-management-servlet-ea88bf3b64ea.herokuapp.com/
私自身のこと
ただ「動けばいい」「画面に表示されればいい」というのではなく、その裏にある仕組みを理解することに興味があります。
たとえば今、Javaというプログラミング言語を使ってWebアプリケーションを作成していますが、そこにはTomcat(トムキャット)というものが出てきます。
「そもそもこのTomcatって何?」というところから私の探求は始まります。
実はこれ、Javaで書いたWebアプリケーションのプログラムを動かすために、裏でいろいろ働いてくれているソフトウェアなんです。
プログラミングを学ぶとき、最初は教材に書いてある通りにそのまま書いていく、いわゆる写経から始めるのが王道ですが、その段階から一歩進んで、その意味を理解しようとすると様々な疑問が湧いてきます。
そしてその仕組みを調べていくと、このTomcatというソフトウェアが、見えないところでたくさん仕事をしていることに気づきます。
そうすると、いま書いているプログラムの意味が分かってきて、今度は自分で考えてプログラムを組めるようになるのです。
「こう書けばこう動く」だけではなく、「なぜそう動くのか」という仕組みを理解することで、いざ動かないときには「ここが原因ではないか」と、問題の本質を特定できるように私はなりたい。いわゆる「職人技」を私は身につけたいのです。
ものごとの本質に興味があり、それを探求する、というのが私の学びのスタイル。
このスタンスで、日々学びながら気づいたこと、思ったことなどをつれづれに綴っていきたいと思っています。