質問: 新しい Web サービスのアイディアがいくつもあるのに、現在それを作成できていると言える状況ではありません。 php + CodeIgniter で幾つかの Web サービスを運用しているのですが、この組み合わせでサービスを作るのは、結構無駄な時間がかかってしまっているイメージです。 それほど目新しい機能を必要としているものはないので、ブロックを積み重ねるように、プログラミングできれば、もっとスピード感のある開発ができるのではないかと思っており、Ruby on Rails に興味を持っています。 現在のスキルセットで考えると、laravel が適しているようにも思い、学習を始ようとしたところですが、その前に、識者の方々の知恵をお借りできればと思い質問します。 前置きが長くなってしまいましたが、以下のような条件の場合、どのようなフレームワークを選択して開発を進めていらっしゃるでしょうか? ・プロトタイプの作成が容易であり、機能の追加/改善/修正を頻繁に行う ・機能の追加/改善/修正において、多くの箇所を考慮したくない(機能同士が疎な結合) ・サービス全体としてのセキュリティポリシーの実現は考えなくてはならないが、コードレベルでのセキュリティバグ対応はあまり考慮したくない ・テストがそれなりに楽 ・1 サーバで 1 Web サービスを提供するイメージ ・まぁ、フロントもまとめて面倒みれると楽なんだろうなぁ。。。 ・一人親方的開発なんで、グループ開発に対しての機能はチープで良い 概ね、上 4 つが望んでいる要件になります。 私のスキルセットはあってない程度のものなので、言語の縛りや既存のスキルセットは無視していただいてかまいません。 複雑なことをしたいというより、アイディア勝負のプロトタイプを量産していく感じで、オススメのフレームワークがあればよろしくお願いいたします。
回答: 無難にLaravelですかね 人気ありますし、情報も出揃ってきてますし、後述の開発速度面でも整っているのでオススメです。 以下は基礎的な所も雑多に混じりつつの高速化のネタです。 te2jiさんにとっては当然知ってる箇所も含まれてるのでチェックシートとでも思って眺めてください。 無駄な時間最優先で考える場合、 まずビュー部分のHTMLとCSSにテコ入れした方が良いでしょう。 ほぼ素のHTMLでぺこぺこ閉じタグ作って、修正するコストは馬鹿でかいです。 特に作る方はEmmet辺りでどうにかなるとしても、修正するコストがやばいんで素のHTMLとか見たくもありません。 CSSも同様、入れ子不可能の設計思想がネックでコピペだらけになり、 カーソル移動だけで1日の作業時間の大半を取られます。 この辺のジャンルはRubyやNode.jsが進んでいますので、PHPの世界に輸入してきてはどうでしょう? HTMLはSlimやPug、CSSはSASSやStylusくらいの軽量言語が導入できれば相当捗ります。 Laravelでは、Laravel Pugなる手法で導入できるようですね。 他にも色んな楽になる代替言語が使えないか調査してみてください。 Laravel Pug で Pug ファイルを Laravel へ導入する > > Ruby on Rails に興味を持っています。 > > > Railsの強みの多くは、コマンドラインツールでの動的ModelやController生成にあるといっても過言ではないでしょう。 Codeigniterも当然ありますよね...えっ、手作業!? (ざっと探しましたが見つかりませんでした、もしCodeigniterで出来るネタがあったらごめんなさい) LaravelやCakePHPにあります。 初めてのLaravel 5.1 : (9) モデルの作成 【CakePHP】Bakeコマンドを利用したMVCファイルの作成 簡単なブログ程度なら1日で作れるぜーが現実的なのは、これらのCLIツールをフル活用しているから 後はタイプ速度だけの問題まで落とし込んでるわけですね。 最終的なゴールで言えば、 自分が手を動かさなくてもスケルトン○○を作れるようなネタを仕込む事をオススメします。 CodeigniterでもオレオレModelやController生成器のスクリプトを仕込んで、 コマンド一撃でスケルトンモデル、DBまでまるごと面倒みてくれるような感じのものでも良いとは思いますね。 おまけ > > 1 サーバで 1 Web サービスを提供するイメージ > > > DockerやVPSあたりでポコポコサーバを生やして殺してが出来ると楽そうですね。 もしところどころうろ覚えだったりして速度が出ない状況なら是非。 私は使用エディタがVimなので、Linuxサーバ立ち上げたら1コマンド叩けばDotfilesを一気に落として環境構築完了です。 VPS=開発環境=そのまま独自ドメイン設定すれば本番環境に変身というネタが使えます。 もちろんプロトタイプのフェイズを抜けたら正式なサーバを立ち上げます。 Vim、Emacs、Nano辺りは学習コスト高いですが、 メインエディタに出来ればゆくゆくはこういった所で融通がききますね。 このようにエディタやツールにも高速化のヒントが転がっているので、見直してみてください。