Submit Search
Upload
Phpのレガシーコードをrubyで焼き変えてみた
•
0 likes
•
757 views
Akira Kaneda
Follow
広島Ruby勉強会#031で発表した資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 20
Download now
Download to read offline
Recommended
Javaに這いよる.NET
Javaに這いよる.NET
Hiroshi Maekawa
JavaのテストGroovyでいいのではないかという話
JavaのテストGroovyでいいのではないかという話
disc99_
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
Yuuki Takezawa
Java初心者がJava8のラムダ式をやってみた
Java初心者がJava8のラムダ式をやってみた
Aya Ebata
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
Yuta Ohashi
簡単!Groovy入門
簡単!Groovy入門
Lee Choong Geun
とりあえずこれだけ知っていればお仕事ができる(であろう)gitガチ入門
とりあえずこれだけ知っていればお仕事ができる(であろう)gitガチ入門
infinite_loop
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
Recommended
Javaに這いよる.NET
Javaに這いよる.NET
Hiroshi Maekawa
JavaのテストGroovyでいいのではないかという話
JavaのテストGroovyでいいのではないかという話
disc99_
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
Yuuki Takezawa
Java初心者がJava8のラムダ式をやってみた
Java初心者がJava8のラムダ式をやってみた
Aya Ebata
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
Yuta Ohashi
簡単!Groovy入門
簡単!Groovy入門
Lee Choong Geun
とりあえずこれだけ知っていればお仕事ができる(であろう)gitガチ入門
とりあえずこれだけ知っていればお仕事ができる(であろう)gitガチ入門
infinite_loop
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみる
Shunji Konishi
Azureでのプレゼン
Azureでのプレゼン
Fukuda Takuro
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)
orange clover
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
Hisateru Tanaka
JavaScript MVC入門
JavaScript MVC入門
大樹 小倉
最近流行りのビルドツールとは
最近流行りのビルドツールとは
Takahiro Maki
libpgenでパケット操作
libpgenでパケット操作
slankdev
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係
yy yank
SignalRブートキャンプ
SignalRブートキャンプ
Kouji Matsui
ぼくのNode.jsのだいいっぽ
ぼくのNode.jsのだいいっぽ
拓弥 遠藤
Php非同期の技法
Php非同期の技法
Shogo Kawahara
Phjosh(仮)プロジェクト
Phjosh(仮)プロジェクト
Moriyoshi Koizumi
Hello Ruby
Hello Ruby
Takahiro KUREBAYASHI
なんとかStormに負けたくないEmacs初級篇
なんとかStormに負けたくないEmacs初級篇
Kenta USAMI
負荷テストについて
負荷テストについて
Takahiro Ishida
2021 01-25 lt sho kato
2021 01-25 lt sho kato
katosho1
HighBatch
HighBatch
Nobuhito Sato
5分でわかる静的解析入門
5分でわかる静的解析入門
Kenta USAMI
continuatioN Linking
continuatioN Linking
Kouji Matsui
Environmental considerations and land use
Environmental considerations and land use
Keith Turner
Costa Ballena Beach & Thalasso resort
Costa Ballena Beach & Thalasso resort
Hoteles Elba
More Related Content
What's hot
Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみる
Shunji Konishi
Azureでのプレゼン
Azureでのプレゼン
Fukuda Takuro
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)
orange clover
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
Hisateru Tanaka
JavaScript MVC入門
JavaScript MVC入門
大樹 小倉
最近流行りのビルドツールとは
最近流行りのビルドツールとは
Takahiro Maki
libpgenでパケット操作
libpgenでパケット操作
slankdev
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係
yy yank
SignalRブートキャンプ
SignalRブートキャンプ
Kouji Matsui
ぼくのNode.jsのだいいっぽ
ぼくのNode.jsのだいいっぽ
拓弥 遠藤
Php非同期の技法
Php非同期の技法
Shogo Kawahara
Phjosh(仮)プロジェクト
Phjosh(仮)プロジェクト
Moriyoshi Koizumi
Hello Ruby
Hello Ruby
Takahiro KUREBAYASHI
なんとかStormに負けたくないEmacs初級篇
なんとかStormに負けたくないEmacs初級篇
Kenta USAMI
負荷テストについて
負荷テストについて
Takahiro Ishida
2021 01-25 lt sho kato
2021 01-25 lt sho kato
katosho1
HighBatch
HighBatch
Nobuhito Sato
5分でわかる静的解析入門
5分でわかる静的解析入門
Kenta USAMI
continuatioN Linking
continuatioN Linking
Kouji Matsui
What's hot
(20)
Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみる
Azureでのプレゼン
Azureでのプレゼン
メタプログラミングって何だろう
メタプログラミングって何だろう
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
JavaScript MVC入門
JavaScript MVC入門
最近流行りのビルドツールとは
最近流行りのビルドツールとは
libpgenでパケット操作
libpgenでパケット操作
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係
SignalRブートキャンプ
SignalRブートキャンプ
ぼくのNode.jsのだいいっぽ
ぼくのNode.jsのだいいっぽ
Php非同期の技法
Php非同期の技法
Phjosh(仮)プロジェクト
Phjosh(仮)プロジェクト
Hello Ruby
Hello Ruby
なんとかStormに負けたくないEmacs初級篇
なんとかStormに負けたくないEmacs初級篇
負荷テストについて
負荷テストについて
2021 01-25 lt sho kato
2021 01-25 lt sho kato
HighBatch
HighBatch
5分でわかる静的解析入門
5分でわかる静的解析入門
continuatioN Linking
continuatioN Linking
Viewers also liked
Environmental considerations and land use
Environmental considerations and land use
Keith Turner
Costa Ballena Beach & Thalasso resort
Costa Ballena Beach & Thalasso resort
Hoteles Elba
Osc2012 hiroshima
Osc2012 hiroshima
Akira Kaneda
そうだ!勉強会に参加しよう!
そうだ!勉強会に参加しよう!
Akira Kaneda
Pravy SC
Pravy SC
Praveen kumar
Elba Palace Golf Hotel
Elba Palace Golf Hotel
Hoteles Elba
Chefについて数週間勉強してみた
Chefについて数週間勉強してみた
Akira Kaneda
Hotel Elba Vecindario Aeropuerto
Hotel Elba Vecindario Aeropuerto
Hoteles Elba
Viewers also liked
(8)
Environmental considerations and land use
Environmental considerations and land use
Costa Ballena Beach & Thalasso resort
Costa Ballena Beach & Thalasso resort
Osc2012 hiroshima
Osc2012 hiroshima
そうだ!勉強会に参加しよう!
そうだ!勉強会に参加しよう!
Pravy SC
Pravy SC
Elba Palace Golf Hotel
Elba Palace Golf Hotel
Chefについて数週間勉強してみた
Chefについて数週間勉強してみた
Hotel Elba Vecindario Aeropuerto
Hotel Elba Vecindario Aeropuerto
Similar to Phpのレガシーコードをrubyで焼き変えてみた
PHPとJavaScriptの噺
PHPとJavaScriptの噺
Shogo Kawahara
An Internal of LINQ to Objects
An Internal of LINQ to Objects
Yoshifumi Kawai
VMを改めて学んで見る
VMを改めて学んで見る
kishima7
Alluren of prototype-based OOP
Alluren of prototype-based OOP
azuma satoshi
YAPC::Asia Tokyo 2014 前夜祭 pplog by @ppworks
YAPC::Asia Tokyo 2014 前夜祭 pplog by @ppworks
Naoto Koshikawa
mruby for embedded systems
mruby for embedded systems
masayoshi takahashi
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
Raspbian, OpenCV and about me(Takachiho.rb)
Raspbian, OpenCV and about me(Takachiho.rb)
Yosei Ito
RubyConfの話の続きのおはなし
RubyConfの話の続きのおはなし
yamanekko
Word pressのテーマは firephpでハックすれば 良かったのか
Word pressのテーマは firephpでハックすれば 良かったのか
Hisateru Tanaka
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
コミュニティのある風景
コミュニティのある風景
Ryunosuke SATO
JavaScriptで味わう! 関数型プログラミングのメリット!!
JavaScriptで味わう! 関数型プログラミングのメリット!!
Keigo Magami
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
Uchio Kondo
ROMA on JRuby at JRubyKaigi 2010
ROMA on JRuby at JRubyKaigi 2010
Rakuten Group, Inc.
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
shoma h
Hashicorpツールズ
Hashicorpツールズ
Uchio Kondo
PHP AV BINDING
PHP AV BINDING
Yo Ya
とある Perl Monger の働き方
とある Perl Monger の働き方
Yusuke Wada
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
ume3_
Similar to Phpのレガシーコードをrubyで焼き変えてみた
(20)
PHPとJavaScriptの噺
PHPとJavaScriptの噺
An Internal of LINQ to Objects
An Internal of LINQ to Objects
VMを改めて学んで見る
VMを改めて学んで見る
Alluren of prototype-based OOP
Alluren of prototype-based OOP
YAPC::Asia Tokyo 2014 前夜祭 pplog by @ppworks
YAPC::Asia Tokyo 2014 前夜祭 pplog by @ppworks
mruby for embedded systems
mruby for embedded systems
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Raspbian, OpenCV and about me(Takachiho.rb)
Raspbian, OpenCV and about me(Takachiho.rb)
RubyConfの話の続きのおはなし
RubyConfの話の続きのおはなし
Word pressのテーマは firephpでハックすれば 良かったのか
Word pressのテーマは firephpでハックすれば 良かったのか
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
コミュニティのある風景
コミュニティのある風景
JavaScriptで味わう! 関数型プログラミングのメリット!!
JavaScriptで味わう! 関数型プログラミングのメリット!!
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
ROMA on JRuby at JRubyKaigi 2010
ROMA on JRuby at JRubyKaigi 2010
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Hashicorpツールズ
Hashicorpツールズ
PHP AV BINDING
PHP AV BINDING
とある Perl Monger の働き方
とある Perl Monger の働き方
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
More from Akira Kaneda
アラフォー世代が基板を作ってみた(公開用)
アラフォー世代が基板を作ってみた(公開用)
Akira Kaneda
ESP-WROOM-02でプチIoT
ESP-WROOM-02でプチIoT
Akira Kaneda
ジャンクのススメ(公開用)
ジャンクのススメ(公開用)
Akira Kaneda
基板から回路図を起こしてみよう
基板から回路図を起こしてみよう
Akira Kaneda
Oss翻訳プロジェクトに参加してみた
Oss翻訳プロジェクトに参加してみた
Akira Kaneda
ジャンク解析入門
ジャンク解析入門
Akira Kaneda
Lt駆動開発28 Windows版Dockerを試してみた。
Lt駆動開発28 Windows版Dockerを試してみた。
Akira Kaneda
Simの容量が気になって安眠できない
Simの容量が気になって安眠できない
Akira Kaneda
メモリと遊んでみた Pert2
メモリと遊んでみた Pert2
Akira Kaneda
DockerをGUIで使いたい!
DockerをGUIで使いたい!
Akira Kaneda
Open nebulaのご紹介
Open nebulaのご紹介
Akira Kaneda
自宅サーバにHyper v環境
自宅サーバにHyper v環境
Akira Kaneda
Edge os(vyos)の基本(入門編)
Edge os(vyos)の基本(入門編)
Akira Kaneda
ルータでLチカしてみた
ルータでLチカしてみた
Akira Kaneda
FPGAで遊んでみた
FPGAで遊んでみた
Akira Kaneda
メモリと遊んでみた
メモリと遊んでみた
Akira Kaneda
Server specのご紹介
Server specのご紹介
Akira Kaneda
Hiroshima.rbの歴史
Hiroshima.rbの歴史
Akira Kaneda
電光掲示板を作ってみた
電光掲示板を作ってみた
Akira Kaneda
More from Akira Kaneda
(19)
アラフォー世代が基板を作ってみた(公開用)
アラフォー世代が基板を作ってみた(公開用)
ESP-WROOM-02でプチIoT
ESP-WROOM-02でプチIoT
ジャンクのススメ(公開用)
ジャンクのススメ(公開用)
基板から回路図を起こしてみよう
基板から回路図を起こしてみよう
Oss翻訳プロジェクトに参加してみた
Oss翻訳プロジェクトに参加してみた
ジャンク解析入門
ジャンク解析入門
Lt駆動開発28 Windows版Dockerを試してみた。
Lt駆動開発28 Windows版Dockerを試してみた。
Simの容量が気になって安眠できない
Simの容量が気になって安眠できない
メモリと遊んでみた Pert2
メモリと遊んでみた Pert2
DockerをGUIで使いたい!
DockerをGUIで使いたい!
Open nebulaのご紹介
Open nebulaのご紹介
自宅サーバにHyper v環境
自宅サーバにHyper v環境
Edge os(vyos)の基本(入門編)
Edge os(vyos)の基本(入門編)
ルータでLチカしてみた
ルータでLチカしてみた
FPGAで遊んでみた
FPGAで遊んでみた
メモリと遊んでみた
メモリと遊んでみた
Server specのご紹介
Server specのご紹介
Hiroshima.rbの歴史
Hiroshima.rbの歴史
電光掲示板を作ってみた
電光掲示板を作ってみた
Recently uploaded
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Recently uploaded
(11)
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Phpのレガシーコードをrubyで焼き変えてみた
1.
PHPのレガシーコードを
Rubyで焼き変えてみた @akira345 Hiroshima.rb Powered by Rabbit 2.0.6 and COZMIXNG
2.
自己紹介 本業:精神修行 所属: Hiroshima.rb 広島サーバユーザ友の会(仮)
広島電子工作娯楽部(仮称) WindowsPhoneハンズオンin広島 オープンセミナー2014@広島 実行メンバー OSC広島実行メンバー WTM時々インフラ担当
3.
本題 目的: 非オブジェクト指向なレガシーコードを (出来る範囲で)オブジェクト指向的に 持っていく。 出来ればテストも入れたい。
4.
生け贄の準備
今回の生け贄: 十数年前に独学で習得中に自作した 15Puzzleプログラム https://github.com/akira345/Old_PHP_Samples/tree/ master/15puzzle_old (以前Rubyでゲームを作られた方がいたので対抗してみた)
5.
15Puzzle??
6.
15Puzzle??
7.
レガシーな点 圧倒的に古い!(iniファイルなんてものがあったり) php4の出たての頃に書かれている 作った本人が実はよく分かっていない 山のようなフラグ管理。よくわからない変数、強引な処理 変数一覧表なるものがあるw 当然MVCなんて考えはない 当時のポリシーとして、HTMLを極力PHPで出力してい るので作りがカオス 当時自信作今黒歴史
8.
第1段階 いきなりRubyにするのはさすがに無理なので、まずは PHPで試作。 とはいえ、再設計すると、新規で作り直s(ry 当時の自分を恨みつつ、まずは簡単なビューとロジック の分離から。
この時、無理にファイルを分離しようとすると色々悩 むので、まずは同一ファイル内で、分離すると良い。 ビューに埋め込んだロジックはなるべく分離。 但し、この時はロジックを余り弄らないこと。テストが 無いのでバグると酷い目に合う
9.
第2段階 ロジックの組換前に、機能ブロックを大まかに洗い出して おく。 ロジック部分から、機能ブロックをくくりだし、クラスメソッ ドとして纏める所からまずはスタート。 関数化されている箇所はそのままクラスメソッドとして仮 実装。 クラスメソッドはとりあえず全てPublic! テストコードが無いので、ロジックの組み換えは後。動く 状態を極力キープ
10.
機能ブロック このプログラムを構成する主な機能 乱数生成
動かす数字を格納する配列を生成 数字が動かせるか判定する 数字を動かす パズルが完成したかチェックする
11.
ロジックに手をつける フローチャートを書くのは断念したOrz 基本は機能ロジックごとにカットアンドペーストでクラス メソッド化や、ロジックの組み換えを行った。 機能ブロックを動かす場合、該当箇所を全てコメントアウ トし、最低限の実装に置換。動作確認しながら、ブロック の組み換えを行った。 複雑怪奇なifのネストは、中のロジックをprint('A')のよう なものに書き換えて、動作の確認をしながら整理 変数名やフラグを少し整理。(fとかswとかrとか)
12.
セッション周り 昔はセッション変数に何でも突っ込んでい た オブジェクト指向になると、クラスにデータを 持たせられるので、クラスをセッションに突 っ込めばOK(時と場合による)
13.
完成
https://github.com/ akira345/15Puzzle_For_OOP ただしPHP版
14.
さて、Rubyに焼き変えるか。
PHPをRubyに置き換えるので楽勝!(と思 っていました) いまさらCGIクラスなんて使うとレガシーに 戻る。 かといって、この程度でRailsも大げさ Sinatraを使おう。 http://www.sinatrarb.com/intro-jp.html
15.
sinatraではまる! あれ?画像でないぞ?? publicディレクトリが必要 あれ?セッションに入れたクラスが読めない ぞ?
enable :sessionsが必要 get/postでロジック分離しないといけない ぞ? とりあえず共通関数作成で回避<-邪道 などなど
16.
ひむひむヘルプ! 絶賛仕事中のひむひむへ襲撃!! インデントがカオス! status=3って何?
このメソッド名、スペル違うよ・・・ 変数の初期化はどこでされているの? ロジックが難しい。データの持たせ方が・・ テストはどこ? やりたい事は何となく分かるけど・・う〜ん(悩)
17.
教訓:コードレビューは大事。
18.
教訓:コードレビューは大事。 大事な事なので(ry
19.
リファクタリングだ! クラスのテストをRspecで。 だけど、ランダムにデータができるので、余りテスト
が書けなかった・・ ビューのテストが非常に難儀 sinatraでは、途中でprintとか出力しても無視され るので、printデバックができない。 pryをつかって、ブレークポイントを仕掛けてデバック http://shirusu-ni-tarazu.hatenablog.jp/ entry/2012/06/24/051114
20.
そんなこんなで
完成!(デモするよ) https://github.com/akira345/15Puzzle_For_Ruby Powered by Rabbit 2.0.6 and COZMIXNG
Download now