• 締切済み

複数人チームでの開発環境について

ウェブ系のプログラミングの仕事をしているのですが、前の職場では社内に開発用のLinuxサーバを立て、開発者達はそこにsshログインしてCUIでプログラミングするという手法を取っていました。 最近転職したのですが、今の職場では共同の開発環境は用意せず、自分が使うパソコンの中に開発環境を用意し、そこでプログラミング後、できたモジュールをレポジトリにコミット、という手法が取られています。 そこで疑問なのですが、自分は、共用の開発環境サーバを用意し、そこで全員プログラミングするというのが、一般的な複数人での開発手法だと思っていたのですが、違うのでしょうか??個々に開発環境を用意すると、サーバソフトやミドルウェアの設定の変更を全員で同期しないといけないですし、大変だと思うのですが・・・ 上記の疑問と、他にもこういう複数人チームでの開発手法がある、最近はこういう手法がある、というのがあれば、お答えいただけると幸いです。

みんなの回答

  • spieder
  • ベストアンサー率59% (13/22)
回答No.1

VSSやSubversionなどのリポジトリを利用しないと、変更を残せないか、コメントアウトをしてソースコードにゴミを溜め込むことになるので、今時のプロジェクトでは必ずといっていいほど使っています。サーバーソフトやミドルウエア等は、手順書を用意して使うバージョンも指定することで、ある程度問題はなくなります。 それに、同時に同じサーバー内で編集をしてしまうと、動作確認やテスト等が実行しづらくなります。 必ず指定した環境で動くことを確認する必要があるのなら、リポジトリと定期的にソースの同期を取りながらテストを実行してくれるソフトもあるので、そちらを使えば問題はなくなります。(JavaならMaven/continuumなど) それと、今時は統合開発環境(IDE)がFreeで良いものがありますから、開発効率の点でもわざわざCUIでプログラミングする必要があるとは思えません。 ウォーターフォールのような開発手法や個人毎に開発環境を用意できない(ライセンス料金などの)制約があるなら、共同の開発環境を構築して開発する方が向いているかもしれませんが、テストを頻繁に繰り返す最近の開発スタイルには向いていません。

参考URL:
http://continuum.apache.org/
miraikako
質問者

お礼

解凍ありがとうございます。 お礼遅れてすいません。 参考にさせていただきます。

関連するQ&A

  • プログラミングの開発環境とは何でしょうか?

    私は1年ほど前にプログラミングがやってみたいと思い、丸々1年間 テキストでアルゴリズムなどの基礎知識を勉強しProgateでHTML+CSSとJavaScript、Rubyを勉強してきました。 そこまではいいのですが、ただひたすらサイトが用意したエディタに打ち込むことしかしてこなかったので、自分で一から何か作るとなると何を用意すればいいのか全くわかりません。 調べたところ、開発環境を整えることが必須と知りました。 いろいろ調べてみたのですが、意味がわかりませんでした。 JavaScriptやRubyで何か作りたい場合、何を用意すればいいのでしょうか。

  • 一般的なLAMPでの開発環境・手順を教えてください

    今までWAMP(windowsサーバー、Apache、MySQL、PHP)での開発が多かったため、 LAMPでの一般的な開発手順がよく分りません。 WAMPの時はこんな感じでした。 1.ローカルPCに本番と同じ環境を構築(SVNからチェックアウト(更新)) 2.ローカル環境で開発、テスト 3.エクスプローラーから開発サーバーにアクセス、ローカルのソースで上書き 4.開発サーバーでテスト、SVNにコミット 5.リモートデスクトップで本番サーバーにアクセス、SVNからチェックアウト(更新) 6.本番サーバーでテスト LAMPだとどうなりますか。 こんな感じでしょうか? 1.ローカルPC(windows)に本番と同じ環境を構築(SVNからチェックアウト(更新)) 2.ローカル環境で開発、テスト 3.WinSCP、FFFTPなどのソフトで開発サーバーに繋いで、ローカルのソースをアップ 4.開発サーバーでテスト、SVNにコミット 5.Tera Termなどのソフトで本番サーバーに繋ぎ、コマンドでSVNからチェックアウト(更新) 6.本番サーバーでテスト 一番不明なのは、3の部分でして、 Linuxサーバーに置いてあるソースをいじるには、以下の方法しかないのでしょうか? ・FTP接続が可能な場合、FFFTPなどのソフト経由 ・FTP接続が不可能な場合、WinSCPなどのソフト経由 ・Tera Termなどから、テキスト編集コマンド(viなど)で直接編集  ⇒ファイルをアップするっていうことをコマンドからはできないんでしょうか。 ごくごく一般的な開発手順を教えてください。

    • ベストアンサー
    • PHP
  • PerlでCGIプログラムをチーム開発する方法について

    現在、開発環境の用意とソースの管理をどう両立させるのかで悩んでいます。 APサーバとしてLinuxを利用し、DBも使います。 開発環境は(とりあえず)Windowsを前提としています。 自分としては以下のような選択肢を考えたのですが、 それぞれに一長一短があって決断しかねています。 案(1) 開発用の実行環境としてLinuxサーバを用意し、 開発はWindows端末で行い、ソースをアップロードし、テストを行う。 ソース管理ツールでチェックアウトされている場合、 開発用Linuxサーバのソースもチェックアウト者のみが変更可、 という運用ルールにする。 案(2) 開発用Windows端末にローカル実行環境を構築。 案(3) 開発用の環境としてLinux端末を用意し、ローカルに実行環境を構築する。 そもそも上記の中に正解があるのか、他の方法論があるのかわかりませんが、 一般的にどのように開発されているのか、どなたかお教えいただければ幸いです。

    • ベストアンサー
    • Perl
  • Windows7のフリーソフト開発言語は何が良い?

    Windows 7 用のフリーソフトを作りたいと思っているのですが、どういったプログラミング言語と開発環境を使うのがよいでしょうか? 例えば、GUIで設定ができ、常駐する場合は、右下のタスクトレイにアイコンを表示させたりさせたりこんなソフトを考えています。 因みに今はPerlを使っていますが、CUIではこういったことができず、また、フリーソフトで配布する時敷居が高く敬遠されがちな物で新しく言語と開発環境を用意したいと思っています。 宜しくお願い致します。

  • Windows環境メインのLAMP開発について

    お世話になります。 正直、開発関連のカテゴリに投稿しようか迷いましたが、Linuxの機能に 大きく依存する部分がありますのでこちらで質問させていただきます。 結果的に連投になってしまっていますが、ご容赦ください。 さて本題ですが、表題の通り、 Windows環境メインにおけるLAMP開発をしています。 ◆まず、現在下記のような状態となっています。 ○メイン開発機  ・デスクトップPC、OSはWindows8 Pro(x64)  ・開発サーバとして、Hyper-V上にCentOS6.3を導入 ○サブ開発機  ・ネットブック、OSはWindows8 Pro(x64)  ・仮想化非対応な上、VMWareとか乗っけるとメモリ容量的に死ねるので、   Fedora18がリリース次第デュアルブート環境構築してやむ得ずLinux上で   開発しようかなと考えています。主に外出時(地下鉄乗っているときとか)   に短時間しか使わないのが幸いでしょうか。 ○テストサーバ 兼 SVNリポジトリやRedmineなどのプロジェクト管理サーバ  ・CentOS6.3 VPS(KVM)です。  ・基本的にはステージングサーバとして運用しますが、Webアプリの種類に   よっては、これがいきなり本番サーバとなることもあります。 ○本番サーバ  ・CentOS5.5 ただのレンタルサーバです。 ◆とりあえずやりたいこと 1.Windows上でコードを書く。(できる限り開発はWindows上で行いたい) 2.コードを保存した瞬間、開発サーバにデプロイされている。 3.パーミッションの設定など、最低限のことだけサーバ上で行う。  (これについても基本的にはSVNの実行権限プロパティなどを用いるようにする) 4.http://開発サーバのIPアドレス/でコーディング結果が表示される。 5.Windows上で、または開発サーバ上でSVNリポジトリへコミットができる。 6.コミットしたらテストサーバにもデプロイされる。  (まぁこれはpost-commitに細工仕掛ければどうにかなりそうな気がする) ◆できていること 1.テストサーバでSVNリポジトリを更新する。(ただし手動) 2.1の段階で即デプロイに等しい状況になっていて、  http://テストサーバ/で結果が表示される。 3.本番サーバで特定コマンドを手動で打つとSVNの内容をエクスポート、  全自動で上書きデプロイまで行う。 ◆困っていること 長々と現在の環境について説明してしまいましたが、現在困っているのは 「とりあえずやりたいこと」の1~3に該当する部分です。つまり、 WindowsとLinuxで同じ(物理または仮想)ディスクを使うことになるのですが、 これがなかなかうまくいきません。 ◆考えてみたソリューション ・FTP、後にSFTP転送によるデプロイ  13年前~10年前くらいまで使っていた手法ですが、そもそもデプロイを  省略して、ソースを保存後即デプロイという状況を作りたいため却下。  また確実に上書きしないとソースの整合性が取れなくなるのも難点。 ・Windows上にLAMP風環境を構築、Windows機をそのまま開発サーバ化  9年前~4年前くらいまで使っていた手法です。ただ、Windows上だと  動くけどLinux上だとなぜか動かない!というケースがあるので、  かなり頻繁にステージングへデプロイしたり、Windows上にない機能に  依存しているライブラリを避けるために面倒なことをしたりと大変でした。 ・Windowsでコーディング、コミット後テストサーバで更新かけて確認  3年前から今に至るまで主に使っている手法です。確実にソースの整合性が  取れますがデプロイの省略とならないこと、またコミットログが  猛烈に肥大化するためできるだけこの方法は今後避けたいです。 ・Cygwin、またはInterix(SFU/SUA)  Cygwinは最初から期待していなかったですが、メイン開発機をVistaに  アップグレードして以来SUAは一時期本気で開発サーバ構築できないかと  期待して弄り倒したことがあります。何かと仕組みが独特で構築は非常に  困難を極めましたが、それなりのものが出来た感じです。ただ、  Windows上にLAMP風環境を構築するよりは遥かにマシなものの、やはり  ステージングで動かない!があったり、またWindows8はSUAが非推奨、  今後はサポートされないと話を聞き、今後のことを考えると  この方法は断念せざるを得ないのかな、と思うところがあります。 ・ホストPCのパーティションを区切って、NTFSでフォーマット、  ゲストからルータ経由でマウントする方法  編集即反映されるので一見よさそうに思えましたが、Linux側から  一般ユーザ権限で書き込みできないのと、パーミッションが  固定されてしまうのがちょっと痛くて断念しました。 ・VHDXファイルをホストからマウントする方法  ext4ファイルシステムをWindows上でマウントするのには一癖有るというのは  予備知識として知っていましたが、そもそもそれ以前にホストかゲストかで  排他的にしかマウントできないことが発覚して、即撃沈。 ・WebDAVを使う  パーティションの共有を諦めてWebDAVで読み書きしてしまおうというやり方。  一見これもアリかなと思ったのですが、Windows上からコミットできないのと  ソースではなく「実行結果」が帰ってくることがあるのでこれも撃沈。 ・Hyper-Vによる開発サーバ諦めて、Linux PCを家庭内LANへ導入する。  正直出費は避けたいので……。ただ、1台だけPCが余っているのですが、  「2002年末頃の超ハイエンドPC」で、スペック的には今時でもギリギリ  通じるレベルではあるのですが、消費電力と駆動音を考えると……orz ・Sambaサーバを使う  もし本当に何もかもお手上げなら、これが最後の駆け込み寺か……。 ◆さいごに レンタルサーバを使ったWebプログラミング自体は12年前から始めて いましたが、業務歴およびVPSや専鯖によるLAMPサーバ構築歴はかなり浅く、 Linuxの知識も正直言うほど豊富とは言えません。 もしこれ以外にもこういうソリューションがあるよ! とかあれば、ご教示戴けると幸いです。 以上、長文でお手数おかけいたしますが、よろしくお願いします。

  • Unix系のレンタルサーバの開発環境について

    Unix系のレンタルサーバでの開発環境についてお伺いします。Unix系ははじめてなので、OSのコマンドも勉強したいし、当面はPerlで、追加モジュールなども使ってプログラミングしてみたいです。どのような条件でサーバを探せばよいでしょうか? オススメのサーバなど教えていただけると助かります。どうぞよろしくお願いします。

    • ベストアンサー
    • Perl
  • Subversionのメリット

    質問を纏めました。 1.完成後の利用方法について 複数人で1つのレポジトリを完成させたら、そのレポジトリ(完成形)を他のサーバーなどにチェックアウトして利用するのでしょうか。 2.なぜ、レポジトリにはコミットしたファイルがファイル(example.txtなど)として、保存されないのでしょうか?わざわざチェックアウトしないとレポジトリが見えないのは手間になると思います。 3.あるファイルを(自分が)編集してコミットし、その後チェックアウトすると(自分が)編集した箇所が反映されています。svn update(マージ)する必要性はあるのでしょうか? ご回答をお願いします。

  • フレームワークは開発環境だけでなく、実行環境でもインストールが必要?

    ちょっとPHPに興味が湧き、色々と作っています。そして、最近知ったのですが、フレームワークってのが流行っているみたいですね。 使ってみたく思ったのですが一つ疑問が出てきました。 フレームワークというのは、動かす先のサーバなどにも組み込む必要はあるのでしょうか? 開発環境へのインストールは必須でしょうが、私が借りているレンタルサーバはあまり環境を変えられないので、その辺が気になっています。折角作っても、レンタルサーバで公開できないなら作れるアプリにも制限が出てくるので。 Zend FrameworkやEthna、CakePHPなど色々とあるみたいですが、これらで作られたWEBアプリは、フレームワークがインストールされているサーバでしか動かないのでしょうか? それとも、PHPが使えれば、アプリは基本的には動くんでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • JAVAでゲーム開発する際の環境

    C言語とC++を一通り学習し終えたあと、 趣味でゲーム開発をしています。 開発環境は、Windows7、VC++2010 C++とDXライブラリを使用して、 簡単なシューティング系のオフラインゲームを作製し、 ロダで配布したりしています。 Zipの内容は、実行ファイルとデータファイルだけの単純なものです。 しかしこれだとWindowsのPC限定である為、 今後の事も考えてJAVAでの開発に移行したいのですが、 どの様な環境を用意するのかが分かりません。 まずは今までにC++とDXライブラリで作った超簡単なゲームを、 JAVAに書き直しながら勉強して行きたいと考えています。 エディタはEclipsかNetBeansあたりを考えています。 C++の場合は、龍神録プログラミングの館と言うサイトを参考に勉強しましたが、 JAVAの場合は、パスやフォルダ構成、環境設定等の超基礎的なレベルから ゲーム作成を解説してある、詳しいサイトが見つかりませんでした。 アプレットやWebアプリ、サーバーサイド系のページの他、 クラスやら演算子やらの、JAVAそのものの解説系サイトは見つかるのですが。。。 Q1、映像や音楽関連のライブラリは何を用意すべきでしょうか? Q2、JAVAゲーム開発が初心者レベルの、解説の詳しいサイト等を教えて下さい。 Q3、そのほかで、注意事項やアドバイス等がありましたら、是非お願いします。

  • PHPの開発ツールに関して

    開発環境 : WIndows2008 server 64 /PHP/MySQL/Apache 教えて下さい。 現在、上記のような開発環境でプログラムを作成していますが、特に開発ツール とかもなく、プログラミングしています。 そこで、何か良い開発ツールを探していますが、良いものはないでしょうか? Visual Studioのようなデバッグを簡単に行えるものを探しています。 ネットで検索する限り、NetBeans というようなものが見つかりましたが、それは後環境が できあがっている状態でも、後からインストールして使えるものでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう