Skip to content

2015/11/15(日) Javaでwebアプリケーション入門 資料です

Notifications You must be signed in to change notification settings

javajok/simple-api-client-document

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 

Repository files navigation

2015/11/15 Java女子部 説明資料

はじめに(目安:10分)

今回のワークショップの前提説明

今日作ってもらうもの

  • 下記機能を持つJava製Webアプリケーション
    • Twitter風APIからツイート(投稿)を取得して表示
    • Twitter風APIに文章をツイート(投稿)

今日のプロジェクトの構成


simple-api-sampleについて

  • Twitter「風」API
    • APIについては後ほど説明

【口頭での補足】

  • TwitterAPIつかうの手間なので用意しました

環境

  • Java
  • SpringBoot
    • Java製フレームワーク

フレームワークとは

  • アプリケーションに共通する基本的なプログラム構造や機能セットを実装したプログラム
  • アプリケーションの骨組み。土台。
  • 複雑なシステムを一から作るのは大変なので、フレームワークを利用して開発する。
  • 様々なフレームワークが存在する

【口頭での補足】

  • 今日使ったのはSpringBootだけど、他にもいろいろあるよ
  • SpringBootは新しくて手軽なので、今回はこれを採用しました

Webアプリケーションについて (目安:20分)

Webアプリケーションの基礎知識について説明

サーバー/クライアントモデル

  • サーバーは提供する側。クライアントは提供される側。
  • Webアプリの世界にかぎらず、サーバー/クライアントという言葉はつかう
  • 今日説明するのは、あくまでWebアプリでのサーバーとクライアント

クライアント

  • サーバーに必要な情報を要求し、返却された情報を利用する側
  • WebアプリでいうところのクライアントはWebブラウザ
  • Webブラウザはサーバーから返却された情報を解析、表示する
    • HTML
    • CSS
    • JavaScript

【口頭での補足】

  • スマホアプリならスマホ端末がクライアント
  • JavaScriptとJavaは違うものなんやで

サーバー

  • クライアントの要求に応じて、情報を返却する側
  • サーバー機能を提供するサーバーソフトを使用
    • サーバーソフトは色々な種類がある
      • Apache、nginxなどなど色々種類がある
      • Javaの場合、TomcatやJetty
  • サーバーマシンは特殊なPCがいるわけではない
    • 自前でサーバー立てるとめっちゃたいへんやし今はあんまりみんなやらない

【口頭での補足】

  • 今日はSpringBootに内蔵されているTomcatを使用している
  • みんなのPCもサーバーにできるんやで
    • 時間がありそうなら、発表に使っているマシンでサーバー立ち上げて、そこにみんなでアクセスしてもらう
      • 今はそこそこ安くで借りれる
      • 今日のsimple-api-sampleはHerokuってとこに置いていて、ただで使ってる。

サーバーとクライアントのやり取り

HTTPプロトコル

  • サーバー・クライアント間の通信の取り決め。
    • リクエスト・レスポンス
    • HTTPメソッド

リクエストとレスポンス

  • リクエスト
    • クライアントの要求
  • レスポンス
    • リクエストを元にサーバーで生成し返却される情報
    • ステータスコード
  • 図を作る

【口頭での補足】

  • ターミナルでcurl叩いて、リクエストとレスポンスをみせる

HTTPメソッド

  • GET
    • リソースの取得
  • POST
    • リソースの作成など
  • 他にもPUT、DELETEなどのメソッドが存在する(全8種)

  • なぜメソッドが複数あるのか
  • GETとPOSTの使い分け

URI(URL)

  • URIとは
    • Uniform Resorce Identifier
    • リソースを統一的に識別するID
  • URLはURIの一種
    • Uniform Resorce Location
    • リソースの場所(Location)を示すためのURIがURL

【口頭での補足】

  • URL=URIと思ってもらって構わない

ワークショップで作ってもらったプロジェクト補足説明

Webアプリの基礎を説明したうえで、今日のプロジェクトがどうなっているか

  • HelloWorld! + 名前表示
    • ソースを見ながらざっと、処理の流れを説明

テンプレートエンジン

  • 複雑なレスポンス(HTML)をJavaプログラム中に記載すると読みづらい・・・
  • HTMLファイルにプログラム(Java)コードを埋め込むように記述できる機能を提供してくれる
  • 今日使ったのはThymeleaf

API

  • APIとは
    • Application Programming Interface
    • 外部のプログラムから機能を利用するためのインターフェイス
    • 特にRESTという設計思想に基づいたAPIは「REST API」と呼ばれる

【口頭での補足】

  • RESTは今風。なうい。
  • curlでAPIを叩いてみせる?
  • TwitterのAPI仕様書を開いてみせてもよさそう

Javaについて (目安:10分)

処理の流れをわかってもらったところで、もう少しコア(Java)な部分を説明

Javaとは

サーバーを起動した際に何が起きているか

コンパイル

  • ソースコードをコンピュータが実行できる機械語のプログラムに変換すること
  • Javaの場合、JVMが実行できるバイトコードのクラス・ファイルに変換される
  • Javaのコンパイラはjavac
    • javacコマンドでコンパイルできる
    • IDEのrunボタンを押した時に裏で実行してくれている
  • コンパイルするにはJDKが必要

【口頭での補足】

  • javacコマンド実行してみせる

JDK

JVM

  • Java仮想マシン
  • Javaで開発されたアプリケーションはJVM上で実行される
  • 各OS版のJVMが存在する。OS差異はJVMにより吸収されるため、同じプログラムで各OS上で実行することができる。
    • Write once, run anywhere

【口頭での補足】

  • 今回、runすると内蔵のTomcatが起動して、その上でコンパイルされたプログラムが動く
    • 今日はローカルで動かしてもらっている
    • これを公開したいなら、どっかのサーバーにデプロイすればいい

(おまけ)ビルドツール

参考書籍

  • Webを支える技術

About

2015/11/15(日) Javaでwebアプリケーション入門 資料です

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published