アプリ版:「スタンプのみでお礼する」機能のリリースについて

私は今まで自前でMS-Accessを勉強し、最低限のDBの知識とVBの知識を持っています。ですので実務的な話はだめですが、概要としてある程度理解できると思います。
(ただ、プログラマの職業でなかったため、エラー処理とか、コーディングの規則とかそういったものはわかりません)
あと、HTML,CSSはある程度はわかります。しかし、java scriptやCGIへのPost などは未経験です(突っ込んでやればできると思います)

ただいま、WEBで簡単なシステムを作りたいと考えています。
システムは簡単なもので、フォームでユーザ情報を登録をし、それをデータベースに登録する。ユーザはログインして登録情報を変更削除できます。
また、ユーザーは、ほかのユーザーの情報を匿名で検索、閲覧できる、というようなシステムを作りたいと考えています。
マッチングみたいなサイトです。

Accessで作ればすぐにでも作れるものなので、構造は単純なものです。

しかし、私は趣味(というかNPOさんの手伝いですが)でそのようなサイトを作りたいと考えてますが、セキュリティなどを考えるとゼロからシステムをつくるのは怖く感じます。
また、開発言語はPHPかなぁと思っていますが、習得にも時間がかかるだろうし、セキュリティ問題もその都度対応するのは難しいです。クロススクリプティング?対策など確実に施せる自信がありません。

そこで、よくPHP CAKEなどフレームワークというものを聞きますが、これらは、初心者が言語の習得速度をあげるものであるか?
セキュリティ対策をある程度、保管してくれるものか?
どのくらいの難易度なのか?

答えるのも難しいと思うのですが、アドバイスしてほしく投稿させていただきました。
フレームワークの概要は把握してるつもりですが、いろいろな言語に実際に触れて、ためしている時間もないのです(少し急いでます)

RubyOnRailはわたしにとって特殊な環境過ぎて、興味はあるもののサーバーへの組み込み当考えると実用化には壁を感じてしまいます。

しかしCakeはLAMP環境に実装するには楽そうです。
また、Quictyというフレームワークも見つけ関心はありますが、実際どんなもんなんでしょう。

なんでもかんでもいいのでアドバイスがほしいです。
(ほかのフレームワークでも大歓迎です。ただLAMPへのインストールの容易さと、初心者の習得のよさ大前提となります)

実際入れてみてテストした時に工数少なく判断し、早く実用化したく質問させていただきましたので「実際入れてみればいい」だけのご意見は大丈夫です。
初心者なので選定するある程度のスキルを身につけることに時間がかかるので、ポイントを押さえた開発言語を探してます。

お手柔らかに、なにとぞよろしくお願いします

A 回答 (5件)

まあ特にこだわりがないなら、PHPにしとけば、とりあえずいいのではと思います。

情報もたくさんありますし、それなりに使いやすい言語だとも思いますし、まあそんなに後悔することはないんでは。
Railsは、Ruby(あるいは少なくともオブジェクト指向の言語)を知っていないと何だか良くわからないのでは、と思います。そもそも最近下火な感もありますしね。(ただし、確かにものすごく便利というか楽だとは思います。)

Cakeなどのフレームワークは確かに便利ですが、言語自体と同時に学ぶのはどうかな、という気もちょっとだけしますが、まあ、質問者さんは少しは分かってらっしゃるようなんで大丈夫かな。

で、一人でやるなら、結局のところ、「実際入れてみればいい」につきます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
>結局のところ、「実際入れてみればいい」につきます。
そうなんですよね(笑

>質問者さんは少しは分かってらっしゃるようなんで大丈夫かな。
う~ん、わかっていないかも。だいたいフレームワークってこういうものですよ、くらい(恥 です。

いずれにしてもCAKEをやるにはPHPの下知識がなきゃだめなのかなぁ、とは思いますが、本屋かWEB上で
PHP→CAKEじゃなく最初からCAKEを土台にして学ぶが良し
というものを見たことがあります。それは可能なのでしょうか?

また、セキュリティの問題でCAKEは基本的にはセキュアに設計されたものなのでしょうか?(セキュリティホールは発生するものなのでしょうが)
あるいはPHP同様、ゼロから対策をすべきなのでしょうか?

また、データベースの扱いとかはPHPだろうがCAKEだろうが構築の難易度はかわらないのでしょうか?
それともCAKEにすることで手軽になるのでしょうか?

お礼日時:2009/08/04 09:33

CakePHPなどのフレームワークは、「初心者が習得速度をあげるもの」では全然ない。

「既に言語をマスターしている人間が、開発効率をあげるもの」と考えたほうがいいと思う。PHPをしっかりと理解してないと使いこなすのは難しいだろう。

質問の内容からすると、PHPはいい選択だと思う。というより、現在、Web系で「とりあえずプログラミングを覚えたい」と思ったら、PHP以外に選択肢はほとんどない気がする。Railsは、別に覚える必要はない。RailsのPHP版がCakePHPだと思ってもいいので、PHPをマスターした後、Cakeなどを学べば、Railsのほぼ代替となる。

PHP以外の選択肢はないのか?ということであえて追加しておくと……。

これは、お勧めでは全然ないのだけど、スクリプト言語で、ビギナーの学習にもっとも適しているのは、Pythonあたりだろうと思う。で、このPythonは、実はとある狭い分野でのみ、非常に強力に使われている。それは「Googleのサイト内」だ。現在、Googleでは「Google App Engine」というものを提供しており、Googleのサイト内に、自分のサイトを無料で構築できるようになっている。Googleがもっている、「BigTable」という超巨大データベースなども利用できる。

このサイトの基本言語が、Python。なので、非常にレアな選択だが、「Pythonを覚えて、GAEでWebサイト構築」という面白い選択肢も存在する。個人的に、この環境はかなり気に入っているので、まぁ「こういう面白いものもあるよ」ということで、参考程度に。

この回答への補足

[お礼の続きです]

さて、Pythonですが、注目ですね!
結構、欧米では利用されているみたいで気になる存在でしたので、GoogleAppsの採用は注目でした。
日本でも利用される方がドドっと増えそうですね。
日本語情報とかは多いのかな?
さっぱりわからないのでこちらのほうもどんなものか調べさせていただきます。

本当にありがとうございました!

補足日時:2009/08/04 10:03
    • good
    • 0
この回答へのお礼

ありがとうございます。
目が覚めるような内容でした。
そもそもRailsのPHP版がCakePHP、とありましたが、

Rails→初心者でも10分でブログが...
とのうたい文句を聞き、誇大表現だろうとは思いながらも非常に関心を持っていました。

そしてRailの代替えCakeが使えるなら、既存の環境で採用するにはこちらの方が現実的だと思っていました。

しかし
>「初心者が習得速度をあげるもの」では全然ない。「既に言語をマスターしている人間が、開発効率をあげるもの」
正直これは驚きました。なぜならRoRがRubyをすでにマスターした人が効率を上げるものであるという認識が全くなかったので、漠然と上述の話は聞いたことはありましたが、「PHPをしっかりと理解してないと」ではなく、ある程度の理解で大丈夫だと思っていたからです。

ただ、私は「使いこなす」のが目的というより、先に書きましたマッチングのシステムを作りたいだけなのですが、やはり時間をかけて習得しなければならないでしょうか?(要は掻い摘んでPHP、Cakeを勉強して実現する、なんてことができるわけじゃないのでしょうか?、ちょっと都合よすぎですが)

Accessでいえば、二種類のユーザ管理のテーブルをつくる。
それぞれのユーザの情報を登録、変更できるフォームを作成する。
片方のユーザが、もう片方のテーブルのデータを参照することができる
といったものです。

目的ありきなので、この実現システムが別のサービスで出来ちゃうんならそれでもいいんですよね。
ただ、いろいろ調べたのですがそれらしき有料サービスもない。既存のオープンソースのCMS(ホームページの管理システム)にも、それを提供するものがない(当然ですが)
NPO故コストもかけれない状態で、開発がちらつき始めているのですが、素人の苦肉の策としてフレームワークが浮上したわけです

それで、構築が簡単なら自分でつくるのもありかなぁと思いましたが、やはりゼロからやるとなると、う~ん、つらいかもしれません(時間がかかりすぎる)
また何故セキュアにこだわるかというと、構築後に常にセキュリティの意識が必要、必要ならコードの修正。しかし、お手伝いでやっているので常に管理するのは難しいと考えています。
しかし、フレームワークで実現できれば、セキュリティ問題が発生してもパッチを当てれば済むのかなぁとも考えていました。

お礼日時:2009/08/04 10:02

よく、「Railsなら5分でデータベースを使ったシステムが作れる」というのは、まぁ誇大広告ではなくて事実。

そして、それはCakePHPでも同じで、インストール、データベースの設定、コマンドの実行と、まぁ10分もあればデータベースを利用したアプリケーションができる。

ただ、これはいわゆる「CRUD」のシステムのこと。つまりCreate(データの作成)、Read(データの表示)、Update(データの更新)、Delete(データの削除)といった基本機能を、あらかじめ用意されているテンプレートを使って自動生成するというもの。なので、それ以外の機能を特に欲していない、また出来合いの表示を更に修正したりは考えない、ということであれば、特にPHPを深く理解していなくともできる。逆に、それ以外の機能を実装しようとすると、PHPとCakePHPを深く理解していないとほぼ不可能だろう。

また、2つのデータベースの連携となると、これはSQLとテーブルのJOINに関するしっかりとした知識が必要となるし、また自動生成されるのはHTMLとPHPでだだ~っと書き出されたページなので、これを編集してアレンジしようとなると、PHPの特にオブジェクト指向の知識とCakePHP自身の理解が必要になる。

あとは、どの程度のものを作るかによって、判断は変わってくるだろうから、正直、後は自分で判断して、としかいえないが……。まぁ、PHPもCakePHPも無料なのだし、とりあえず一回、簡単なアプリケーションを作ってみてはどうだろうか。ためしにやってみて「これで十分OK」なら、それでいいのだし。ちょっと使って「こりゃ手に負えない」なら、PHPを地道に学んでいけばいいと思う。
    • good
    • 0
この回答へのお礼

ありがとうございます!!!

>「CRUD」のシステムのこと。
これです!
やりたいことはシンプルなことだったので!

>また自動生成されるのはHTMLとPHPでだだ~っと書き出されたページなので、これを編集してアレンジしようとなると、PHPの特にオブジェクト指向の知識とCakePHP自身の理解が必要になる。

なるほど、オブジェクト指向の概要は以前学べました。
ちょっとSQLが大変かなぁと思いますが、試してみる価値がありそうです!

ありがとうございました!

お礼日時:2009/08/05 13:36

Windowsサーバーを用意できるなら、VB.Netが覚えやすいと思います。


(「ASP.Net」で調べて下さい)

JavaScriptは、HTMLフォームを送信して(CGI/ASP.Netを使用して)ページ全体を書き換えるという処理を補助する
(フォームを送信したり、ページ全体を書き換えるのを省略する)
ためのものですので、絶対必要というわけではありません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
Javascriptは非常に簡素にわかりやすい説明でした。ありがとうございます。

WindowsServerは今のところは検討していません。
LinuxサーバーによるMonoの実装が一般的になったら、個人的にもVBがなじみやすいのでいいのですが、今のところは検討していませんでした。

ありがとうございました。

お礼日時:2009/08/05 11:40

こんにちは。

Quictyの作者の根岸と申します。
このたびは、候補のひとつに上げていただきありがとうございます。

Quictyは、WebブラウザのGUIを使って基本的なWebアプリを作成できることが最大の特徴です。
カスタマイズも要領がわかれば、ソースの決まった場所を削ったり足すだけで、かなりのことができます。

CakeやRailsやStrutsなど、多数の言語、フレームワークの経験があり、
現在、実際に受託案件をQuictyで作成している同僚によれば、
CakeとQuityを比較すると以下のようになるそうです。

---ここから
※Cakeが優れている点
・簡単なCRUDの土台を一発で作成できる(DBテーブルも含めて)コマンドツールがある。
・フレームワーク自体の拡張が楽(ヘルパーとかプラグインとかの考え方)
・ヘルパーは通常のHTML以外にもAjaxやJS,XML,JSON...など多種多彩。
・テンプレートファイルが少ない。(逆にいえば見た目の部分が少々わかりづらい)
・設定ファイルをほとんど書かなくて良い。

※Quictyが優れている点
・簡単なCRUDの土台を一発で作成できるGUIのビルダーがある。
・QuickFormを始めとしたPEARライブラリとSmarty経験者にはわかりやすい。
・好みでテンプレートファイルを分けられるので直感的に見た目を編集しやすい。
・比較的、普通のWebファイル構成に近いので馴染みやすい。
・GUIのビルダーを使用することで設定ファイルを自動で書き出してくれる。

※あんまり差がない点
・フロントコントローラ型のMVCフレームワークである点。
・Apacheのmod_rewriteを使用し見やすいURLでアクセスできる点。
・環境に依存しない点。
・基本的なCRUD機能を瞬時に生成できる点。(GUIとCUIの違いはあるものの)


フレームワークは大きく分けると2つの流れがあり、

1.JavaのStrutsの流れを汲むフレームワーク
Struts, Mojavi, symfony, Zend Framework

2.Railsの流れを汲むフレームワーク
Rails, CakePHP

Quictyを触った印象としましては
Action→Model→Viewの流れはRails系に近いですが
フレームワークの考え方としてはStruts系に近いと思います。
ビルダーを使って設定ファイルを自動的に吐くところなどは
最近のStruts系の動きと同じ流れのように感じます。
----ここまで
とのことです。

ご参考になったでしょうか?

Quictyはまだヨチヨチ歩きの状態ですが、ようやく複数のプロのプログラマに使って貰って
いちおう"使える"フレームワークであることがわかってきたところです。

ここのところ多忙で、メンテできていないのでが、これを機会にまた改良していきますので
ご意見いただきたくお願いします。

参考URL:http://quicty.zubapita.jp
    • good
    • 0
この回答へのお礼

連絡が遅れて大変申し訳ございませんでした。
UIのビルダーがあるというのは初心者にとってとても重要ですね。
逆にPEARやSmarty自体を利用したことがないのでわかりません。
GUIのビルダーを使用することで設定ファイルを自動で書き出してくれるのは大変助かるなぁという思いと、CAKE側は設定ファイルがほぼないというのはやはり信頼できますね、初心者からすると。

以前、勉強のためにテストしていましたが、あることからその環境が使えなくなり、なおざりになっていました。
再度、テストしてみます。

日本発の世界的フレームワークになることをお祈りします\(^^)/

お礼日時:2009/08/29 13:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!