kondoumhのブックマーク (266)

  • DDDってなんでオニオンとかといっしょに出てくるの?を社内で聞いてみた | 豆蔵デベロッパーサイト

    この記事は夏のリレー連載2024初日の記事です。 夏のリレー連載の企画ということで今回はいつもとは趣を変え、筆者が社内Slackに「DDDってなんでオニオンとかといっしょに出てくるの?」と聞いたときのやり取りを紹介したいと思います。記事の目的には筆者自身が技術的に「へぇー」と思ったことのアプトプットもありますが、それ以上に豆蔵の雰囲気を少しでも知ってもらえればいいなという思いもあります。読んでもらい豆蔵の社風的なものを少しでも感じ取っていただければ幸いです。 TL;DR # やり取りはいいから結局なんでなの?を取り急ぎ知りたい方に向けに聞いた結果の結論を筆者の見解としてまとめると次のようになります。 DDDに特定のアーキテクチャは必要ない 必要なのは技術的な関心事とビジネス上の関心事を分離することができるアーキテクチャだけ 技術とビジネスの関心事の分離を直接的に実現するには依存関係逆転の法

    DDDってなんでオニオンとかといっしょに出てくるの?を社内で聞いてみた | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/07/29
  • LambdaでPlaywrightを動かす(Lambdaレイヤー / コンテナ) | 豆蔵デベロッパーサイト

    今クロスブラウザテストでよく使われるツールといえばPlaywrightですね。 テストでなくとも単純にブラウザ自動化ツールやスクレイピングツールとして使っている現場も多いかと思います。 とある事情で、Lambda上でPlaywrightを動かしてみましたが、予想以上に苦戦したので備忘録も兼ねて手順をまとめます。 Lambdaレイヤーを使う # これが一番簡単な方法です。 Playwright等のツールはそれ単体では動作せず、Chromium等のブラウザをインストールしなければなりません。 とはいえ、基的にLambdaはマネージドサービスですので、自由にそのランタイム環境をカスタマイズできる訳ではありません。 また、Lambda関数をパッケージングするZIPファイルは、サイズが50MB(解凍後は250MB)以内という制約[1]がありますので、そのままブラウザをインストールできません。 あり

    LambdaでPlaywrightを動かす(Lambdaレイヤー / コンテナ) | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/07/19
  • 2024年版!VS Code で Java 開発環境を構築する | 豆蔵デベロッパーサイト

    はじめに # Java デベロッパーの皆さんは IntelliJ IDEA や Eclipse を使ってる方が多いのではないでしょうか。筆者は VS Code を使っています。業務では長らく Java から離れていたのですが、ここ数年はけっこう書いています。かつては IntelliJ IDEA に課金してましたが Java 再開を機に VS Code の環境を整えました。この記事では、定番の拡張やワークスペースの使い方についてご紹介したいと思います。 Microsoft Extension Pack for Java の利用 # 結論から言うと 「Microsoft の Extension Pack for Java を入れましょう。」で終わりです。 Extension Pack for Java - Visual Studio Marketplace Extension Pack はその

    2024年版!VS Code で Java 開発環境を構築する | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/07/18
  • UMLをプログラミング言語で実装するには? Python編 | 豆蔵デベロッパーサイト

    はじめに # UML表記法やUMLモデリングのセミナー講師をしていると、「自分の言語ではどのように実装すればよいのか」というご質問を受けることがあります。また、講師側としても、受講生が使っているプログラミング言語でUMLを説明すると、すんなりと分かって頂ける経験が幾度となくあります。多くのプログラマがUMLモデリングに興味を持って頂けているようですが、UMLのモデルをどのようにソースコードにするかについては意外と知られていません。これが、UMLモデリングが広まらない原因の1つではないかと考えています。 UMLからソースコードへの変換を「マッピング」といい、プログラミング言語名を付けて、「UML/C++マッピング」のように呼びます。このシリーズは、さまざまなプログラミング言語への「UML/Xマッピング」を紹介して、馴染みのあるプログラミング言語からUMLを逆に理解して貰えるように企画したもの

    UMLをプログラミング言語で実装するには? Python編 | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/07/15
  • Valibot: 超軽量&型安全なスキーマバリデーションライブラリ | 豆蔵デベロッパーサイト

    JavaScript、とりわけTypeScriptプロジェクトでデータのバリデーションを行う際、ZodやYup等のライブラリがよく使われています。 今回は、最近これらの代替として注目を集めているValibotというライブラリを紹介します。 Valibotとは? # Valibotは構造化データを検証するためのスキーマライブラリです。 公式ドキュメントではその特徴を以下のように説明しています。 Fully type safe with static type inference Small bundle size starting at less than 600 bytes Validate everything from strings to complex objects Open source and fully tested with 100 % coverage Many tra

    Valibot: 超軽量&型安全なスキーマバリデーションライブラリ | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/07/15
  • 画像AIで異常検知:事例に合わせたモデル選定と実践 | 豆蔵デベロッパーサイト

    画像AI技術は急速に進化しており、異常検知や物体検出、セグメンテーションなど、さまざまなタスクに活用されています。この記事では、異常検知に利用できるモデルの特徴と選定の指標、オープンデータで実際に異常検知用AIを学習してみた結果を記述しています。 異常検知に利用できるモデル # 画像AIで異常検知がしたい場合、学習に使用するモデルを選定する必要があります。異常検知に利用できるモデルには異常検知モデル、物体検出モデル、セグメンテーションモデル、分類モデルなどが考えられます。それぞれの特徴とメリット・デメリットをまとめます。 異常検知モデル(Anomaly Detection Models) # 特徴:主に正常データのみを使用して学習を行います。正常なパターンを学習し、それから逸脱するデータを異常として検出します。 メリット: 正常のパターンからの逸脱を検出するため、正常データだけで学習が可

    画像AIで異常検知:事例に合わせたモデル選定と実践 | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/07/11
  • 【新人さん向け】A5:SQL Mk-2のおすすめ設定と使い方 | 豆蔵デベロッパーサイト

    はじめに # 最近漬物とゆで卵を合わせればタルタルソースみたいにおいしくなるのでは?と思い、キムチと野沢菜のワサビ入り浅漬けで試した石原です。(不味くはないですがおすすめはしません) 色々な案件で利用する機会が多いDB開発ツールA5:SQL Mk-2[1] (以後A5M2と記載)について、新人さん向けにおすすめの設定と使い方について記載します。 ワークスペースの設定 # DB操作でのやらかしとして「開発環境を操作していたつもりが実は別環境だった」ことありませんか。 そんな不測の事態を防ぐために、まず初めにワークスペースの設定をすることをおすすめします。 ワークスペースとはDBの登録情報や開いているファイルの情報をひとまとめにしたもので、 イメージとしては環境ごとに作業台を用意してそれぞれで分けてDB操作を行えるイメージです。 実際に設定してみましょう。 A5M2を起動して以下のようなダイア

    【新人さん向け】A5:SQL Mk-2のおすすめ設定と使い方 | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/07/03
  • TypeScript 向けの軽量ORマッパー Drizzle を使う | 豆蔵デベロッパーサイト

    少し前ですが、TypeScript向けのORマッパーとして TypeORM を紹介しました。 ORマッパーのTypeORMTypeScriptで使う TypeORMのスキーママイグレーションを使う この記事は予想以上にアクセスがあり、RDBおよびORマッパーの注目度はいまだに高いと思いました。 最近TypeScript向けで新しいORマッパーの Drizzle を使ってみました。 軽量で使いやすいAPIを提供していて、結構良いなと思いましたので今回はこちらを紹介させていただきます。 Drizzleとは? # Drizzleは2022年リリースの比較的新しいORマッパーです。 公式ドキュメントでは冒頭でDrizzleを以下のように紹介しています。 It’s the only ORM with both relational and SQL-like query APIs, providin

    TypeScript 向けの軽量ORマッパー Drizzle を使う | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/07/03
  • 新人だって怖くない!Gitで焦らないためのコマンド操作解説:スタッシュ・コンフリクト解消・マージの取り消し | 豆蔵デベロッパーサイト

    昨年新入社員として入社しました、塚野です。 今回は新人向け記事ということで、去年の自分がまずつまずいたGitについて「こんな時どうすれば…!」となる場面ごとに解決方法とその仕組みを解説していきたいと思います。 Gitは大変便利なバージョン管理ツールで多くの現場で導入されていることと思いますが、新人の自分にとっては謎の呪文だらけで「不意にデータを上書きしないか心配」「Gitに怒られたけど何言ってるのかわからん」となっていました。 しかしGitは使い方さえ理解できれば怖いツールではありません。Git ハ トモダチ、コワクナイヨ。 はじめに # そもそも新人で入った自分はGitすらも知らなかったため基的な部分はサル先生のGit入門で学びました。 Gitの入門として有名な通称サルGitです。まずは入門編を読むことでGitとはやpull、pushといった基的なGitで使用する操作について学ぶこと

    新人だって怖くない!Gitで焦らないためのコマンド操作解説:スタッシュ・コンフリクト解消・マージの取り消し | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/07/03
  • Serverless Framework v4 の変更点を整理する | 豆蔵デベロッパーサイト

    先日(2024-06-14)Serverless Framework v4のGAリリースが発表されました。 Serverless Framework V4 Generally Available 今回はこのv4リリースについて、主要な変更点を主観的に整理してみました。 ライセンス変更 # 対象ユーザーに該当する場合は、インパクトが大きいのはやはりこれですね。2023年に事前予告はありましたが、それに沿った形である程度の売上規模を持つ組織での利用が有償になります。 公式ドキュメントをみると、以下のように記述されています。 As we announced at the end of 2023, Serverless Framework CLI will continue to be free for individual developers and small businesses, but

    Serverless Framework v4 の変更点を整理する | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/07/03
  • 文字コード これだけは覚えておこう ~シフトJIS編~ | 豆蔵デベロッパーサイト

    はじめに # 日頃、Javaの初心者からベテランまで様々なスキルレベルの方から質問を頂く立場で仕事しておりますが、Java言語を使用するうえで基事項でありながらも、あまり理解されていない事柄があると感じています。これらの事柄については改めて誰かに質問できず、「そういうもの」として無理やり納得しやり過ごしている方がいるのではないでしょうか。ここではそのような事柄について改めて解説し、その理由を知ることで「だからこうするべき」、「だからこれはダメ」ということを理解する手助けになればと考えます。 今回は「新人向け」というテーマをもらったので、プログラマーなら避けて通れない「文字コード」、特に「シフトJIS」についてこれだけは知っておいて欲しいポイントを解説します。 今回言いたいポイント # 「シフトJIS」には気をつけろ 事例 # 文字コードに関する相談で多いのが「文字化け」です。以下の事例を

    文字コード これだけは覚えておこう ~シフトJIS編~ | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/07/03
  • JJUG CCC 2024 Spring 登壇後記 - Spring Boot vs MicroProfile セッションの補足と訂正 | 豆蔵デベロッパーサイト

    先週日曜日(6/16)に開催されたJJUG CCC 2024 Springに『Spring Boot vs MicroProfile - クラウドネイティブにおけるフレームワークの比較と選択』のタイトルで登壇させていただきました。JJUG CCCの登壇はこれで2回目ですが、前回はオンラインとオフラインのハイブリッド開催のため、会場の入りはまばらでしたが、今回は「こんなに人が入ってるワケないので会場を間違えた!?」と自分で思うほど、大勢の方に足を運んでいただけました。 肝心の発表内容は?というと、スライドが多めなのに余計なことをついついしゃべってしまい時間が足りなくなるという前回と全く同じ失敗をしましたが、人としては伝えたいことは伝えられたのではないかと満足していたりします。 セッション終了後には会場外やX(twitter)でいくつかご質問をいただきました。今回はその中から「確かにそれは?

    JJUG CCC 2024 Spring 登壇後記 - Spring Boot vs MicroProfile セッションの補足と訂正 | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/07/03
  • KRaft モードの Kafka をコンテナ環境にデプロイする | 豆蔵デベロッパーサイト

    はじめに # 今年の初めに「KRaft による ZooKeeper レス Kafka クラスター構成」という記事でローカル環境で KRaft モードで Kafka を実行する方法について書きました。 この時は DockerKubernetes などコンテナ環境でのサポートが追いついておらず、設定にはかなりの手作業が必要でした。現在では手軽に構築できるようになっています。 macOS Sonoma / OrbStack 1.6.2 の環境で試しました。 InformationOrbStack については以下の記事で取り上げています。 OrbStack - macOS 専用の高速軽量なコンテナ & Linux VM 環境 OrbStack 1.0 付属の Kubernetes を試す Docker の場合 # Bitnami の Docker サイトにドキュメントがあります。 https

    KRaft モードの Kafka をコンテナ環境にデプロイする | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/07/03
  • UMLをプログラミング言語で実装するには? Go言語編 | 豆蔵デベロッパーサイト

    はじめに # UML表記法やUMLモデリングのセミナー講師をしていると、「自分の言語ではどのように実装すればよいのか」というご質問を受けることがあります。また、講師側としても、受講生が使っているプログラミング言語でUMLを説明すると、すんなりと分かって頂ける経験が幾度となくあります。多くのプログラマがUMLモデリングに興味を持って頂けているようですが、UMLのモデルをどのようにソースコードにするかについては意外と知られていません。これが、UMLモデリングが広まらない原因の1つではないかと考えています。 UMLからソースコードへの変換を「マッピング」といい、プログラミング言語名を付けて、「UML/C++マッピング」のように呼びます。このシリーズは、さまざまなプログラミング言語への「UML/Xマッピング」を紹介して、馴染みのあるプログラミング言語からUMLを逆に理解して貰えるように企画したもの

    UMLをプログラミング言語で実装するには? Go言語編 | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/07/03
  • VS Code の CodeQL 拡張と Starter workspace でコード分析する | 豆蔵デベロッパーサイト

    これは、豆蔵デベロッパーサイトアドベントカレンダー2022第6日目の記事です。 6月の「GitHub の脆弱性検出機能 Code scanning alerts と CodeQL について」の記事で、CodeQL の概要と Code scanning alerts を GitHub Actions ワークフローを使って有効化する方法を紹介しました。 9月に VS Code の CodeQL 拡張で GitHub から CodeQL のデータベースを直接ダウンロードできるようになったことが発表されました。 CodeQL for VS Code: download CodeQL databases from GitHub.com | GitHub Changelog この記事では、CodeQL 拡張で CodeQL データベースを取得し分析する方法を見ていきます。また、ローカル環境で Code

    kondoumh
    kondoumh 2024/06/09
  • 高コスパで電力効率のよい Arm ベースの GitHub Actions Runner を使っていく | 豆蔵デベロッパーサイト

    はじめに # Arm ベースの Actions Runner がパブリックベータになりました。Arm ベースの Linux / Windows ランナーが提供されます。 Actions: Arm-based linux and windows runners are now in public beta GitHub のブログでは、Arm テクノロジーがデータセンターの電力消費を削減することが記載されています。Windows ランナーについては、GitHub と Arm が提携して Windows VM イメージを提供しているようです[1]。 Arm64 on GitHub Actions: Powering faster, more efficient build systems 我々ユーザーにとっての魅力は x64のランナーに比べ37%も安いその価格です。価格表は以下にあります。 Pe

    高コスパで電力効率のよい Arm ベースの GitHub Actions Runner を使っていく | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/06/05
  • Artifact Attestations で GitHub Actions ワークフローの成果物の出所情報を検証可能にする | 豆蔵デベロッパーサイト

    はじめに # GitHub の Artifact Attestations を使用すると GitHub Actions ワークフローでビルド成果物に署名して成果物の出所情報を検証可能にできます。 Artifact Attestations は現在パブリックベータです。 Introducing Artifact Attestations–now in public beta Artifact Attestations はソフトウェア成果物の署名と検証を行うための OSS である Sigstore により実現されています。この機能のため、GitHub はルート証明機関(CA)になっています。 InformationSigstore を使ってコンテナイメージや Go Modules などの成果物に署名を行う GitHub Actions ワークフローの構成に関しては以下の記事で扱っています。 ソ

    Artifact Attestations で GitHub Actions ワークフローの成果物の出所情報を検証可能にする | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/06/03
  • Bun で実行可能バイナリをクロスコンパイルできるようになりました | 豆蔵デベロッパーサイト

    はじめに # 去年の9月 Bun が 1.0 に到達したとき、開発環境に導入してみた記事を書きました。 開発環境の Node.js を Bun に置き換えてみる その後 Bun 1.1 で Windows 対応が行われ、真のクロスプラットフォームが実現されました。 Bun 1.1 | Bun Blog 実行可能バイナリを生成する機能は提供されていましたが、1.1.5 でクロスコンパイルの機能が実装されました。 Bun v1.1.5 | Bun Blog 宣伝 - Software Design 2024年6月号の Bun 特集に寄稿しました冒頭で紹介した記事がきっかけで、Software Design 2024年6月号第2特集の Bun に寄稿する機会を得ました。以下のように Bun の概要から利用方法、Node.js とのパフォーマンス比較を網羅する特集です。 第1章: Bun の全体像

    Bun で実行可能バイナリをクロスコンパイルできるようになりました | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/05/21
  • 東京 POP もできた Wasmer Edge (Beta) を試す | 豆蔵デベロッパーサイト

    はじめに # Wasmer から Wasmer Edge (Beta) の GA と東京など新たな拠点の追加が発表されました。 Wasmer Edge (Beta) is now Generally Available · Blog · Wasmer Wasmer Edge は WASM(Webassembly) ランタイムを利用して構築されたクラウドプラットフォームです。Kubernetes に代表されるコンテナ技術よりもシンプル・セキュアで、スケーラビリティと回復力を備えたプラットフォームを目指して開発されています。 C / Rust / JavaScript / Python / WASM とその他、WASM / WASI(X)[1] をサポートする任意のプログラミング言語でアプリを書けます。 将来的には、OSS バージョンが提供されオンプレミスでの運用も可能になるようです。 Inf

    東京 POP もできた Wasmer Edge (Beta) を試す | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/05/20
  • LangChainのJava用ライブラリLangChain4jを使ってみる | 豆蔵デベロッパーサイト

    はじめに # こんにちは。デジタル戦略支援事業部の三浦です。 今回はLangChainのJava用ライブラリである LangChain4j を触ってみたので紹介したいと思います。 LangChainとはLLM(大規模言語モデル)を利用したアプリケーション開発において便利な機能をまとめたフレームワークです。 多種の言語モデルを統一的なインターフェースで利用できることや、プロンプトテンプレート、会話履歴の保存、エンベディング、ベクトルDBとの接続など多くの機能に対応しています。 LangChainは各プログラミング言語のライブラリとして提供されており、特にPython,JavaScript/TypeScript用のものがメジャーとなっています。 ですが個人的にJavaをよく利用しているので今回はJava用のLangChainライブラリを触ってみようと思います。 Java用のLangChainラ

    LangChainのJava用ライブラリLangChain4jを使ってみる | 豆蔵デベロッパーサイト
    kondoumh
    kondoumh 2024/05/13