LoginSignup
1
1

More than 1 year has passed since last update.

Re:ゼロから始めるSNS作り生活(二週間目+α)

Posted at

どんな記事?

プログラミング初心者が、イチからSNSサイトを構築する過程を記録したもの。
誰かに「勉強の状況はどう?」と訊かれたときに提示できるよう、Qiitaの記事として投稿しています。

前置きや前提

完成品のイメージ

  • コンセプトは「勉強記録をポストしたり、問題を出しあったりできるSNS」
  • 自分の勉強記録をポストし、閲覧できる
  • 友人の勉強記録に対し、コメントやミニクイズを投稿できる
  • 自分と似た目標を持つユーザーを検索し、フォローできる
  • フォローしている人の勉強記録を一覧表示する「タイムライン」もある
  • 当然レスポンシブデザイン(本記事では未実装)

制作の目的

  • プログラミング技術の向上
  • あわよくば友人にこのSNSを使ってもらいたい

これまでの経験や知識

  • WordPressで構築されたサイトの調整経験
    (2年弱従事していたため、HTML・CSS・PHPとも基礎はわかっていたつもり)
    (通信をはじめバックグラウンドの知識はゼロ)
  • 大昔にイチからサイトを構築した経験
    (HTMLしか使用していない化石のようなサイトのみ)
  • JavaScriptとSQL:1年ほど前にProgateで一応学んだだけで、ほぼ忘却
  • DBの知識:応用情報技術者の合格ラインにギリギリ触れられる程度

先週まで

今週の日記

10日目(6月6日)

  • 「勉強記録」画面の入力項目を減らし、簡略化
  • 「勉強画面」に編集機能を実装

11日目(6月7日)

  • 「勉強画面」にデータ削除の機能を実装
  • 「友達検索機能」の実装(未完成)
    【ハマったドツボ】
    ユーザーの入力情報に当てはまるデータをselectする機能を作成
    →結果がnullにしかならない
    →途中で生成している変数をすべてecho(配列ならvar_dump()してから)
    →異常はなさそう……。ここで2時間くらい悩んで、結局寝る
    →起きたら気づいた。「そもそも当てはまるデータがテーブルにない!」

12日目(6月8日)

  • 「友達検索機能」の実装(完成)
  • 「フォロー機能」の実装
  • 「タイムライン機能」の実装
    【悔しい点】
    SQLのJOINを使えばスマートに実装できそうな場所があったが、
    どうにもうまくできず、結局スマートでない方法で実装してしまった……。
    DBにアクセスする回数が増えてしまい、低速化につながっているはず。

13日目(6月9日)

  • 「勉強記録」に画像をCRUDする機能

14日目(6月10日)

  • 「コメント」のうち、CRUDのRだけ
  • 共通部分としてまとめられる箇所を発見したため、一部を共通部品化
    (設計段階でそこを見抜けという話ではある)

15日目(6月11日)

  • 「コメント」のうち、CRUDのCRおよびD(ただしDはバグ発生中)
  • 「勉強記録」や「コメント」をREADする権限の調整
  • 共通部分を部品化(昨日よりさらにコードの可読性がアップした)

16日目(6月12日)

  • 残ったバグ潰し
    【得た教訓】
    PHPベースでコードを組んでいるのだから、無理にJSを使おうとしない。
    可能ならば言語は統一したほうが良さそう。
  • コメント機能の完成

来週以降実装したいこと

  • 「勉強記録」の「詳細」にもURLがある場合、自動でリンク化
  • 変更前の画像データの自動削除機能(プロフィール画像のみ初週に実装済)
  • GET通信でデータをやりとりしていた部分をPOSTに→セキュリティの改善
  • レスポンシブデザイン化
  • よりセキュアに、より高速に
  • 全体的なデザインのブラッシュアップ
  • androidアプリ化
  • ファイル名や変数名のルールを明確にし、脱スパゲッティ化
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1