SlideShare a Scribd company logo
1 of 22
Download to read offline
新⼈人ディレクター
システムスキルアップ
プログラム
第7回「プログラミング⾔言語」
T ware 品川
第七回:プログラミング⾔言語         12/08/08



今⽇日の内容

›    プログラミング⾔言語とは                                ›    Ajaxとは
      ›    概要                                          ›    概要
      ›    Webシステムでのポイント                               ›    動作
      ›    よく使⽤用される⾔言語
                                                  ›    ⾔言語選定の留留意事項
›    サーバとの連動                                           ›    PerlとPHP
      ›    CGI                                         ›    確認が必要な事項
      ›    Apacheのモジュール  等
                                                  ›    スマートフォンアプリ
                                                        ›    SDKとは




All Rights Reserved. Copyright (C) 2012, T ware                                 1
第七回:プログラミング⾔言語   12/08/08



コンピュータのプログラミング

›    コンピュータが実⾏行行しているプログラム                                 B

      ›    機械語で書かれたプログラムを理理解して実⾏行行できる
      ›    機械語
            ›  CPUの最⾼高速で実⾏行行できる
            ›  CPUによってそれぞれバラバラで互換性はない
            ›  ⼈人間には理理解困難
            ›  例例:
               5E 23 56 F3!
              LD E,(HL)!
              INC HL!
              LD D,(HL)!
              DI




All Rights Reserved. Copyright (C) 2012, T ware                           2
第七回:プログラミング⾔言語   12/08/08



プログラミング⾔言語とは

›    プログラミング⾔言語                            B

      ›    コンピュータが理理解できる機械語の代わりに、⼈人間が理理解しや
            すい記述でコンピュータに指⽰示をするために開発された

      つまり…

            ›  プログラミング⾔言語で書かれたプログラムは、CPUが直接
              理理解できない

            ›  プログラミング⾔言語を、機械語に翻訳することが必要


      ›    PHPの例例
            echo 'Hello World!’;!
All Rights Reserved. Copyright (C) 2012, T ware                           3
第七回:プログラミング⾔言語   12/08/08



プログラミング⾔言語とは

›    プログラミング⾔言語(別の側⾯面)                              B

      ›    機械語で記述していないので、CPU毎に違う必要が無い

      つまり

            ›  ⼈人間が理理解できる1つの表現で、いろんなCPU(サーバ)
             に対応したプログラムが書けるようになる

            ›  機械語への翻訳をするものは、CPUの種類毎に必要




All Rights Reserved. Copyright (C) 2012, T ware                           4
第七回:プログラミング⾔言語         12/08/08



プログラミング⾔言語とは

›    概念念のまとめ                   B


            機械語
          (CPU(A)⽤用)
                                                       ○             CPU
           5E 23 56 F3…!                                             (A)
                                                       ×  
                                       CPU(A)⽤用の機械語は                 CPU
                                       CPU(B)では実⾏行行できない
                                                                     (B)


       プログラミング⾔言語                                    翻訳      ○       CPU
      echo 'Hello World!’;!                       (CPU(A)⽤用) 機械語     (A)


                                                     翻訳      ○       CPU
                                                  (CPU(B)⽤用) 機械語     (B)

All Rights Reserved. Copyright (C) 2012, T ware                                   5
第七回:プログラミング⾔言語   12/08/08



プログラミング⾔言語とは

›    Webシステムでのポイント                               B

      ›    多様なサーバ環境で同じように動作すること
            ›  同じように動作しないと…
               ›  サーバやOSの種別毎に開発/確認環境が必要
                  ›  有償の開発環境を都度度⽤用意する
                  ›  細かいバージョンに適合させる
      ›    設置が容易易であること
            ›  設置が困難な例例
               ›  サーバやOSの種別毎に設置作業が異異なる場合
                  ›  設置位置や設定ファイルの要否などが多様
               ›  設置のためにサーバの特別な権限が必要
                  ›  レンタルサーバは利利⽤用できない


All Rights Reserved. Copyright (C) 2012, T ware                           6
第七回:プログラミング⾔言語           12/08/08



 プログラミング⾔言語とは

 ›    プログラミング⾔言語からの翻訳の3つのタイプ                                            B

 No.           タイプ                                      概  要

  1      コンパイラ型                 あらかじめ機械語に翻訳しておき、処理理の実⾏行行は機械語で⾏行行う

  2      インタプリタ型                処理理の実⾏行行時に逐次翻訳を⾏行行う
                                特定の機械語ではなく、中間的な⾔言語にあらかじめ翻訳。処理理
  3      VM型
                                の実⾏行行は中間語から機械語に変換して⾏行行う

               事前処理理                  機械語
                                                   設置          処理理実⾏行行

    1.  コンパイラ型             翻訳

               2.  インタプリタ型
                                                                翻訳
                                      中間語
プログラミ
ング⾔言語で
作成された
           3.  VM型         翻訳                                   翻訳
プログラム
 All Rights Reserved. Copyright (C) 2012, T ware                                    7
第七回:プログラミング⾔言語   12/08/08



プログラミング⾔言語とは

›    Webシステムと翻訳のタイプ                               B

      ›    コンパイラ型
            ›  サーバ毎に事前翻訳が必要なため、ほとんど使⽤用されない


      ›    インタプリタ型
            ›  サーバに翻訳機能が搭載されていれば、事前の翻訳は不不要
                なため広く利利⽤用されている

      ›    VM型
            ›  事前の翻訳機能はサーバに依存せず共通
            ›  サーバに実⾏行行時の翻訳機能が搭載されていれば動作するた
                め、広く利利⽤用されている


All Rights Reserved. Copyright (C) 2012, T ware                           8
第七回:プログラミング⾔言語   12/08/08



    Webアプリケーションで使⽤用する⾔言語

      ›    よく使⽤用されるプログラミング⾔言語                              B


No.         名  称        種  別                               特  徴
                                  Webアプリに特化したスクリプト⾔言語。平易易な⽂文法かつ
                        サーバ
1       PHP                       HTMLソースと⼀一体化して記述可能なため、初⼼心者でも利利⽤用し
                        サイド
                                  やすい。多くのレンタルサーバで利利⽤用可能。
                                  強⼒力力な⽂文字列列処理理機能を持つスクリプト⾔言語。多彩なライブ
2       Perl              ↑       ラリが⽤用意されており、Webアプリ開発も効率率率よく⾏行行える。
                                  多くのレンタルサーバで利利⽤用可能。
                                  オブジェクト指向のプログラミング⾔言語。プログラムはJava
3       Java              ↑       仮想マシン上で動作する。⼩小型機器から⼤大規模システムまで
                                  広い範囲で利利⽤用されている
                        クライ       ウェブブラウザ等のクライアントサイドに実装されたスクリ
4       JavaScript      アント       プト⾔言語。ページの⼀一部を動的に書き換える事によりUIの⾼高
                        サイド       度度化を図ったり、サーバとの⾮非同期通信による連動ができる



    All Rights Reserved. Copyright (C) 2012, T ware                           9
第七回:プログラミング⾔言語     12/08/08



 Webアプリケーションで使⽤用する⾔言語

  ›    各⾔言語の翻訳タイプ                          B



              事前処理理                                設置         処理理実⾏行行
                                     機械語

   1.  コンパイラ型             翻訳



              2.  インタプリタ型
                                                               翻訳
                   PHP,  Perl
プログラミ            (JavaScript)
ング⾔言語で
作成された                                中間語
プログラム
           3.  VM型        翻訳                                   翻訳

                Java


 All Rights Reserved. Copyright (C) 2012, T ware                              10
第七回:プログラミング⾔言語               12/08/08



Webサーバとの連動

›    CGIとは(ウィキペディアから抜粋)                                   B

      ›    CGI:Common Gateway Interface
      ›    サーバプログラムから他のプログラムを呼び出し、その処理理結
            果をクライアントに送信するためのサーバプログラムと外部プ
            ログラムとの連携法の取り決め

                                       Web
                                                              外部           フォーム、掲⽰示板、
                                      サーバ           CGI                    Blog、カート  等
                                                            プログラム
                                     (Apache)

                                                          Perl, PHP, C, Shell…	
›    CGIの問題点                B

      ›    外部プログラムをプロセスとして起動するため、OSに負荷が
            かかる
      ›    アクセス集中時に注意が必要
All Rights Reserved. Copyright (C) 2012, T ware                                      11
第七回:プログラミング⾔言語     12/08/08



Webサーバとの連動  

›    Apacheのモジュールとして動作                               B

      ›    外部プログラムとして動作していたものを、Apacheの⼀一部と
            して動作させる⽅方法

                                             Webサーバ(Apache)

                                                     プログラム
                                                   (フォーム、掲⽰示板、
                                                   Blog、カート  等)

                                                      PHP, Perl…	


      ›    起動済のApache内で動作するため、プログラム動作時にOS
            に負担をかけない



All Rights Reserved. Copyright (C) 2012, T ware                            12
第七回:プログラミング⾔言語      12/08/08



Webサーバとの連動  

›    Applicationサーバ利利⽤用                     B

      ›    Webシステムを、Webサーバ、Applicationサーバ、DBサー
            バに分散させた構造
      ›    システムの変更更や更更新、増強などが容易易で、柔軟性が⾼高いシス
            テム構成
            ›  各サーバの分散化による⾼高性能化
            ›  サーバのリプレース  等



                                    Web           Applicationサーバ      DB
                                    サーバ                              サーバ
                                                     プログラム
                                                   (フォーム、掲⽰示板、
                                                   Blog、カート  等)
                                                            Java	


All Rights Reserved. Copyright (C) 2012, T ware                             13
第七回:プログラミング⾔言語   12/08/08



Ajax

›    Ajaxとは(ウィキペディアより)                               B

      ›    Ajax:Asynchronous JavaScript + XML
      ›    ウェブブラウザ内で⾮非同期通信とインターフェイスの構築など
            を⾏行行う技術の総称
      ›    画⾯面遷移を伴わない動的なWebアプリケーションの製作が実
            現可能になる

›    Ajax フレームワーク(ウィキペディアより)                                  W

      ›    Ajaxのもつブラウザ依存性などの問題を軽減
            ›  Google Web Toolkit
            ›  Prototype JavaScript Framework
            ›  jQuery
            ›  Spry

All Rights Reserved. Copyright (C) 2012, T ware                          14
第七回:プログラミング⾔言語       12/08/08



 Webサーバの動き                                            B




                         クライアント                                      Webサーバ             CGIプログラム

                                              フォーム画⾯面のURL送信

お問合せ                                                                      フォーム画⾯面	
  
 お名前
                                                                          HTMLと関連ファイル送信
 内容


           送信                                                             CGIプログラム呼出し
                                              送信ボタンをクリック
                                                                                                      W
お問合せ
 お名前     ○○○  ○○○                                                                          エラーチェック	
  
 内容      ○○○○○○	
                                                                          確認画⾯面出⼒力力
         ○○○○○○○○

    戻る             送信                                                     CGIプログラム呼出し
                                              送信ボタンをクリック
                                                                                                      W
お問合せ
                                                                                           データ登録	
  
 ありがとうございました。                                                                              完了了画⾯面出⼒力力

 All	
  Rights	
  Reserved.	
  Copyright	
  (C)	
  2012,	
  T ware                               15	
  
第七回:プログラミング⾔言語        12/08/08



     Webサーバの動き                                            B




                                     クライアント                                   Webサーバ             CGIプログラム

                                                          商品⼀一覧画⾯面のURL送信
                                                                                      商品⼀一覧画⾯面	
  
商品⼀一覧                                                                                 HTMLと関連ファイル送信
  商品名     仕様        価格
☑ ○○○○    □□□□□□  ¥ 2,500                                                            CGIプログラム呼出し
□ ○○○○    □□□□□□  ¥ 600
☑ ○○○○    □□□□□□  ¥ 1,200                                 商品情報リクエスト
□ ○○○○    □□□□□□  ¥ 950                                                  ⾮非同期の通信
□ ○○○○    □□□□□□  ¥ 6,300
                                                                                                   商品情報出⼒力力
                                               商品⼀一覧表⽰示⽤用HTMLの⽣生成	
  
                                                 ・データ表⽰示⽤用	
                       HTMLの動的な⽣生成
                                                 ・登録⽤用フォームへ追加
               登録
                                                                                     CGIプログラム呼出し
                                                          登録ボタンをクリック

                                                                                                   データ登録	
  
       商品を登録しました。
                                                                                                   完了了画⾯面出⼒力力

     All	
  Rights	
  Reserved.	
  Copyright	
  (C)	
  2012,	
  T ware                                   16	
  
第七回:プログラミング⾔言語         12/08/08



⾔言語選定の留留意事項

›    PerlとPHP         B

            バージョン間の          追加モジュール              レンタルサーバで
                                                              Webサーバとの連携
              互換性              の必要性                 の利利⽤用
 Perl           ○                   △                 ○                CGI

PHP             △                   △                 ○            Module,  CGI

      ›    Perl
            ›  ほぼどんなサーバでも利利⽤用可能で、古いコードであっても
                動作する可能性が⾼高い
      ›    PHP
            ›  多くのレンタルサーバで利利⽤用可能。古いコードを再利利⽤用す
                る場合、修正または再開発の可能性がある



All Rights Reserved. Copyright (C) 2012, T ware                                   17
第七回:プログラミング⾔言語   12/08/08



⾔言語選定の留留意事項

›    確認項⽬目           B

      ›    想定される動作環境の情報
            ›  想定されるサーバ環境の構成
            ›  想定される⾔言語とサーバ類の名称とバージョン情報
               ›  Javaの場合
                  ›  開発者のアサインができるか確認が必要
                  ›  サーバ環境が複雑な可能性があるため情報⼊入⼿手が必要
                  ›  アプリケーションサーバなど開発のための環境も必要
      ›    既存コードの再利利⽤用可能性と既存コード動作環境の情報
            ›  既存のサーバ環境の構成
            ›  既存の⾔言語とサーバ類の名称とバージョン情報
               ›  前提となるモジュールがあればその情報も
      ›    パフォーマンスに関してはサーバ環境含めヒヤリングが必要
All Rights Reserved. Copyright (C) 2012, T ware                          18
第七回:プログラミング⾔言語   12/08/08



スマートフォンアプリ開発

›    使⽤用⾔言語          W

      ›    iPhone:Objective-C
      ›    Android:Java
›    SDKとは           B

      ›    SDK:Software Development Kit
      ›    iPhone, Androidそれぞれに対応したSDKがある
      ›    アプリケーションを作成するためにソフトウェア技術者が使⽤用
            する開発ツールのセット
             ›  ソース作成のためのエディタ
             ›  アプリケーション作成のための翻訳ソフト類
             ›  動作確認のためのデバッガ、シミュレータ
             ›  開発のためのドキュメント


All Rights Reserved. Copyright (C) 2012, T ware                          19
第七回:プログラミング⾔言語        12/08/08



これだけは憶えよう

›    プログラミング⾔言語とは                                ›    Ajaxとは
      ›    コンピュータに指⽰示するた                               ›    サーバとの間でページ遷移
            め、⼈人間に理理解しやすい⾔言                                   を伴わないで通信すること
            葉葉にしたもの                                     ›    表⽰示中のHTMLを動的に変更更
      ›    Webシステムでは、多様な                                     することができる
            サーバで同じように動作す                          ›    ⾔言語選定の留留意事項
            ることと、設置が容易易なこ
                                                        ›    古いコードを利利⽤用する場合
            とが重要
                                                              に注意が必要
›    サーバとの連動                                           ›    動作環境を確認してエンジ
      ›    CGIやモジュールとして動                                     ニアに伝える
            作する⽅方法がある
                                                  ›    スマートフォンアプリ
      ›    CGIはOSに負担をかける
                                                        ›    プラットフォーム毎にSDK
                                                              と呼ばれる環境がある
All Rights Reserved. Copyright (C) 2012, T ware                               20
第七回:プログラミング⾔言語   12/08/08




                            ご質問、お問合せお寄せ下さい	
  

                                               toru@tam-­‐tam.co.jp	
  
                                               support@i-­‐tware.com	
  




All	
  Rights	
  Reserved.	
  Copyright	
  (C)	
  2012,	
  T ware                          21	
  

More Related Content

Similar to TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」

C++ AMPを使ってみよう
C++ AMPを使ってみようC++ AMPを使ってみよう
C++ AMPを使ってみようOsamu Masutani
 
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)parrotstudio
 
PHP Version Up と AWS への移行
PHP Version Up と AWS への移行PHP Version Up と AWS への移行
PHP Version Up と AWS への移行gree_tech
 
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。ひさし App
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiNaruto TAKAHASHI
 
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Monaca
 
「マルチデバイスの荒海にこぎ出す新人エンジニアのためのソフトウェア開発の心得」
 「マルチデバイスの荒海にこぎ出す新人エンジニアのためのソフトウェア開発の心得」  「マルチデバイスの荒海にこぎ出す新人エンジニアのためのソフトウェア開発の心得」
「マルチデバイスの荒海にこぎ出す新人エンジニアのためのソフトウェア開発の心得」 Embarcadero Technologies
 
Cat tool overview for CEDEC2011 Draft
Cat tool overview for CEDEC2011 DraftCat tool overview for CEDEC2011 Draft
Cat tool overview for CEDEC2011 DraftSelf Employed
 
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconDeNA
 
2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日nukaemon
 
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発hmimura_embarcadero
 
FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術dena_study
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGUehara Junji
 
【CodeCamp】JavaScriptの教科書サンプル
【CodeCamp】JavaScriptの教科書サンプル【CodeCamp】JavaScriptの教科書サンプル
【CodeCamp】JavaScriptの教科書サンプルcodecampJP
 
オールアバウトにおける技術への取り組み
オールアバウトにおける技術への取り組みオールアバウトにおける技術への取り組み
オールアバウトにおける技術への取り組みKazuto Ohara
 
エンジニアという職業について
エンジニアという職業についてエンジニアという職業について
エンジニアという職業についてHisatoshi Kikumoto
 
Introduction to web development 1
Introduction to web development 1Introduction to web development 1
Introduction to web development 1hideaki honda
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版DIVE INTO CODE Corp.
 

Similar to TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」 (20)

C++ AMPを使ってみよう
C++ AMPを使ってみようC++ AMPを使ってみよう
C++ AMPを使ってみよう
 
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
 
PHP Version Up と AWS への移行
PHP Version Up と AWS への移行PHP Version Up と AWS への移行
PHP Version Up と AWS への移行
 
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
 
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)
 
「マルチデバイスの荒海にこぎ出す新人エンジニアのためのソフトウェア開発の心得」
 「マルチデバイスの荒海にこぎ出す新人エンジニアのためのソフトウェア開発の心得」  「マルチデバイスの荒海にこぎ出す新人エンジニアのためのソフトウェア開発の心得」
「マルチデバイスの荒海にこぎ出す新人エンジニアのためのソフトウェア開発の心得」
 
Cat tool overview for CEDEC2011 Draft
Cat tool overview for CEDEC2011 DraftCat tool overview for CEDEC2011 Draft
Cat tool overview for CEDEC2011 Draft
 
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
 
2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日
 
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
 
ZendStudioのご紹介
ZendStudioのご紹介ZendStudioのご紹介
ZendStudioのご紹介
 
FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
 
【CodeCamp】JavaScriptの教科書サンプル
【CodeCamp】JavaScriptの教科書サンプル【CodeCamp】JavaScriptの教科書サンプル
【CodeCamp】JavaScriptの教科書サンプル
 
オールアバウトにおける技術への取り組み
オールアバウトにおける技術への取り組みオールアバウトにおける技術への取り組み
オールアバウトにおける技術への取り組み
 
エンジニアという職業について
エンジニアという職業についてエンジニアという職業について
エンジニアという職業について
 
Nishimotz osc2011oct-v2
Nishimotz osc2011oct-v2Nishimotz osc2011oct-v2
Nishimotz osc2011oct-v2
 
Introduction to web development 1
Introduction to web development 1Introduction to web development 1
Introduction to web development 1
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 

TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」

  • 2. 第七回:プログラミング⾔言語 12/08/08 今⽇日の内容 ›  プログラミング⾔言語とは ›  Ajaxとは ›  概要 ›  概要 ›  Webシステムでのポイント ›  動作 ›  よく使⽤用される⾔言語 ›  ⾔言語選定の留留意事項 ›  サーバとの連動 ›  PerlとPHP ›  CGI ›  確認が必要な事項 ›  Apacheのモジュール  等 ›  スマートフォンアプリ ›  SDKとは All Rights Reserved. Copyright (C) 2012, T ware 1
  • 3. 第七回:プログラミング⾔言語 12/08/08 コンピュータのプログラミング ›  コンピュータが実⾏行行しているプログラム B ›  機械語で書かれたプログラムを理理解して実⾏行行できる ›  機械語 ›  CPUの最⾼高速で実⾏行行できる ›  CPUによってそれぞれバラバラで互換性はない ›  ⼈人間には理理解困難 ›  例例: 5E 23 56 F3! LD E,(HL)! INC HL! LD D,(HL)! DI All Rights Reserved. Copyright (C) 2012, T ware 2
  • 4. 第七回:プログラミング⾔言語 12/08/08 プログラミング⾔言語とは ›  プログラミング⾔言語 B ›  コンピュータが理理解できる機械語の代わりに、⼈人間が理理解しや すい記述でコンピュータに指⽰示をするために開発された つまり… ›  プログラミング⾔言語で書かれたプログラムは、CPUが直接 理理解できない ›  プログラミング⾔言語を、機械語に翻訳することが必要 ›  PHPの例例 echo 'Hello World!’;! All Rights Reserved. Copyright (C) 2012, T ware 3
  • 5. 第七回:プログラミング⾔言語 12/08/08 プログラミング⾔言語とは ›  プログラミング⾔言語(別の側⾯面) B ›  機械語で記述していないので、CPU毎に違う必要が無い つまり ›  ⼈人間が理理解できる1つの表現で、いろんなCPU(サーバ) に対応したプログラムが書けるようになる ›  機械語への翻訳をするものは、CPUの種類毎に必要 All Rights Reserved. Copyright (C) 2012, T ware 4
  • 6. 第七回:プログラミング⾔言語 12/08/08 プログラミング⾔言語とは ›  概念念のまとめ B 機械語 (CPU(A)⽤用) ○ CPU 5E 23 56 F3…! (A) × CPU(A)⽤用の機械語は CPU CPU(B)では実⾏行行できない (B) プログラミング⾔言語 翻訳 ○ CPU echo 'Hello World!’;! (CPU(A)⽤用) 機械語 (A) 翻訳 ○ CPU (CPU(B)⽤用) 機械語 (B) All Rights Reserved. Copyright (C) 2012, T ware 5
  • 7. 第七回:プログラミング⾔言語 12/08/08 プログラミング⾔言語とは ›  Webシステムでのポイント B ›  多様なサーバ環境で同じように動作すること ›  同じように動作しないと… ›  サーバやOSの種別毎に開発/確認環境が必要 ›  有償の開発環境を都度度⽤用意する ›  細かいバージョンに適合させる ›  設置が容易易であること ›  設置が困難な例例 ›  サーバやOSの種別毎に設置作業が異異なる場合 ›  設置位置や設定ファイルの要否などが多様 ›  設置のためにサーバの特別な権限が必要 ›  レンタルサーバは利利⽤用できない All Rights Reserved. Copyright (C) 2012, T ware 6
  • 8. 第七回:プログラミング⾔言語 12/08/08 プログラミング⾔言語とは ›  プログラミング⾔言語からの翻訳の3つのタイプ B No. タイプ 概  要 1 コンパイラ型 あらかじめ機械語に翻訳しておき、処理理の実⾏行行は機械語で⾏行行う 2 インタプリタ型 処理理の実⾏行行時に逐次翻訳を⾏行行う 特定の機械語ではなく、中間的な⾔言語にあらかじめ翻訳。処理理 3 VM型 の実⾏行行は中間語から機械語に変換して⾏行行う 事前処理理 機械語 設置 処理理実⾏行行 1.  コンパイラ型 翻訳 2.  インタプリタ型 翻訳 中間語 プログラミ ング⾔言語で 作成された 3.  VM型 翻訳 翻訳 プログラム All Rights Reserved. Copyright (C) 2012, T ware 7
  • 9. 第七回:プログラミング⾔言語 12/08/08 プログラミング⾔言語とは ›  Webシステムと翻訳のタイプ B ›  コンパイラ型 ›  サーバ毎に事前翻訳が必要なため、ほとんど使⽤用されない ›  インタプリタ型 ›  サーバに翻訳機能が搭載されていれば、事前の翻訳は不不要 なため広く利利⽤用されている ›  VM型 ›  事前の翻訳機能はサーバに依存せず共通 ›  サーバに実⾏行行時の翻訳機能が搭載されていれば動作するた め、広く利利⽤用されている All Rights Reserved. Copyright (C) 2012, T ware 8
  • 10. 第七回:プログラミング⾔言語 12/08/08 Webアプリケーションで使⽤用する⾔言語 ›  よく使⽤用されるプログラミング⾔言語 B No. 名  称 種  別 特  徴 Webアプリに特化したスクリプト⾔言語。平易易な⽂文法かつ サーバ 1 PHP HTMLソースと⼀一体化して記述可能なため、初⼼心者でも利利⽤用し サイド やすい。多くのレンタルサーバで利利⽤用可能。 強⼒力力な⽂文字列列処理理機能を持つスクリプト⾔言語。多彩なライブ 2 Perl ↑ ラリが⽤用意されており、Webアプリ開発も効率率率よく⾏行行える。 多くのレンタルサーバで利利⽤用可能。 オブジェクト指向のプログラミング⾔言語。プログラムはJava 3 Java ↑ 仮想マシン上で動作する。⼩小型機器から⼤大規模システムまで 広い範囲で利利⽤用されている クライ ウェブブラウザ等のクライアントサイドに実装されたスクリ 4 JavaScript アント プト⾔言語。ページの⼀一部を動的に書き換える事によりUIの⾼高 サイド 度度化を図ったり、サーバとの⾮非同期通信による連動ができる All Rights Reserved. Copyright (C) 2012, T ware 9
  • 11. 第七回:プログラミング⾔言語 12/08/08 Webアプリケーションで使⽤用する⾔言語 ›  各⾔言語の翻訳タイプ B 事前処理理 設置 処理理実⾏行行 機械語 1.  コンパイラ型 翻訳 2.  インタプリタ型 翻訳 PHP,  Perl プログラミ (JavaScript) ング⾔言語で 作成された 中間語 プログラム 3.  VM型 翻訳 翻訳 Java All Rights Reserved. Copyright (C) 2012, T ware 10
  • 12. 第七回:プログラミング⾔言語 12/08/08 Webサーバとの連動 ›  CGIとは(ウィキペディアから抜粋) B ›  CGI:Common Gateway Interface ›  サーバプログラムから他のプログラムを呼び出し、その処理理結 果をクライアントに送信するためのサーバプログラムと外部プ ログラムとの連携法の取り決め Web 外部 フォーム、掲⽰示板、 サーバ CGI Blog、カート  等 プログラム (Apache) Perl, PHP, C, Shell… ›  CGIの問題点 B ›  外部プログラムをプロセスとして起動するため、OSに負荷が かかる ›  アクセス集中時に注意が必要 All Rights Reserved. Copyright (C) 2012, T ware 11
  • 13. 第七回:プログラミング⾔言語 12/08/08 Webサーバとの連動   ›  Apacheのモジュールとして動作 B ›  外部プログラムとして動作していたものを、Apacheの⼀一部と して動作させる⽅方法 Webサーバ(Apache) プログラム (フォーム、掲⽰示板、 Blog、カート  等) PHP, Perl… ›  起動済のApache内で動作するため、プログラム動作時にOS に負担をかけない All Rights Reserved. Copyright (C) 2012, T ware 12
  • 14. 第七回:プログラミング⾔言語 12/08/08 Webサーバとの連動   ›  Applicationサーバ利利⽤用 B ›  Webシステムを、Webサーバ、Applicationサーバ、DBサー バに分散させた構造 ›  システムの変更更や更更新、増強などが容易易で、柔軟性が⾼高いシス テム構成 ›  各サーバの分散化による⾼高性能化 ›  サーバのリプレース  等 Web Applicationサーバ DB サーバ サーバ プログラム (フォーム、掲⽰示板、 Blog、カート  等) Java All Rights Reserved. Copyright (C) 2012, T ware 13
  • 15. 第七回:プログラミング⾔言語 12/08/08 Ajax ›  Ajaxとは(ウィキペディアより) B ›  Ajax:Asynchronous JavaScript + XML ›  ウェブブラウザ内で⾮非同期通信とインターフェイスの構築など を⾏行行う技術の総称 ›  画⾯面遷移を伴わない動的なWebアプリケーションの製作が実 現可能になる ›  Ajax フレームワーク(ウィキペディアより) W ›  Ajaxのもつブラウザ依存性などの問題を軽減 ›  Google Web Toolkit ›  Prototype JavaScript Framework ›  jQuery ›  Spry All Rights Reserved. Copyright (C) 2012, T ware 14
  • 16. 第七回:プログラミング⾔言語 12/08/08 Webサーバの動き B クライアント Webサーバ CGIプログラム フォーム画⾯面のURL送信 お問合せ フォーム画⾯面   お名前 HTMLと関連ファイル送信 内容 送信 CGIプログラム呼出し 送信ボタンをクリック W お問合せ お名前 ○○○  ○○○ エラーチェック   内容 ○○○○○○   確認画⾯面出⼒力力 ○○○○○○○○ 戻る 送信 CGIプログラム呼出し 送信ボタンをクリック W お問合せ データ登録   ありがとうございました。 完了了画⾯面出⼒力力 All  Rights  Reserved.  Copyright  (C)  2012,  T ware 15  
  • 17. 第七回:プログラミング⾔言語 12/08/08 Webサーバの動き B クライアント Webサーバ CGIプログラム 商品⼀一覧画⾯面のURL送信 商品⼀一覧画⾯面   商品⼀一覧 HTMLと関連ファイル送信 商品名 仕様 価格 ☑ ○○○○    □□□□□□  ¥ 2,500 CGIプログラム呼出し □ ○○○○    □□□□□□  ¥ 600 ☑ ○○○○    □□□□□□  ¥ 1,200 商品情報リクエスト □ ○○○○    □□□□□□  ¥ 950 ⾮非同期の通信 □ ○○○○    □□□□□□  ¥ 6,300 商品情報出⼒力力 商品⼀一覧表⽰示⽤用HTMLの⽣生成     ・データ表⽰示⽤用   HTMLの動的な⽣生成   ・登録⽤用フォームへ追加 登録 CGIプログラム呼出し 登録ボタンをクリック データ登録   商品を登録しました。 完了了画⾯面出⼒力力 All  Rights  Reserved.  Copyright  (C)  2012,  T ware 16  
  • 18. 第七回:プログラミング⾔言語 12/08/08 ⾔言語選定の留留意事項 ›  PerlとPHP B バージョン間の 追加モジュール レンタルサーバで Webサーバとの連携 互換性 の必要性 の利利⽤用 Perl ○ △ ○ CGI PHP △ △ ○ Module,  CGI ›  Perl ›  ほぼどんなサーバでも利利⽤用可能で、古いコードであっても 動作する可能性が⾼高い ›  PHP ›  多くのレンタルサーバで利利⽤用可能。古いコードを再利利⽤用す る場合、修正または再開発の可能性がある All Rights Reserved. Copyright (C) 2012, T ware 17
  • 19. 第七回:プログラミング⾔言語 12/08/08 ⾔言語選定の留留意事項 ›  確認項⽬目 B ›  想定される動作環境の情報 ›  想定されるサーバ環境の構成 ›  想定される⾔言語とサーバ類の名称とバージョン情報 ›  Javaの場合 ›  開発者のアサインができるか確認が必要 ›  サーバ環境が複雑な可能性があるため情報⼊入⼿手が必要 ›  アプリケーションサーバなど開発のための環境も必要 ›  既存コードの再利利⽤用可能性と既存コード動作環境の情報 ›  既存のサーバ環境の構成 ›  既存の⾔言語とサーバ類の名称とバージョン情報 ›  前提となるモジュールがあればその情報も ›  パフォーマンスに関してはサーバ環境含めヒヤリングが必要 All Rights Reserved. Copyright (C) 2012, T ware 18
  • 20. 第七回:プログラミング⾔言語 12/08/08 スマートフォンアプリ開発 ›  使⽤用⾔言語 W ›  iPhone:Objective-C ›  Android:Java ›  SDKとは B ›  SDK:Software Development Kit ›  iPhone, Androidそれぞれに対応したSDKがある ›  アプリケーションを作成するためにソフトウェア技術者が使⽤用 する開発ツールのセット ›  ソース作成のためのエディタ ›  アプリケーション作成のための翻訳ソフト類 ›  動作確認のためのデバッガ、シミュレータ ›  開発のためのドキュメント All Rights Reserved. Copyright (C) 2012, T ware 19
  • 21. 第七回:プログラミング⾔言語 12/08/08 これだけは憶えよう ›  プログラミング⾔言語とは ›  Ajaxとは ›  コンピュータに指⽰示するた ›  サーバとの間でページ遷移 め、⼈人間に理理解しやすい⾔言 を伴わないで通信すること 葉葉にしたもの ›  表⽰示中のHTMLを動的に変更更 ›  Webシステムでは、多様な することができる サーバで同じように動作す ›  ⾔言語選定の留留意事項 ることと、設置が容易易なこ ›  古いコードを利利⽤用する場合 とが重要 に注意が必要 ›  サーバとの連動 ›  動作環境を確認してエンジ ›  CGIやモジュールとして動 ニアに伝える 作する⽅方法がある ›  スマートフォンアプリ ›  CGIはOSに負担をかける ›  プラットフォーム毎にSDK と呼ばれる環境がある All Rights Reserved. Copyright (C) 2012, T ware 20
  • 22. 第七回:プログラミング⾔言語 12/08/08 ご質問、お問合せお寄せ下さい   toru@tam-­‐tam.co.jp   support@i-­‐tware.com   All  Rights  Reserved.  Copyright  (C)  2012,  T ware 21