SlideShare a Scribd company logo
1 of 71
Download to read offline
超高速アプリ開発法
Ruby On Railsを使ってみよう
智恵の和 x月月例会
2020.x.xx
佐々木IT粗物店
デモ・動機
• 50歳ごろ、現場から解放されてバックエンドへ。すると業者か
らの売り込みの電話が。時にはお墓はいかがとか、アパート経
営しませんか、なども。これを撃退し、ギャフンと言わせてや
ろう・・・
• それには・・・電話着信記録が要るな
• 記録したいのは、
• 会社名
• 電話してきた担当者名
• 要件メモ
• 着信日時・・・これは自動設定されて、後で修正できるといいね
• 「よし、Railsで作ろうっ」
デモ・操作・・・実はこれだけ
• rails new sellingcall
• HD上の適当なところで実行。これがフォルダ名になる
• rails generate scaffold call ⇒
company:string person:string memo:text incoming:datetime
• 着信記録なので情報名をcallとして、各項目の英名:属性の羅列する
• rails db:migrate
• データベースの生成
• rails server –b 0.0.0.0
• Webサーバの起動
デモ・操作
• rails new sellingcall
• HD上の適当なところでコマンドプロンプトを開いて叩く
• ここに新たにこの名前でアプリケーションを作る、と考えるとよい
• 名前はフォルダ名となるので、OSのファイル名制約を受ける
• 英名がよい
• すると何やらごそごそやっている
• 落ち着いたらそのフォルダへ。コマンドプロンプトで
cd sellingcall
• いろんなフォルダやファイルができている
デモ・操作
• rails generate scaffold call ⇒(改行しないで続けて打つ)
company:string person:string memo:text incoming:datetime
• railsに続くgenerateは生成せよ、scaffoldは足場、なので
callの足場を生成せよ、ということ
• 属性stringは短めの文字列・・・HTMLのinputタグ相当
• 属性textは長めの文字列・・・HTMLのtextareaタグ相当
• 着信日時は、年月日時分秒まで欲しいので、datetime
デモ・操作
• rails db:migrate
• migrateは移行する、ということ
• rails generate scaffold で生成されたデータベース構築スクリプトに従って、
データベースを作る
• 正しくはまず、db:createするのだがローカルPC上では省略可
• 以前はrakeコマンドだった
• きっとmakeコマンドのRails版だったと思われる
デモ・操作
• rails server –b 0.0.0.0
• Webサーバを起動する
• 自機で使うだけなら、-b 0.0.0.0は不要
• -b 0.0.0.0はIPアドレスのバインディングを指定するもの
0.0.0.0 はネットワーク上のどこからでもアクセス可能という指定
デモ・ブラウザから接続してみる
• ブラウザを立ち上げて、
• http://ホスト名またはIPアドレス:3000/calls
• ホスト名は、自機からアクセスするならlocalhost
• ネットワーク上の別端末などからアクセスするときは、
• 名前を解決してくれるならその名前で
• 解決できないときは、立ち上げているPCのIPアドレスで
• 3000はRailsサーバーのデフォルトのポート番号
• callsは、生成したモデルの複数形・・・実は生成したデータベースで
のテーブル名
• 今、このLANに参加している人はアクセス可能
デモ・ブラウザを立ち上げて
デモ・Railsサーバと接続
デモ・他の端末から接続してみる
• URLをQRコードで・・・ただしオンサイト開催のときだけ
デモ・何件か追加してみる
• callsで見えているのは、まだ空の一覧表
• 何件か、追加してみる
• 匠ビジネスの萩本さん
• 環境ステーションの大東さん
デモ・一件目、追加中
デモ・その確認
デモ・一覧に戻る
デモ・二件、追加してみた
デモ・二件目を修正する(時刻を)
デモ・一覧を再表示
デモ・たった3行でアプリができた
• 最後はサーバ起動操作なので、操作はほんとに3行
• できること
• 一覧表示 read(all)
• 新規追加 create
• 照会 read(one)
• 編集 update
• 削除 delete
• いわゆるCRUD・・・クラッド・・・ができている
• データベース内にテーブルもできている
• 同梱されているのはSQLite
• ビュアーで見てみましょう
デモ・SQLite用のビュアーを立ち上げる
デモ・callsテーブルを指定して
デモ・callsの内容を閲覧する
デモ・終了
自己紹介
自己紹介
• 略歴
• 天文少年→ラジオ少年→電波少年
• メインライン
• 海上保安庁…1972.7-1975.9
• 庁内テレタイプ通信網…リレー(クロスバー)交換をコンピュータ(時分割)交換に
• (株)ジャステック…1975.10-2017.11
• 制御系、金融系、業務基盤系…アセンブラ、FORTRAN,COBOL,PL/I,C++,Java
• 教育担当…Java,XML,UML,CORBA,OOD/OOP,Hadoop,Spark,NoSQL
• コンプライアンス、情報セキュリティ、生産性向上
• プログラミング教育講師…2016.4-
• 佐々木IT粗物店…2019.1-
自己紹介
• サイドライン
• EJBコンソーシアム、XMLコンソーシアム
• 価値開発研究会←要求開発アライアンス←ビジネスモデリング研究会
• ここで萩本さんに接近
• マルレク
• 丸山不二夫先生…事務所支援
• JJUG:日本Javaユーザ会
• デブ〇〇
• Developers Summit
• Dev Love
• 鹿角きりたんぽFM…郷里のコミュニティFM局の無線従事者を受嘱
• 築地大沼会/築地大沼後援会
• 智恵の和
さて、Webアプリケーション、とは?!
話せば長い・・・ので
•MVC
•O-Rマッピング
についてだけ、とりあげます
• 三層クライアントサーバが標準的になった
• 単独PC内でもこの構成
• 各層はネットワーク
(PC内イントラネット)で
繋がっている
• 後で複数PCに棲み分かれるこ
とになっても、アプリケー
ションには影響がない(接続
するネットワークアドレス
を変えるだけ)
• データストアはここに置かず、
インターネット経由で接続
というのもあり
• Webアプリケーションの基本は、
リクエストに対して回答(レスポンス)して終わる
• リクエストがやってく
ると、受け付けたビジ
ネス層のプログラムが
必要があればデータデー
タストアまでアクセス
して結果を回答する。
例えば
• ログイン認証
• そのカテゴリの商品一覧
を取り出して回答
• そんなにこみいったことは
そもそもできない
• HTTPプロトコルには
GET/POST/PUT/DELETE
しかない
• しかし一回のリクエスト/レスポンスで完結だと・・・
毎回、私は誰だとか、
さっき選んだ商品はこ
れだ、このカードで払
いたいなどを間違いな
く入れ直さなくてはな
らない。
• そこで通常、
セッションと呼ばれる
仕掛けをサーバ側で用
意し、クッキーをブラ
ウザと受け渡して連携
させる。こうして複数
の連続したリクエスト/
レスポンスを一つの、
論理的な取引として組
み立てている。
• どんな業務も、リクエスト/レスポンスを使った流れに分割し、
これをセッションで繋ぐようにしてしまえば、
• お買い物サイト
• 銀行のオンライン取引(ファーム・バンキング:=>死語)
• マイナペイ、などお役所の業務
みな同じ仕組みになるので、その仕組みをWebサーバに持たせれば、
個々のプログラマは、自身の業務の実装に専念できる
MVC:モデル・ビュー・コントローラ
• アプリケーション
プログラムはMVCパターン
で作られるのが主流
• ここでControllerは、
リクエストを受取り
担当の業務プログラム
を呼び出して、その結果
として指定された画面
と表示すべきデータを
送り出す役目を果たす
• そして業務ロジックはModelとViewで分担する
• ビジネスロジック
• 間違うとたいへん(ex.カートに入っている商品の税込額の合計に送料を加えた金額を、
指定されたクレジット会社に請求する)
• ころころ変わることはあまりない
• 画面表示
• 見た目が大事
• 会社の方針や最近の流行を受けて、よく変わる
• けっこう煩雑
• 分離しないで作ってしまうと・・・
• 見た目だけを変更するはずが、ビジネスロジックを書き間違えたり
• ビジネスロジックが画面編集に紛れているので、修正し漏れたり
します
• MVCでないと、こんなとき困ります
• すみません、今度の月末はうるう秒を実施しま~す
• あのぉ、アナログ表示もしたいんですがぁ
MVCな時計とそうでない時計
• ということで、
Webアプリケーション
プログラムは、
三層クライアント・
サーバ方式の上で、
MVCパターンで構成
されている
※MVCには諸説あります
• 疎結合にして、分業も
できるように
O-R(オー・アール)マッピング
• さて「データが先かロジックが先か?」
a. その業務やサービスを実現する手順がまずある。そ
のためにデータをどう持つか、が導き出され行くも
のである
b. いやいや業務やサービスを超えて、人が取り扱う情
報には構造と関係がある。処理手順はそれに従うも
のである。
これが、OOD/P vs DCA
• ほとんど宗教論争なので、深入りしないことに・・・
• オブジェクト指向では、ちかしいデータだけ数個保有し、その取扱い
に責任を持つロジックをセットにし、これをオブジェクトと呼ぶ。
• しかしオブジェクトはメモリ上にあるものなので、コンピュータの電
気が切れると消滅してしまう。
• それなら消えないようにデータベースに仕舞っておくとことにして(永
続化)、今、メモリにないオブジェクトを使うときは、データベースか
ら取り出してくれて、変更したら保存しておいてくれるとありがたい。
• それがなんで「O-R」なの
• O:オブジェクト
• R:リレーショナル・・・リレーショナル・データベース
を繋ぐから
• オブジェクトのフィールドとテーブルカラムの相互変換
• RはRDBなので、結局はSQLを使って読み書きするしかない
• 方式としては
a. 直接(文字列として)SQL命令を発行する
b. XMLやアノテーション(専用言語)を使って、SQLの生成方法を指示す
る
c. オブジェクトの項目を参照したり、それに代入があれば、
• 裏側で、適切に取り出したり、書きだしたりしてくれる
よしっ、
じゃあO-Rマッピングして、
MVCパターンで作ろうっ
・・・では、
•O-Rマッパーは何にするのか決める
•MVCを維持して作っていくための枠組みをど
うするのか決める
Java言語での開発では
• MVCはフレームワークを利用する
• フレームワーク、というのはOSとアプリケーションの間にいて、
• アプリがまだなくても、基本的な機能を持っている。空回りしてくれる
• アプリは1から全部を作る必要はなくて、フレームワークから呼ばれるように作
る
• Javaのサーブレットという技術は、Controllerの役目を果たしてくれる
• サーブレットを継承したプログラムを書けば、そこでModelもViewも書けるが
• SpringMVC Frameworkを使うのが主流
• MVCに分割して配置し、そのルール通りに作ることが前提となっている
• O-Rマッパー
• Spring自身が持っているもの・・・SQLライクな文法で書く、など
• MyBatis・・・マッピングをXMLで与える
• オールインワンはないの?・・・あります
• Spring Boot(2014)
でも・・・
• オールインワン・フレームワークの火付け役と言えば・・・
ルビー・オン・レイルズ~
Ruby on Rails
• オールインワン・フレームワークの火付け役(2005)
• 言語はRuby
• まつもとひろゆき氏が開発した
• 純粋オブジェクト指向言語(すべてがオブジェクト。提供クラスも拡張可能)
• 読みやすい。楽しく、役に立つ言語
• Ruby on Rails
• MVC構成のWebアプリケーション・フレームワーク
• D.H.ハンソン氏(蘭)が開発した
• Active Recordによる、O-Rマッピング
• 二つの原則
• DRY: Don’t Repeat Yourself 同じことを繰り返さない
• CoC: Convention over Configuration 設定より規約
最初の二行で
• rails new sellingcall
• rails generate scaffold call ⇒
company:string person:string memo:text incoming:datetime
こんなフォルダと、
プログラム群ができています
データベースを生成して、
サーバーを起動して、
ブラウザからリクエストを
飛ばすと、
コントローラが受け付けて、
モデルを使って情報を集め、
ビューにはめ込むデータを用意し
てRailsに戻ると
もう少し詳しく
プログラムをみると
一覧表がリクエスト
されると、
indexメソッドが
呼ばれます
(その仕掛はのちほど)
Callレコードを
全件読んで、
ビューに渡す
@callsに代入し
て、戻る
•実はモデルCallにはallどころか、まったくメソッド
がない。
• < ApplicationRecord というのは、継承している、とい
うこと。つまり継承元で、基本的なメソッドはすべて
用意されているので、それが呼び出される
ビューのために、テンプレートも基本形が用意されている。
Railsはコントローラから受け取ったデータを、
このテンプ
レートに埋め
込んでブラウ
ザに送り出し
ている
• リクエストと
処理するメソッドの
対応は/config/routes
に置くのだが、これも
標準のものがある
• 新規追加では2つのリクエ
スト/レスポンスで構成さ
れる
①new_callリクエストで、
GETでnewメソッドが呼ばれ、
そのレスポンスとして追加
画面が表示される。
②ユーザが入力してボタン
を押すと、POSTでcallsリ
クエストが作られて、create
メソッドが呼び出されて
新規追加処理が完結する。
s
• クラス図で
描くと・・・
index
xxxx xxxx xx s e d
xxxx xxxx xx s e d
xxxx xxxx xx s e d
new
もう少しこまかく
def index
end
def show
end
def new
end
def create
end showへ
show
xxxx ______
xxxx ____....
xxxx __........
edit
new
xxxx □□□
xxxx □□....
xxxx □........
create
コントローラ
(つづき)
def edit
end
def update
end showへ
def destroy
end indexへ
edit
xxxx ■■■
xxxx ■■....
xxxx ■........
update
コントローラ
Rails、すごいっ!!
何か質問はありますか?
• データベースにPostgreSQLとかMySQLを使えるか?
• もちろん使えます
• プログラムを変更する必要はなく、プラグイン関係をま
とめて指示するGemfileで指定します
• Ruby言語やRailsをもっと学ばなくてよいのか?
• 必要になったら、調べればよいでしょう。楽しく役に立
つ言語、なので(^_-) 例えば、
• 年月日時分秒の表記を変えたい
• 電話記録後の経過を記録するのに、「コメント」情報を追加
したい
何か質問はありますか?・・・つづき
• フレームワークって難しいのでは?
• はい、やはり見通しが悪いし、
• その癖に従わねばなりません
• インターネットにあげて使えるのか?
• もちろんできます。今ならサーバを立ち上げるより、
• Heroku(ヘロク)などの、PaaS: Platform As A Serviceに
プログラムをpushして使うの一般的です・・・・やって
みましょう
■智恵の和、定例会用の伝言板
• 準備するのは、
• 機能のポンチ絵
• 簡単なユースケース図
• クラス図
機能のポンチ絵
簡単なユースケース図
クラス図
• ごそごそごそ
• うん、PC上で動いた。では、
• これをHerokuに
• デフォルトは無料
• 立ち上がりが少し遅い程度で、他には制約なし
• しかもなんと、HTTPS接続(^_^)v
• Herokuコンソールでアプリを作る
• chieden
• Herokuアプリに PostgreSQLを追加
• heroku addons:add heroku-postgresql --app chieden
• 接続
• heroku git:remote --app chieden
• アプリのロード・・・PC上でもgitで管理している必要あり
• git push heroku master
• DB生成
• heroku run rake db:migrate --app chieden
• 時刻を日本標準時でに
• heroku config:add TZ=Asia/Tokyo --app chieden
動いています
https://chieden.herokuapp.com
Ruby, Railsを勉強したい人は…
http://techacademy.jp/magazine/7058 が親切
• Ruby
• Ruby本体はRubyInstallerがお手軽
• ダウンロードしてインストールするだけ
• 開発キット、Development Kitも必要
• Rubyディレクトリ内にdevkitフォルダを作って
• ダウンロードしたzipを展開し
>ruby dk.rb init
>ruby dk.rb install
>gem install rails –no-ri –no-rdoc
• Rails
>gem install rails –v n.n ・・・利用するバージョンを指定
ありがとうございました
• 次回があれば、テーマは
• Herokuにバンバン、アプリを上げよう
• 「どこでもボタン+」はどうやって動いているのか
• 新製品「みまもリスク(仮称)」登場
• RubyもPerlも磨けば光る

More Related Content

What's hot

Scalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive ProgrammingScalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive ProgrammingTomoharu ASAMI
 
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介しくみ製作所
 
Infrastructure as codeのススメ
Infrastructure as codeのススメInfrastructure as codeのススメ
Infrastructure as codeのススメkanji htmt
 
イルカになりたい(TokyoR #63 LT)
イルカになりたい(TokyoR #63 LT)イルカになりたい(TokyoR #63 LT)
イルカになりたい(TokyoR #63 LT)cancolle
 
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ クラウド時代のモデリングを考える
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ  クラウド時代のモデリングを考えるオブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ  クラウド時代のモデリングを考える
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ クラウド時代のモデリングを考えるTomoharu ASAMI
 
Real World PHP in pixiv
Real World PHP in pixivReal World PHP in pixiv
Real World PHP in pixivKenta USAMI
 

What's hot (6)

Scalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive ProgrammingScalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive Programming
 
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
 
Infrastructure as codeのススメ
Infrastructure as codeのススメInfrastructure as codeのススメ
Infrastructure as codeのススメ
 
イルカになりたい(TokyoR #63 LT)
イルカになりたい(TokyoR #63 LT)イルカになりたい(TokyoR #63 LT)
イルカになりたい(TokyoR #63 LT)
 
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ クラウド時代のモデリングを考える
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ  クラウド時代のモデリングを考えるオブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ  クラウド時代のモデリングを考える
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ クラウド時代のモデリングを考える
 
Real World PHP in pixiv
Real World PHP in pixivReal World PHP in pixiv
Real World PHP in pixiv
 

Similar to 超高速アプリ開発法

Xamarinとmvvm crossとf#と
Xamarinとmvvm crossとf#とXamarinとmvvm crossとf#と
Xamarinとmvvm crossとf#とMasahiko Miyasaka
 
090821 Ruby Sapporo Night Ruby Cocoa
090821 Ruby Sapporo Night Ruby Cocoa090821 Ruby Sapporo Night Ruby Cocoa
090821 Ruby Sapporo Night Ruby CocoaTomoki Maeda
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回龍一 田中
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺Yusuke Wada
 
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについてNobukazu Hanada
 
TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介ao27
 
動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集terurou
 
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在TomomitsuKusaba
 
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発takuma mori
 
Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作terurou
 
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話simotin13 Miyazaki
 
Web制作勉強会 #2
Web制作勉強会 #2Web制作勉強会 #2
Web制作勉強会 #2Moto Yan
 
Java script関数コールの追跡
Java script関数コールの追跡Java script関数コールの追跡
Java script関数コールの追跡Keiichi Kobayashi
 
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Tokuhiro Matsuno
 
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternAtsushi Kambara
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Tokuhiro Matsuno
 

Similar to 超高速アプリ開発法 (20)

Xamarinとmvvm crossとf#と
Xamarinとmvvm crossとf#とXamarinとmvvm crossとf#と
Xamarinとmvvm crossとf#と
 
Tech fun rails_workshop
Tech fun rails_workshopTech fun rails_workshop
Tech fun rails_workshop
 
090821 Ruby Sapporo Night Ruby Cocoa
090821 Ruby Sapporo Night Ruby Cocoa090821 Ruby Sapporo Night Ruby Cocoa
090821 Ruby Sapporo Night Ruby Cocoa
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回
 
Groovyコンファレンス
GroovyコンファレンスGroovyコンファレンス
Groovyコンファレンス
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
 
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
 
TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介
 
動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集
 
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
 
Metro#1
Metro#1Metro#1
Metro#1
 
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
 
Ppl
PplPpl
Ppl
 
Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作
 
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話
 
Web制作勉強会 #2
Web制作勉強会 #2Web制作勉強会 #2
Web制作勉強会 #2
 
Java script関数コールの追跡
Java script関数コールの追跡Java script関数コールの追跡
Java script関数コールの追跡
 
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
 
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD Pattern
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 

More from Keiichi SASAKI

見守リスクはどうやって動いているか?
見守リスクはどうやって動いているか?見守リスクはどうやって動いているか?
見守リスクはどうやって動いているか?Keiichi SASAKI
 
「見守リスク」を使ってみよう
「見守リスク」を使ってみよう「見守リスク」を使ってみよう
「見守リスク」を使ってみようKeiichi SASAKI
 
コンピュータにできないこと
コンピュータにできないことコンピュータにできないこと
コンピュータにできないことKeiichi SASAKI
 
DDJJ 1996.9-1999休刊まで
DDJJ 1996.9-1999休刊までDDJJ 1996.9-1999休刊まで
DDJJ 1996.9-1999休刊までKeiichi SASAKI
 
どこでもボタン+利用ガイド
どこでもボタン+利用ガイドどこでもボタン+利用ガイド
どこでもボタン+利用ガイドKeiichi SASAKI
 
「どこでもボタン」を使ってみよう
「どこでもボタン」を使ってみよう「どこでもボタン」を使ってみよう
「どこでもボタン」を使ってみようKeiichi SASAKI
 
「火吹山の魔法使い」を astah*で
「火吹山の魔法使い」を astah*で「火吹山の魔法使い」を astah*で
「火吹山の魔法使い」を astah*でKeiichi SASAKI
 
Anonymous Inner Programmer
Anonymous Inner ProgrammerAnonymous Inner Programmer
Anonymous Inner ProgrammerKeiichi SASAKI
 
Live in a_periferal_world
Live in a_periferal_worldLive in a_periferal_world
Live in a_periferal_worldKeiichi SASAKI
 

More from Keiichi SASAKI (13)

IFTTTで遊ぼう
IFTTTで遊ぼうIFTTTで遊ぼう
IFTTTで遊ぼう
 
見守リスクはどうやって動いているか?
見守リスクはどうやって動いているか?見守リスクはどうやって動いているか?
見守リスクはどうやって動いているか?
 
「見守リスク」を使ってみよう
「見守リスク」を使ってみよう「見守リスク」を使ってみよう
「見守リスク」を使ってみよう
 
コンピュータにできないこと
コンピュータにできないことコンピュータにできないこと
コンピュータにできないこと
 
DDJJ 1996.9-1999休刊まで
DDJJ 1996.9-1999休刊までDDJJ 1996.9-1999休刊まで
DDJJ 1996.9-1999休刊まで
 
どこでもボタン+利用ガイド
どこでもボタン+利用ガイドどこでもボタン+利用ガイド
どこでもボタン+利用ガイド
 
「どこでもボタン」を使ってみよう
「どこでもボタン」を使ってみよう「どこでもボタン」を使ってみよう
「どこでもボタン」を使ってみよう
 
「火吹山の魔法使い」を astah*で
「火吹山の魔法使い」を astah*で「火吹山の魔法使い」を astah*で
「火吹山の魔法使い」を astah*で
 
私のIT遍歴
私のIT遍歴私のIT遍歴
私のIT遍歴
 
Anonymous Inner Programmer
Anonymous Inner ProgrammerAnonymous Inner Programmer
Anonymous Inner Programmer
 
Live in a_periferal_world
Live in a_periferal_worldLive in a_periferal_world
Live in a_periferal_world
 
Openthology256pub
Openthology256pubOpenthology256pub
Openthology256pub
 
Hanawa256pub
Hanawa256pubHanawa256pub
Hanawa256pub
 

超高速アプリ開発法