質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

6回答

2104閲覧

ファイルベースでのサイト構築について

yooashleaf

総合スコア32

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1グッド

3クリップ

投稿2019/04/12 11:45

ファイルベースでのサイト構築はもうやめた方がいいでしょうか?
ファイルベースのメリット・デメリットを教えてください。

これまで、web創世記にかじったperlばかり使ってきました。
元々デザイナー出身という事もあり、
苦手意識から新しい言語や技術に手を出さず、perlでファイルベースでデータを管理してきました。

今回、結構ボリュームのある会員サイトを1人で作る事になったのですが、
php・mysqlでの構築を検討しておりましたが、
知識不足から制作時間が膨大になってしまうと考え、
perl・ファイルベースでの制作にしようと検討しております。

そこで、ファイルベースでのメリット・デメリットを教えてください!

あと気になるのは、
プロジェクトが大きくなった際に他の技術者を雇った場合、
perl・ファイルベースですと技術が古くてスムーズに引き継ぎ出来ないのではないかと心配しております。

omochi_123👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tanat

2019/04/12 11:55

ファイルベースというのは、フロントコントローラーを使わずに各機能毎にperlのファイルを設置する様な構成という認識で問題ありませんか?
yooashleaf

2019/04/12 11:59

表現が曖昧で申し訳ないです。 ファイルベースというのは、mysqlなどのデータベースを使わずに、user.csvなどのファイルにサイトに用いる情報を入れておく事です!
退会済みユーザー

退会済みユーザー

2019/04/12 13:15

同時アクセスなどでファイル操作を失敗するリスクは考慮してあるのだろうか?
guest

回答6

0

ベストアンサー

ファイルベースでのサイト構築はもうやめた方がいいでしょうか?

私は「もうやめた方がいい」と思います。ただし、当該のブロジェクトでそうするべきかどうかは判断できません。少なくとも、未来のどこかではやめた方がいいと思います。

ファイルベースでの開発がすたれ、データベース中心に移行したのは、流行りすたりの問題ではなく、そうなるべき必然性があるからです。そのような大きな潮流に逆らうことは避けたほうが賢明かと思います。
それに、web創成期にファイルベースの仕組みが主流だったのは、当時データベースの技術がなかったからではありません。まだPCサーバーがデータベース・サーバーとしては非力だったことや、MySQL等のオープンソースデータベースが成熟していなかったからであり、もし使えるなら使っていたわけです。なので、現在においてデータベースを避ける技術的な理由はほとんどないと思います。

データベースを使うべき理由は、具体的には、tanatさんが挙げておられるような内容になりますが、特に排他制御やトランザクションの仕組みが貧弱なのは致命的ではないかと思います。ファイルベースでも排他制御自体は可能ですが、データベースのように行単位のロックができるわけではないので、性能や柔軟性の点で制約になります。
それに、トランザクションに至っては「自力でなんとかする」ことは絶望的かと思いますので、堅牢性の高いウェブシステムを開発するには、データベースは必須と言ってよいかと思います。

性能、堅牢性に加えて、セキュリティの面からも「結構ボリュームのある会員サイト」をファイルベースで開発することはリスクが大きいと考えます。

投稿2019/04/12 13:43

編集2019/04/12 13:44
ockeghem

総合スコア11701

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yooashleaf

2019/04/14 16:56

ご回答ありがとうございます。 「排他制御やトランザクションの仕組みが貧弱なのは致命的」 これは頭では考えてましたが、やはり慣れているのでファイルベースのよい所を無理矢理探してしまいました... ファイルベースはもうやめようかなと思います笑
guest

0

結構ボリュームのある会員サイトを1人で作る

結構というのがどの程度なのか?会員制サイトの性格がどんな種類のものなのか?
によると思いますが、普通に考えると、データベースを使用しない設計は無いんじゃないかと思います。

すでに指摘がある点以外の観点で考えると、インフラに対しての設計が複雑になることがあげられます。

「結構ボリュームのある会員サイト」はシングルサーバで稼働するようなインフラ設計にはならないでしょうし、そうなると共有ストレージを用意することになりますが、クラウド環境やレンタルサーバ等で実現するのはそれなりのスキルが必要です。*オンプレなら比較的簡単だと思いますが、それはそれで一人で設計/運用するのはしんどいかと。

データベースサーバを採用すれば、負荷のかかる検索処理をデータベースサーバに任せられるし、サイズ設計やパフォーマンスチューニングもファイルベースのものよりコントロールしやすくなります。

ログを部分的にファイル管理することはあっても会員情報やコンテンツをファイルベース管理する事は今となっては現実的な解ではないと思うので、概要設計をしてみては?
レスポンス速度や稼働率、バックアップ要件あたりで課題が見えてくるはずです。

投稿2019/04/13 00:37

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

要件を満たすなら実装は何でも良いと思います。


データストアをファイルとした場合、
RDBMSのメリットが使えない、もしくは自力で実装しないといけないというのがデメリットです。

詳しくは RDBMS 機能 とかで調べてみてください。

特に検索や同時更新制御、正規化によるデータ間の整合性確保あたりを自力でしっかりと実装するのは、少なくともRDBMSとSQLの基本を学びながら実装するよりは難易度が高いと思います。

この辺の機能が必要無かったり、制限付きで問題無ければクリティカルな問題にはならないという事でもあります。
(必要無いかどうか判断出来ないにであればクリティカルな問題になる可能性が高いです。)

メリットは、
使った事があるので工数が読みやすい
環境構築や移行が簡単、どこにでもデプロイ出来る
あたりでしょうか。

あと気になるのは、
プロジェクトが大きくなった際に他の技術者を雇った場合、
perl・ファイルベースですと技術が古くてスムーズに引き継ぎ出来ないのではないかと心配しております。

perlを出来る人は一定数居ると思いますが、年齢層が高くはなるので、ある程度割高になる事は想定しないといけないでしょうね。
それよりは、フレームワークやRDBMSといった仕組みを使わないのであれば、相当しっかりとドキュメントを作らないと作った人以外は触れないシステムになりますので、そちらを気にする方がいいかと思います。

投稿2019/04/12 12:25

編集2019/04/12 14:12
tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yooashleaf

2019/04/14 16:54

ご回答ありがとうございます。 RDBMSは確かにかなり重要ですね。 ファイルベースでは排他処理も完璧ではないので、長く運用していくと弊害は出てきそうですね...
guest

0

php・mysqlでの構築を検討しておりましたが、

知識不足から制作時間が膨大になってしまうと考え、
perl・ファイルベースでの制作にしようと検討しております。

妥当な判断ではないでしょうか。ページ数が何万もあるとか複数の編集者が同時並行的に制作を勧めているというのでない限り、特に不利なことはないと思います。

perl・ファイルベースですと技術が古くてスムーズに引き継ぎ出来ないのではないかと心配しております。

引き継ぎ出来る人を選考して採用すれば良い話です。それにperlは一部の意識高い系の人が声高に言うほど古くはありませんよ。十分現役で広く使われています。

投稿2019/04/12 12:16

KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yooashleaf

2019/04/14 16:53

ご回答ありがとうございます。 perlに関しては安心しました。 perl・データベースという組み合わせでも問題ないかなと思っております。
guest

0

作ったら終わりではなく始まりなので後々のメンテナンス性や拡張性、運用面、セキュリティまできちんと考えてできるのでしたらどちらも大差はないと思います。DB使ってても作り次第では脆弱性ばかりになりますしね。

ただ「流行ってるから」「知識がないから」で選択するのは早計と思います。

投稿2019/04/12 12:10

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/04/12 12:18

DBとはいっても辿ればファイルですし。
yooashleaf

2019/04/14 16:52

ご回答ありがとうございます。 確かに後々の事を考えて設計しないといけないといけませんね。。
guest

0

作ろうとしているサイトの詳細が分からないので、断言はできませんが、PHP+MySQL で開発した方が無難でしょう。

ファイルベースでのメリットは、**「質問者さんが新しいスキルを習得せずとも開発できる」**の一点だけではないかと思います。

デメリットは大きく以下の 2 点あるかと思います。

  • RDB と比較して機能が貧弱で、もし同等の機能を実装するとしても膨大な時間がかかる。
  • ファイルベースの Web 開発経験者が少ない。(特に若い世代ではほぼ皆無だと思います)

そもそもですが、現代の会員サイトをファイルベースで実装できるものなのでしょうか?
正直、ファイルベースで実用レベルの会員サイトを作るのは相当大変な作業になると思いますが、ファイルベースで作った場合、これくらいの時間でできるというような算段はあるのでしょうか?

投稿2019/04/13 00:09

nskydiving

総合スコア6500

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問