web-dev-qa-db-ja.com

Webアプリを設計するための合理的なワークフローは何ですか?

かなりのWeb開発を行ってからしばらく経ちましたが、最新のプラクティスを活用したいのですが、ワークフローを視覚化してすべてを組み込むのに苦労しています。

これが私が使用しようとしているものです:

  • CakePHPフレームワーク
  • jsmin(JavaScript Minify)
  • SASS(Synctactically Awesome StyleSheets)
  • Git

CakePHP:

かなり自明で、修正を加えてソースを更新します。

jsmin:

スクリプトを変更する場合、jsminを手動で実行して新しい縮小コードを出力するか、変更されたjavascriptファイルのjsmin出力を自動的に生成するpre-commitフックを実行する方が良いでしょう。コミットフックを実装する知識がないと仮定します。

SASS:

私はSASSが提供するものを本当に気に入っていますが、SASSコードがブラウザーでデフォルトでサポートされていないことも知っているため、ある時点で、SASSコードを通常のCSSに変換する必要があります。これはワークフローのどの時点で行われます。

Git

私はそれを認めるのは恐ろしいですが、実質的なWeb開発を最後に行ったときは、SCMソース管理を使用しませんでした(IE、私はソース管理を使用しましたが、バックアップ付きの非常に詳細な変更ログで構成されていました)。

それ以来、デスクトップ開発にGit(およびMercurialとSVN)を使用した経験は豊富ですが、Web開発に最適に実装する方法を考えています)。

変更を本番サーバーに直接プッシュできるようにWebホストにリモートリポジトリを実装するのは一般的な方法ですか、変更されたファイルのみを本番サーバーに簡単にアップロードできるクロスプラットフォーム(windows/linux)ツールがありますか? 。リモートリポジトリを簡単に実装できるWebホスティング会社はありますか、SSHアクセスなどが必要ですか?.

別のリモートトラッキングブランチを持つリモートリポジトリを備えた自分のテストサーバーでこれを行う方法はすでに知っていますが、リモートの本番ウェブホスティングサーバーでこれを実行したことがないので、オプションをまだ認識していません。

追加:

ページで必要なファイルのダウンロード数を制限するために、ページで使用される個別のJavaScriptファイルを本番サーバーのページごとに1つのファイルにコンパイルするJavaScriptフレームワークの実装を検討していました。

このようなものはすでに存在していますか?私が使用して貢献できる同様の何かを実装するオープンソースプロジェクトがすでに実際に出回っていますか?

偏執的なWeb開発者がパフォーマンスについてどのように考えるか(およびWebサイト上のファイル要求の数がパフォーマンスに大きな影響を与えるという事実)を考えると、この問題にすでに取り組んでいるネット上のウィザードハッカーがいると思います。

9
Evan Plaice

あなたはチェックアウトすることができます GoogleのApacheのPageSpeed拡張機能 :afaik、JavascriptとCSSを自動的に集約および縮小し、キャッシュと組み合わせるオプションがあります。あなたの投稿の。

2
wildpeaks

jsmin

大量のJSがない場合は、保存を押すたびに縮小するように設定できます。 JSがたくさんある場合は、それをデプロイメントプロセスの一部にします(以下のGitを参照)。

[〜#〜] sass [〜#〜]

コンパスフレームワーク を使用します。 SASSに加えて、SASSディレクトリを「監視」し、保存するたびにファイルをCSS(必要に応じて縮小版CSSを含む)にコンパイルする小さなスクリプトが含まれています。 RoRを念頭に置いて構築されていますが、コンパス構成ファイルを作成して「compass watch」コマンドを実行することで、任意のWebフレームワークで簡単に使用できます。 Compassには、 Blueprint便利なmixins 、および Lemonadeプラグイン による自動スプライト生成など、他の便利なツールも多数含まれています(これらはCompassに組み込む必要があります) 次のリリース )。

Git

サイトのサイズ/複雑さに応じて、 Capistrano 展開モデルに従うことを検討してください。 CapistranoをCakePHPで直接使用できるかどうかはわかりませんが、要点は次のとおりです。各プロダクションサーバーには、その時点でプロダクションで実行されているすべてのコードを含む「現在の」フォルダーがあります。新しいコードをデプロイするたびに、各本番サーバーにsshで実行するスクリプトを実行し、(a)「現在の」フォルダーの内容をバックアップフォルダー(リリース名/タイムスタンプを含む)にコピーします( b)Gitの最新コードを「現在の」フォルダーにチェックアウトし、(c)「現在の」フォルダーからこの新しいコードの提供を開始します。このようにして、必要に応じて以前のリリースにロールバックし、どのリビジョンが本番環境でライブであるかを正確に知ることができます。 Capistranoでは、JS/CSSミニファクション、連結などを含む、あらゆる種類のカスタムタスクをデプロイメントプロセスの一部として追加することもできます。

追加

はい、たくさんあります。 「CSS/JS concat」のようなもののためのグーグル。ここに私がCakePHP用に見つけた簡単なものがあります: Asset Packer

5