前提・実現したいこと
自作でSNSを開発したいと考えています。TwitterやFacebookのようにスマホからも利用できるアプリケーションも開発したいと考えています。勉強のためにもSNSを作成するサービスのようなものは利用せずに可能な限り自作したいと考えています。
発生している問題・エラーメッセージ
プログラミングはSwiftでネイティブアプリを作ったことがある程度なので、全く何から手をつければいいかわからず困っています。どのような手順で開発していけばいいのか、またオススメの書籍やサイトがあればご教授お願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答8件
0
ベストアンサー
道のりをざっくり書くとこうなります
- HTMLとCSSでWebサイトを作る
- PHPやRuby等の言語を使って動的なHTMLを生成する仕組み (Webサイトのヘッダー・フッターを共通モジュール化)
- アクセスカウンターを設置する (Webサーバのファイルやデータベースに読み書きする練習)
- 掲示板を作る (誰でもスレッドが作れる)
- 掲示板を改造してブログを作る (ログイン機能で認証しないと記事が作れない)
- ブログを改造して複数ユーザーが自前の記事を持てるようにする
- フレームワークを利用して高速かつセキュアなサービスに強化
一段抜かしでいきなりSNSを作ろうとすると絶対に挫折するので、
必ずこのペースを守るようにしてください。
もし仮にあなたが非常に優秀で一段抜かしに成功したとしても、
最終ゴールがSNSを全世界へ向けて公開する所にあるのであれば
セキュリティ的な都合、ソースコードのメンテナンス性や可読性
…等の事情で何度かは壊して作り直す事になると思います。
あのジョブズやビル・ゲイツですら、最初は数時間でフリーズするクソOSのWindows95、ポンコツですぐ固まるiPhone3をリリースしてたわけですからね。
一歩ずつ積み上げる事が近道です。頑張って!
投稿2018/05/14 03:56
編集2018/05/14 03:57総合スコア21158
0
勉強のためにもSNSを作成するサービスのようなものは利用せずに可能な限り自作したいと考えています。
ひとつ苦言を呈してしまいますと、
既に作りたいものに近いサービスがあるのでしたら、
そのサービスを一度きちんと利用してみて、仕組みや構造を理解し、
時にはソースを読み込んでいくのも大切な勉強機会です。
最終目標を自作に定めるのは勿論動かさなくて良いのですが、
勉強のために既存サービスを利用するのはありだと思います。
もしかしたら「TwitterやFacebookを既に利用したことがある」のかもしれませんが、
仕組みや構造部分に着目して利用したことがありますでしょうか?
普段使っている機能はどのような仕組みで動いているのだろうか、ユーザー同士の情報共有はどういう構造になっているのだろうか・・・etc.
観点をかえることで普段使っているものでも見え方が全く変わってきます。
SNSを導入できるCMSも世の中に溢れているので、
その辺りを調べてみて、自分で導入してみて、検証・研究してみてはいかがでしょうか。
タグを見る限りどの言語で作るのかも決まっていないように見えます。
ただどの言語で作るにしろ、そこは「サーバーサイドの言語の選択」でしかないので、
いずれにしても、HTML,CSS,JavaScriptなどクライアントサイドで動作する言語は必修です。
あとはWebサーバーで動作する言語であれば、おおよそどの言語でも実現は可能です。
投稿2018/05/14 04:31
総合スコア80765
0
当座公開が目的ではなく学習したいということであれば
個人的にはサーバーサイドはPHP、RDBにはMySQLをおすすめします
とりあえずサーバーを1台建てるか仮想サーバーを組んで
httpdとサーバーサイドプログラムがどういった依存関係なのか理解し
RDBのデータ管理について学習してください
必要な知識は広範になるので2~3つ本屋や図書館で書籍を流し読みし
自分に合いそうなものをつかって一通りやってみることが重要です
その上でわからないところをネットで調べるなり、質問サイトで質問するなりしてください
投稿2018/05/14 03:31
編集2018/05/14 03:40総合スコア114585
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
おっ! 自作SNSですか! トランザクションのACIDとか意識してなくても、サービス1本簡単な物を作ってみるだけで、色々学べますので、いいですよ :)
※私の回答での「SNS」は、「電子掲示板」も含めます
「そもそもSNSとは」を考える
そういえば、SNSってなんでしょうね?
自分の記憶が正しければですが、
Social Network Service
なのですが。
難しい亊を考えなければ「人と人の繋がりを作るサービス」ということ、
交流の仕組みや場を作れれば、大体SNSではないのではないかと、ゆるい考えをしています。
なので極論、自分の価値観では文学サロンなんかも、かなりジャンルの絞られたSNSになります。
それを、複数の話題を並列でやりとりできたり、回答に対する評価機能をつけたりするようにしたのが、多くのSNSですね。
まとめ
ということで、練習であれば「なんか情報を共有できれば、概ねクリア」ではないかと思います。
なので最初は、得意な言語で「テキストファイルに投稿内容を保管した電子掲示板」でも大丈夫です。
そこから、同時書き込みに対応するためやロジックとデザインを分離するためにフレームワークを
使ったり、データベースシステムを使ったりしていけばと思います。
参考にならない参考
ということで、自分も過去に作った残骸があるので紹介させてください。
manzyun/Setsuna: Micro SNS or BBS, maybe.
「基本、投稿したら6時間後に投稿が消える」
というものになる予定でした。フロントは未着手、サーバーサイドも正常に動くか怪しいです。が、なにか参考になればと思います。
ちなみに Python,Flask,MongoDBで作りました。
投稿2018/05/14 05:10
総合スコア2244
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
生産性や情報面からRuby on Railsで進めるのがいいかと思います。
Ruby on RailsではRailsチュートリアルというものがあり、とてもいい資料が無料で公開されています。
書籍ですと、以下の3冊がおすすめです。
またRuby on Railsでは豊富にgem(簡単に様々な機能を利用できるライブラリ)が公開されているので、ユーザー認証機能なども簡単に作ることが出来ます。
どのような手順という質問に関してですが、まずは必要な機能の洗い出しをして、様々なwebサービスを見てみてはいかがでしょうか?
投稿2018/05/14 03:56
総合スコア1036
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
アプリケーションのマーケティングからはじめて、要件定義、設計、コーディング、テスト、リリースの手順で良いかと。
追記
ちょっと運用に関する記述が抜けていました^^;
せっかくナンで追記しときます。
SNS は運用がキモです。かなり負荷が高いので、管理方針や規約等を十分に検討することが必要です。
マーケティング段階で気がつくとは思いますが、各社とも規約でかなり制限を入れています。
法的にも縛りがあるので、対応できる準備(法的な相談のできる体制)も整える必要があります。
また、管理画面の設計も負荷を大いに左右するので、きちんと設計したほうが良いです。
こちらは調査が難しいので、SNS の OSS を参考にすると良いです。
投稿2018/05/14 03:32
編集2018/05/15 03:50退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
同じくsnsを勉強中です
投稿2018/05/14 22:25
総合スコア67
0
個人的におすすめなのは、phpのフレームワークである「CakePHP」だと開発しやすいです。
CakeにはCRUD(Create(登録)、Read(参照)、Update(更新)、Delete(削除))が簡単につくれるし、Auth(認証)コンポーネントなど、便利なコンポーネントも用意されているので、おすすめですね。
まずは一度参考書籍をやってみる事をお勧めします。
その本の中に簡易掲示板を作る項目があるので、
ここから仕組みを理解して、オリジナルで作れますよ。
現に、僕自身、去年の8月くらいからphp(プログラミング)に触れて、
10月くらいからCakeを利用して、「新規会員登録->ユーザー認証->認証ユーザーでの記事投稿」という掲示板システムを独自に開発することができました。
自身の環境
ローカル開発環境:XAMPP
db:MySQL(XAMPPなのでphpmyadminが用意されています)
CakePHP v3.0(現在はv3.6)
参考
リンク内容
参考書籍
リンク内容
※若干誤字脱字があるので注意
※インストールはComposerからすると書いていますが、じつはComposerを使わなくても
出来ましたので、参考までに載せておきます。当時、コマンドラインからしようとしたら、かなりハマってしまったため、この方法を取る事にしました。
リンク内容
投稿2018/05/14 04:34
編集2018/05/14 04:48総合スコア217
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/14 04:35
2018/05/14 04:49
退会済みユーザー
2018/05/14 23:23
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/15 03:34