/home/by-natures/dev*

データ界隈で働くエンジニアとしての技術的なメモと、たまに普通の日記。

2018/11/27 Maven, Spring のプロファイル設定

渋谷でお気に入りの居酒屋ランチがあって、今日同僚を連れて行ったのですが、食べログで非常に点数が高いお店だったようです。ランチはぶらぶら歩きながら決めることが多いので、評価はおろか店の名前すら知らなかったです(今も忘れました。。)。焼き魚もフライも美味しい、それでいて割と安いよいお店です。

食べログを全く見ない訳でもないですが、懇親会で選んだお店で参加者に「美味しかった」と喜んでもらえるお店って大抵自分の足で探したお店だったりします。年配の方がやってるお店が多いので、まだまだインターネットが活用されていないということかもしれません。・・・単に年季の入った店が好みだというだけかもしれないですね。でも繁華街で店が古いというのはある程度味が保障されているはずなので、判断基準としては悪くないのかも。

golang.tokyo #20

来月、こちらの Go 言語の勉強会に参加することにしました:

golangtokyo.connpass.com

一般枠は埋まっていたのですが、ブログ枠という イベントに関するブログを書いて頂ける方にご応募頂く参加枠 は誰も応募していなくて、最近筆が乗っているのでちょうど良いかなと思ってブログ枠で応募しました。文章にすることで記憶の整理にもなってよいですが、Go はまだまだ初心者なので理解して記事にできるか少し不安です。頑張ります。

Go 言語に貢献する人が守るべき行動指針というのがあるようです。多様性に非常に重きを置いているようで、主義・人種・性別・性的指向等々にまで触れられているのは面白いです:

Go Community Code of Conduct - The Go Programming Language

Maven, Spring のプロファイル設定

Maven のプロファイル設定がうまく聞かなくていろいろ調べていたところ、Spring のログでプロファイルに関するものが出てきていて、少し混乱してしまったのでメモ。

Maven, Spring(3系以降)どちらもプロファイルを設定可能ですが、Maven はビルド時にプロファイルを指定するのに対し、Spring はランタイムで設定できるようです。生成する Bean をプロファイルで切り替えるような仕組みのようです。

stackoverflow.com

どちらが良いという訳ではないですが、ランタイムで切り替えられるということは SpringBoot としては環境ごとの設定やそれに付随するライブラリも丸ごと fatjar にまとまってしまいます。以下の比較記事でこんなことが述べられています:環境ごとの設定がまとまってしまうのが嫌だと思うかもしれないけれど、結局アーカイブされていて直接は見れなくて、見るには jar を展開する必要があって、そこまでしてプロファイルを見るのはバッドプラクティスだから大きな問題ではない。"clean" にしておきたければ Maven を、そうでなければ Spring のランタイムで切り替えられるプロファイルは欠点を補って余りある魅力があるとのことです。確かに、jar の起動オプションを変えるだけで環境に応じた動作をするのは便利そうです。

blog.frankel.ch