タグ

ブックマーク / mao-instantlife.hatenablog.com (7)

  • Neo4Jの検証メモ - 冥冥乃志

    SpringBoot 1.4が対応したみたいなので、これから先に予定している機能のこともあり、用途の検討も含めて少し使ってみました。なお、SpringBootからの利用ではなく、Neo4Jそのものの検証です。 そもそもNeo4Jとは? 大体以下から大まかに抜粋。 neo4j.com Neo4j - Wikipedia レコード(Neo4J的にはNode)と関連のグラフ構造でデータを表現するグラフデータベースです。データ構造がリレーションモデルではないので、当然系譜的にはNoSQLなわけですが、他のNoSQLとは違ってKeyValue形式ではないのが特長です。 で、他のグラフデータベース(ぶっちゃけ他に何があるか知りませんが)と違うのは、 ACID特性をフルサポート トランザクションがある インデックスがある といったあたりで、Enterprise Editionの可用性とともに、この辺結構

    Neo4Jの検証メモ - 冥冥乃志
  • gradleのマルチプロジェクト環境でマイグレーション専用のプロジェクトを作った話 - 冥冥乃志

    タイトルだけで何をやったか想像がついた方はお疲れ様でした。とりあえずなんだかんだはまりながらたどり着いたので、もっとできる人からもっと効率の良いやり方のまさかりが飛んでくることを期待しつつ。 背景 Webアプリケーションとバッチで構成されるサービス Web側についてはアクセス数に応じてスケールさせやすくしておきたい バッチはデータ量が極端に増えないのであまりスケールを考えなくてもいい どうせ同じEntityモデルとか使うしWebとバッチでリポジトリは分けたくない 一応、Webアプリケーションとバッチはdocker(でなくてもいいけど)でスケールしやすい構成にしようかと思っています。 で、Webアプリケーションは複数だし、バッチもあるし、必ずしも両方リリースする戸言うことは考えられないし、デプロイ時にDDLのauto-generateやってしまうのはあまり得策ではないなあ、と思ったので、マル

    gradleのマルチプロジェクト環境でマイグレーション専用のプロジェクトを作った話 - 冥冥乃志
  • 【追記】docker-composeを使って環境ごとにprofileの異なるSpringBootプロジェクトのサーバ立ち上げを少しでも安心できるようにする - 冥冥乃志

    こないだこういうことをやりました。 mao-instantlife.hatenablog.com 結論として、環境変数SPRING_PROFILES_ACTIVEをセットすれば良いんじゃないかという所までは行きましたが、まだまだ事故りそうで怖いですね。サーバへの環境変数設定を忘れたり、間違えたり。現在の所は、私が扱っているプロダクトは、アクセス数も限定されているものが多いので大きな問題にはなっていませんが、デプロイやスケールアウトが容易な(自動化しやすい)状況を作っておくにこしたことはありません。 この辺り、dockerを使って楽にならないかと考えていて、ちょっと試してみたのでまとめておきます。 必要なツールのインストール docker-machine docker-compose VirtualBox5をインストールしている人は、docker-machineのインストールで注意が必要です

    【追記】docker-composeを使って環境ごとにprofileの異なるSpringBootプロジェクトのサーバ立ち上げを少しでも安心できるようにする - 冥冥乃志
  • Spring Bootでローカル環境と本番環境で異なるDBMSを使う - 冥冥乃志

    Spring Bootでプロファイルごとに異なるDBMSを使うように接続情報を分ける、プロファイルごとのhibernateの初期設定を変更する、ということをやったので、備忘録的にメモ。 背景 既存にある別のプロダクトのデータを取得するREST APIを作り始めたのですが、プロダクトが利用するDBMSはSQLServerで、既にデータベース自体は構築されています。また、私の開発環境はMacなのですが、テストコード動かしたりローカルで動かしたりする場合にいちいちサーバ用意したりするのも何か手間です。 そのため、ローカルで開発している段階では、h2辺りをインメモリで使えるようにしておきたかったというのが主な理由です。ただし、デプロイ時に設定ファイルとか構成をごにょごにょしてしまうのも事故の元なのでなるべく避けたい。環境を指定して実行すれば、勝手に切り分けてくれる、というのを今回のゴールにしました

    Spring Bootでローカル環境と本番環境で異なるDBMSを使う - 冥冥乃志
  • leveldbのドキュメントを訳してみた - 冥冥乃志

    家のドキュメント(Leveldb)を翻訳してみました。 長文をちゃんと最後まで訳しきるのは大学入試以来で、えいや!でニュアンスのみにしている所もあります。 また、誤訳や私の理解が追いついていないところなどもあると思いますので、その辺りは指摘していただけるとありがたいです。 前回の記事で宣言したソースは、よくよく考えてみるとJNIのReadmeのサンプル以上のことはしていないので、公開してもあまり役に立たないことに気づきました。 なお、サンプルはC++のまま記載しています。 では、以下に訳したドキュメントを。 leveldb levelDBは永続的なキーバリューストアを提供するライブラリです。キーと値は任意のバイト列です。ユーザ定義の比較関数に従ってキーバリューストア内のキーを順序づけられます。 データベースの開始: levelDBデータベースはファイルシステムのディレクトリに一致する名前

    leveldbのドキュメントを訳してみた - 冥冥乃志
  • あーだCoder #1に参加してきました - 冥冥乃志

    まあ、参加してきたといってもオンラインミーティングで家から参加したんですけどね。 オンライン形式のミーティングが果たしてうまくいくか、という懸念もありましたが、その部分の心配はなかったようです。むしろログが残る上にちょっと時間をおいてからその話題に戻ったりも楽なので、あーだCoderのように議論が発散しやすい勉強会ではありではないかとも思いました。それと、音楽聴いてテンション上げながら勉強会に参加できるのも嬉しかったり*1。 すごく良い議論ができて、楽しかったのでそれが皆さんにも伝わればいいなあと。 あーだCoderについて 先日のエントリでも軽く触れましたが、モデルとコードのあれこれについて実践に基づいた議論をするための勉強会です*2。 設計からコードまでを対象としていますが、その背景として書籍の内容について追いかける一般的な形の勉強会だと、抽象的な一般論の話になってしまい(仕方のないこ

    あーだCoder #1に参加してきました - 冥冥乃志
  • DDD本読了記念:独りDDDにトライしてみてる - 冥冥乃志

    コップといい、DDDといい、最近鈍器系のづいてます。仕事のピークが重なっていたので、会社の行き帰りの電車の中か昼休みにしか読む時間が取れず、読み切るまでに非常に時間がかかってしまいました(3ヶ月以上かな?)。 副題にある通り、開発者がユーザとともに複雑さに対峙するための方法を(問題を切り分けよう、とかそういうお題目レベルではなく)実際の設計プロセスやパターンにまで落とし込んでいて、実践的であり具体的です。パターンそのもの以外にも、著者の経験に基づく設計現場のサンプル(開発者とユーザの対話とそれに伴うモデルの変化)が豊富で、パターンだけだとわかりづらくなる箇所を捕捉してくれています*1。しかも、理論ばかりの設計方式ではなく、ちゃんと実装とビジネスをモデルでつなぐための方法であるというのもすばらしいです。ってか、技術を知らずに設計ができると思っているご用聞きSEさんは遠慮なく死んで下さい

    DDD本読了記念:独りDDDにトライしてみてる - 冥冥乃志
  • 1