プログラミング

「営業日カレンダー」を作りました

前回作った稼働時間計算ツールでは、営業日数は計算できるけど、具体的にどの日が休みなのかは分からないようになっていました。なので、営業日に特化したカレンダーを別途用意してしまおうと思い、この土日で完成させました。 https://iris-on-tools.net/business-calendar ツール仕様 シンプルな営業日カレンダーです。また、各祝日にマウスオーバーすると、祝日名が表示されます。月別カレンダーは大き目のビューで選んだ月のカレンダーが表示され、年間カレンダーは3列構成で選んだ年度のカレンダーが表示されます。 作成についてのあれこれ 前回のツール同様、ベースをAIにお願いして細かい部分の修正を自分でやってます。だんだんAIのクセみたいなものが分かってきたのか、前回作った時より開発期間が短くなりました。これは、AIの得意なこと、人間がやったほうが良いこと、みたいなものが何となく分かってきた結果なのかなと思います。あと、AIへの指示だしが上手くなってきているのかも?というのも感じています。 最後に
やまぐろ

客先常駐エンジニア向けに「稼働時間計算ツール」を作りました

自分が客先常駐してるときに、毎月計算してるものをより楽にできるようにツールを作成しました。客先常駐は契約上で稼働時間の縛りがあることが多く(140~180hとか)、それの参考値を出すことができます。 * 今月全部定時上がりすると、どのくらいの稼働? * 有休何日取れる? * どのくらい残業しても大丈夫? などを知りたい時に活用してください。 https://iris-on-tools.net/worktime-tool ツール仕様 稼働時間/日と指定月の営業日数から、総稼働時間/月を計算するツールです。オプションとして営業日数の調整や、残業可能時間の計算も行うことができます。 ポイント 営業日数(基本的には、土日祝日を除く平日)を調べるのって意外と面倒なんだけど、それも自動で算出できるようになっています。また、社休、有休が決まっている場合は、追加の休日を指定することで総稼働を調整でき、逆に休日を営業日扱いにすることもできます。 作成についてのあれこれ 作りかたとか
やまぐろ

【Java】設計書からDTOクラスを生成する【PowerShell】

DTOクラスは基本的にロジックを有さない。なので、実際の開発現場でも「設計書からコードを生成するようにできないか」みたいな話題が良く上がる。 というわけで、ここで仮組みしてることにした。 ざっくり要件 こんな感じでやっていく。 * 設計書に記載されている内容からDTOクラスを生成する * 設計書ファイルの複数入力可能 * Javaファイルの複数出力可能 * setter/getterの出力有無を選べる * 親クラスの指定ができる * importやpackageはEclipseにお願いするので不要 * 設計書のフォーマットがいじられても大丈夫なつくり(努力目標) 入力する設計書ファイルのレイアウト 以下のようなレイアウトにした。DTO設計書ってだいたいこういう感じだよな? また、シート名は「データ項目」固定とした。 シート名が可変になってしまうと、各シートを読み込み→対象のシートであるかどうかを何かしらの色付けして判定、となり面倒じゃね?と思った次第。 実際のコー
やまぐろ

【PowerShell】Excel内の文字列(セル、図形)を置換し、結果をログ出力する

タイトルの通り、業務でExcel内の文字列置換をしたいことがあったので、PowerShellでツールを作ってみました。 この手のツールは探せばいくらでも出てきますが、制限のある環境下においてはファイルのダウンロードができなかったりしますよね。なので、コードで残しておこうと思います。これならダウンロードしなくてもツールが作れるね!やったね! なお、PowerShellはWindowsでしか動かないので、Macユーザの方は利用できません。さーせん。 実現したこと 以下が、今回実現したことになります。 * Excel内のテキスト(セル、図形)の特定の文字列を置換 * 指定したディレクトリ配下を再帰的に処理する * 処理結果をログファイルに出力する これらの動作については、私の環境では軽く確認し正常動作しているのは確認済みです! 実際のコード 拡張子を「.ps1」にしたファイルに以下を書き込めば完成です。 なお、実行は「右クリック→PowerShellで実行」とかでいけます。
やまぐろ

【Java】Spring bootでシングルトンを利用し、簡易的にTBLデータをキャッシュ

今回はSpring Boot開発の現場で役立つTipsとして、シングルトンパターンとキャッシュを組み合わせたTBLデータのキャッシュ実装についてご紹介します。長い期間不変なマスタテーブルの値とかを保持できるので、毎回クエリを発行せずに済む、というメリットがあります。 シングルトンとキャッシュで実現する高速化 アプリケーションにおけるパフォーマンスの重要性 Webアプリケーションにおいて、パフォーマンスはユーザーエクスペリエンスを大きく左右する重要な要素であり、表示速度が遅いと、ユーザーの離脱率増加やコンバージョン率低下につながる可能性があります。特に、近年ではモバイル端末からのアクセス増加や、ユーザーの応答速度に対する期待値向上など、パフォーマンスの重要性はますます高まっています。特にWebだと「ターンアラウンドタイム(TAT)3秒以内」なんて目標設定されたりするので、ボトルネックは少ないほうがいいです。 TBLデータのキャッシュとは? TBLデータのキャッシュとは、データベースから取得したデータをアプリケーションサーバーの
やまぐろ

【Java】Spring Bootのインターセプターで、スレッドローカルに値をセットして使い回す

ちょっと限定的な使い方かも知れませんが「仕様変更とかで、全てのコントローラークラスに同じ処理を追加したい。でも、既存モジュールへの改修はコスト的に厳しい」って時に役立つのが、インターセプター。これとスレッドローカルを組み合わせて、なるべく改修範囲を抑えてやりたい事を実現しようと言うのが、今回のコンセプトです。 インターセプターとは インターセプターは、Spring Bootアプリケーションにおいてリクエストの前後に特定の処理を挿入するための仕組みです。例えば、「ある機能を実行する前に特定の処理を実行したい」場合などに活用されます。また、共通の処理を一箇所で管理することができるため、効率的な開発が可能となります。 スレッドローカルとは スレッドローカルとは、各スレッドごとに値を保持する仕組みです。これにより、特定のスレッド内で共有するデータを簡単に管理できます。特に、マルチスレッド環境において、スレッドごとに異なる値を保持する必要がある場合に有用です。 サンプルコード Spring Bootのインターセプターを使用し
やまぐろ

【PLSQL】大量のテストデータをダイレクトパスインサートする方法

開発現場において、必ずどこかのタイミングで実施することになるのが性能試験。今回は性能試験時に便利な、大量のテストデータをクエリ一発で準備する方法をご紹介。 PLSQLとは? PLSQL(Procedural Language/Structured Query Language)はOracleデータベースで使用されるプログラミング言語。SQLに手続き型言語要素を追加しており、複雑な処理や繰り返し処理を行うことが可能となっている。大規模なデータ処理を行う場合に特に便利な言語であり、現場でもテストデータの準備をするときによく使われる。というか、今のところテストデータ登録以外で利用されているのは見たことがない。自分だけ? ダイレクトパスインサートの必要性 テストデータを大量に準備する際、通常のINSERT文では処理時間がかかってしまうという問題が発生する。まあ本番性能に関わる部分じゃないし、気長に待っても良いんだけど、100万件をINSERTするのに20分かかるのと、1分で終わるのでは流石にだいぶストレスが違う。実際の肌感でそのくらいの差は出る
やまぐろ