1.はじめに

 自粛生活でなんとなく暇だったので、ブログを作りました。ブログを書きたいだけなら「アメーバブログ1」や「はてなブログ2」といった既存のブログサービスを使えばいいのですが、残念ながら今回はブログを書きたいからブログを作りたいのではなく、 ブログを作りたいからブログを作りたい(?) ので、SaaSの利用は却下。
 当然バックエンドもいじってみたいという理由で「WordPress3」もなし。今回はとりあえずサーバーサイドからフロントエンドまでを自前で構築し、インフラ構築だけは外部サービスに任せることにしました。

2.言語選び

 まず言語選びですが、とりあえず自分の知らない言語で作りたいと思い、調べていく中で「PHP」と「Ruby」の2つの候補が出ました。「PHP」は当時英語も方程式も知らない小学生の自分がなぜか掲示板を作りたいと思って、市販の参考書を親に買ってもらった結果、書いてあることが何もわからず、結局付属のCD-ROMのコードを丸パクリしてサーバーにあげてHPの一部に貼り付けるといった苦い思い出があり、その時のリベンジをしてみたかったのですが、自分が割りと良く使うサイト4が「Ruby on Rails」で作られているので、やっぱり後者にしました。

3.環境構築

3.1.ローカル開発環境

OS: Windows 10 Home + WSL2
言語: Ruby 2.6.3
フレームワーク: Rails 5.2.4
コンテナ: Docker
データベース: PostgreSQL

3.2.補足

 細かいことは説明しませんが、上記のような環境で開発しました。実はこれは現時点での話で、開発当初は若干異なる環境で開発を進めていました。というのも、ちょうど今年の5月頃にWSL2(Windows Subsystem for Linux 2)が正式にリリースされ、Windows10 HomeユーザーでもDocker Desktop for Windowsを利用できるようになりました。それまではOracle Virtual Box + Docker Toolboxでなんとか頑張っていましたが、不都合な点も多く、今回のアプデは嬉しい話でした。ただ、WSL2利用時にホストのメモリを大量に食らうという謎の不具合が発生しているみたいで、自分もGPU利用時に同様の現象が発生しました5。不具合も多いので、必ずしもおすすめはしません。

4.実際の開発

4.1.基本機能の開発(5月初旬)

 実際の開発に取り組んだのは今年の5月のGWでした。RubyのこともRailsのことも何も知らないので、とりあえずRubyの文法をググりながら学び、いわゆるRailsチュートリアル6を読んで手を動かしました。チュートリアルを一周してなんとなく理解できたので、仕事が再開するまでの間に基本的なブログシステムを作り上げました。細かい機能についてはまた別の記事で紹介したいと思いますが、「記事の投稿」「カテゴリ機能」「タグ機能」「最新記事」「ページネーション」あたりの基本機能はこの時点で実装していました。ドメインを取得してサーバー上にアップしたところでGWが終わりましたが、書く内容が無かったのでしばらく放置していました。

4.2.微調整(8月中旬)

 この記事を書いてる3日前ぐらいまで上記の状態で放置していました。この期間何をしていたかというとAtCoder7というプログラミングコンテストに参加していました。これについてもまた別の記事で紹介したいと思いますが、「アルゴリズムの特訓だ!」といってブログをほったらかしにして取り組んでいました。仕事もお盆休みに入り、そういえばせっかく作ったブログを放置していたなと思い、「レイアウトの微調整」「OGPの設定」「アーカイブ機能の追加」「例外処理の実装」等を行っていました。他にも細かなデバッグ等を行い、とりあえず目的のものが作れました。

5.今後

 せっかく作ったブログなので記事投稿もしていくとは思います。忙しくてもプログラミングコンテストの感想を書くぐらいならさっと書けると思うので、しばらくは簡単なことから発信していきたいと思います。


  1. 高校時代よくお世話になった。 

  2. お世話になったことはない。 

  3. こちらもお世話になったことはない。 

  4. 料理する時によくお世話になる。 

  5. 対症療法としてこちらの記事にお世話になった。https://qiita.com/yoichiwo7/items/e3e13b6fe2f32c4c6120 

  6. お世話になりました。 https://railstutorial.jp/ 

  7. これからもお世話になります。 https://atcoder.jp/