masatotoroのブックマーク (609)

  • 僕の考えた最強の 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の著書『テスト駆動開発』の翻訳者であることもあり、T

    【翻訳】テスト駆動開発の定義 - 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 ”
  • JSONスキーマでJSONのバリデーション - Qiita

    { "type": "object", "properties": { "name": { "type": "string" }, "age": { "type": "integer", "minimum": 0 }, "hobbies": { "type": "array", "items": { "type": "string" } } }, "required": ["name"] } JSONスキーマの仕様はjson-schema-orgによって策定されています。記事執筆時点での最新仕様はDraft-07です。 JSONをバリデーションしてみる それでは実際にJSONインスタンスをJSONスキーマにしたがってバリデーションしてみましょう。以降のコードはJavaで記述します。 記事では、JSONのバリデーションを行うライブラリとして、Justifyを使用します。このライブラリでは

    JSONスキーマでJSONのバリデーション - Qiita
    masatotoro
    masatotoro 2024/02/14
    json schema validation
  • Amazon ECSで好きなだけ検証環境を起動できるOSSの設計・実装・運用 / YAPC::Hiroshima 2024

    https://fortee.jp/yapc-hiroshima-2024/proposal/1e9fbacd-5a50-43ef-87f1-490e85448f17

    Amazon ECSで好きなだけ検証環境を起動できるOSSの設計・実装・運用 / YAPC::Hiroshima 2024
    masatotoro
    masatotoro 2024/02/11
    ブランチと連動
  • ウクライナ軍に入隊したアジャイルコーチが、さまざまなメソッドを駆使して中隊長としてのリーダーシップを実現した話(前編)

    ウクライナ軍に入隊したアジャイルコーチが、さまざまなメソッドを駆使して中隊長としてのリーダーシップを実現した話(前編) アジャイル開発の代表的な方法論であるスクラムをテーマに、都内で1月に開催されたイベント「Regional Scrum Gathering Tokyo 2024」で、経験豊富なアジャイル開発のエキスパートとしてウクライナを拠点にアジャイルコンサルタントをしていたドミトロ・ヤーマク(Dmytro Yarmak)氏が、ロシア軍の侵攻後にウクライナ軍に入隊し、中隊長としてリーダーシップを発揮するためにさまざまなメソッドを駆使して軍隊の組織を変革していった経験を語ったセッション「A True Story of Agile Coaching in Ukrainian Armed Forces」が行われました。 軍隊という、企業とは異なる構造や目的を備えた組織で、しかも多くの民間人が入

    ウクライナ軍に入隊したアジャイルコーチが、さまざまなメソッドを駆使して中隊長としてのリーダーシップを実現した話(前編)
    masatotoro
    masatotoro 2024/02/08
    環境適応能力が高すぎる
  • Java Persistenceを使ったアーキテクチュア:パターンと戦略

    図1:データベースとJavaプログラミング言語のミスマッチ このギャップを埋め、Javaアプリケーションとデータベースのシームレスな接続を実現するために、私たちはさまざまなデザインパターンとアーキテクチャアプローチに依存している。これらのパターンはトランスレータとして機能し、インピーダンスのミスマッチの影響を軽減し、2つの世界を調和して動作させるのに役立つ。 これらのデザインパターンは、車輪の再発明ではない。これらは、アプリケーションとデータベースのパラダイム間のインピーダンスのミスマッチを緩和するのに有効であることが証明されている、確立されたソリューションである。Driverパターン、Mapperパターン、Active Recordパターン、Repositoryパターンなどがある。 Java Persistenceにおけるデータパターンのナビゲート このセクションでは、アプリケーション開

    Java Persistenceを使ったアーキテクチュア:パターンと戦略
    masatotoro
    masatotoro 2024/02/06
    cars
  • AWS CDKでAWS Systems Manager パラメータストア及びAWS Secrets Managerからパラメータを取り込む方法 | DevelopersIO

    valueFromLookup このメソッドを使うと生成するテンプレートにパラメータストアに格納されていたStringを転記します。テンプレートに転記する為、SecureStringに対して使用する事ができません。SecureStringに対して使用できてしまうと、CloudFormationに対する読み取り権限があれば誰でもテンプレートを閲覧する事で内容を確認できてしまいます。Stringに対してパラメータストアの階層構造などで権限管理している場合、その管理から外れて閲覧できるユーザーが発生しうるので注意が必要です。 パラメータのバージョンはlatestに強制されます。 実は、SecureStringに対して使用する事は出来ますが、暗号化されたままの文字列で取り出されるので使い道はありません。 import { Construct, RemovalPolicy, Stack, Stack

    AWS CDKでAWS Systems Manager パラメータストア及びAWS Secrets Managerからパラメータを取り込む方法 | DevelopersIO
    masatotoro
    masatotoro 2024/02/03
    cdkでsecret managerにアクセス
  • Syncing Data from DocumentDB to OpenSearch using Change Streams

    masatotoro
    masatotoro 2024/02/03
    opensearch と documentdbでCQRS
  • このSRE本がすごい!2024年版 - じゃあ、おうちで学べる

    はじめに 有用な知識の特性 Google SRE リソース Site Reliability Engineering: How Google Runs Production Systems The Site Reliability Workbook: Practical Ways to Implement SRE Building Secure and Reliable Systems: Best Practices for Designing, Implementing, and Maintaining Systems SLO Adoption and Usage in SRE Creating a Production Launch Plan Training Site Reliability Engineers: What Your Organization Needs to Cre

    このSRE本がすごい!2024年版 - じゃあ、おうちで学べる
    masatotoro
    masatotoro 2024/01/28
    体系的にまとめていただき、ありがたい