kanda_kのブックマーク (203)

  • ドメイン駆動設計は何を解決する手法なのか - stmn tech blog

    こんにちは、リファクタリング大好きなミノ駆動です。 株式会社スタメンでは、企業エンゲージメント構築サービスTUNAG(ツナグ)の技術的負債解消と今後の持続的成長のため、ドメイン駆動設計(DDD)の導入を検討しています。 ところでDDDはとかく理解しづらく、何のためのDDDなんだという議論になりがちです。この記事では、DDDの真の主人公コアドメインを中心に、DDDが何を解決するものなのか、全体像を改めて整理します。 この記事で扱う内容 DDDが解決したい課題と解決方法の全体像。 この記事では扱わない内容 設計パターンの実例などの実装詳細。 大事な前提 〜利益を得るためのサービス開発 会社でのサービス開発は、趣味や道楽でやるものでしょうか。違いますね。ビジネスとして、企業活動としてサービス開発しています。当たり前の話ですが、利益を得られるように開発しなければなりません。 ドメイン駆動設計は、継

    ドメイン駆動設計は何を解決する手法なのか - stmn tech blog
  • DevTools の 5つのTips

    こんにちは、株式会社スマートショッピングでエンジニアをしているrobjamです。 デベロッパーツール(DevTools)には便利な機能が盛り沢山です。今回はその中から一部の機能をご紹介したいと思います。今回は主にChromeのDevToolsを使いますが、他のbrowserでも同じような機能が提供されております。 簡単な例文をローカルで試せるようにrepoを準備しました。 こちらをcloneしてセットアップいただければと思います。 1. タブの並べ替え タブの並び替えは、キラーフィチャーではないかもしれませんが、ご存知の方が少ないかもと思って共有します。タブの並び替えができます!動画をみていただければイメージがつかめると思います。 2. xhrリクエストの再送信 たまにプログラム的にリクエストを送信したい時があります。例えば、体験のrepoにあるcounterのエンドポイントを20回送信し

    DevTools の 5つのTips
  • SRE成熟度評価におけるポストモーテムLv.3ガイドライン

    ポストモーテムLT会!「SRE成熟度評価」「社内共有会」カルチャーを醸成するためにやったこと https://findy.connpass.com/event/294084/ □ Slide内資料リンク SRG Portal https://ca-srg.dev/ Developer Ex…

    SRE成熟度評価におけるポストモーテムLv.3ガイドライン
  • 【Go】Mapの内部構造とO(1)のメカニズム

    はじめに こんにちは、株式会社スマートショッピング エンジニアのhi6okuniです。 フロントエンドエンジニアとして主にReactを用いた開発に従事してきましたが、この半年間は幸運にも自社のバックエンドをGoで開発する機会に恵まれました。Goらしいコードを書く技術も日々学習中ですが、最近ではデータ構造そのものにも興味が湧いてきました。そこで今回、GoMapの内部構造がどのように作られているのかを深堀りしてみることにしました。主な焦点はruntime/map.gomapassign関数の解析になります。 ざっくり理解 始めにruntime/map.goファイルのMapのコメントを読んでみましょう。データ構造/仕組みが記載されています。 A map is just a hash table. The data is arranged into an array of buckets. E

    【Go】Mapの内部構造とO(1)のメカニズム
    kanda_k
    kanda_k 2023/09/15
  • ネガティブマージンの使いどころ

    はじめに こんにちわ、フロントエンジニアの川上です。今回は自分も初めて見た時に使い方に戸惑ったCSSのネガティブマージンについて記事を書かせていただきます。 ネガティブマージンとは、CSSのmarginにマイナス値を設定することを指します。大抵は正の数をしてしますが、負の数を設定するとどうなるのでしょうか。 特にCSSでは、この書き方でなければ問題が解決できないということは、ほとんどありません。CSSをコーディングする人によって書き方は無数に存在しますし、どの書き方でも見た目は一緒になります。しかし、CSSのプロパティの数やエレメントの数が少ないほど、見やすく理解しやいすいコードになり、それは良いコーディングのひとつであると考えます。 ネガティブマージンも良いコーディングのための書き方と捉えていただけると良いと思います。 ネガティブマージンの使いどころ ネガティブマージンの使いどころとして

    ネガティブマージンの使いどころ
  • Go/Docker/GitHub Actions環境でのDBテスト方法検討

    はじめまして2022/11に入社しましたソフトウェアエンジニアの葛西です。 主にバックエンド開発を担当しています。 社内で競プロ部を立ち上げたのでいつか機会があれば記事にしたいなと思っています! はじめに チーム内で現在のプロジェクトDB(リポジトリ層)単体テストをどういう風にやろうかという話になり、色々悩みながらやり方を検討していったのでその過程と最終的にどのように実装したかを残しておきたいと思い記事にしました。 技術スタック まずDBテスト方法を検討する際の前提条件として現在のプロジェクトで使用している技術スタックを書いておきます。 言語 Go DBマイグレーションツール sql-migrate スキーマ変更用のSQLを用意しておけばコマンドでスキーマ変更などを反映してくれるというツールです。 スキーマ変更用のSQLはこのプロジェクトのディレクトリに直接置いています。 ORMライブラ

    Go/Docker/GitHub Actions環境でのDBテスト方法検討
  • AWSのセキュリティ管理をPolicy as Codeで加速する ― 最高のCSPM体験を目指して / Unleashing Policy as Code on AWS CSPM

    Security-JAWS【第30回】で使用した資料です。 https://s-jaws.doorkeeper.jp/events/155024 概要: 「開発者体験の維持・向上」と「AWS セキュリティ/コンプライアンスの強化」の両軸をどう進めていくか、という問いは、成長する多くの技術組織を…

    AWSのセキュリティ管理をPolicy as Codeで加速する ― 最高のCSPM体験を目指して / Unleashing Policy as Code on AWS CSPM
  • ジョブに対する自動テスト実装のアプローチ

    はじめに こんにちは、バックエンドを中心に開発をしている野島と申します。 最近は、弊社プロダクトであるSmartMat Cloudに対する自動テストの拡充を推し進めています。 SmartMat Cloudは在庫の重量を計測し、閾値を下回った際に自動で発注を行う機能を有するIoTプロダクトです。この記事ではその発注機能、特にジョブに対するテストについて共有します。 発注ジョブに対する自動テストを作成する中で、下記の課題がありました。 どのようにしてジョブを実行するか ジョブの実行結果はどう評価するか これらに対するアプローチを共有します。 どのようにしてジョブを実行するか 発注ジョブはCronで定期的に実行されており、テストをしたい任意のタイミングでどのように発注処理を実行するかが課題でした。 そこで、テスト用のWebAPIを作成し、これを呼び出すことでジョブと同じ処理を実行することにしまし

    ジョブに対する自動テスト実装のアプローチ
  • MetaのTwitter対抗サービス「Threads」。6日登場予定

    MetaのTwitter対抗サービス「Threads」。6日登場予定
    kanda_k
    kanda_k 2023/07/04
  • gqlgenによるGraphQL Subscription実装

    はじめに こんにちは株式会社スマートショッピング ソフトウェアエンジニアの葛西伸樹です。 現在のプロジェクトGraphQLライブラリのgqlgenを使用しているのですが、GraphQLにおけるリアルタイム通信用のコマンドであるSubscriptionに関する知識がなかったので簡単に実装してその内容をまとめました。 この記事で説明しないこと この記事ではSubscriptionの仕組みと実装方法に焦点を当てているので GraphQLの概要 gqlgenによるQuery, Mutationの実装方法 については説明を省略します。 Subscriptionとは SubscriptionはGraphQLのデータ取得操作の一つで、リクエストを投げて結果を取得するQueryとは違いコネクションを接続することでサーバー側からのプッシュ通知によるデータ取得が可能になっています。 Subscription

    gqlgenによるGraphQL Subscription実装
  • 「これを待っていたんだ!」ついにChatGPTと音声で直接しゃべれるようにしちゃった猛者が現れてワクワクが止まらない

    平岡 | 誰も置いていかない生成AI発明家 @hiraoka_dx みんなが定時で帰るためのサービス『satto』を開発中 | 生成AIはサボるための最強の武器 | ソフトバンク 最年少部長 | 発言は個人のものです | 過去のバズった発明たちはハイライト↓ https://t.co/5yjn3jtXfr 平岡 | ワンランク上の生成AI活用術 @hiraoka_dx ついにやっちまった。 ChatGPTと音声で直接喋れる様になった。 これで、皿洗い中でもChatGPT相談できる。。 勿論、誰でもできるように、一行もコード書かずに、全部無料でやる方法を模索しました。需要あれば後日解説出します。 以降、面倒な電話はこいつに対応してもらうか。。笑 pic.twitter.com/N5mG87bQFB

    「これを待っていたんだ!」ついにChatGPTと音声で直接しゃべれるようにしちゃった猛者が現れてワクワクが止まらない
    kanda_k
    kanda_k 2023/02/28
  • 32歳、新しい技術を習得する余裕がなく昔取った杵柄でいつまで食えるか不安です - star__hoshi's diary

    子供が産まれて一年半近く経つが、時間が全然取れない。 ここ最近は新しい技術を何か積極的に勉強するということが特になく、20代の頃に得た知識でなんとか飯をっている感覚がある。転職してから1年は業務でFlutterを始めていて、それだけ聞くと新しい技術を得ているように見えるが、自分の中では今までの延長線上にいるだけのような感覚がある。 20代の頃は必死になって技術書読んだり記事読んだり実際に手を動かしたりもしたけど、ここ最近は業務で必要な知識を業務時間内に得るだけで、業務では触らないような知識は全然身についていない。 モバイルアプリエンジニアはこの先オワコンになると思っており、上辺だけのエンジニアリングの知識では飯をっていけなくなりそうな気がする。そのためバックエンドをもっと強くやっていくとか、ウェブフロントエンドなど手を広げたいが全然時間が取れない。業務でやるのが一番いいが、モバイルアプ

    32歳、新しい技術を習得する余裕がなく昔取った杵柄でいつまで食えるか不安です - star__hoshi's diary
    kanda_k
    kanda_k 2022/10/20
  • 経営とソフトウェアエンジニアリングの接続 - WEB SALAD

    はじめに 2020年の1月から執行役員CTOに就任し、そこから数年間「CTOの役割は何か」を自問自答してきました。 就任当初から「CTOの役割とは、経営とソフトウェアエンジニアリングを接続することである」という考えはありましたが、上手く言語化できずにいました。 最近になってようやく他者へ説明できるレベルまで言語化できるようになったので、現時点での考えを残しておきたいと思い、4年ぶり(!)にブログを更新する1ことにしました。 ブログポストの要旨 筆者の考えるCTOの役割は、「ソフトウェアエンジニアリング組織の日々の活動が企業価値の向上に繋がっている状態を作ること」です。 企業価値の向上のためにソフトウェアエンジニアリング組織が行うべき取り組みは、コーポレートファイナンスの視点を導入することで論理的に導けます。 そして、ソフトウェアエンジニアリング組織の日々の活動がこれらの取り組みに自然と向

    経営とソフトウェアエンジニアリングの接続 - WEB SALAD
    kanda_k
    kanda_k 2022/09/30
  • ryuzee技術顧問と1on1公開 〜 どうやって学び、どうやって活用しているのか? - NTT Communications Engineers' Blog

    こんにちは、イノベーションセンター Agile CoE PJリーダーの岩瀬(以下、iwashi)です。 NTT Comで技術顧問をされており、アジャイルコーチでもある吉羽さん(以下、ryuzee)に「普段からどうやって学んで、どうやって活用しているのか?」という問いを1on1で投げかけてみました。記事では、1on1模様の一部を公開します。 情報収集やナレッジマネジメントのテクニックが載っていますので、興味ある方はぜひご覧ください。というわけで、早速いってみましょう! RSSリーダーを使って購読 iwashi: ryuzeeさんは海外記事の翻訳など、かなり幅広く情報収集をされている印象があります。普段はどうやって情報をみつけているんですか? ryuzee: RSSリーダーにたくさん登録しています。最近はRSSリーダーが下火で悲しいんですが、feedlyを使って色々なRSSを購読しています。

    ryuzee技術顧問と1on1公開 〜 どうやって学び、どうやって活用しているのか? - NTT Communications Engineers' Blog
    kanda_k
    kanda_k 2022/08/16
  • 数理最適化ことはじめ / Introduction to Mathematical Optimization

    スライドでは、数理最適化を概観し、基的な問題とその解き方を分かりやすく解説することを目標にしています。数理最適化に興味を持っていただければ嬉しいです。 【目次】 1 章 数理最適化とは(p.2~20) 2 章 連続最適化問題(p.21~133) 3 章 離散最適化問題(p.134~238…

    数理最適化ことはじめ / Introduction to Mathematical Optimization
  • Dockerfile のベスト・プラクティス — Docker-docs-ja 19.03 ドキュメント

    このドキュメントは、効率的なイメージ構築のために推奨するベストプラクティスを扱います。 DockerDockerfile に書かれた命令を読み込み、自動的にイメージを構築します。 Dockerfile はイメージを構築するために必要な全ての命令を、順番通りに記述したテキストファイルです。 Dockerfile は特定の書式と命令群に忠実であり、それらは Dockerfile リファレンス で確認できます。 Dockerfile の命令に相当する読み込み専用のレイヤによって、 Docker イメージは構成されます。それぞれのレイヤは直前のレイヤから変更した差分であり、これらのレイヤは積み重なっています。次の Dockerfile を見ましょう。 命令ごとに1つのレイヤを作成します。 FROM は ubuntu:18.04 の Docker イメージからレイヤを作成 COPY は現在のデ

    kanda_k
    kanda_k 2022/03/31
  • RIE(Runtime Interface Emulator)とはじめるコンテナLambda|Dentsu Digital Tech Blog

    電通デジタルで SRE をしている神田です。この記事は、電通デジタルアドベントカレンダー2021 17日目の記事になります。 私は、BOT BOOSTaR® というチャットボットツールの開発・運用に携わっています。BOT BOOSTaR®ではサーバーレスアーキテクチャを採用しており、AWS Lambda を利用する機会が多いです。また、私が所属する開発部ではもともとバックエンドサービスの開発言語として Go を採用することが多かったので一部テスト的に Go を使い始めています。日は、GoAWS Lambda 関数を開発する際のローカル環境でのテストについて話します。 GoAWS Lambda関数を実装するときの問題 AWS Lambda 関数を開発する場合、開発言語ごとに用意されているランタイム から適当なバージョンを選びます。GoLambda 関数を開発しようとした場合、

    RIE(Runtime Interface Emulator)とはじめるコンテナLambda|Dentsu Digital Tech Blog
    kanda_k
    kanda_k 2021/12/17
    コンテナベースのLambdaをローカルテストするときにDockerfileの書き方で迷うことがあったので整理して記事にまとめました
  • clusterがOculus Quest2で遊べるようになりました|cluster - メタバースプラットフォーム

    こんにちは、htomineです。 メタバースプラットフォーム「cluster」はみなさんが楽しくメタバース空間で過ごせるように、さまざまな改善を行っています。 長らくお待たせしました。 日からOculus Quest2でclusterが遊べるようになりました! よりVR版に入りやすく、遊びやすくなりましたので、ぜひVRでclusterの世界を楽しんでみてください。 今回はApp Labでの配信となりますので、下記で簡単にダウンロード方法を解説します。 ※Questの初代は対象外となりますので、ご注意ください。 clusterをダウンロードするApp Labからの配信だとストアの一覧に並ばないため、こちらのページからか、直接「cluster」と検索する必要があります。 どこから検索すればいいのか分からない…という方のために、下記でダウンロード方法を紹介します! ●スマホ/PCからダウンロー

    clusterがOculus Quest2で遊べるようになりました|cluster - メタバースプラットフォーム
    kanda_k
    kanda_k 2021/12/09
    控えめに言って最高
  • SQLでAUCを算出する方法 |Dentsu Digital Tech Blog

    電通デジタルで機械学習エンジニアをしている今井です。 Advent Calendar 9日目となる記事では、SQLでAUC(Area Under the Curve)を算出する方法について紹介します。 はじめに2値分類タスクでは以下のようなConfusion Matrix(混同行列)を算出します。 TP(True Positive, 真陽性): 正例に対して正例と予測した数 FN(False Negative, 偽陰性): 正例に対して負例と予測した数 FP(False Positive, 偽陽性): 負例に対して正例と予測した数 TN(True Negative, 真陰性): 負例に対して負例と予測した数 またこれらをもとに以下の指標も算出します。 Precision(適合率): $${\frac{\rm{TP}}{\rm{TP+FP}}}$$ Recall(再現率): $${\fra

    SQLでAUCを算出する方法 |Dentsu Digital Tech Blog
  • DynamoDBの一括書き込みCLIで運用作業を楽にした話|Dentsu Digital Tech Blog

    電通デジタル開発部の平沼です。 記事は電通デジタルアドベントカレンダー2021 7日目の記事になります。 記事では、DynamoDBに大量のデータを書き込む際、運用を少し楽にするために内製したツールをご紹介します。 課題感新しいサービスをリリースする際の初期データの登録やテストデータの登録など、DynamoDBにデータを書き込む場面は多いです。書き込む選択肢は主にAWS Command Line Interface (AWS CLI)やAWSマネジメントコンソールがあります。 DynamoDBへ書き込む選択肢のPros ConsAWS CLIで一度に複数の項目を追加する場合、batch-write-item APIやtransact-write-items APIがあります。それぞれのユースケースとしては下記が考えられます。(表内の例はAWSのサンプルを利用しています。ProductC

    DynamoDBの一括書き込みCLIで運用作業を楽にした話|Dentsu Digital Tech Blog