Tagbangers Blog

Blog

Chromeでソースを汚さずにログを出力する

こんにちは!言動がナルシストっぽいとの事で社内で悪目立ちしている方の山﨑です! 今回は、Google Chrome 73 で導入された、 logpoint という機能についてご紹介したいと思います。 Chrome 73 が公開されたのが 2019/03/12 との事なので、まだ 3ヶ月ちょい。 リリースノートに毎回目を通す熱心な方でないと見逃してしまいそうですが、こっそり便利そうな機能が追加されてました。 これは何ですか ざっくり、ブレークポイントと同じように Dev Tools からソースコードにマークをつけると、その行に対して 式 を書く事ができ、 その行を通るとその式の結果が Conso...

Domain Event with Spring

Domain Event とは? 売上というドメインがある場合 、売上ドメインでは様々な出来事がおきます。 「売上ができた」「売上が変更された」「売上が削除された」 ここで、「売上ができた」という出来事は副作用があるかも知れません。 伝票ができるかもしれませんし、在庫が変動することもあるでしょう。 これらの副作用を売上ドメインだけで完結しようとすると、 伝票ドメインや在庫ドメインとの深い関係を持っている状態になります。 我々の世界ではこれを密結合と言ったりします。 疎結合と密結合であれば、疎結合がいいと言うのはなんとなくわかりますね。 マイクロサービスがもてはやされているのもこれが一つのキーワ...

IntelliJ IDEA で Nuxt.js のデバッグ

IntelliJ IDEA で Nuxt.js のデバッグを行う場合、以下の 1 行を nuxt.config.js に追加する必要があります。 build: { extend(config, ctx) { // この 1 行を追加 config.devtool = ctx.isClient ? 'eval-source-map' : 'inline-source-map' } }, 詳しくはこちら。 https://medium.com/@fernalvarez/nuxt-js-debugging-for-webstorm-9b4ef5415a5

CurryingとFunctional Composition in JavaScript

Currying Currying(カリー化)のコンセプト自体はとてもシンプルで、複数の引数を一度に一つずつとる関数です。 例えば、2つの実引数の和を返す関数を考えた場合、まず一つの実引数を受け取る関数を返します。返り値となる関数は次の実引数を受け取る関数を返します。 const add = x => y => x + y add関数は一つの引数をとって、closureスコープに固定された部分適用された関数を返すという形になります。カリー化は常に一つの実引数を取る関数(unary function)を返しますが、部分適用の実引数の数は任意です。 const add =     x =>  ...

Spring I/O 2019 Slides

Keynote Juergen Hoeller / Ben Hale / Violeta Georgieva and Sébastien Deleuze https://twitter.com/sdeleuze/status/1129017544013221888 Moving from Imperative to Reactive Paul Harris The State of Java Relational Persistence Maciej Walkowiak https://speakerdeck.com/maciejwalkowiak/the-state-of-java-rela...

Confluenceでチームの日報をまとめる with アドオン

レイアウトを変えてみたのでアドオンとともにご紹介します。 Before これまでも日報を書いてみんなの進捗を確認しあえる場はありましたが、日報の管理は各チームごとに別々のスペースに分けて管理していました。 日報は記載項目を固定したかったため、「ページ」に対してテンプレートを適用して管理していました。(※デフォルトの機能でブログはテンプレートが使用できない - Confluence 6.14.1 Server版 2019年3月現在) 問題点 各スペースは閲覧権限が各チームごとにあるため、別チームのスタッフがスペース内の日報を閲覧できませんでした。 ページツリーの下にスタッフの日報がずらっと並んで...

HATEOAS をおさらい

HATEOAS とは? Hypermedia As The Engine Of Application State (HATEOAS) is a component of the REST application architecture that distinguishes it from other network application architectures. With HATEOAS, a client interacts with a network application whose application servers provide information dynami...

Spring Data JDBC 101

Spring Data JDBC タグバンガーズでは Spring Data JPA をデータベースアクセスに使用することが多いのですが、 今回は「シンプルに!」がコンセプトの Spring Data JDBC に触れて見たいと思います。 リリースされてから結構経ってしまいましたが早速いってみよう。 シンプル JPA は便利で高機能です。それが故に複雑になりがちです。 複雑さを生むのは以下のような要素があるからだと言われます。 遅延ロード エンティティのプロキシ セッション / 1st レベルキャッシュ エンティティの監視 こんなに機能必要ない。そんなときは Spring Data JDBC ...

Spring Java Format を使って Springスタイルでコードフォーマット+チェックする

Springのコードを書き、PRを出すタイミングで不要なスペースや改行してないなどといったコードフォーマットのチェックを行いたい時に、 Spring Java formatを利用する機会があったので紹介します。 Spring Java Formatとは Spring本家から出ている、一貫したSpringスタイルを提供するために任意のJavaプロジェクトに適用できるプラグイン 詳細はGithubにて できること: 折り返しと空白の規約を適用するソースフォーマッタ コードベース全体の一貫性を強化する(チェックスタイル) シンプルで、準備もpomに書いて実行するだけなのでとても簡単ですが、 自社のス...

Golangってそういうこと!?

どうも、ポケモンGoで検索してたどり着かれたみなさんもこんにちは!   あまりに虫歯が痛すぎて会社を休もうとして上司の山﨑を困らせる部下の山﨑です。 歯磨きはちゃんと毎日しているのですが、複雑な奥歯環境で育った事によりこんな事に。 歯医者で見たこと無い太さの注射を挿されて【お話できません】な事をされてしまいました。 もうお嫁にいけません。 皆さんもカレーの飲み過ぎにはお気をつけくださいm(_ _)m さて、今回はGoogleが開発しているGoを少しだけ触ってみたので、それについて書いてみようと思います。 ①環境構築 まずはここからですよ。 環境はMacとHomebrew前提で書いていきます。 ...