masatotoroのブックマーク (616)

  • Datadog→New Relicの移行を決めた際のADRを公開します!

    はじめに レバテック開発部、SREチームに所属している金澤です。 弊社開発部では、Datadogで行っていた監視からNewrelicを用いたオブザーバビリティへの移行を行う決定をしました。 そして、なぜオブザーバビリティを採用したのか、DatadogからNewrelicへ移行したのかといった意思決定をADRとして記録し、社内に展開しています。 今回はこのADRの内容を公開します! ※記事はNewrelic、Datadogを肯定、否定するものではございません。 ADR コンテキスト 事業軸 レバテックの事業戦略は事業ポートフォリオ構想に従っている 既存の事業を拡大させながら新規サービスを生み出し続ける 事業ポートフォリオ構想 開発軸 事業領域の大きさ、深さが拡大し必要なドメイン知識が肥大化 スケーラビリティとアジリティの担保が困難になってきた バグ、障害の発生 レビュー工数の増加 新規参画

    Datadog→New Relicの移行を決めた際のADRを公開します!
    masatotoro
    masatotoro 2024/06/08
    New Relic
  • 東京、人生観が変わるラーメン20選

    「入鹿TOKYO 六木」は、「東京ミッドタウン」のすぐ近くという一等地にふさわしい店だ。店構えは高級なかっぽうをほうふつとさせ、一般的なこぢんまりとしたラーメン店とは一線を画している。広々とした店内で存在感を示す木製のカウンターはゆったり8人掛けで、4人掛けの個室も設けられている。 そして何より重要なのは、ここで提供されるラーメンが、インテリアのエレガントさに引けを取らない、洗練されたモダンな料理に昇華されていることだ。ミシュランのビブグルマンにも選ばれている。 同店のラーメンは、特注の有田焼の丼に至るまで、隅々まで考え尽くされている。スープベースは全メニュー共通で、別々に取った4種のだしのブレンドだ。その内容は、4種類のブランド地鶏、鹿児島黒豚、伊勢エビと白ワイン、宮島産ムール貝と宍道湖産大和シジミといったもの。このベースをもとに、それぞれのラーメンスープが作られる。 シグネチャーメニ

    東京、人生観が変わるラーメン20選
  • CQRS設計パターンをモダナイズする

    CQRSとは CQRS(Command Query Responsibility Segregation、コマンド・クエリ責務分離)は、ソフトウェアアーキテクチャパターンの一つで、つまりシステムのコマンド部分をクエリ部分から分離します。基的な考え方は、データの書き込み操作(コマンド)と読み取り操作(クエリ)を異なるモデルで扱うことです。これにより、スケーラビリティ/パフォーマンス/セキュリティの観点で柔軟な設計が可能となり、クエリ要件に合わせて最適化が実現できます。 CQRSの基構成としては、 コマンドモデル(書き込みモデル):データの作成、更新、削除といった書き込み操作を担当します。このモデルは、データの整合性と一貫性を確保するために最適化されています。 クエリモデル(読み取りモデル):データの読み取り操作を担当します。このモデルは、クエリのパフォーマンスを最大化するために最適化され

    CQRS設計パターンをモダナイズする
    masatotoro
    masatotoro 2024/05/22
    cqrs なのに、データベースが一体化?
  • DB設計書の管理が楽になるDBML入門 – DBMLの書き方,dbdiagram.io, dbdocs の紹介 – | SIOS Tech. Lab

    こんにちは!サイオステクノロジーの安藤 浩です。DB設計書の生成が容易にできるDBMLをご紹介します。DBMLの入門として、DBMLの書き方、ER図生成方法、Github actionsでCIを実行して閲覧する方法をご紹介させていただきます。 DBMLとは DBML は DataBase Markup Language の略でDB構造を定義するために設計された言語です。 DB構造に焦点を当てており、可読性の高い言語です。 dbdiagram.io や dbdocs.io などを利用することでDBドキュメントの生成が可能です。 コードベースで図を生成できる点でPlantUMLと似ていますね。 DBMLの書き方 テーブルの書き方 まずはテーブルの定義の例をもとにDBMLの記法を紹介していきます。users というテーブルを作成してみます。コードは以下のようになります。 Table users

    DB設計書の管理が楽になるDBML入門 – DBMLの書き方,dbdiagram.io, dbdocs の紹介 – | SIOS Tech. Lab
    masatotoro
    masatotoro 2024/05/22
    dbml
  • 「情報 I・II」を学んだ高校生の技術レベルってどのくらい? 元エンジニア校長にホントのところを聞きました【フォーカス】 レバテックラボ(レバテックLAB)

    TOPフォーカス「情報 I・II」を学んだ高校生の技術レベルってどのくらい? 元エンジニア校長にホントのところを聞きました【フォーカス】 「情報 I・II」を学んだ高校生の技術レベルってどのくらい? 元エンジニア校長にホントのところを聞きました【フォーカス】 2024年5月22日 工学院大学附属中学校・高等学校 校長 中野 由章 芝浦工業大学大学院工学研究科修了(電気工学専攻)。日アイ・ビー・エム大和研究所を経て、1993年から教職の道へ。三重県立尾鷲工業高等学校や大阪電気通信大学など、多様な機関で教鞭を執り、教育と情報科学を専門分野として研究を重ねる。2021年より現職。情報処理学会の初等中等教育委員会委員長も務める。愛称は、日IBM時代に同僚に付けられた「ジョニー」。明確な由来はない。 工学院大学附属中学校・高等学校 高校における情報教育のあり方が、大きく変わろうとしています。20

    「情報 I・II」を学んだ高校生の技術レベルってどのくらい? 元エンジニア校長にホントのところを聞きました【フォーカス】 レバテックラボ(レバテックLAB)
    masatotoro
    masatotoro 2024/05/22
    高校生がんば
  • AWS CDKでサーバレスのローカル開発環境を構築した理由とは? デメリットの解消方法と実運用で直面した課題

    新規プロダクト開発にサーバレスアーキテクチャを採用 Works Human IntelligenceはERP市場 人事・給与業務分野 シェアNo.1[1]を獲得しているエンタープライズ向け統合人事システム「COMPANY」の開発、販売、サポートを行っている企業である。Works Human Intelligenceによると、COMPANYは国内大手法人の3社に1社にあたる約1200社が導入しており、約510万人の人事データを管理している。同社ではこの膨大な人事データを活用し、より顧客にとって価値のある製品や機能の開発に取り組んでいる。その一つが齋藤氏の紹介する「COMPANY Human Capital Insight(HCI)」である。HCIはCOMPANYやその他外部のシステムと連携し、人事データなどのあらゆるデータを集約。そのデータを元に男女間賃金差異や女性管理職比率などの人的資

    AWS CDKでサーバレスのローカル開発環境を構築した理由とは? デメリットの解消方法と実運用で直面した課題
    masatotoro
    masatotoro 2024/05/17
    cdkの選定
  • なぜ、最悪の業績なのに年商の20%にもあたる1億円の売上を手放してまで楽天市場から退店するのか|鷲尾 岳 / ワシオ株式会社 3代目社長

    【はじめに】・自己紹介こんにちは。 今年の1月にワシオ株式会社(以下ワシオ)の代表取締役社長に就任しました、三代目の鷲尾 岳(ワシオ タカシ)と申します。 鷲尾家の次男坊として1991年2月10日に生まれ、小学校5年生までは地元の公立、小6から私立の学校に転校し、中3までは福井県、高校は和歌山県にある姉妹校にて寮生活をしていました。 ここで詳しくは書きませんが、その学校の特徴として、「義務教育は最低限」「校則は生徒が主になって話し合って決める」「1年を通して大半のコマを占める”プロジェクト”という授業で目標を決め、達成に向けて何をするか生徒が決める」「やりたいことは大概やらせてもらえる」などなど、おそらくかなり一般的な学校からかけ離れた環境で多感な時期を過ごしました。 高校を卒業した後、大学で中国語を学んだので、卒業してからは父の伝手を頼って入社後すぐに中国で駐在させてくれる会社さんにご縁

    なぜ、最悪の業績なのに年商の20%にもあたる1億円の売上を手放してまで楽天市場から退店するのか|鷲尾 岳 / ワシオ株式会社 3代目社長
    masatotoro
    masatotoro 2024/05/11
    もちはだ、冬にお世話になりたい
  • 僕の考えた最強の Python 開発環境 (2024)

    はじめに こんにちは, 普段は情報科学専攻の大学院生をしながらバックエンドエンジニアをやっている @koki-algebra です. 普段は Go をよく書いているのですが, 大学でやっている機械学習の研究では Python を使うことがほとんどです. Go のエコシステムに慣れきった私は Python の混沌とした環境に耐えきれず, 最強の開発環境を整えることを決意しました. 具体的には Package Manager, Formatter, Linter, Type Checker, Test Tool を選定し, VSCode の DevContainer を用いてポータビリティに優れた開発環境を作ることを目指します. また, Deep Learning では GPU が必須である場合が多いので, GPU 環境も同時に整えたいと思います. 以下のレポジトリが今回考えた開発環境のテンプ

    僕の考えた最強の Python 開発環境 (2024)
  • これからRustを勉強したいエンジニアにおすすめしたい参考書や教材を紹介します

    こんにちは、加藤(@tomo_k09)です。 PharmaXではバックエンド・フロントエンド開発やスクラムマスターなどをやっています。 PharmaXが提供しているサービスでは、バックエンド開発に主にRuby on Railsが使われていますが、一部の機能はRustで開発されています。 このような理由からRustの経験が浅かった私もコツコツとRustの勉強をしており、 少しずつ学習方法に関する知見が溜まってきました。 そこでこの記事では、Rustをこれから学びたいという方向けに、おすすめの書籍や教材について紹介します。 新しいプログラミング言語はどのように学ぶと良いか 私は新しい言語を学ぶとき、まず基的な文法やどんな特徴を持った言語なのかをひと通り勉強しています。 そしてその言語の概要をつかんだあと、実際に簡単なアプリケーションの実装をはじめて、分からないことがあったらリファレンスを読ん

    これからRustを勉強したいエンジニアにおすすめしたい参考書や教材を紹介します
    masatotoro
    masatotoro 2024/04/10
    Rust勉強用
  • How to add and remove input fields dynamically using jQuery with Bootstrap ? - GeeksforGeeks

    masatotoro
    masatotoro 2024/04/05
    これに近いことをやりたい。thymeleaf bootstrap5で
  • RustとDDDでAPIサーバーを構築する

    はじめに Rust と フレームワーク axum を使って、API サーバーを実装してみました。 対象読者 RustAPI サーバーを実装したい人 Rust で DDD を実装したい人 説明しないこと Rust の基的な文法 DDD の基的な考え方 使用クレートの使い方 依存の方向 今回の作成する、アーキテクチャの依存関係は、上記のようになります。 上記の依存関係を頭の片隅に置いて、記事を読み進めていただけると、理解が深まると思います。 インフラストラクチャレイヤーは、アプリケーションレイヤーと依存しないことが重要です。 いざ、実装 仕様を決める 今回は、大学が、サークルを管理するシステムを作ることにしました。 メンバーを追加できる 4 年生は、追加できない メンバーを削除できる オーナーは削除できない 4 年生は、卒業する サークルは最低 3 人以上でないと、活動できない サー

    RustとDDDでAPIサーバーを構築する
  • 変更履歴を記録する

    Version 1.1.0 # Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Added - v1.1 Brazilian Portuguese translation. - v1.1 German Translation - v1.1 Spanish translation. - v1.1 Italian

    変更履歴を記録する
    masatotoro
    masatotoro 2024/03/24
    changelog
  • 会計システムのアーキテクチャとモデリング ~会計というドメインを Rust で表現している話~ - CADDi Tech Blog

    はじめに こんにちは。 バックエンドエンジニアの松です。今回は、会計システムの開発を通じて、 CADDi におけるプロダクト開発の様子を紹介します。 2024年3月現在、CADDiでは2つのサービスを提供しています。1つは図面データ活用クラウド「CADDi Drawer」で、もう1つは加工品製造サービス「CADDi Manufacturing」です。 今回、後者の加工品製造サービス「CADDi Manufacturing」向けに、 会計システムを構築しました。これは、生産管理システムや拠点管理システムから取得した各種情報を基にして、会計仕訳データを生成し、経理部門に公開する役割を持ちます。 はじめに 会計システムのアーキテクチャとその狙い 計算処理を少しずつ進める 会計数値の妥当性をダッシュボードに表示する 会計システムのモデリングと最初の開発 仕訳の流れを整理して、ドメインモデル、デー

    会計システムのアーキテクチャとモデリング ~会計というドメインを Rust で表現している話~ - CADDi Tech Blog
  • たった2つのステップを意識するだけで書けない単体テストがほぼなくなる - Qiita

    はじめに この記事は レガシーコード改善ガイド: 保守開発のためのリファクタリング を参考に手を動かしてみて、ある程度自分の中で体系的にまとまった知識のアウトプットです。 この記事で扱う内容 この記事で扱うのは主にレガシーコードで単体テストを書く際のハードルになりがちな 依存関係の排除 に関する手法を紹介します。 この記事を読んだ後に、 『この観点を持っておけば単体テストをスムーズに書いていけそう!』 『今までモック使ってたけど意外とモック使わなくても書けるね!』 となったらいいな、と思います。 ちなみに、今まであんまりテスト書いたことないよーて人は以下の記事など参考にして一度やってみてください。 前提の話: この記事の旨は「テスト書きにくいプロダクトコードも依存関係を排除すれば楽にテスト書けるよ」なので、それ設計的にアウトでは?リファクタリング耐性低くない?みたいな話は度外視してます。

    たった2つのステップを意識するだけで書けない単体テストがほぼなくなる - Qiita
  • ドメイン駆動設計入門【DDDをわかりやすく解説】 | 楽水

    突然ですが、エンジニアの皆さま、Javaで開発したWebアプリケーションの構成、このようになっていませんか? データとgetter/setterだけのオブジェクト(JavaBean) 画面のコントロールやビジネスロジックの処理はServletが行う データベースのアクセスは、DAO(Data Access Object)に任せる もしそうであれば、そのシステム、ドメインモデル貧血症に陥ってます。 これは、データとgetter/setterだけのオブジェクトを、Anemic(貧血症になって元気がない)オブジェクトと称し、オブジェクトとはいうものの実質的にはデータであり、それをやりとりするだけの手続き型システムなっていることを嘆いたものです。 今回は、来のオブジェクト指向に立ち返り、そのメリットである高い保守性、再利用性、拡張性を備えた変化に強いシステムを作るための設計方法、ドメイン駆動設計

    masatotoro
    masatotoro 2024/03/13
    よくまとまった記事。感謝
  • サーバーレスマイクロサービスを構築するための設計アプローチの比較 | Amazon Web Services

    Amazon Web Services ブログ サーバーレスマイクロサービスを構築するための設計アプローチの比較 AWS Lambda でワークロードを設計すると、コードレベルでもインフラレベルでも表現できるモジュール性のために、開発者に疑問が生じます。また、コードを実行するためにサーバーレスを使用するには、基盤となる機能コンポーネントからビジネスロジックを抽出するためのさらなる検討が必要です。この意図的な関心の分離により、堅牢なモジュール性が保証され、進化的なアーキテクチャへの道が開かれます。 この投稿は同期ワークロードに焦点を当てていますが、他のワークロードのタイプでも同様の考慮が当てはまります。API の境界を特定し、コンシューマと API について擦り合わせた後、その境界と関連するアーキテクチャを構成します。 Lambda 関数を使用して API を構成する最も一般的な 2 つの方

    サーバーレスマイクロサービスを構築するための設計アプローチの比較 | Amazon Web Services
    masatotoro
    masatotoro 2024/03/11
    CQRSでAPI Gatewayの後ろがSQSになってる
  • 【翻訳】テスト駆動開発の定義 - t-wadaのブログ

    このブログエントリでは、テスト駆動開発(TDD: Test-Driven Development)の考案者Kent BeckがTDDの定義を改めて明確化した文章を、許可を得たうえで翻訳し、訳者の考察を沿えています。 きっかけ 2023年の年末、テスト駆動開発(TDD: Test-Driven Development)の考案者Kent Beckは、substackにTDDに関するポストを連投して論戦を繰り広げていました。TDDはその誕生から20年以上が経ち、その間に「意味の希薄化」が発生して議論が噛み合わなくなっていました。意味の希薄化(Semantic Diffusion)とは、新しく作り出された用語が広まる際に来の意味や定義が弱まって伝わる現象です。 私(和田)はTDDと関わりの深いキャリアを歩んできました。Kent Beckの著書『テスト駆動開発』の翻訳者であることもあり、TDDの正

    【翻訳】テスト駆動開発の定義 - t-wadaのブログ
    masatotoro
    masatotoro 2024/03/08
    テストリストがポイント
  • TypeScriptでクリーンアーキテクチャを実践する

    概要 記事は、スクラムを管理するアプリケーションをクリーンアーキテクチャの考え方で実装し、WebからもCLIからも動かせるようにしたという実践を紹介するものです。学習のための個人開発で作成したサンプルアプリケーションの設計と実装を適宜紹介することで、クリーンアーキテクチャに対する理解を深めることが目的です。 モチベーション なぜ現代の開発現場で定着しているクリーンアーキテクチャのアプリを手元で実装してみようと思ったかというと、私自身Webエンジニアとして働く中で、クリーンアーキテクチャの実践例は入出力をWebに限定したものばかりだったからです。 しかし、「詳細に依存せず抽象に依存すること」と唱えるクリーンアーキテクチャにとって、Webはただの詳細です。そこで、入力元、出力先を問わないアプリケーションはどのような書き味になるのか、自分で確かめてみたくなりました。 例えば、「ドメイン層は独立

    TypeScriptでクリーンアーキテクチャを実践する
  • CodePipelineのパイプラインタイプ(V1/V2)を比較してみた | DevelopersIO

    参考:私にはどのタイプのパイプラインが適していますか? - AWS CodePipeline なお以下の設定画面の通り、CodePipelineのパイプラインタイプは、パイプライン作成後でも切り替える事が可能なようです。 記事ではパイプラインレベル変数について試してみます。 V1タイプでもアクションレベル変数は使用可能ですが、以下の通り使用できる変数は決まっています。 参考:可変 - AWS CodePipeline これらの変数以外で、自身でカスタマイズした変数を使用したい場合、今回のアップデートで追加されたパイプラインレベル変数が使用できます。 ただし、ビルドアクションで良く利用されるCodeBuildでは、以下のブログの通り既に様々な手法で変数を指定する事ができます。 そのため今回のアップデートで追加されたパイプラインレベル変数は、主に承認アクションやデプロイアクションで使用する機

    CodePipelineのパイプラインタイプ(V1/V2)を比較してみた | DevelopersIO
    masatotoro
    masatotoro 2024/02/24
    code pipelineが進化している
  • Java の enum を使いこなせるあなたに sealed interface

    はじめに Java の enum は大変便利で非常多くのシーンで活用されています。例えば区分を表すようなオブジェクトを表現したい際にもよく使われていますね。 Java 14 で正式機能となった switch式にて網羅性検査が行えるようになり、それまで以前ではどうしても抽象メソッド等を活用する必要があった処理についても、switch式を利用する事で簡潔に表現することができるようになりました。 また、Java 17 で正式機能となった sealed classes/interfaces と Java 21 で正式機能になった Record Patterns によって、これまで必要だった区分値のような enum を必ずしも定義しなくて良い場合も出てきました。 この記事では、今まで enum を使っていたコードがこれらの機能によってどのように変わるのかを紹介し、盲目的に enum を定義するのでは

    Java の enum を使いこなせるあなたに sealed interface
    masatotoro
    masatotoro 2024/02/18
    “sealed classes/interfaces ”