2019/05/14
このサイトを開発しようと思ったきっかけは単純で、Vimの設定ファイルを色々なサイトから引っ張ってきて自分のものとしてまとめたとき、どこからとってきたのかなーと後々困るということが多かったためです。お気に入りに入れればいいやん!となるかもしれませんが一部を引用しただけのサイトをいちいちお気に入り登録していたらお気に入りがすぐいっぱいになってしまいます。じゃあメモアプリでまとめればいいじゃん!という話になると思います。僕もそれでなんとかなるだろうと思っていたのですが、
こういった問題を解決するために自分でWEBサービスを作ればいいじゃないか!と思いたち、このサービスを開発しました。ソースはあまり綺麗ではないと思いますが、githubで公開しているのでよければ星付けてください :)
サービス開発者としては初心者なので、色々といっていただけると嬉しいです。
この例でいえば、C#
やRails
といったタグをURLに紐づけている、というイメージです。その中でRails
& production
というタグが紐づけられているような投稿だけを絞り込む、というふうな機能を使うことができます。
Twitterアカウントで認証しているのでどのデバイスからでも簡単に利用できますし、後から簡単に絞り込みができるので割と雑に色々な情報をまとめることができるかなーと思っています。
バックエンド: Ruby on Rails
フロントエンド: React
Ruby on Railsは前にも同じようにWEBサービスを開発したことがあったので割とスムーズに開発ができたかなと思います。Railsは最近色々言われているかもしれないですが、初心者が初心者として入門するならネットに転がっている情報量は多い方だと思うので良いフレームワークなのではないかと思います。Railsでしっかり学んでおけば他のフレームワークでもある程度ものは作れると思うので。
また、前にWEBサービスを作った時はJavascriptはほとんど使わなかったため割と寂しい見た目になっていたのですが、Reactを導入することで比較的容易に動的な見た目を作ることができたような気がします。一方で僕はjavascriptの構文をほぼ勉強したことがないので、Reduxとかを使って開発することを考えたらしっかりとjavascriptの基礎を抑えていきたいですね。とはいえそういった状態でも割とわかりやすくフロントエンドのパーツを書くことができたのですごい技術だなと思います。
Railsで使ったライブラリを紹介します。
https://rspec.info/
テストを作成するライブラリです。元々のRailsのテストを作る機能でいいのでは?と思うかもしれませんが、RSpecの方がより構造的にわかりやすく、かつ構文自体もわかりやすくシンプルなので、見通しよくテストを書くことができます。
Reactで使ったライブラリを紹介します。
https://material-ui.com
簡単にシンプルでナウい感じのUIを構成することができます。また、アイコンがライブラリに含まれているので画像をどこからかダウンロードしてきて...という手間を踏まなくてもよいのも利点だと思います。
https://www.npmjs.com/package/material-ui-chip-input
マテリアルUIの見た目で複数のタグを入力するようなUIを提供してくれるライブラリです。タグ・URLを入力するフォームで使っています。
https://www.npmjs.com/package/react-share
SNSで情報をシェアするためのコンポーネントを提供してくれます。URLや内容を入力するだけなので楽チンです。
技術的にそこまで難しいことはしていないと思いますが、Reactを書くのが思ったよりも難しくなかったように思います。関数型チックな思考で、状態を持つ部分と持たない部分とを明示的に分けるようになっているためうまく動かない時原因が特定しやすいです。
院試の勉強が始まってしまうしやることが多くなるのでなかなか手を入れられないかなーと思うのですが、ぜひ、使ってください!