アフィリエイト広告を利用しています


スキル無しのシステムインストラクターから、システムエンジニアへの転身日記。
◇◆◇ 2013年取得資格
LPICレベル1
LPICレベル2
LPICレベル3 Core
LPICレベル3 Speciality 302
LPICレベル3 Speciality 303
LPICレベル3 Speciality 304

Cisco CCENT
Cisco CCNA

Java SE 7 Silver
Java SE 7 GOLD

OSS-DB Silver

◇◆◇ 2014年取得資格
HTML5 Professional レベル1

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

セミナー&勉強会情報

セミナー&勉強会情報

本日は、セミナー情報3本立てです。


【LPIC&OSS-DB&HTML5勉強会】
http://www.lpi.or.jp/news/event/page/seminar20140212/

2月12日(水)、19日(水)、3月1日(土)、5日(水)、8日(土)

私がOSS-DBを取得した時に利用した勉強会が、また開催されます。
しかも、今度は、LPIC&OSS-DB&HTML5
形式としては、教室に質問のできる先生が待機している自習形式。
黙々とやるもよし、事前に分からないことだけまとめて、がっつり質問!
ということもOKです。
ただし、先生といっても、ボランティアのチューターさんですので、
確実に答えられるとも限らないのだけは、理解していくと良いと思います。

ちなみに、私はLPICすべて持っていますが、チューターなんて、とってもできません。
がっつり、Linuxな方々には、劣るのですね。

私も参加したいですが、HTML5をまだ受けたいと思わないので、
今回は不参加かな。懇親会楽しいんですけどね。

【HTML5プロフェッショナル認定試験ポイント解説無料セミナー】
http://html5exam.jp/news/news140115_1.html
2014年2月22日(土)
セミナー開始 13:30〜(受付開始 13:15)

最近、セミナーがバンバン実施されてますね。
今回は、クリーク・アンド・リバー社主催です。
先日名刺交換させていただきましたが、最近、すごい力入れているみたいですね。
とっても興味はあります。これも参加したい!…のですが、
もう一個別のセミナーとまるかぶり…。
HTML5の学習って、いつでも始められるようなイメージがあるので、
だいぶ先延ばししちゃってますが、プログラマーとしても、
Webの画面設計において、HTMLとJavaScriptの連携は切っても切れませんからね。
そして、今、レスポンシブWebデザインにはまっているし。

次こそは参加できるかな…。


【2/4開催 OCJP Gold SE 7 無償試験対策ポイント解説セミナー】

http://www.oracle.com/jp/education/news-172121-ja.html?sc=JPOU13045624MPP011C004#20131225-1
2月4日(火)18:00〜20:00(受付開始 17:30 )

なぜ、平日のこの時間に…。ゴールドは理解浅いまま取得してしまったので、
もっていますが、理解のために参加したいのですが、日程が無理だわ・・・。

そして今なら、再受験可能チケット付きらしいです。
http://www.oracle.com/jp/education/campaign-1898205-ja.html#OCJP2

今は参考書も売っているし、セミナーまであって、再受験可能チケットもある。
なんて受験生にやさしい・・・。さきがけ受験はいいことないなw
なんて、いたせりつくせりなんでしょう。

Javaプログラマーになるために

たまには、技術系じゃなくてつぶやき系のブログも書いてみる。

まず、大事なことを。
コメントしたいのにできないという皆様。申し訳ありません。
原因がわかりませんが、私の仕業じゃないことは確かです。
本当に困る!コメント欲しい!!コメント返したい!交流したい!

さて、本題に・・・
Javaプログラマーになりたくて転職をした私ですが、インフラ三昧。
というのは、さんざん吐露しておりまして、Galaxylogたまに見てるよ!
というには常識レベルの知識ですが。。。

本格的にインフラに閉じ込められそうになったので、上訴しました。
そして、インフラ&開発を掛け持ち、開発スキルを手にして作業できるレベルになったら
インフラから抜いてもらうよう交渉しました。

そして、いろいろと遠回りしたな・・・と思うことを反省しています。
まず、Javaの資格の勉強は知識を固めるためでした。まぁ、これはいいね。
しかし、SilverとGold、両方とも実務レベルには程遠い。
そして、とるにとりますが、ウェブコンポーネントデベロッパーに関しても、
まず、最初からjspだServletだ・・・とプログラムを書き始めるわけではないということ。

まずは、基礎ができてるの?という話になると思いますが、
ここで言う基礎っていうのは、初めてのプログラミング的な本で言う、
for文、ループ文、if文とか、そういうレベルではなく、
オブジェクト指向の「カプセル化」「継承」「ポリモーフィズム(多態性)」も抑えつつ、
Java Core APIを読める、理解しているのかという話だと思います。

他人のコードを読む、コーディングの可動範囲を広めるには、APIを使いこなすということ。
これらを使わないでコーディングするということは、熊を倒すために腕立て伏せから始めて、
強靭な肉体を作り上げていくことと同じで、相当な時間がかかるのと、限界の壁との戦いです。
APIの理解を深めれば、基礎体力をつけたらあらゆる武器を持ち扱い、熊と戦うための
適した武器を使い戦うことができるでしょう。

というわけで、読むか・・・ Core API。毎日の読書にCoreAPI。
それくらいやらないと、なれないよね。。。

Webアプリケーションを作りましょう! その6 データベースとの連携

さて、データベースの環境も整いまして、
データベースのデータを引っ張り出してウェブページに表示したいと思います。

JSPを用意して、DBに接続するコードを書いて、そのあとに情報を引っ張り出す。
という風に一つに処理を書いてもいいのですが、
また新たなJSPを作るときに、また接続のためのコードを頭から書かなければいけません。

逆に、DBに接続するクラスを一つ用意して、
データベースに接続して情報を表示するだけのJSPを用意するようにすれば、
今後JSPをいくつ量産しても、そのDB接続用のクラスを使いまわせばいいので、
コードに無駄がありません。

それでは、最初に、DBに接続するためのクラスを用意します。

1.DBに接続するクラスを用意


Eclipse→新規→クラス→「ConnctorManager」(名前は適当)

package testWeb;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectorManager {
final static String DRIVER = "com.mysql.jdbc.Driver";
final static String URL ="jdbc:mysql://localhost/webapp";
final static String USER ="root";
final static String PASS ="pass";

public static Connection getConnection() throws SQLException{

try{
Class. forName(DRIVER);
} catch (ClassNotFoundException e){
e.printStackTrace();
throw new IllegalStateException("クラスのロードに失敗しました: "+e.getMessage());
}
Connection con = DriverManager. getConnection(URL,USER, PASS);
return con;

}
}


はい、残念なことにいろいろと解説しなければならないですね。

まず、import文で、下記3つを用意しています。
データベースに、url,user,passwordを持たせて接続するために必要とだけ思ってもらえれば。
import java.sql.Connection;
import java.sql.DriverManager; 
import java.sql.SQLException;

そして、try-catch これは例外処理で、tryで囲った部分を試して、
catchで指定したエラーが返ってきたら、catchで囲った内容を実施してね。
といったものです。あらかじめ発生する可能性のある例外処理を記載しておくのです。

なので、難しそうではありますが、ConnctorManagerのgetConnectionが呼ばれたら、
例外でなければ、DriverManager. getConnection( URL, USER, PASS );の値を呼び出したプログラムに
渡してね。といった内容。

つまり、DBの場所と、ユーザー名とパスワードを定義しているだけなんですね。

2.JSPからDBの内容を表示する

JSPを作成します。

accountinfo.jsp

<%@page contentType="text/plain; charset=UTF-8" %>
<%@page import= "testWeb.ConnectorManager,java.sql.*" %>>

<%
try{
Connection con = ConnectorManager.getConnection();
Statement smt = con.createStatement();
ResultSet rs = smt.executeQuery("select * from testaccount");
while(rs.next()){
out.println( "ID:" +rs.getString("USERID" ) +",NAME:"+rs.getString("USERNAME" )+",PASS:" +rs.getString("USERPASS"));
}
smt.close();
con.close();

}catch (SQLException e){
e.printStackTrace();
}
%>


JSPでもAPIのインポートは実施できます。
<%@ page import= "testWeb.ConnectorManager,java.sql.*" %>>行で、
ConnectorManagerクラスと、java.sql.*をインポートしました。

Statement … データベースにSQL文を送信するためのStatementオブジェクトを生成。
ResultSet … 指定されたSQLを実行

この2つの中身がどうやって動いているかまでは理解しなくても、
Connectionで接続して、Statementでオブジェクトを生成して、ResultsetでSQL文を実行。
といった順番で処理を行っているのはわかります。

そして、
while (rs.next()){
out.println( "ID:" +rs.getString("USERID" ) +",NAME:" +rs.getString("USERNAME" )+",PASS:" +rs.getString( "USERPASS"));
にて、テーブルの行一つ一つを最終行まで、ループさせて、そのつどテーブルの中身をプリントしています。

そして、http://localhost/testWeb/accountinfo.jspを実行すると、

このように、select * from testaccount が実行され、
その中身の1行1行がプリントされました。

WCP_06.jpg

このようにjsp(サーブレット)ではテーブルの中身を表示させることができます。
お分かりかと思いますが、
ResultSet rs = smt.executeQuery( "select * from testaccount");
この行のSQL文でINSERT INTOのような追加分を発行すれば、DBのデータを上書きすることができます。
こういったやり取りで、入力出力をDBとの連携させて行うことができ、
その結果をWEBに表示することで動的なページを生成しているわけです。

あとは、この応用で動的なページはどうにでも作れるかと思います。

いったん、Webアプリケーションを作ってみよう!は、休憩しましょうか。
1記事1記事にすごい時間がかかるww



Webアプリケーションを作りましょう! その5 データベース環境の準備

Webアプリケーションといえば、データベース。これは切っても切れない関係です。
Javaからデータベースに接続するためには、Java側としては「JDBC API」というAPIを利用して接続を行います。
そして、接続先のDBも自分で準備します。
好きなものでいいと思いますが、私自身がMySQLを勉強したいので今回はMySQLを利用します。
APIについては、DB環境を作成してから説明しましょう。

1.データベースのインストール

MySQL.com http://www.mysql.com/

MySQL Community Serverから
MySQL Installer 5.6.15をダウンロードします。
OracleIDとパスワードが必要です。
登録して、入力し MySQL Database 5.6.15 ZIP for Windows x86 (64bit) を取得しました。
(この辺の下り、手順が多くて面倒ですよね。)

そしてインストールします。
とりあえず、全てデフォルトでインストールしてしまいます。

そして、Java環境とDBの接続に使用するJDBCドライバも、
同じページでダウンロードできますが、Msi形式のインストーラーでダウンロードしたら、
MySQL ConnectorsからConnector/Jも一緒にインストールしてくれました。

Windows8環境ですが、MySQL Serverは、
C:\ProgramData\MySQL\MySQL Server 5.6に保存されたようです。

2.データベースの作成

Msiファイルでインストールするメリットとして、
MySQL WorkbenchというGUIでデータベースを操作できるツールもインストールしてくれます。

インストール時のアカウントやサーバの情報が既に設定されてインストールされているので、
パスワードの入力のみでサーバにログインできます。

webappというデータベースを作成します。

CREATE DATABASE webapp;
作ったwebappというデータベースに接続します。
use webapp;
テスト用のテーブルを作ります。
CREATE TABLE TESTACCOUNT (
USERID INT PRIMARY KEY,
USERNAME VARCHAR(30),
USERPASS VARCHAR(30)
);

テーブルの中身を入れていきます。

insert into testaccount values (1,'shade','001');
insert into testaccount values (2,'taro','002');
insert into testaccount values (3,'jiro','003');

テーブルの中身を確認します。

SELECT * FROM TESTACCOUNT;

WCP_04.jpg

これでデータベースの作成と、その中身を作成することができました。

3.JDBCドライバの配置

MySQLをダウンロードするときに、一緒にインストールされた
「Connector/J」をEclipseで立ち上げた「TestWeb」プロヘクトのWEB-INF/libディレクトリにコピーします。
デフォルトでインストールしたなら、C:\Program Files (x86)\MySQL\Connector J 5.1.27にあるはずです。
ファイル名は、「mysql-connector-java-5.1.27-bin.jar」です。

WCP_05.jpg

コピーが完了したら、ビルドパスに追加します。Connectorのjaraファイルを右クリックして、
ビルド・パス→ビルド・パスの追加を実行します。

これでデータベース環境を使う準備ができました。
次回、プログラムからデータベースに接続し、jspからデータベースの値を取得してみましょう。
接続の構文は、一個一個理解すれば、そんなには難しくないです。
一回接続のクラスを作ってしまえば、あとはそのクラスを読み込んで使うだけです。

うーん、Java楽しいな。

Webアプリケーションを作りましょう! その4 JSPとサーブレットでWEBアプリ入門!後編


昨日、JSPを体験していただきましたが、JSPは、やはり手軽です。
HTMLと似た感覚で書けますので、ウェブデザイナーが動的ページを作る際に、
JSPでウェブページを作成し、本格的な処理はプログラマがサーブレットに処理を書く
といった分担ができるわけですね。

3.サーブレットを作成する

では、サーブレットのクラスを作成します。
サーブレットはプログラムなので、WEB-INF/srcに配置します。
上記を右クリックし、新規→クラス→名前に「TestServlet」としました。

ここでは詳しく触れませんが、Servletを動かすには、javax.servlet〜のAPIのimport文を記述します。
(しなくてかけないというわけではありません)
という私も、APIに関しては知識が浅く、たいして語れる知識も持ち合わせていません。

またまたぶっ飛びますが、Javaの重要な技術「継承」もひつようになります。
この「TestServlet」クラスは、親クラスとして「HttpServlet」クラスを継承しています。
継承をすると、親が持っている値やメソッドを自分が定義したように使えるようなイメージです。
例えば、人クラスが鳥クラスを継承すると、空を飛べる。みたいなイメージです。
下記に示すdoGetというメソッドは、「HttpServlet」のメソッドを継承しています。

throwsという表現も出てきますね。
ここでは例外が発生する可能性があるものを書いていると思ってください。

恐らくいないと思いますが、このサイトで1からJavaをやってみた人には、
いきなりぶっ飛んだ記述になってますが、お許しください。


package testWeb;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.annotation.WebServlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse;

@WebServlet (name="testsrv" ,urlPatterns= "/testsrv")
public class TestServlet extends HttpServlet{
protected void doGet(HttpServletRequest req,HttpServletResponse resp)
throws IOException,ServletException{
resp.setContentType( "text/html;charset=UTF-8" );
PrintWriter out = resp.getWriter();
String msg = "Servlet動くかなぁ・・・" ;
out.println( "<!DOCTYPE html><html><head><meta charset='UTF-8' />" );
out.println( "<title>Servletで作る動的ページ</title>" );
out.println( "</head><body>" );
out.println(msg);
out.println( "</body></html>" );
}
}

コードの前に書いた補足を読み取れば、何とかコードは読み取れるレベルかな。
タグを打つにも、print文の中に入れなければなりません。
あとは、やたらimportしなければいけませんね。
補足してないところで言うと、
import javax.servlet.annotation.WebServlet;
を使うことで、サーブレットの場所を指定しています。

実行結果は、下記です。

WCP_03.jpg

昨日の記事と比較すればわかるように、ただ単に、ウェブページの内容を表示したいだけなら
JSPで作った方が楽です。逆にコードが多くなるなら、サーブレットのほうが楽ですね。
結局、JSPもサーブレットなのです。JSPは実行されるときに、サーブレットソースに変換されてから
コンパイルされて実行しているのに過ぎないのです。
だから、昔の人はJSPなんてなかったから、全部サーブレットで書いていたんだぞ!なんて話をこの間、聞きました。

この技術を応用すれば、ウェブ上で動的ページを作ることが可能なわけです。
意外と簡単でしょう。ウェブアプリ。
ただこれをセキュリティ面、処理速度、I/O、データストアなど、
商用レベルで設計、構築しなければならないと考えると難しくなるのですね。

次は、データベースと連携させてみましょうか。
これができれば、データの受け渡しができるようになるので、
さらにアプリケーションっぽくなりますね。

Webアプリケーションを作りましょう! その3 JSPとサーブレットでWEBアプリ入門!前編

こう記事を書いていると気づくことがあります。
Webアプリケーションのプログラマを目指して転職したくせに、
結局インフラに配備され、すっごい遠回りしているというのが表面にはありますが、
今のインフラの知識は、開発をするうえで重要なものであることも事実です。

Webアプリケーションは、プログラムだけで完結するようなものではありません。
データベースは、ほぼ必須でしょうし、処理の一部は既存のアプリケーションを
活用することもあるかもしれません。
Tomcatを使うにしても、設定ファイルのどこをどういじると、
プログラムに影響が出るのかなど、挙げればきりがありません。
その辺を理解したプログラマは、やはり強いんじゃないかと思います。
やっぱり、いろいろ吸収したうえで、目指していかないとなぁ。。。

と、前置きが長くなりました。
今日は、jspとサーブレットをTomcat上で動かしていきます。
今まで、JavaEEの前に…シリーズで、クラスファイルをEclipse上で実行してきましたが、
サーブレットやTomcatのようなアプリケーションサーバがあって初めて起動します。
なので、練習するにも環境づくりは必須なのです。

jspとサーブレットって何?ってところから触れると、
この記事がそれだけで終わってしまいますので、簡単に。

サーブレット…HTMLの出力
JSP…HTMLに埋め込み

わかりそうでわからないような書き方ですが、
javaプログラムの中に、print文としてHTMLタグを入力するのがサーブレット。
HTML記述の中に、javaのコードを埋め込むのがjsp。

プログラムよりか、HTMLよりかといった感じで考えるとわかりやすいかもしれません。

1.プロジェクトを立てる

EClipse ファイル→新規→その他→Tomcatプロジェクト

プロジェクト名:testWeb
コンテキスト名:/testWeb

これで、testWebというプロジェクトが作成されて、
http://localhost/testWeb
というアドレスが作成されました。

このプロジェクトは以下のWEB-INF配下にJSPやサーブレットを作成していきます。

2.JSPファイルを作成する

Eclipseのパッケージ・エクスプローラから、testWebプロジェクトを右クリックして、
新規→ファイル→「test.jsp」と入力して完了。

すると、WEB-INFの下にjspファイルが作成されます。

では、jspの中身を書いていきます。

test.jsp

<%@ page contentType= "text/html;charset=UTF-8" %>
<%! String msg ="こんにちは。" ;%>

< html>
< head>
< meta charset= "UTF-8" />
< title> <%= msg %> ようこそ!私のホームページへ!

< body>
<%
for (int i=1;i<4;i++){
out.println(msg + i + "回目のあいさつ
" );
}
%>



今までのJavaEEの前に…で書いた内容+@の内容です。
恐らく、<% %>で囲まれたところがわからないだけで、
他はHTMLのタグと、一般的なJavaのコードだというのがわかると思います。

では、http://localhost/testWeb/test.jspにアクセスします。
Tomcatを立ち上げていなかった場合は、昨日設定したEclipseのメニューバーにある
Tomcatプラグインから起動させてください。

WCP_02.jpg

こういう感じで表示されました。jspが動きました。
ウェブページとプログラムがコラボしています。ちょっとウェブアプリっぽさが出ますね。

まずは、JSPを体験していただきました。
環境さえ構築してしまえば、バンバンJSPが書けるようになります。
そして、サーブレットに続きたいところですが、
ページの容量の関係上、サーブレット編は翌日に持ち越します。

Webアプリケーションを作りましょう! その2 開発環境を整える。

このブログで過去にTomcat入れたことあったかな…。
まぁ、いいや。Tomcatはいろんな入れ方がありますが、とてもシンプルに行きます。
それ以前に、Eclipseはインストールしてある前提ですよ。
入れ方は過去記事を参照ください。

まず、自分のローカル環境でテストが必要なので、そのテスト用のTomcatですね。

1.ローカル環境にTomcatをインストールする

Apache Tomcat http://tomcat.apache.org/

こちらのサイドバーから、Download→Tomcat7.0と選択し、ローカル環境へダウンロード!自分の環境のファイルをダウンロードしてくださいね。
(8.0でもよいですが、このあと紹介するプラグインが対応していません)
私の場合は、64-bit Windows zip (pgp, md5)こちらですね。
ダウンロードが終わったら解凍して、任意の場所へ配置してください。

Tomcatの開始プログラムは、ダウンロードしてきたフォルダのbinフォルダにあります「start.bat」です。これをダブルクリックをすればTomcatが起動します。

コマンドプロンプトが開いて、

25-Jan-2014 18:19:09.776 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-8080"]
25-Jan-2014 18:19:09.776 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-apr-8009"]
25-Jan-2014 18:19:09.776 INFO [main] org.apache.catalina.startup.Catalina.start
Server startup in 1253 ms


こんな画面が開いたらTomcatが起動しています。

確認としては、

http://localhost:8080/

をたたいて、Tomcatの画面が見れれば成功です。

もし、startup.batを実行しても、コマンドプロンプトが瞬時に閉じてしまって
なにもおきない場合は、失敗です。
恐らく、環境変数の設定ができていません。

システム変数に、
変数名 JAVA_HOME
変数地 JDKの場所(デフォルトだと、C:\Program files\Java\jdk○○とかかな)

そして既存のシステム変数のPathにも、
%JAVA_HOME%\bin;
これを追記してあげてください。前のPathを消さないように注意してください。

これで、コマンドプロンプトで、
path
set JAVA_HOME
などをたたいても登録した変数が表示されなければ再起動。

これでいけなければ、apache_tomcatのフォルダ自体のアクセス権を疑ってください。

トラブルシューティングまで書いてたら、文字数が膨れ上がってきた・・・。
今日はまだまだ行きますからね。



2.EclipseにTomcatプラグインをインストール

プラグインはなくても、何とかなった気がしますが、
あると便利だと評判の、「Sysdeo Tomcat」を入れてみます。
これがあると、Eclipse上でTomcatの起動・停止・デバッグが行えるそうです。

Eclipseのプラグインはヘルプ→Eclipseマーケットプレイスからも入れられますが、
最新版が表示されなかったので、URLからダウンロードします。

Sysdeo Tomcatプラグイン
http://www.eclipsetotale.com/tomcatPlugin.html


画面をちょっと下に下げると、「Download」という画面が出てきます。
tomcatPluginV33.zip
こちらをダウンロードしました。そして解凍をしたら、EclipseのDropins
というフォルダに放り込んでください。

そして、Eclipseを起動すると、下の画像のように
Tomcatの起動・停止ができるメニューが追加されました。うーん、シンプル。

WCP_01.jpg

そしたら、プラグインの設定をしてあげましょう。
Eclipseのウィンドウ→設定からTomcatというメニューを選択します。

Tomcatのバージョンを、ダウンロードしてきたバージョンに。
(管理人は、8をダウンロードしてきてしまったため、バージョン7までしかないので、
7で登録をしています)

Tomcatホームを、Tomcatを保存したフォルダに設定。

とりあえず、これでTomcatプロジェクトというプロジェクトを使って開発できる環境が整いました。

お疲れ様でした。今日はここまで。
Webアプリケーションですので、サーバ上で動かします。
なので、最終的には、ローカル環境以外にサーバにTomcatをインストールして
アプリケーションをその上に配備するという作業があります。
なので、自分でWebアプリケーションを動作させるには、サーバ知識0ではいけないのですね。

そういう意味では、AWSは開発者にも、割とわかりやすい環境で、
ネットワーク知識や、Linuxサーバの立ち上げなどの作業は、省いてサーバを立てられるので、合わせてAWSも覚えていければ、今後楽なのかもしれません。

これは、まさに私のことをさしていて、サーバ知識は多少ありますが、
オンプレミス環境で一から立ち上げしたことはないので、AWSを通して
サーバ構築ってどういう感じで行われるのかを実感しています。

私は、ソースコードが読めるインフラエンジニアではない。
インフラ環境を組めるプラグラマーになるのです!

え?今はどっちかって? 前者よりですね・・・。

Webアプリケーションを作りましょう! その1 え?もう脱線なの?

JavaEEの前に復習をしてみるシリーズを中断しまして(また戻ります)
Webアプリケーション開発についても並行して進めていきます。

Webアプリとして、Todoリストだったり、掲示板やショッピングサイトなどが
これにあたり、ブラウザを通してサーバとDBの処理が絡んでデータを返す
といった仕組みです。

私は、これをメインでやりたくて、今の会社に入社しましたが、
Webアプリを乗せて動かすサーバサイドの仕事を主にさせられています。
勿論、この辺の知識があるのとないのでは、雲泥の差…。
DBやインフラを理解せずして、設計はもちろんコーディングも難しくなります。
そこに向けて、LinuxやOSS-DBを学習してきた。CCNAもね。

しかし、今インフラメインでWEBに携わっていますが、OSS-DBのSILVERを持っていても
DBが違えば、何の役にも立たなかった…ということ。
MySQLやOracleを使っていたら、障害対応とか、すごいパニクってしまう。
というか、PostgreSQLだったとしてもそうだ。全然役立ててないな…。
MySQLも資格試験あるんですよ。でも、ねぇ…。といった感じでしょうか。
MySQLは恐らく、衰退する一方だと思います。この業界が詳しい人は理由はわかると思います。それでも、PostgreSQL!PostgreSQL!とはなっていない気もします・・・。
どうしたもんですかね。

さて、Webアプリケーションは、

ブラウザ ←→ アプリケーションサーバ ←→ データストア

という関係で、リクエストとレスポンスで成り立っております。


具体的には、

アプリケーションサーバは、Tomcatやglassfishなど。
データベースは、MySQL,PostgreSQL,Oracleなどでしょうか。

この環境があって、初めて動くのでサーバサイド、データベースの知識もあるにこしたことはないです。プロジェクト単位で動いているので、役割がしっかり分かれていて、
サーブレットだけかければいいという場合もあると思います。
しかし、パーツパーツによっては、画面側なのか、DBの処理を主に扱うのか、
または他サーバサイドの技術に近いのかで、持つべき知識は複雑に絡み合ってきます。

大丈夫です。今あげたところを一通り独学で触ってきた私も、
実務になれば、全然わかりません。お手上げです。(大丈夫じゃないだろw)


とにかく、勉強もいいけど練習も必須ということで、
簡単なWebアプリケーションも作っていきましょう。

おいおい、JavaEEの前に・・・シリーズ途中だろ!とお思いのあなた。
大丈夫です。技術的には、そこまでぶっ飛んできません。
今まで覚えた知識に、TOMCATとサーブレットをちょこっと絡める程度から始めます。
複雑になってきたら、戻りましょう!!

では、前置きが長くなったので、また次回に続きましょう。

久々のセミナー参加 Google Cloud PlatformでJavaコーディング

はじめて渋谷のヒカリエのオフィスフロアに侵入しまして、セミナーに参加してきました。
Google Cloud PlatformのGoogle Apps Engineを使ってWebアプリケーションを
ライブコーディングするといった内容でした。

参加者の皆さんはベテランのプログラマーでしたので、
ライブコーディングで打たれるJavaに抵抗はなかったかもしれませんが、
私にはレベルが少し高かった。

ローカル環境と実装のサーバ環境とほぼ差異なくテストしながら実装できる
というのが売りなようで、1時間ちょっとで、Todoリストの様なウェブアプリケーションを完成させました。

AWSと、Google Cloud Platformの比較などのようなお話もいただき、
AWSだけでも手いっぱいの自分は、いろんなクラウド環境に目を向けるのも大事だなと思いました。

正直、Google Apps Engineの内容は殆どついていけませんでしたが、
ライブコーディングがJavaだったので、サーブレットのコーディングや、Junitなどでクラスを
立ち上げながらJUnitで随時テストをしながらコーディングしていくさまは美しく、
あぁ、こういう風にコードを書けたらなんて素晴らしいのだろう。
といった、皆様とは違った価値観をこの時間に見出すことができました。

懇親会の内容

1時間ほど懇親会に参加し、数名と名刺交換をしてきました。
経営者や10年以上のJavaの開発経験のある方とお話することができ、
大変勉強になりました。短い時間でしたが、以下の事を話してきました。

・インフラエンジニアの需要

やはり、不足していると。そして育てるのが困難と言う事。
インフラも構築レベルであればできるいるが、設計ができる人間が特に不足している

・インフラエンジニアは、プログラマーにシフト可能か

上記でふれたとおり、インフラエンジニアは不足しており、開発でのダブルスキルであれば、
インフラに引っ張られてしまっても仕方ないとの検討。

他の方とお話しした時は、独学でプログラマーに転身するなら、自分でプロジェクトを作って
提出するくらいの勢いがないと難しいとのこと。
Javaではなく、今の時代であればChefやfluentd、RedmineなどがRubyで書かれていることから
構築時点でプログラムをガシガシ書き、Rubyできるよ!というアピールをする。
プログラムも出来てインフラもできる!という証明を示すのにはRubyを学習するのもいいかもしれないとのことでした。

まとめ

やはり、自分の知識や経験は浅い。浅すぎる。ずっとこれをやってきたという人は、その分野が深いのはもちろん。
それに付随する周囲の環境の知識もしっかりある。自分の知識は広いから、深いものがなくていいなんて話はない。
やはり、一本勝負できる武器を一本ないし、2,3本持っていないとこのIT時代を活躍することはできないと感じました。

なんか、ひさびさに中身のある記事を書いた気がするなw

リニューアル作業終わったみたいです

ファンブログがリニューアルされました。

見た目的には何も変わっていないのですが、PCから更新するのはUIがかなり便利になりました。
というか、今までがひどすぎた・・・。
スマホからは同じように更新できないので、そこはつらい。
ワードプレスには、まだまだ及ばなそうですね。

そして、携帯やスマホにも対応しました。
デザインがとてもシンプルになり、コンテンツもかなり制限されました。
これは良かったか悪かったか難しいな。

アクセス数がリニューアルを挟んで、100くらい減ってしまいました。
リニューアルだけが原因ではなくて、Javaのコードをモリモリ載せてしまったので、
評価の低い記事を無駄に増やしてしまったかもしれませんね。

あと、アクセス解析が復活したのですが、
なんか、今、忍者でとっているアクセス数と比べて3倍くらい多いんですけど、
どっちが正しかったのかわからない。
アクセス数とページビューのカウントの仕方が違うみたい。。。うーん。
忍者は広告付いてくるからできれば外しちゃいたいのですが、迷いますな。

コメントはなぜか、8/1のはキープされました。
てか、それ以前のものどこに行った・・・。リニューアル前からなくなっていたけど。
こういうのは困るな。

もともとブログは移転するつもりだったけれど、移転って、SEO的には良いことないからな。
JavaやAWSとかを別ブログに移転したりして分解していこうかなとも思っています。

ちょっとごちゃまぜすぎるもんな。自分のスキルの表れではあるけれど。

というわけで、2日くらい見れませんでしたが、またよろしくお願いします。
    >>次へ
×

この広告は30日以上新しい記事の更新がないブログに表示されております。