@IT情報マネジメント会議室は、2009年4月15日に新システムに移行しました。
新たに書き込みを行う場合には、新しい会議室をご利用ください。
- PR -

ローカルで開発か共有サーバーで開発か

1
投稿者投稿内容
RoR
会議室デビュー日: 2008/03/18
投稿数: 3
投稿日時: 2008-03-18 14:27
はじめまして。
複数人でのWeb系開発の方法についてちょっとご意見を聞きたく投稿します。
この仕事を10年ほどやってきましたが、これまでローカルで開発&実行環境を構築して、
開発&テスト

共有のソース管理リポジトリにチェックイン

テストサーバーでテスト
の繰り返し、という方法で開発をやってきたのですが、今度社内の新規案件でこの方法をとろうとしたら、
1つのテストサーバー上で複数人がファイルを共有して開発・テストするのが普通だ、といわれてしまい、「そもそも何でローカルで開発してんの?」「そのためのマルチユーザー環境でしょう」(サーバはLinux)。ともいわれてしまいました。

10年やってきてそのうち5年は狭いところでやってきたので、私の感覚がおかしいのか? とも感じてしまいました。 しかし実践的な開発方法論をいくつか書籍等で学んできましたが、どれもローカルで開発して管理ツールで統合が前提のとなっているものしかなかったような気がします。
私の上司が言っているような開発方法って、ほんとにそれが普通なのでしょうか?
ちょっとびっくりしてしまい、版違いかもしれませんが投稿させていただきました。


[ メッセージ編集済み 編集者: RoR 編集日時 2008-03-18 14:27 ]
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2008-03-18 15:29
引用:

RoRさんの書き込み (2008-03-18 14:27) より:
1つのテストサーバー上で複数人がファイルを共有して開発・テストするのが普通だ、といわれてしまい、「そもそも何でローカルで開発してんの?」「そのためのマルチユーザー環境でしょう」(サーバはLinux)。ともいわれてしまいました。



「ローカルで開発」という意味の確認ですが、例えば。
実行環境はLinuxで開発者にはそれぞれのPC(Windows)が与えられている。
開発用のサーバ(Linux)があり、特に制限なく使える。
開発者はPCで開発をし、開発用サーバ(Linux)にFTP等でアップしてテストを実施する。
という流れで、「ローカルで開発」はこのPC上での開発を指しているということであってますか?

その上で、上司の指摘は、その開発用サーバ(Linux)に皆がログインして開発するのが当たり前というふうにおっしゃっているということでしょうか。

その前提の場合に気になるのが、開発用サーバ(Linux)にどうやってログインするか?です。
(1) telnet/ssh(TeraTermなどで)でログインするのか。
(2) そもそもローカルの環境がUnix系の環境。
(3) Unix系以外の環境 + X端末エミュレータを使用。

その上司の方が(1)のことを言っていそうな気がするのですが、
だとすると、10年くらい昔なら割と普通かもしれませんが、
現在の状況では普通と言えるかはちょっと疑問です。

(1)を前提にしているなら、想定している開発環境はviかemacsなのではないでしょうか。
Web開発の際の言語、使用する開発環境にもよりますが、例えば、いまどきのJavaでの開発なら、特に制約がなければ、EclipseなりNetBeansなりの開発環境を使うのが、一般的だと思います。このため、(1)のパターンでの開発というのはちょっと考えられません。

#(2)、(3)の場合なら、Linux向けのEclipseを使うという選択肢もあるかもしれませんが、社員のほとんどがLinux環境を使っているような会社でもない限り、あまり考えられないですね。

引用:

私の上司が言っているような開発方法って、ほんとにそれが普通なのでしょうか?



上司の言う方法の場合、開発ツールとして何を使い、どのように開発を進めるのか?ということを具体的なレベルで確認した方がよいと思います。
RoR
会議室デビュー日: 2008/03/18
投稿数: 3
投稿日時: 2008-03-18 15:42
引用:

実行環境はLinuxで開発者にはそれぞれのPC(Windows)が与えられている。
開発用のサーバ(Linux)があり、特に制限なく使える。
開発者はPCで開発をし、開発用サーバ(Linux)にFTP等でアップしてテストを実施する。
という流れで、「ローカルで開発」はこのPC上での開発を指しているということであってますか?



説明不足で申し訳ありません。まさに上記のとおりの環境です。
上司が言っているのは、サーバーにはTeraTerm等でSSHでログインしてviかEmacs等でコードを書く、という方法です。
あまり新しくないシステムで、すでに出来上がっているものに対して、ちょこっと改修を入れるのであれば、その方法もわからなくはないのですが(そもそもそういう場合ってローカルで動かせるような仕組になってない場合が多いと思います)、新規にゼロから作ろう、というのが今回です。
各自でテストのためのDBが必要ならDB名を変えて各自で(共有サーバー上で)持たさればいいじゃん、とのことでした。
言語はRubyを採用したいのですが、PHPになるかも、という状況です。

私的には正直1台のサーバーで同じソースファイルを共有して開発というのは、怖くてやりたくありません。

[ メッセージ編集済み 編集者: RoR 編集日時 2008-03-18 15:48 ]

[ メッセージ編集済み 編集者: RoR 編集日時 2008-03-18 15:52 ]
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2008-03-18 16:06
私の予想した前提であっているということですね。

引用:

言語はRubyを採用したいのですが、PHPになるかも、という状況です。



その言語に対して、便利な開発環境があるなら、それを使わない手は、いまどきだと考えられないですね。
超が付くくらいすごいプログラマな人達の中には専用の開発環境を使うよりもviやemacsの方が効率がいいという人も稀にいますが、平均的な開発者はもちろんそこそこ熟練の開発者にとってもたいていの場合、viやemacsを使うよりも専用の開発環境を使う方が開発効率よいです。

引用:

私的には正直1台のサーバーで同じソースファイルを共有して開発というのは、怖くてやりたくありません。



ただし、上司のおっしゃる方式でもバージョン管理ツールは使うのではないかと思うので、そうであれば、ソースファイルを共有することが怖いという心配は必要ないんじゃないでしょうか。DBだけでなくWebサーバなどもポートの設定だけ分けてあげれば同じサーバマシン上で別々の環境は作れますし。

ただ、バージョン管理ツールの利用も含めたいろんな作業がコマンドラインからの操作になるので、そういうことに不慣れな開発者が混じっていると非常に危険ですが。
開発メンバーを集める上でも現況を考えると不利になるのは否めないと思います。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2008-03-18 17:22
コンピュータ資源的には無駄っぽく見えるかもしれませんが、
そんなにケチる必要がないのが今の時代ですし、
個別の開発者のマシンに環境を組む方が安全だと思いますね。

バージョン管理のリポジトリにヤバいファイルをコミットしない限りは、
ローカルで変な修正をしてシステム全体を壊す羽目になっても
その個人の環境がダメになるだけで済みます。

共同の環境で皆が開発しているとすれば、共通部の修正は戦々恐々と言ったところでしょうか。

メリットとデメリットを挙げた上で、この時代のこの環境下で秤にかけて
どう判断するべきかを検討するべきでしょう。
時代とともに前提も変わりますから、結論も変わって然りですね。
RoR
会議室デビュー日: 2008/03/18
投稿数: 3
投稿日時: 2008-03-18 17:24
Ruby,PHP,JSなどのスクリプト系なら秀丸でも十分だとは思いますが、VisualStudio,Eclipse,秀丸に慣れていて、viなどたまに簡単なシェルスクリプト書くだけのわたしにとってviで書く、というのは考えただけでも恐ろしくなります。

引用:

開発メンバーを集める上でも現況を考えると不利になるのは否めないと思います



ほんとにそう感じます。
未記入
ベテラン
会議室デビュー日: 2005/06/03
投稿数: 50
投稿日時: 2008-03-20 18:04
うちは以下のルールで開発しています。

@開発:ローカルPC (windows)
     ↓
Aコンパイル:テストサーバ (linux)
     ↓
Bテスト:テストサーバ (linux)
     ↓
Cチェックイン:ファイルサーバ(windows)

確かにxwindowとかでlinuxにログインしてその一台で開発する事も可能だと思いますが数十人にもなるとちょっと厳しい気がします。
cordwainer
常連さん
会議室デビュー日: 2007/04/21
投稿数: 34
投稿日時: 2008-04-13 20:25
時々、「Viじゃなきゃ、イヤ」という人も見受けられますね。

「今どき」で考えると、RoRさんのやり方が主流と思います。私も、Java、Rails をやっている時はそのスタイルでした。
Cobol やっていた時は、メインフレームなので、まぁ、必然的に共有となりましたが。

# PHP やっていた時は、その時のリーダが Subversion 等のバージョン管理を
# 嫌っていて、まったく使わずの開発でした。そして、開発サーバがおかしくなって、
# 泣きたくなったりしてました。

開発プロセスで考えると、各人のやりやすい環境で開発をした方がバグが少なくてすみ、ストレスもたまりません。RoRさんの主張するやり方を通した方がいいと思います。


1

スキルアップ/キャリアアップ(JOB@IT)