2018-10-30に更新

Twitterを作る 第1回 概要

これからTwitterを作って行くところを少しずつ公開していきたいと思う。
下記のような環境で作成していく。

Django

Djangoはpythonのフレームワーク。
慣れているCakePHPの方が早いが面白くないのでDjangoを練習しつつ作成。
(python3.5 + Django1.9.7)

ちなみにtwitterはRuby on RailsからJavaVMに移行していっている様で、pythonとは何の関係もなさそう。
ただ、Instagramはdjangoで作成されているらしい。
また、pythonはGoogleでよく利用されているし、良い言語であることは間違いなさそう。

実際に、使ってみてまだちょっとしか経っていないがかなり好きになってきている。
ひとまず現状の理由としては下記のようなものがあげられる。

管理画面が勝手に作られる

adminページがあり、DBやモデルの作成が進んで行くと勝手に管理画面が作られていく。
仕様の細かい案件等では使いづらいかもしれないが、
こうやって一人で勝手に作っていったり要件のゆるい案件では非常に役立つし無駄な工数削減になる。

情報が見つかりやすい

公式のドキュメントにはわりと欲しい情報が載っているし、
検索すればそこそこすぐに情報が見つかりハマりにくい気がする。
もしかすると英語前提かも知れないがプログラムなのであまり関係ないだろう。

進化してきている

何かやりたいことがある時、古い情報が見つかると、「面倒だな…」と思うことがあるが、
最新の情報をよくよく見ていると結構洗練されていたりする。
最新のWEB開発が好きな人は結構ハマるのではないかと思う。

面倒な部分

慣れていないと環境構築が結構面倒かもしれない。
今のところWindowsでMySQLに接続する方法が分かっていなかったりする。
(サーバーにあげて動作確認している)

React + webpack + superagent + material-ui

Twitterは基本的にSPAっぽいので、基本的にjavascriptで作成し、サーバー側はAPIとして動かしていく必要がある。
そうなるとReactかAngular2になってくると思うが、今回はちょっと型管理が面倒なのでReactを選んだ。

サーバーとの通信はsuperagentを利用し、webpackでビルドする。
とりあえず、webpackで1ファイルになってくれるのはやはり非常に楽。
多くのストレスを軽減してくれる。

UIはmaterial-uiを使用する。
よく出来ていて、今回の様なアプリケーションの場合はすごく使いやすい。

アプリ名

Djangoで作成するdummyのtwitterなのでDumitterとする。

方針

可能な限り似せる。ただしすぐできる範囲。面倒なことは一切やらない。
(ほぼmaterial-uiそのまま)

あと記事の方針としてはなるべく進めていく状況や難しい箇所の説明を入れたいので、
他で調べれば出てくるような細かい技術は解説しない予定。
あくまで娯楽であり教材ではない。

公開場所

https://alphabrend.sakura.ne.jp/dumitter/
(さくらレンタルで無理やり動かしてるので非常に重いです)

次回から実際に開発状況を公開していく予定。

Twitterを作る 第2回 認証


view_list [連載] Twitterを作る
第1回 Twitterを作る 第1回 概要
第2回 Twitterを作る 第2回 認証
第3回 Twitterを作る 第3回 投稿
第4回 Twitterを作る 第4回 コンポーネント構成考察
第5回 Twitterを作る 第5回 フォロー

だら@Crieit開発者

Crieitの開発者です。 主にLAMPで開発しているWebエンジニアです(在宅)。大体10年程。 記事でわかりにくいところがあればDMで質問していただくか、案件発注してください。 業務依頼、同業種の方からのコンタクトなどお気軽にご連絡ください。 業務経験有:PHP, MySQL, Laravel5, CakePHP3, JavaScript, RoR 趣味:Elixir, Phoenix, Node, Nuxt, Express, Vue等色々

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

関連記事

コメント