miyohideの日記

技術的なメモなどを記しています

2019年1月7日(月)

仕事始め

Azure SQL Database Reconfiguration対応

仕事でAzure SQL Databaseを触ることがあって、いろいろと調べている。Azure SQL Databaseでは時たまReconfigurationってものが行われるらしく、アプリケーションはReconfigurationに伴う瞬断に対応する必要があるみたい。

blogs.msdn.microsoft.com

Microsoftが書いている推奨事項は以下に書かれているんだけれども、対応が必要そうなのはリトライロジックの実装。

blogs.msdn.microsoft.com

ではJavaアプリケーション(Spring Boot)ではどうするか。リトライって言ったらRubyのretryキーワードがあって実装が楽なんだけれども、Javaだと何があるかな...と思ったらSpring-Retryってプロジェクトがあった。

github.com

Springプロジェクト前提なんだけれども、ちょうどSpring Bootでアプリを書いているからちょうどいいや。

ちょっとこれで試してみよう。

2019年1月3日(木)

WEB+DB PRESS Vol. 106のTodoアプリに対してテストを書いた

2018年9月4日の日記に『WEB+DB PRESS Vol. 106のTodoアプリに対してテストを書きたい』って書いたんだけれども、ようやくそのテストを書くことができた。

github.com

テストコードを書くことが第一目標だったんだけれども、ついでに

  • Java 11
  • Spring Boot 2.1.1

という環境で動かすことにした。

テストについては、だいたいサクッと書くことができたんだけれども、Repositoryのテストで苦闘。最初はDBUnitを使って実装しようとしたんだけれども、どうにもこうにもうまく動かなかったので、DbSetupを使うことにした。

dbsetup.ninja-squad.com

ソースを見て分かる通り、テストコードの行数が多くなるのとテストデータをCSVとかで作りたいという思いからDBUnitにしたかったので、ちょっと残念。もうちょっと試してみたい。

とりあえず実装したんだけれども、フィールドインジェクションを使っていたりと警告たくさんあるので徐々にメンテしていこうかなと。

2018年12月31日(月)

まったりとした年末年始。

英語

英語学習は今年色々と断捨離をして、現在は

を繰り返しやるってことをしているんだけれども、どうもこうも伸びている感じがしない。あと、会話。

そんな中見つけたエントリ。

rfushimi.hatenablog.jp

なるほど。アプリの説明はできそうでできないものだな。身近にあるし、取り入れやすいかも。来年から外国籍の方が同じ部署に来られるということなので、積極的に話しかけてみよう。まずはそこから。

2018年12月28日(金)

今日からおやすみ。

ソフトウェア設計が重要である理由

postd.cc

重要なんだけれども、やりすぎる傾向が強いような気がするってのもある。

「モジュラリティ」について書かれているけれども、すぐには使いそうもない汎化をしてしまったりするパターンが多かったり。

2018年12月26日(水)

Ruby 2.6がリリースされたようで。色々と更新しないといけないな。

プロと読み解く Ruby 2.6 NEWS ファイル

まずはRuby 2.6の変更点を掴む。

techlife.cookpad.com

なるほど。濃い。

Ruby 2.6 Advent Calendar 2018

tmtmsさんが書かれているRuby 2.6の変更点。具体例も豊富で非常にわかりやすい。

qiita.com

カバレッジ

Ruby 2.6で入った"oneshot coverage"という機能の紹介記事。これは個人的に欲しかった機能。ちょっといろいろと試してみよう。

techlife.cookpad.com

Ruby 2.6.0とより高速なcsv

Ruby 2.6で早くなったCSV処理について解説。

Ruby 2.6.0とより高速なcsv - ククログ(2018-12-25)

CSVファイルのパース処理は色んなものを処理しようとすると一気に複雑になるんだけれども、それをどのように処理しているのか、また、どのようにして高速化しているかについて記している。これも自分にとってはすごく嬉しいポイント。

測定って大事だな。

2018年12月25日(火)

曜日感覚が狂っている。

TypeScript Deep Dive日本語版

急に「TypeScriptについて調べよ」という話が降って湧いてきて、あわわわとしているときに見つけた。

Introduction - TypeScript Deep Dive 日本語版

こういうのを2,3日で終わらせて、まずは1本アプリを作ったら身につくんだろうなあ。あんまりできてないけれども。

2018年12月22日(土)

忙しい...

Middleman Part2

Middlemanを使って静的サイトを作っている。作り始めると色々と問題が起きてくるのでここではそのメモ。

CSSが更新されない

CSSファイルを更新してmiddleman buildで生成した後にHTMLファイルを参照すると古いCSSを見ていることが多くあった。いちいちブラウザのキャッシュをクリアするのも面倒くさかったので、なにか対策はないかなと思ったら、asset_hashを有効化すればOKであった。config.rbにて

activate :asset_hash, :exts => %w(.css)

と書けばOK。CSSファイルの読み込み時にhelperメソッドであるstylesheet_link_tagを使うことも忘れずに。

相対パスで出力

デフォルトだと<%= link_to 'About', '/about.html' %><a href='/about/'>About</a>のようにリンク生成されるんだけれども、相対パスで出力したい場合は<%= link_to 'About', '/about.html', :relative => true %>のようにrelativeオプションを指定してあげればよい。

config.rbにてset :relative_links, trueを書いてあげれば相対パスがデフォルトとなるので、こっちのほうが便利かも。

パンくずリスト

パンくずリストの作成については、以下のサイトを参考に。

maku77.github.io