並列処理でRails5アプリURIHOのRSpecの時間を短縮する
最近RSpecの時間が長く、開発速度に影響がでていることに悩んでいたのですが、 RSpecの処理を並列化するparallel_testsというGemを導入して処理時間を短縮することができました。 この記事ではparallel_testsを導入した経緯を通常のRSpecが遅い理由を共に説明し、 parallel_testsの導入方法と実際にどれだけ短縮されたかをご紹介いたします。 通常のRSpe
最近RSpecの時間が長く、開発速度に影響がでていることに悩んでいたのですが、 RSpecの処理を並列化するparallel_testsというGemを導入して処理時間を短縮することができました。 この記事ではparallel_testsを導入した経緯を通常のRSpecが遅い理由を共に説明し、 parallel_testsの導入方法と実際にどれだけ短縮されたかをご紹介いたします。 通常のRSpe
シーケンス図を書く機会があり、その際に使用した便利なjavascriptライブラリがあったので2つご紹介します。 エクセルやパワーポイント等で図や矢印を綺麗に引くのが苦手な人でも、テキストで書けば綺麗に図を作成できます。 1. js-sequence-diagramsで図を書く js-sequence-diagramsはシーケンス図をテキストで表現できるjavascriptのライブラリです。
2022.2.17
GoogleのGithubリポジトリに日本語テキストの自動改行マークアップ支援ライブラリ「BudouX」が公開されました。 日本語は言語的な特徴として明確な文字区切りが存在しないため、一般的なブラウザはテキストの折り返しを最適化できていません。 BudouXはそんな問題に対し機械学習によって日本語の文章に自然な改行位置を自動挿入してくれます。 BudouX - github オフィシャルのサ
ある日、「ストリームって何ですか?」と弊社の新人から質問されました。 Webで調べてみたそうなのですが、曰く「ストリームとはデータの流れ」。う~ん、わかったようなわからないような…… プログラミングをしていると時々出会う単語ですが、なんとなく雰囲気でやり過ごしがちで、いざ説明しようと思うとなかなか難しい単語ではないでしょうか。 今回はそんな「ストリーム」という単語を「ビュッフェ」と「コース料理」に
今回は社内で実施した勉強会をほぼそのままブログ記事にしています。 ITエンジニアたるものドキュメントを残したり勉強会を実施したり分かりやすい設計にリファクタリングしたりなど、日々 知見の伝達 を意識していると思います。主要な知見はたいていそれらの方法で満たせるのですが、しかし残念ながら中には画一的な方法では伝えにくいものもあったりします。 ところで伝統芸能や工芸の世界では技術の継承において 背
今川のエントリに続き、業務システムについて書きたいと思います。 今回のテーマは「赤伝・黒伝」です。 赤伝・黒伝とは 今川も書いていたように、売上/仕入などの「お金」に関係するシステムは、売上日などデータの発生基準となる日付が重要となります。 そして、その日付を対象に「締め処理」というものが行われます。 締め処理とは、ある期間に発生したデータを確定させる処理で、確定データを元に請求書を発行した
2021.9.27
今回は MySQL のプライマリキーに UUID を採用する場合に起きるパフォーマンスの問題を仕組みから解説します。 MySQL(InnoDB) & UUID のパフォーマンスについては各所でさんざん議論・検証されていますが、論理的に解説した記事が少なかったり一部には誤解を招くようなものもあるため、しっかりと理由から理解するための情報として役立つことができればと思っています。 UUID
今回はOracleデータベースの標準機能だけでテーブルのパーティション化とそれに伴うパフォーマンス改善を実現する方法を紹介します。 本来Oracleでテーブルのパーティション化をするためには対応するエディションと追加オプションが必要なので活用できる環境にいる方は多くはなさそうですが、パーティション化自体のメリットは大規模DBだけでなく、中・小規模のDBでもパフォーマンスチューニングの手段として有
今回は社内向けに用意していたOracleにおけるインデックスのキー圧縮(接頭辞圧縮)機能の利用ガイドラインに解説を加えて外部公開します。 この機能はインデックスのパフォーマンス改善に対して効果的な一方でガイドラインがないと適切な利用が難しくもあります。そういった場合はぜひこのガイドラインをそのまま活用していただけたらと思います。 また本稿はインデックス設計についても多分に触れているので、キー圧縮
先日までかかわっていたPJで既存アプリの機能をSpring Bootベースの新規アプリに移植する作業を担当していました。 新規アプリなのでパッケージ構成の検討で色々悩みつつ反省もしつつ、ひとまずは落としどころが見つかったのでその辺りの話をまとめようかと思います。 要件・仕様 弊社の決済事業[Paid]での決済情報登録に関する一部機能を提供できるWebAPIを作成します。 機能の概要は以下の通り
2021.5.25
昔話には生きる上での数多くの教訓が込められています。今回は ごんぎつね からシステム設計・開発について考えてみましょう。 ごんぎつねの話はみなさんもご存じの通り、いたずらを悔いたごんぎつねが人知れず兵十という青年に贈り物を届けるも最後まで気づかれないまま火縄銃で撃たれてしまい、最後に「ごん、お前だったのか」となる話です。 さて、 達人プログラマー という書籍には 契約による設計(Design b
2021.5.17
会議中、雑談中などそれなんだっけ?や、なんとなく分かるけど説明は出来ないといったIT用語ってありませんか? 自分はよくあります! その場で相手に聞ければいいのですがなんか恥ずかしい、間が悪く聞けない なんていうこともありますよね? IT用語といってもかなりの数があるので全てはとてもまとめきれませんが、ここ1年位の間で自分がそれなんだっけ?や曖昧になっているとなった割と常識と思われる用語を簡単にまと
2021.4.30