はっさんブログ

フォローするとお得なブログ

2018年2月、自分リリースノート

参考になったらシェアいただけると幸いです!

こんにちは。はっさん(@hassasa3)です。

元気ですか?

最近は平日に仕事して、土日は本を読むか人と会うかという日々を送っています。

1月は8日まで休みだったので、一ヶ月過ぎることが早かったです。

ね?

技術

Y(やったこと)

アプリケーションの機能をRails Engineに切り出した

今携わっているアプリケーションの機能が増えてきて、アプリケーションを分けたいよねという話になりました。

具体的にはメインアプリ、管理者画面、API (内部/外部)...etcがあって、それぞれでしか使用しないコードが共通部分に記載されているととても読みづらいです。

Rails Engineを使うことで機能は分離されて、ディレクトリ構成もスッキリしました。

知見が溜まったので追々インターネットに還元していきます。

管理者機能に administrate の導入をした

既存のコードはEngine化できたため、管理者Engineを作り始めました。

いくつかの管理画面用のgemがあるため、どれが適切か悩みました。

qiita.com

結果的には administrate を選択しました。

administrateの良いところは、active_adminのように独自DSLを覚える必要がないこと、また標準のControllerやViewにあるデフォルトの機能をオーバーライドしてカスタマイズできる設計なため、非常にとっつきやすいところです。

また本体のコードも読みやすいため、ドキュメントにないことでもカスタマイズしやすいです。

日本語の情報が少ないので、これもまた記事にします。

主に営業さんがデータの一覧を見たりデータの登録したり、我々がコンソールから実行するようなことをWebから行えたりできると良いです。 :muscle:

W(分かったこと)

  • Rails Engine いいぞ

Rails Engineを初めて使ったのですが良いです。

それぞれのアプリケーションのみで扱うModel、Controller、View、Assets、テスト、ルーティング、initializersをゴッソリ分離することができます。

今回行なった方法ではCapistranoのデプロイタスクも変更の必要がありませんでした。

また、全て同一リポジトリで管理できるので楽です。

あ、最初、一気に変更しようとして思いっきりハマりました。

再度、筋道を立てて一つずづEngine側に移行していったらすんなりいきました。

知識がない状態ではじめから失敗しない計画を立てるのは難しいので、早く失敗して学習して再度筋道を立てる方法が合ってる。。学び+1

T(次にやること)

管理者機能を育てたり、CircleCIのバージョンをあげたりしたいです。

Y(やったこと)

ブロックチェーン流行ってますね。。!

それこそ僕と同世代の人たちがスタートアップとして、ブロックチェーンを用いたプロダクト開発をしているのを横目で見たりしています。

合間時間に関連する本を読んでいます。

W(わかったこと)

やっぱり自分で作るのが一番理解の助けになるので、作りたいもの考えて作ってみるのが良いですね。

上記の本ではブロックチェーンを使ったプロダクトの先例がたくさん載っているのでアイデアの参考になります。

Y(次にやること)

なんか作ってみる

気になったツイート

ActiveStorage、使っていきたい..!!

コインチェックがハッキングされる事件が起こりましたが、いずれは取引所も分散的に合意形成ができるようになるのではないかなと思います。

Ethereum開発者のVitalikは23歳らしいです。やっていきだ。。

余談

Rails6.0の開発が始まったようですね。

Start Rails 6.0 development!!! · rails/rails@1c383df · GitHub

今後どうなっていくか期待大です!