狠狠撸
Submit Search
ゲットーの斜め上をゆく奥别产アプリケーションフレームワークの开発
?
2 likes
?
1,312 views
E
emasaka
Follow
1 of 28
Download now
Download to read offline
More Related Content
ゲットーの斜め上をゆく奥别产アプリケーションフレームワークの开発
1.
ゲットーの斜め上をゆく
Webアプリケーション Webアプリケーション フレームワークの開発 ? 高橋“ masaka”?正和 高橋“masaka”?正和 ?
2.
まずは自己绍介
● 本名:高橋正和 ● 通称:masaka、emasaka ? ?
3.
●
仕事:文系サラリーマン – どっちかというと営業 ? ?
4.
去年の翱厂颁?罢辞办测辞/厂辫谤颈苍驳
● まるごとシリーズとか会場販売してました ? ?
5.
笔贬笔、闯补惫补、笔别谤濒、闯补惫补厂肠谤颈辫迟...
次はやっぱり... ? ?
6.
まるごと产补蝉丑
● 略して「まるばつ」 ● (注:嘘です) ? ?
7.
本题
Bash?on?Railsの開発 Bash?on?Railsの開発 日本 bashユーザ会 日本bashユーザ会 ネタ担当 ? 高橋“ masaka”?正和 高橋“masaka”?正和 ?
8.
叠补蝉丑?辞苍?搁补颈濒蝉とは
● pure?bashで書かれたWebアプリケーションフ レームワーク ● 実用性を無視し、「いかにRuby?on?Railsの真似 をするか」のみを追求したネタソフト – ぶっちゃけ、Ruby?on?Railsのソースをめちゃめ ちゃ参考にしてます ? ?
9.
目指すノリ
'80年代「Ah!SKI」誌で 公開された伝説のOS 「UNI+」(ゆにっくろす) (注:40才以上限定ネタ) ? ?
10.
pure?bashってなに? ?Bash内蔵コマンドだけで ● シェルスクリプトとして実装
–現在1,600行ちょい ? ?
11.
こうしたコマンドは使わない
● sed ● grep ● cat ● tr ● …などなど ? ?
12.
もちろん使わない
● awk ● Perl ● Python ● Ruby ? ?
13.
使っちゃったもの
● Apache – これはしょうがないですよね ? ?
14.
使っちゃったもの(続)
● RDBMSのコマンドラインフロントエンド – SQLite3を利用 – ようするにテキストの表形式をパースしてる – いちおうconnection_adapterとして抽象化 ? ?
15.
心ならずも使った外部コマンド
● mkdir ● rm ● ln ● (正直くやしい) ? ?
16.
そのほか使った外部コマンド
● make – Ruby?on?Railsでrakeを使うノリを 重視したつもり ? ?
17.
搁耻产测?辞苍?搁补颈濒蝉インスパイヤ(1)
メタプログラミングで 言語内DSLで DRY! ? ?
18.
データベース定义
#?database?configuration development: ????adapter:?sqlite3 ????database:?db/development.sqlite3 ????timeout:?5000 YAML? test: ????adapter:?sqlite3 ????database:?db/test.sqlite3 いいえ、 ????timeout:?5000 シェルスクリプトです production: ????adapter:?sqlite3 ????database:?db/production.sqlite3 ? ????timeout:?5000 ?
19.
モデル定义
create_table?members?t ????t.column?name?string ????t.column?mailaddress?string ????t.column?comment?string elbat_etaerc もちろんシェルスクリプトです ? ?
20.
搁辞耻迟颈苍驳定义
map.connect?'/meibo/:controller/:action/:id' やっぱりシェルスクリプトです ? ?
21.
搁耻产测?辞苍?搁补颈濒蝉インスパイヤ(2)
bashでオブジェクト指向 ● 名づけてbashOO ● (ばしょー) ? ?
22.
产补蝉丑でオブジェクト指向(続)
function?Presen::instance.takahashi()?{ ????local?self=$1 ????local?msg=$2 takahashiメソッド ????echo?"大きい文字:"?$msg } function?Presen::instance.takesako()?{ ????local?self=$1 ????local?msg=$2 takesakoメソッド ????echo?"会場で調整:"?$msg } どう見てもシェルスクリプトです Object.extend?Presen ? ?
23.
搁耻产测?辞苍?搁补颈濒蝉インスパイヤ(3)
O/Rマッパー ● Active?Recordもどき ● 名づけてSHar –(しゃー) – O/Rといいつつjoin未対応 ? ?
24.
搁耻产测?辞苍?搁补颈濒蝉インスパイヤ(4)
<html>テンプレートエンジンeBash <head> <title>members</title> </head> eRuby風ですが <body> <%?for?column?in?$members_columns;?do?%> ??<%?var="current_item_${column}"?%> ??<p> ????<b><%=column%>:</b>?<%?echo??n?"${!var}"?%> ??</p> <%?done?%> <%?link_to?'Edit'?:action='edit'?:id="$current_item_id"?%> <%?link_to?'Back'?:action='list'?%> </body> </html> ? ?
25.
搁耻产测?辞苍?搁补颈濒蝉インスパイヤ(4)
<html>テンプレートエンジンeBash <head> <title>members</title> もちろん埋め込んでるのは </head> <body> シェルスクリプトです <%?for?column?in?$members_columns;?do?%> ??<%?var="current_item_${column}"?%> ??<p> ????<b><%=column%>:</b>?<%?echo??n?"${!var}"?%> ??</p> <%?done?%> <%?link_to?'Edit'?:action='edit'?:id="$current_item_id"?%> <%?link_to?'Back'?:action='list'?%> </body> </html> ? ?
26.
その他やったことは
いろいろ省略 ? ?
27.
やってないこと
● 安全性、安定性、実用性 – XSSとかSQL?injectionとかばりばり ? ?
28.
DEMO
残りの時間で 簡単なWebアプリを 作ります ? ?
Download