※ この記事は「Railsのリファクタリングに立ち向かうための教科書」シリーズの最終章になります(5/5) 【序章】 問題はどうして起こるのか ~ 方針とアーキテクチャについて 【第1章】 ModelとServiceを紐解く 【第2章】 ApplicationServiceの導入 【第3章】…
※ この記事は「Railsのリファクタリングに立ち向かうための教科書」シリーズの第3章になります(4/5) 【序章】 問題はどうして起こるのか ~ 方針とアーキテクチャについて 【第1章】 ModelとServiceを紐解く 【第2章】 ApplicationServiceの導入 ★【第3章】…
今回は、Railsのリファクタリング手法を紹介しようと思います。これまで私自身数仕事として数多くのリファクタリングを手伝わせていただいてきましたが、基本的に方針としては毎回ほとんど同じことを実践しています。ですので一度、どう進めればよいのかとい…
※ この記事は「Railsのリファクタリングに立ち向かうための教科書」シリーズの第2章になります(3/5) 【序章】 問題はどうして起こるのか ~ 方針とアーキテクチャについて 【第1章】 ModelとServiceを紐解く ★【第2章】 ApplicationServiceの導入 【第3章】…
※ この記事は「Railsのリファクタリングに立ち向かうための教科書」シリーズの第1章になります(2/5) 【序章】 問題はどうして起こるのか ~ 方針とアーキテクチャについて ★【第1章】 ModelとServiceを紐解く 【第2章】 ApplicationServiceの導入 【第3章】…
※ この記事は「Railsのリファクタリングに立ち向かうための教科書」シリーズの序章になります(1/5) ★【序章】 問題はどうして起こるのか ~ 方針とアーキテクチャについて 【第1章】 ModelとServiceを紐解く 【第2章】 ApplicationServiceの導入 【第3章】 …
下記の環境での話をしますが、特に全てに当てはまらなくても解決できると思います VSCode webpack babel typescript React alias(エイリアス)について 簡単にaliasについて説明します。JSを書いてると、importして他のコンポーネントを使うということがよく…
ReactのテストでJestやenzymeを使うことは多いと思うのですが、React v16.8以降でFunctionComponentでの書き方を使う機会が増えたにもかかわらず、useSelectorやuseDispatchあたりをclassでなくFunctionComponentで使ったテストケースがあまり見つからず困っ…
StorybookをReact, Typescript, Atomic Designな環境に導入する手順を紹介します。 Why Storybook? Frontendの開発を行っていると、再利用性を高めたいという意識が湧いてくると思うのですが、それをチーム間で共有したり、デザイナーさんと認識を合わせるの…
まず最初に今回の記事で扱う内容を書かせていただきます。 1. docker-composeで開発環境を構築し 2. masterにpushした時のみCircleCIでECRにDockerイメージを構築し 3. 同時にCircleCIからterraformで本番環境のインフラをAWSにECSで整え 4. Deployを完了す…
Reactでドロップダウンメニューを作成する機会があったのですが、いくつかハマりポイントがあったので書いておきます。まずはじめに要件としては下記のことがあげられます。 ボタンを押すとdropdownメニューが開く ドロップダウンメニュー以外の場所を押すと…
EctoとはORマッパーで、DBとのインターフェースになってくれるものです。RailsでいうActiveRecordです。 Phoenix/ElixirはわかりやすいけどEctoで躓く、という方向けのチートシートになります。Rails使いでPhoenix書いてみてる方が多いと思うので、Rails(Ac…
環境: Elixir 1.9.1, Phoenix 1.4を使用 エラー内容は下記の通り。mixにライブラリを追加した後に起こる。急にDBConnectionと言われてDB周りのバグかと思い調べたがそうではなく、mixの書き方の問題だった。 web_1 | web_1 | Generated your_app app web_1 |…
dockerは知識として入れてはいましたが、実際にdocker上で開発をしたことはなかったので、勉強がてらやってみました。そんなにハマりどころもなく、便利なので今後はこれを基本にしていくと思います。 まず前提として、今回はdocker-composeで開発環境を作る…
mac OS MojaveでRails開発中に gem install mysql2 がなかなか成功しなかったのでメモ。 Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load ... ld: library not found for -lssl みたいなログが出てま…
C向けのサービスではあまりこういうことはしないと思いますが、B向けのサービスではこうした定期的にアプリを再起動するニーズがあるかもしれません。 アクティビティの再起動とアプリの再起動の二種類あるかと思うのですが、アクティビティ再起動はググれば…
かなりラフな記事になるけど、Androidでアプリがforeground(起動中)の時とbackgroundにある時とでの挙動に手を加えたかったり、そうなるタイミングで何か処理を行いたいということがあると思う。 Lifecycleを調べると、onResume と onPuase がそれぞれforegr…
もともとはRubyをメインで書いていたのですが、最近Kotlinを使うようになって便利だと思ったTipsをいくつか紹介します。 data class Ref: https://kotlinlang.org/docs/reference/data-classes.html 何もしないけどデータだけ持たせたい時に使えるクラスです…
Coroutines Overview - Kotlin Programming Language 2019/01/16現在、まだexperimentalなのですが、使い勝手が良いので私が手伝っている会社でも取り入れ始めている、というより全面的にcoroutineで書き直しています。 基本的に launch の使い方と async, a…
こんにちは。 あなたの会社では分析ツールやダッシュボードなどを使っていますか?もしまだ使ってない、あるいは現状のツールに満足していないのであれば、redashが代案になるかもしれません。redashはとてもシンプルで簡単ですし、分析に必要十分なツールだ…
ReactNativeでのプッシュ通知の実装方法を紹介しています。AWS SNSを使って実装しており、いくつかサンプルコードも載せています。
ReactNativeでAndroidをリリースしようとした時に起こったエラーの対処法です。 Android Studioから Build > Generate Signed APK で app-release.apk を作ろうとしました。 この方法はローカル環境ではうまくいっているように見えるのですが、PlayStoreから…
こんにちは。この記事ではredux-formをReact.jsで使った際のテストについて紹介したいと思います。 話をシンプルにするために、簡単なcomponentとreducerのテストを見せます。 下記がテスト用に使っているライブラリになります。 mocha chai enzyme sinon ※…
こんにちは! Ruby/Railsプログラマーの方がElixir/Phoenixにチャレンジしていると、「Capistranoみたいに簡単にデプロイする方法ないの?」と思うかもしれません。 私が調べたところ、完璧にCapistranoの代替になるようなライブラリはなさそうでした。そこ…
Railsでアプリを作っていますか?設計に問題を抱えている、あるいは悩んでいませんか?もしそうであればこの記事が役に立つかもしれません。 アプリケーションが大きくなっていくに連れて、コードがカオスになってきたり、どこで何が起こっているのか追いに…
最近onBoardingページにReact.jsをredux, redux-formと使い始めました。 今回はその際に私が躓いた3つのポイントを紹介します。 デフォルト値の設定方法 ラジオボタンを使ったラベル選択方法 ユーザーが次のフォームに移った時にどうやって自動的に値を設定…
メール送信周りでちょっとはまりかけたのでメモ。 ponyというgemを使ってSMTPでメール送信をしようとしてました。 サイトからユーザーが申し込みしてきたら、申込完了メールをユーザーに送信するイメージです。 ★環境 ・Ruby ・pony on sinatra ・Gmailで送…
ちょっとダルいポイントが有ったのでメモ程度に。 スクレイピング対象サイトとスクレイピングの流れは ページャで何ページか一覧ページがある 一覧ページのタイトルをクリックすると詳細ページが見れる 詳細ページの一部を使用 また他のタイトルをクリックし…
前回の続きです。前回はCapistrano3の導入について書きました。 【入門】Capistrano3で自動デプロイ ★★★ 私の環境ではsupervisor経由でunicornを監視しているのですが、supervisorをリスタートしてしまうとhot deploy出来ない問題がありました。 そちらに関…
※この記事はcapistrano3についてです。capistrano2.x系には対応していません。 ちょこちょこ新規開発しているのですが、毎回リモートサーバーにsshで入って pullして手順見ながらbundleなんちゃらして・・・。 みたいなのが非常にめんどくさいので、capistra…