今までJavaの開発が多く、Javaは静的型付言語であった。最近Railsの開発に携わっており、静的型付言語と動的型付言語の違いを実感することがあったため雑ですが今思うことを以下に備忘メモとして残しました。Rubyは動的型付言語であり、開発時にカルチャーショックを受けることが多い。簡単な書き方であれば困ることはあまりないが、メタプログラミング要素を含む書き方になると調査難易度が格段に上がる。現場で感じた動的型付言語のメリット・デメリットは以下の通り。大規模になればなるほどメリデメは顕著に現れるように思える。現在参画している案件は大規模のため、以下の特徴を強く感じている。影響範囲調査に時間がかかる(対応箇所の検討は付くが、裏取りに時間がかかる。(雑な言い方だが)頭が良くないときつい。RubyはDDDと相性が良いように思える。ドメインを明確に決めることで役割が明確化し、可読性、メンテナンス性が高まる。Rubyの設計スキルを上げるためにDDDを学ぶ必要がある。大規模のプロジェクトでRails(動的型付言語)を使っている場合は序盤は全体構成の理解に徹するべき。SOAによるサービス単位での分割など、大規模になりすぎないようにシステムを分割することを検討した方が良い。2019Rubyのよく使う定義メソッド確認コードよく使うメソッドの確認方法をまとめました。クラスメソッドとインスタンスメソッドを両方出力するメソッドは見当たらないです。Railsが動作する前提で探すと(PHPと比較して)どうしても高くなってしまい、遊び程度のシステムを作成するにはどうも気が引けます。簡単なWebサービスであればAWSのサーバレスアーキテクチャがかなり安く運用できそうなので、簡単な運用費計算と簡単な動作確認までを記事にまとめました。王道ですが以下3つの構成から成る簡単なWebアプリを作成するとします。大まかな料金表は以下の通り。(日割りされるみたい。超ざっくりですが、皮算用は0.5USD/月程度です。安すぎるけど計算間違えてないかな・・・。計算している人を見ると、やや違うけど、とんでもない金額にはならなそうなのでとりあえず進みます。‘mysql’エラーが発生してなかなか解決しなかったので備忘として解決までの流れを記載する。今回は以下環境にて開発を行った。docker-composeでappとdb(両方サービス名)のリンク・リンク名の見直し。dbのコンテナが立ってからappが起動及びdb:createすること。明確な原因はわからなかったのですが、以下コマンドを使うことで解決しました。Dockerの古いイメージが残ってしまい、そちらを参照し続けてしまったことなどが原因かと思います。以下コマンドでは、可動していないものも含め全てのDockerイメージを削除します。Mac上にruby環境を整えたため、手順を残しておく。Homebrewのインストール。HomebrewはMacOS上のパッケージ管理ソフトウェアです。2行目は正常にインストールされたかの確認です。rbenvを最新版に更新する。動作確認兼異インストールできるrubyバージョンを確認。2018/12/1時点では2.5.3が最新安定版であるため、2.5.3をインストールする。rbenvでrubyをインストールする。インストールしたバージョンのrubyを使うよう、設定を切り替え。