プログラミング歴半年だけど、エンジニアが「知らないことを知る」ためのWEBサービス「Putiita」を作ったよ
プログラミング歴半年だけど、エンジニアが「知らないことを知る」ためのWEBサービス「Putiita」を作ったよ:
プログラミング歴6ヶ月ですが、「Putiita」と言うwebサービスを作ったので紹介。
http://putiita.net/
GitHub: https://github.com/toumasuxp/putiita
Putiitaはエンジニア、エンジニア志望の方が「自分が知らない物・分野を見つけるためのサービス」です。
ボクの様な初心者であれば、「プログラミングの勉強をしたくても何をしたら良いのか分からない」とか「Railsチュートリアルとか入門書1冊やった後に、中級者になるためには何をすれば良いの?」と言う問題にぶち当たる事が多いです。
そこでPutiitaでは、Qiitaのプチ良記事(いいね数が20~100前後)だけを集めて、それらをタグ別・ランダム順に掲載することで、初心者や最近停滞を感じている方が「自分が勉強したい分野、興味がある技術」等を見つけて、成長を加速させる手助けをします。
Putiitaでは、タグ別、「ランダム、いいね、日付順」に記事を見れる様にしています。
例えば、「Rubyの記事をいいね数とか日付順とか関係なくランダムに表示する」と言う事ができます。
本家Qiitaでも過去の記事を検索できますが、正直使いにくかったので改良した感じです。
Putiitaでは、ユーザー毎によく投稿するタグを振り分けています。
これにより、例えば「Rubyの記事が多いユーザーの記事が見たい」と言う風な使い方も簡単にできます。
試しに3分ほど使ってみましたが、以下の面白そうな記事を発見できました。
ゲームっぽい何かを作りながらRubyを勉強する その1 〜ディレクトリ構成とかtest-unitとかRakeとか〜 - Qiita
mallocを作ったよ - Qiita
リッチ系CSSフレームワークGumby を Rails 4 で動かす方法 - Qiita
CSSで点滅アニメーション - Qiita
プログラミング上級者の方からすれば「普通にググれば分かるだろ」と思うかもしれませんが、初心者は何が分かっていないのか分からない状態の人です。しかし、ボクの様な初心者でもPutiitaを使うことで簡単に新たな発見ができます。
特に「Rubyでゲームを作る」とか「C言語のmalloc関数を作る」とかって凄く面白そうですね。
Herokuも考えましたが、HerokuだとDBの容量が無料で5MBしか使えなく不安だったので、勉強がてらVPSに挑戦。
また、本番環境を構築する際には、以下の記事が大いに役立ちました。
参考記事:Rails開発におけるwebサーバーとアプリケーションサーバーの違い(翻訳) - Qiita
参考記事:Rails5+Puma+Nginxな環境をCapistrano3でEC2にデプロイする(前編) - Qiita
slimを使用。index.js.erb等のajaxに関するテンプレートのみerbを使用。
slimを使う前はコードの読みにくさを感じ敬遠していましたが、いざ使ってみると書きやすくて読みやすく良い感じです。
参考記事:slim-template/slim: Slim is a template language whose goal is to reduce the syntax to the essential parts without becoming cryptic.
JavaScriptは素のJavascriptのみ使用していて、jQuery等のライブラリやVueやReact等のFWは一切使いませんでした。(使っても良かったのですが、サービスの規模的に不要と判断)
turbolinksはネットの記事を見る限りでは悪名高いgemですが、使い道によってはかなり使える物だと判断して、turbolinksを使用しています。
CSSはSCSSでバリバリ書きました。(でも書けば書くほどコードが読みにくくなっていくという、、)
使ったgemは以下の通り。ほとんどrailsの標準gemのままです。
開発環境のgemに入っている「capistrano」は、本番環境へのデプロイ(公開)を自動化してくれるgem。
railsアプリを本番環境で動かすためには、「VPSにrailsアプリをコピー → rails db:migrate等でデータベースを更新 → rails assets:precompileでjsとかcssファイルを1つにまとめる → pumaを再起動 → railsを再起動」の様な手順を行う必要がありますが、capistranoを使えば開発環境内で「cap prodution deploy:initial」とするだけで全部自動でやってくれます。
参考記事:capistrano/rails: Official Ruby on Rails specific tasks for Capistrano
参考記事:(初心者向け)vpsを契約して、capistrano3でRailsアプリをデプロイするまで [その1 サーバー設定編] - Qiita
PutiitaのコードはGitHubに掲載しているので、改善点等があれば指摘していただけると嬉しいです。
http://putiita.net/
GitHub: https://github.com/toumasuxp/putiita
プログラミング歴6ヶ月ですが、「Putiita」と言うwebサービスを作ったので紹介。
http://putiita.net/
GitHub: https://github.com/toumasuxp/putiita
Putiitaってどんなサービス?
Putiitaはエンジニア、エンジニア志望の方が「自分が知らない物・分野を見つけるためのサービス」です。
ボクの様な初心者であれば、「プログラミングの勉強をしたくても何をしたら良いのか分からない」とか「Railsチュートリアルとか入門書1冊やった後に、中級者になるためには何をすれば良いの?」と言う問題にぶち当たる事が多いです。
そこでPutiitaでは、Qiitaのプチ良記事(いいね数が20~100前後)だけを集めて、それらをタグ別・ランダム順に掲載することで、初心者や最近停滞を感じている方が「自分が勉強したい分野、興味がある技術」等を見つけて、成長を加速させる手助けをします。
Putiitaでできること
1、タグ別、「ランダム、いいね、日付順」に記事を見れる
Putiitaでは、タグ別、「ランダム、いいね、日付順」に記事を見れる様にしています。
例えば、「Rubyの記事をいいね数とか日付順とか関係なくランダムに表示する」と言う事ができます。
本家Qiitaでも過去の記事を検索できますが、正直使いにくかったので改良した感じです。
2、ユーザーをタグ検索できる
Putiitaでは、ユーザー毎によく投稿するタグを振り分けています。
これにより、例えば「Rubyの記事が多いユーザーの記事が見たい」と言う風な使い方も簡単にできます。
実際にどんな記事を発見できるの?
試しに3分ほど使ってみましたが、以下の面白そうな記事を発見できました。ゲームっぽい何かを作りながらRubyを勉強する その1 〜ディレクトリ構成とかtest-unitとかRakeとか〜 - Qiita
mallocを作ったよ - Qiita
リッチ系CSSフレームワークGumby を Rails 4 で動かす方法 - Qiita
CSSで点滅アニメーション - Qiita
プログラミング上級者の方からすれば「普通にググれば分かるだろ」と思うかもしれませんが、初心者は何が分かっていないのか分からない状態の人です。しかし、ボクの様な初心者でもPutiitaを使うことで簡単に新たな発見ができます。
特に「Rubyでゲームを作る」とか「C言語のmalloc関数を作る」とかって凄く面白そうですね。
Putiitaで使った技術とか
開発環境
- Ruby 2.4.2
- rails 5.1.6
- CentOS 7.5
本番環境
- サーバー Conoha 1G
- nginx, puma
- DB MYSQL
- デプロイはcapistranoを使用
Herokuも考えましたが、HerokuだとDBの容量が無料で5MBしか使えなく不安だったので、勉強がてらVPSに挑戦。
また、本番環境を構築する際には、以下の記事が大いに役立ちました。
参考記事:Rails開発におけるwebサーバーとアプリケーションサーバーの違い(翻訳) - Qiita
参考記事:Rails5+Puma+Nginxな環境をCapistrano3でEC2にデプロイする(前編) - Qiita
テンプレートエンジン
slimを使用。index.js.erb等のajaxに関するテンプレートのみerbを使用。slimを使う前はコードの読みにくさを感じ敬遠していましたが、いざ使ってみると書きやすくて読みやすく良い感じです。
参考記事:slim-template/slim: Slim is a template language whose goal is to reduce the syntax to the essential parts without becoming cryptic.
JavaScriptとかCSSとか
JavaScriptは素のJavascriptのみ使用していて、jQuery等のライブラリやVueやReact等のFWは一切使いませんでした。(使っても良かったのですが、サービスの規模的に不要と判断)turbolinksはネットの記事を見る限りでは悪名高いgemですが、使い道によってはかなり使える物だと判断して、turbolinksを使用しています。
CSSはSCSSでバリバリ書きました。(でも書けば書くほどコードが読みにくくなっていくという、、)
使ったgem
使ったgemは以下の通り。ほとんどrailsの標準gemのままです。gem 'whenever', require: false gem 'mysql2' gem 'kaminari', '1.1.1' group :development do gem 'capistrano', require: false gem 'capistrano-rails', require: false gem 'capistrano-bundler', require: false gem 'capistrano3-puma', require: false gem 'capistrano-rbenv', require: false end
railsアプリを本番環境で動かすためには、「VPSにrailsアプリをコピー → rails db:migrate等でデータベースを更新 → rails assets:precompileでjsとかcssファイルを1つにまとめる → pumaを再起動 → railsを再起動」の様な手順を行う必要がありますが、capistranoを使えば開発環境内で「cap prodution deploy:initial」とするだけで全部自動でやってくれます。
参考記事:capistrano/rails: Official Ruby on Rails specific tasks for Capistrano
参考記事:(初心者向け)vpsを契約して、capistrano3でRailsアプリをデプロイするまで [その1 サーバー設定編] - Qiita
最後に
PutiitaのコードはGitHubに掲載しているので、改善点等があれば指摘していただけると嬉しいです。http://putiita.net/
GitHub: https://github.com/toumasuxp/putiita
コメント
コメントを投稿