並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 1131件

新着順 人気順

readonlyの検索結果81 - 120 件 / 1131件

  • TypeScriptにおけるDDDのドメインオブジェクトの課題と対策

    こんにちは、近藤です。 commmune Advent Calendar 2023 18日目の記事は『TypeScriptにおけるDDDのドメインオブジェクトの課題と対策』です はじめに ドメイン駆動設計(DDD)は、複雑なビジネスロジックを扱うアプリケーション開発において、重要かつ効果的なアプローチとして広く認識されています。 コミューンでは、現場で役立つシステム設計の原則の著者、増田さんのご協力を得て、プロダクト開発を進めています。 幸運なことに私は増田さんとの密なコミュニケーションを取らせて頂いており、DDDの理論と実践方法に関する貴重な知見を深めその有用性を感じております。 しかし、TypeScriptのような構造的型付けを採用する言語でDDDを適用する際には、特有の課題が生じることがあります。本記事では、TypeScriptでの構造的型付けに伴う課題、そしてそれらを克服する方法に

      TypeScriptにおけるDDDのドメインオブジェクトの課題と対策
    • Rails6の複数データベースの仕組みと実装時にハマったところ - dely Tech Blog

      こんにちは、開発部の高橋です。 本記事はdely Advent Calendar 2019の14日目の記事です。 昨日はミカサ(acke_red)さんの「デザイン負債を返済する - クラシルのデザインの展望2020」という記事でした。 note.com 目次 目次 はじめに 複数データベースの仕組み 複数データベースに関連するActiveRecordの全体像 1. master/slave構成 利用方法 DatabaseSelectorの利用方法 2. 複数のデータベースの利用 利用方法 アプリケーションでの実際の実装 開発時にハマった箇所 POSTのあとのGETでの更新処理で競合が発生 readingロールに対して更新していることがテストで気付きにくい まとめ 最後に はじめに 10月の半ば辺りにRails6の複数機能を利用し、master/slave構成に対応した新規アプリケーションを

        Rails6の複数データベースの仕組みと実装時にハマったところ - dely Tech Blog
      • その処理、 setInterval じゃなくてブラウザが暇な時にやっちゃえば?

        こんにちは。ぬこすけです。 setInterval などで定期的にブラウザで実行させている処理があったりするでしょう。 例えば、定期的にアクセストークンが有効かチェックし、無効だったら新しいトークンを取得するなど。 ブラウザはページのコンテンツを表示するために JavaScript の実行や UI の更新で忙しいです。 もし定期実行している処理がコンテンツ表示にかかわらない優先度の低い処理なのであれば、 できるだけブラウザの重要なタスクに影響を与えないようにしたい ものです。 この記事では できるだけブラウザの重要なタスクに影響を与えずに定期的に処理を実行させる方法を、アクセストークンのローテーションを例に紹介 します。 実装する機能 この記事で実装する機能は次の通りです。 React の hooks を使って実装します。 ブラウザのアイドル中(暇なとき)にアクセストークンを有効かチェック

          その処理、 setInterval じゃなくてブラウザが暇な時にやっちゃえば?
        • 弁護士ドットコムライブラリーのフロントエンドのアーキテクチャ(Next.js + TypeScript) - パンダのプログラミングブログ

          弁護士ドットコムライブラリーのフロントエンドのアーキテクチャを紹介します この記事は弁護士ドットコム Advent Calendar 2020、2日目の記事です。2020年12月に執筆された記事です。 私は弁護士ドットコムライブラリーというサービスを開発しています。これは法律書籍をネットで読める弁護士向けのサブスクリプションサービスです。 フロントエンドの採用技術はNext.js + TypeScriptで、要件定義から設計、実装は私が担当し、現在も運用しています。 この記事では、2020年5月にリリースしてから半年間、Next.jsで上記サービスを運用した知見の中から、フロントエンドでのアーキテクチャについてご紹介します。 弁護士ドットコムライブラリーの特徴は以下の通りです。 画面数は10画面ほどの中規模アプリケーション(OOUIの考え方を取り入れたら画面数が減りました) 基本的にバック

            弁護士ドットコムライブラリーのフロントエンドのアーキテクチャ(Next.js + TypeScript) - パンダのプログラミングブログ
          • Low-level Container Runtime:Runc Internals - 鳩小屋

            参考 おさらい runc architecture file main.go and command process runc create setupSpec startContainer linuxContainer LinuxFactory createContainer CreateLibcontainerConfig loadFactory factory.Create runner.run newProcess linuxContainer.Start newParentProcess parentProcess.start() runc init nsenter nsexec runc init(After nsexec) linuxStandardInit.Init runc start 低レベルコンテナランタイムruncの内部処理のまとめです。 参考 2021/05現在:

              Low-level Container Runtime:Runc Internals - 鳩小屋
            • RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】|TechRacho by BPS株式会社

              morimorihogeです。しばらくぶりですが、この度銀座Rails#10 @リンクアンドモチベーションにて発表させていただきましたので、その内容をまとめたいと思います。 ※当日は時間が足りなくて端折ってしまう部分もあるかと思うので、その補遺としての意味合いもあります 注1:本記事では分かりやすさのためにTABLEやVIEWなどのSQL予約語は大文字で記載していきます。 注2:Rails 5.2.3、PostgreSQL 11環境で検証しています おさらい:VIEWについて 本記事におけるVIEWはRDBMSにおけるVIEWの話で、ActionViewではありません。 VIEWについて使ったことがない人もいるかなと思うので、最初に軽く解説します。 VIEWは一言で言ってしまえばSELECT文の実行結果に名前を付けて、TABLEと同じようにアクセスできるものです。 例えば、以下のようなpr

                RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】|TechRacho by BPS株式会社
              • MOCO - Kubernetes 用 MySQL クラスタ運用ソフトウェア - Cybozu Inside Out | サイボウズエンジニアのブログ

                サイボウズの Kubernetes 基盤を開発している Neco プロジェクトの ymmt です。 サイボウズ製品のほとんどはデータベースとして MySQL を採用しています。 現在 400 を越える MySQL のインスタンスを運用しており、これら全てを新しい Kubernetes 基盤に移行していく予定です。 Kubernetes 上でアプリケーションやミドルウェアの運用を自動化するソフトウェアのことをオペレーターと言います。 大量の MySQL インスタンスを Kubernetes 基盤に移行するにはオペレーターが必須であると考え、技術顧問の @yoku0825 さんの監修の下で MOCO というソフトウェアを開発しオープンソースライセンスで公開しました。 本記事では Kubernetes 上の MySQL オペレーターの状況と、開発した MOCO の機能を詳細に解説いたします。 M

                  MOCO - Kubernetes 用 MySQL クラスタ運用ソフトウェア - Cybozu Inside Out | サイボウズエンジニアのブログ
                • Perl5.36の変更点 - Mobile Factory Tech Blog

                  こんにちは、エンジニアの id:mp0liiu です。 少し前の話になりますが、5/28にPerlの最新安定バージョンである5.36がリリースされたので、コミュニティ周りの動向も含めて気になった点についてまとめていこうと思います。 use v5.36 一番影響がある変更は use VERSION の効果が変わったことです。 use v5.34 以前はバージョンチェック、要求されたバージョンで利用可能なすべての機能(featureバンドル)の有効化、strict の有効化を行っていましたが、 use v5.36 からは warnings も有効化されるようになりました。 use v5.36; my $str; say $str; # Use of uninitialized value $str in say at ... 1行だけで strict, warnings, 最新の機能の有効化が

                    Perl5.36の変更点 - Mobile Factory Tech Blog
                  • メルペイDataPlatformのCDC DataPipeline | メルカリエンジニアリング

                    こんにちは、メルペイ DataPlatformチーム(@rerorero, @darklore, @laughingman7743)です。 この記事は、Merpay Tech Openness Month 2022 の14日目の記事です。 今日はメルペイ DataPlatformで取り組んでいるCDCパイプラインについて紹介します。 CDCパイプラインとは何か CDCとは Change Data Capture の略称で、データベース内のデータの変更(新規作成、削除、変更など)を追跡するシステムです。データソースで発生した変更は、ニアリアルタイムでデータシンクに反映させることができます。 CDCの実現方法にはいくつかあるのですが、メルペイ DataPlatformでは以下の2つの方法を使ったパイプラインを構築しています。 Striim社のブログ がよくまとまっていたので、こちらから引用させ

                      メルペイDataPlatformのCDC DataPipeline | メルカリエンジニアリング
                    • GraphQL Code Generator(graphql-codegen) おすすめ設定 for TypeScript

                      GraphQL Code Generator v3 以降で標準となった Client preset では設定が大きく異なります。 この記事は Client preset を使わない前提の内容になっているため、注意が必要です。 Client preset 用の設定は別記事で紹介します。 全体 生成物をフォーマッタにかける graphql-codegen には Lifecycle Hooks という仕組みがあり、いくつかの用意された hook ポイントで任意のコマンドを実行できる。 これを使って生成されたコードを Prettier 等のフォーマッタに通しておくのがおすすめ。 基本 DO NOT EDIT とはいえ、コードジャンプしてきて生成された型を読みたいケースはよくある。 そういうときのために、人間が見やすいように改行しておいてもらうといい。 typescript plugin, type

                        GraphQL Code Generator(graphql-codegen) おすすめ設定 for TypeScript
                      • AWSアカウントの本番環境でケアレスミスを起こさないために意識していること | DevelopersIO

                        こんにちは。CX事業本部MAD事業部のYui(@MayForBlue)です。 この記事では私が普段AWS環境を触るときに、ケアレスミスを起こさないために気をつけていることをまとめてみました。 あまり特別なことはしていないのですが、どなたかのご参考になれば幸いです。 普段行っていること ※ この記事ではミスしたくない/ミスできない環境を「本番環境」という表現で統一しています。 スイッチロール時に AWS Extend Switch Roles を使う 作業対象のAWSアカウントにログインする場合、IAMロールによるクロスアカウントアクセス(スイッチロール)という方法を利用しています。 スイッチロールの詳細については下記のブログで紹介しているので、スイッチロールって何?という方はご一読いただければと思います。 入社1年で変化したAWSサービスの使い方 スイッチロールを使う場合はデフォルトのマネ

                          AWSアカウントの本番環境でケアレスミスを起こさないために意識していること | DevelopersIO
                        • TypeScript をより安全に使うために その 2: オブジェクトの具体的な形にアクセスするのを避ける - Object.create(null)

                          前回はこちら. susisu.hatenablog.com 引き続き環境は以下を前提とします: TypeScript 4.4 (この記事を書いている 2021 年 11 月時点の最新版) strict: true 原則: オブジェクトの具体的な形にアクセスするのを避ける 具体例 in 演算子による型の絞り込み Object.keys の誤った使用 Object.values, Object.entries の使用 リテラルの先頭以外での object sperad 次回 原則: オブジェクトの具体的な形にアクセスするのを避ける ここで「オブジェクトの具体的な形にアクセスする」とは, 静的な型によらずに, 実行時にオブジェクトがどのようなプロパティを持っているかといった情報を取得することを指しています. ある種のリフレクションと呼んでも良いかもしれません. こういった操作には, JavaSc

                            TypeScript をより安全に使うために その 2: オブジェクトの具体的な形にアクセスするのを避ける - Object.create(null)
                          • TypeScript v4 まとめ

                            前回のv3に関する記事でこれまでの変遷を確認したので、ようやく本題のv4についてまとめていきます。 追加された新機能 【v4.0】 Variadic Tuple Types function concat(arr1, arr2) { return [...arr1, ...arr2]; } function tail(arg) { const [_, ...result] = arg; return result } function concat(arr1: [], arr2: []): []; function concat<A>(arr1: [A], arr2: []): [A]; function concat<A, B>(arr1: [A, B], arr2: []): [A, B]; function concat<A, B, C>(arr1: [A, B, C], arr2:

                              TypeScript v4 まとめ
                            • TypeScript をより安全に使うために その 1: オブジェクトの mutable な操作を避ける - Object.create(null)

                              ふだん TypeScript のコードレビュー時に参考に貼ったりしている内部ドキュメントがあるのですが, 内部では何かと人目につきにくいので, 内容を整えて公開していきます. TypeScript の型システムは安全ではありません. つまり型検査を通過したコードであっても, 実行時にエラーが発生する可能性があります. TypeScript の設計についてのドキュメントにおいても, non-goals の一つとして Apply a sound or "provably correct" type system. Instead, strike a balance between correctness and productivity. が挙げられており, 完全に安全なものを目指すのではなく, 安全性と利便性とのバランスをとるものとされています. かといって TypeScript を使うなら

                                TypeScript をより安全に使うために その 1: オブジェクトの mutable な操作を避ける - Object.create(null)
                              • RustConfメモ - Don't Repeat Yourself

                                さすがに時差の関係で全部は見られませんでしたが、出席していたのとアーカイブが残っていたので、いくつか気になったものを見てみました。ただ、家事などの合間に聞き流ししていた内容を思い出して書いているので、記憶が曖昧なところがあります。ご了承ください。すべてのセッションの動画リストはこちらにあります。 字幕はいくつか見てみましたが、自動生成でしょうか。second が segment 、toml が thermal になっていたりと少し間違っている箇所はありました。ただ、だいたいあってるので大丈夫そうです。もしよかったら、動画も見てみてください。 Whoops! I Rewrote It in Rust by Brian Martin Supercharging Your Code With Five Little-Known Attributes by Jackson Lewis Fuzz D

                                  RustConfメモ - Don't Repeat Yourself
                                • フロントエンドの main() を合成関数として副作用を集約する

                                  これは未実装のアイデアを含む記事です。(後述する lint rule が未実装です) 要は EffectSystem を作ろうとしました。 https://www.eff-lang.org/ void に意味を込めたい こういうフロントエンドのコードについて考えてみましょう。 function mount(): void { const div = document.createElement('div'); div.textContent = "hello"; document.body.append(div); } function print(): void { console.log("hello"); } function maybeError(): void { // 低確率で例外が起こる関数 if (Math.random() > 0.999) { throw new Err

                                    フロントエンドの main() を合成関数として副作用を集約する
                                  • neue cc - Claudia - Anthropic ClaudeのC# SDKと現代的なC#によるウェブAPIクライアントの作り方

                                    Claudia - Anthropic ClaudeのC# SDKと現代的なC#によるウェブAPIクライアントの作り方 2024-03-18 AI関連、競合は現れども、性能的にやはりOpenAI一強なのかなぁというところに現れたAnthropic Claude 3は、確かに明らかに性能がいい、GPT-4を凌駕している……!というわけで大いに気に入った(ついでに最近のOpenAIのムーブが気に入らない)ので、C#で使い倒していきたい!そこで、まずはSDKがないので非公式SDKを作りました。こないだまでプレビュー版を流していたのですが、今回v1.0.0として出します。ライブラリ名は、Claudeだから、Claudiaです!.NET全般で使えるのと、Unity(Runtime/Editor双方)でも動作確認をしているので、アイディア次第で色々活用できると思います。 GitHub - Cyshar

                                    • uGUI記述ライブラリ『Mux』を公開します - pixiv inside

                                      こんにちは。VRoid モバイル/StudioのUIを開発したねこまんまです。 先日VRoid モバイル/Studioで利用しているuGUI記述ライブラリ『Mux』を公開しました🎉 github.com 実は以前、pixiv TECH SALONで少しだけ紹介させていただいたのですが、今回はこのライブラリの魅力をより掘り下げて見たいと思います🔍 uGUI? uGUIとはUnityのアプリケーションで使うことができるUIツールキットです。他にもUnityには、新しく開発されているUI ToolkitやUIWidgets、サードパーティーによるものなど様々なものがあります。uGUIはその中でも成熟しており、Unityに標準的に含まれることからよく利用されています。 uGUIの特徴は、Unityのヒエラルキーに則ってUIが構築されることです。そのため、Unity Editorを用いて編集する

                                        uGUI記述ライブラリ『Mux』を公開します - pixiv inside
                                      • TypeScript で実行時の入力を含む文字列を型で弾く - Object.create(null)

                                        TypeScript (4.7 時点) において, 文字列に付けられる型には以下の 3 つ (とそのユニオン型) があります. 文字列型 string 文字列リテラル型 ("foo" など) テンプレートリテラル型 (`data-${string}` など) これらのうち, 実行時の入力, 特に事前にパターンが想定されていないような任意の入力が含まれるような文字列に対しては, string や string を含むテンプレートリテラル型を付けることはできても, 文字列リテラル型を付けることはできません. 文字列リテラル型を付けるためには型検査時 (実行の前) に入力文字列の内容がわかっている必要があるので, まあそれはそうですね. このことを利用して, 実行時の入力を含む文字列を与えようとすると型検査に失敗するような関数を作ることができそうです. まずは与えられた型が文字列リテラル型, ま

                                          TypeScript で実行時の入力を含む文字列を型で弾く - Object.create(null)
                                        • HTMLのa要素にはhref属性を指定しなくてもよい: Days on the Moon

                                          HTMLのa要素はハイパーリンクを表す要素であり、リンク先のURLをhref属性に指定します。しかし、a要素の役割はそれだけではありません。HTML標準によれば、a要素は「リンクとなりうる箇所のプレースホルダー」として使うこともできます。この場合はhref属性を指定しません。 リンクとなりうる箇所の例として、ナビゲーションやタブUI、パンくずリストなどでの「現在の項目」があります。 <nav> <ul> <li><a href="/">ホーム</a></li> <li><a>最新記事</a></li> <li><a href="/archives">アーカイブ</a></li> <li><a href="/settings">設定</a></li> </ul> </nav> ReactなどJSXでa要素を生成する場合、href属性を指定しないためにはhrefプロパティにundefinedを

                                          • TypeScriptコンパイラの読み方

                                            TypeScriptコンパイラリーディングをする上で、目当てのコードに辿りつくまでの手間を短縮するためのメモ書きです。コードリーディングの一般論や、TypeScriptコンパイラから読み取れる個別事象については極力省略しています。 TypeScriptの主要な処理系 多くのJavaScriptパーサーが拡張としてTypeScriptを読めるようになっています。また抽象構文木のフォーマットに事実上の標準があり、各パーサーはそれに従っています。AST Explorerでこれらのパーサーの出力を調べることができます。特に重要なのが以下の2つの処理系です。 TypeScript TypeScriptの型推論・リント・トランスパイル・モジュールバンドリング等ができる。 Babel TypeScriptのトランスパイルができる。 TypeScriptコンパイラの構成 libに標準ライブラリ (型定義フ

                                              TypeScriptコンパイラの読み方
                                            • CDKで構築したAWS環境の構成図を自動生成するツール「CDK-Dia」を検証してみた | DevelopersIO

                                              こんにちは。CX事業本部MAD事業部のきんじょー(@joe_king_sh)です。 AWSでインフラを構築する際に必ず書くもの、 AWS構成図 皆さんはどうやって描いていますか? 初めからきっちり決めて作ることもあれば、試行錯誤した後、最後に残すドキュメントとして描くもあり、できることならなるべく楽して作成したいですよね。 そこで今回は、CDKで構築したAWS環境の構成図を自動生成するツール「CDK-Dia」が、実際どれくらい使えるのか検証してみました。 CDK-Diaの使い方 macOS Big Sur 11.5.1 node v14.17.6 cdk 1.131.0 cdk-dia 0.3.0 インストール CDK-Diaと構成図の描写に使用するGraphvizをインストールします。 $ npm install cdk-dia $ brew install graphviz 使い方 C

                                                CDKで構築したAWS環境の構成図を自動生成するツール「CDK-Dia」を検証してみた | DevelopersIO
                                              • neue cc - .NET 6とAngleSharpによるC#でのスクレイピング技法

                                                C# Advent Calendar 2021の参加記事となっています。去年は2個エントリーしたあげく、1個すっぽかした(!)という有様だったので、今年は反省してちゃんと書きます。 スクレイピングに関しては10年前にC#でスクレイピング:HTMLパース(Linq to Html)のためのSGMLReader利用法という記事でSGMLReaderを使ったやり方を紹介していたのですが、10年前ですよ、10年前!さすがにもう古臭くて、現在ではもっとずっと効率的に簡単にできるようになってます。 今回メインで使うのはAngleSharpというライブラリです。AngleSharp自体は2015年ぐらいからもう既に定番ライブラリとして、日本でも紹介記事が幾つかあります。が、いまいち踏み込んで書かれているものがない気がするので、今回はもう少しがっつりと紹介していきたいと思っています。それと直近Visual

                                                • クライアントサイドのバリデーションエラーのデータ型についての考察 - STORES Product Blog

                                                  業務委託で STORES の開発をしている @inouetakuya です。 先日 STORES のフロントエンドチーム内でクライアントサイドのバリデーションについて見直す機会があり、特にバリデーションエラーのデータ型をどうするかについての議論が興味深かったので、共有させていただきます。 背景 議論の背景について簡単に触れておくと、STORES のクライアントサイドでは、バリデーションのライブラリとしてこれまで joi-browser を使ってきました。 しかしながら、本家の Node.js 版の joi がブラウザ対応したことにより joi-browser が deprecated になったことを受けて、今後も joi を使い続けるかを検討したところ、 joi-browser と joi の最新バージョンとの間で API の差異がいくつかあり、joi-browser から joi への乗

                                                    クライアントサイドのバリデーションエラーのデータ型についての考察 - STORES Product Blog
                                                  • HttpClientをusingで囲わないでください - Qiita

                                                    using (var client = new HttpClient()) { var response = await client.GetAsync(url); .... } これは間違いです。HttpClientオブジェクトは dispose してはいけません! Stackoverflowにも沢山この間違いがあります。 (追記: 正確に言うとdisposeしてはいけないわけではなく、生成と破壊を繰り返すのが誤りです) 正しい使い方はAPIの公式ドキュメントに書いてある通りです。 public class GoodController : ApiController { private static readonly HttpClient HttpClient; static GoodController() { HttpClient = new HttpClient(); } } 上

                                                      HttpClientをusingで囲わないでください - Qiita
                                                    • Cypress - 書きやすいテストの秘密と独自コマンドの実装 | フューチャー技術ブログ

                                                      @testing-library/cypressの存在を知らずに、それっぽいものを作ろうとしたときにいろいろ調査した記録です。Cypressにはテストコードが縦と横に短くなる工夫がされており、そのメカニズムにしたがった独自コマンドを実装するにはコツが必要です。 実装は次のところにありますが、@testing-library/cypressの方がメンテされているので、こちらは実際には使わないのをお勧めします。 https://gitlab.com/osaki-lab/cypress-aria Cypressのテストが縦横に短く書けるわけCypressはWebDriver系(Selenium)やChrome DevTool Protocol系(Puppeteer)のツールとAPIの粒度が異なります。Seleniumはそもそもウェブサイトのタイトルに「Browser Automation Too

                                                        Cypress - 書きやすいテストの秘密と独自コマンドの実装 | フューチャー技術ブログ
                                                      • MemoryView: Ruby 3.0 から導入される数値配列のライブラリ間共有のための仕組み - Speee DEVELOPER BLOG

                                                        Ruby コミッターの村田です。Ruby 3.0 に組み込まれる実験的な新機能を作ったので解説します。 新機能は MemoryView と名付けられました。これは C などで書かれる拡張ライブラリ向けの機能です。メモリ上の、型が均一で同一サイズの要素から構成される配列 (e.g. 行列や画像など) を、複数の拡張ライブラリ間でコピーレスで共有するために必要な仕組みを提供します。 MemoryView が導入された背景 多次元数値配列が重要な役割を持つ時代になった 深層学習やデータサイエンスの流行にあわせて、メモリ上で大きなサイズの多次元数値配列データを処理する事例が増加しています。このような数値配列データに対する処理は、複数のライブラリの機能を組み合わせて実現されます。この分野でよく使われる Python では、データ構造を numpy と pandas が提供し、機械学習アルゴリズムを

                                                          MemoryView: Ruby 3.0 から導入される数値配列のライブラリ間共有のための仕組み - Speee DEVELOPER BLOG
                                                        • Flutter を MVVM で実装する

                                                          (この記事は 2020/08/28 時点での記事になります。設計のトレンドは日々変わりますので最新のトレンドを確認してください。) はじめにこの記事は Flutter Architecture Blueprints の解説記事です。 今回は Flutter アプリを MVVM で実装する上でどういう形にしていったかを解説していきたいと思います。Android エンジニアにとって脳内変換出来そうなキーワードも使っていきます。 実はアーキテクチャを解説するのはあまり好きではなく、この形が合理的だと言っても、そのエンジニアの経験と趣味思考の違いで話が合わなくなることがあると思っていて、それが押しつけになっていることがあります。なのでこれが完璧だと捉えないでください。私も勉強中の身です。 Flutter Architecture BlueprintsMVVM は Model–View–ViewMo

                                                            Flutter を MVVM で実装する
                                                          • いつScalaを使い、いつ使わないのか

                                                            前置き 先日Twitterでこのような興味深いツイートを拝見しました。 なるほどと思ったので、自分が技術選定/アーキテクチャ設計において「どのような時にScalaを選択し、どのような時に選択しないのか」をあらためて言語化してみることにしました。 ちなみにこの記事タイトルは Scala福岡 2019 で講演させて頂いたものと同じタイトルですが、当時の資料は説明が無いと誤解を招く部分も多く非公開にしているため、その焼き直しも含めてこの記事を書いています。 また、ここで記載している内容は2022年8月現在の事情を元にした考えになります。言語の機能やとりまく状況などは日々変わっていくものであり、前提が変われば結論が変わることも当然にあります。あくまで現時点での意見の一つとして参考程度にして頂ければ幸いです。 また、この記事では主に言語機構や周辺ライブラリ・エコシステムといった側面からの判断を中心と

                                                              いつScalaを使い、いつ使わないのか
                                                            • PHPerのための「PHPと型定義」を語り合う【PHP TechCafe イベントレポート】 - RAKUS Developers Blog | ラクス エンジニアブログ

                                                              弊社で毎月開催し、PHPエンジニアの間で好評いただいているPHP TechCafe。 2023年5月のイベントでは「型定義」について語り合いました。 弊社のメンバーが事前にまとめてきた情報にしたがって、他の参加者に意見を頂いて語り合いながら学びました。 今回はその内容についてレポートします。 rakus.connpass.com PHPと型 静的型付け言語 動的型付け言語 一般的な誤解 PHPの型 単一の式が持つ型 型システムで扱える型 never型について void型について self,parent,static型について resource型について evalでresource型を宣言すると リテラル型について ユーザー定義型について 複合型について 型のエイリアス mixed iterable PHPで取り入れられた型表現 型宣言のメリット PHPの歴史を振り返る PHPのドキュメント

                                                                PHPerのための「PHPと型定義」を語り合う【PHP TechCafe イベントレポート】 - RAKUS Developers Blog | ラクス エンジニアブログ
                                                              • なぜ自分はDDDを勉強しているのか?

                                                                DDDと出会う前 自分は元々アーリーステージ(シード)のスタートアップでRailsを書いていました。人手の問題で拙いながらもReact Nativeでモバイルアプリを作ったりAWSでインフラを構築したりとよくいるエンジニアです。昨年末に今の会社への転職がきっかけでDDDでの開発に従事するようになり独学でキャッチアップしました。元々DDDという単語自体は聞いたことがありました。きっかけは確かこちらの記事だったと思います。 ドメイン駆動設計の比類なきパワーでRailsレガシーコードなど大爆殺したるわあああ!!! 自分自身Railsを書いてはいましたが、自分のコードに納得感を得られたことは一度もありませんでした。 このロジックはここに書いて良いのだろうか? DB設計ってこれで合ってるのか? う〜ん、テストコード書きにくいなあ よくある悩みです。しかし、スタートアップでスピード開発を優先していたの

                                                                  なぜ自分はDDDを勉強しているのか?
                                                                • User-Agent Client Hints

                                                                  This specification was published by the Web Platform Incubator Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Contributor License Agreement (CLA) there is a limited opt-out and other conditions apply. Learn more about W3C Community and Business Groups. 1. Introduction This section is non-normative. Today, user agents general

                                                                  • ブログをAstroに移行した

                                                                    ブログを Astro に移行した Astro とは Astro の公式サイトの説明を見てもらうのが早いかもしれない Astro is an all-in-one web framework for buildingfast, content-focusedwebsites. コンテンツ主体のウェブサイトを高速に作れるオールインワンウェブフレームワーク、という説明だが実際使ってみた感じ概ね合っていると思う. 特徴的なのが Astro で採用している Island Architecture と呼ばれるアーキテクチャで、UI の各コンポーネントを Island (島)のように見立ててそれぞれ独立したマイクロフロントエンドのように扱うことが出来る構成になっていること。 完全に Static な HTML とレンダリング後に Hydration (静的な HTML に後からイベントハンドラを設定)し

                                                                      ブログをAstroに移行した
                                                                    • 「IaCで全てが上手くいくと思うなよ!失敗事例のご紹介」をAKIBA.AWS IaC編で喋りました #AKIBAAWS | DevelopersIO

                                                                      「IaCで全てが上手くいくと思うなよ!失敗事例のご紹介」をAKIBA.AWS IaC編で喋りました #AKIBAAWS どうも、もこ@札幌オフィスです。 5/18に開催されたAKIBA.AWS ONLINE #03 -「IaCで全てが上手くいくと思うなよ!失敗事例のご紹介」のタイトルで登壇しましたので、資料と補足情報を公開します。 なお、YouTubeで公開されている動画ではより本質的な情報をノーカットで公開していますので、お時間のある方はこちらを見て頂いた方が情報量が多くて良いかと思います。 本記事ではスライドに合わせてブログ形式で解説を付属していきます。 結論 早速結論です。 IaCは手段であり、目的ではない、が、目標にするのは良い事 何も考えないでIaCを始めると破綻する リソースを素手で触らない強い意思 この3つが非常に重要になってきます。 本日お話しすることです。 1. IaCに

                                                                        「IaCで全てが上手くいくと思うなよ!失敗事例のご紹介」をAKIBA.AWS IaC編で喋りました #AKIBAAWS | DevelopersIO
                                                                      • BlenderとPythonとUnityを用いて、巨大な立体迷路を作成する。 - Qiita

                                                                        概要 この度、このようなゲームを作りました。基本的には迷路のゲームです。(サイトのリンク) 本記事ではこのゲームの製作過程を掲載すると共に、様々な分野の方に対しきっと有益になるだろうという情報をまとめてあります。楽しんで頂けたら幸いです。 Step0 前提 まず用語を整理します。 Blender : 3DCG制作ソフト。Pythonによって操作が可能になっています。 Python : 言わずと知れた有名プログラミング言語。 Unity : ゲーム制作ソフト。スタート画面の表示やゲームオーバーの判定などをしてくれます。言語はC#です。 大まかな流れとしては、 Step1. Blenderで3Dオブジェクトを作成 Step2. Pythonでそれを迷路に組み立てる Step3. Unityでゲームとして完成させる という風になっています。 コードに関しては、読みやすさも考え記事中においては一部

                                                                          BlenderとPythonとUnityを用いて、巨大な立体迷路を作成する。 - Qiita
                                                                        • Btrfsを13年使ったのでその経験の話 - Chienomi

                                                                          序 私がBtrfsに始めて触れたのは、日経Linuxの2009年の記事であった。 その後新しい(有望な)ファイルシステムとしてBtrfsを扱ってきたが、本格的に、という意味では8台のディスクからなるBtrfsボリュームを形成した2014年からと言えるだろう。そこからカウントすれば8年だ。 Btrfsに対しては先入観や空疎な風説に惑わされ知ったように劣ったファイルシステムであると語る人が多くいる。 しかし、そのような人はBtrfsをちゃんと運用した経験を持たないだろう。 一方、しっかりとしたBtrfs運用に関する話をネットで見つけるのも難しい。 そこでちょうどいいタイミングなのでBtrfsを運用してどうだったかということを述べていこうと思う。 なお、私はBtrfsを実用する前は、XFS on LVMを利用していた。 Btrfsの概要 BtrfsはLinuxのファイルシステムである。 特に堅牢

                                                                          • Vue 2.xのOptions APIからVue 3.0のComposition APIへの移行で知っておくと便利なTips - ZOZO TECH BLOG

                                                                            こんにちは。ECプラットフォーム部のMA(マーケティングオートメーション)アプリケーションチームで、社内向けのマーケティング運用ツールを開発している長澤(@snagasawa_)です。 先日、日本時間の2020年7月18日にVue 3.0のRelease Candidate(v3.0.0-rc.1)がリリースされ、今後は最終リリースまで主要なAPIのbreaking changeは想定していないとのアナウンスがされました。アナウンスを受け、現在社内ツールで進めているOptions APIからComposition APIへの移行で得られたTipsについて紹介します。 この記事では公開時点でのVue 3.0 betaへのアップグレードの方法と、Vue + TypeScriptでのOptions APIからComposition APIへの移行のTipsについてまとめました。Vue 3.0への

                                                                              Vue 2.xのOptions APIからVue 3.0のComposition APIへの移行で知っておくと便利なTips - ZOZO TECH BLOG
                                                                            • サーバーレスでスケールするメール送信システムをAWS CDKで構築する - 365歩のテック

                                                                              概要 タイトル通りですが、AWSでサーバーレスなメール送信システムを、AWS CDKを使って構築してみました。 サーバーレスなので、スケールする良い感じの構成になります。 荒いところもありますが結構便利なのでよかったらぜひご参考に、またはそのまま使ってくださいという感じで読んでいただけたら光栄です。 Amazon SESを使用してメールを送信していますが、(少し変えれば)SES以外でも送信できるかと思います。 目次 目次 概要 目次 まとめ(AWS Dev Day 2022 Japan) 要件 前提 アーキテクチャ 構成図 使用AWSサービス コード アーキテクチャ解説と補足 AWS CDK aws_lambda_nodejs パラメータ用コンフィグファイル バリデーション Amazon SES SQS 標準キュー 可視性タイムアウト ロングポーリング 部分バッチ応答 S3 DynamoD

                                                                                サーバーレスでスケールするメール送信システムをAWS CDKで構築する - 365歩のテック
                                                                              • HttpClient よりも HttpClientFactory を利用したほうが良いかも - 世界のやまさ

                                                                                .NET において REST API を呼び出す際、多くの方が HttpClient を使用すると思いますが、その時の注意点が帝国兵さんの Qiita で書かれています。 qiita.com この記事に書いてある通りで、 HTTP Client インスタンスをいちいち破棄して作成を繰り返していると、CLOSE_WAIT または TIME_WAIT 状態の SNAT ポートが増えてしまい、ポートが枯渇して通信ができなくなります。 具体的には hping3 で繰り返しリクエストを行っているのと同じ状態であると思います。 hping3 の使い方の具体例は宇田さんのサイトをご覧ください。 www.syuheiuda.com さて、 private static readonly HttpClient HttpClient; を使うのも良いと思いますが、 .NET Core 2.1 以降 であれば

                                                                                  HttpClient よりも HttpClientFactory を利用したほうが良いかも - 世界のやまさ
                                                                                • 日経電子版での自作 SSR フレームワーク基盤について — HACK The Nikkei

                                                                                  こんにちは、Web チームの井手です。今日は私たち Web チームが作っている SSR フレームワーク(以下 FW)にについて紹介します。 記事を書くモチベーション 私たちのメインプロダクトである日経電子版においては k2 という自作 SSR 基盤を 2020 年から運用しています。SSR FW といえば多くの方が Next.js を想起すると思いますが、私たちは自作しています。一方で最近は Next.js の進化が凄まじく、自作 SSR 勢としても意識せざるを得なくなっています。もしかしたら「あぁ Next.js で作っておけばよかった」と思う時が来るかもしれません。特に k2 を保守する際には Next.js では実現できない機能を実現するために様々な手法や工夫を編み出していましたが、Next.js の進化に伴ってその必要性はだんだん減ってきているのを実感しています。そのためいつか N

                                                                                    日経電子版での自作 SSR フレームワーク基盤について — HACK The Nikkei