並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 130件

新着順 人気順

オブジェクトの検索結果41 - 80 件 / 130件

  • 削除のビジネスロジックをドメイン層に閉じ込める簡単で強力な「DeletableIDパターン」の紹介

    この記事は 株式会社ログラス Productチーム Advent Calendar 2023 13日目の記事です。 はじめに 〇〇を削除できるかどうかのビジネス処理、皆さんはどう実装していますか? 同僚の話題になった記事でも削除の認可処理をどこに記述すべきか?は難しいと説明されています。今回はお題は認可っぽいもので書きますが広範に「削除ができるかどうか?」のビジネスロジックをドメイン層にどう閉じ込めるかの便利な実装パターンを紹介します。 削除処理のビジネスロジックの取り扱いは難しい 削除処理のビジネスロジックの実装はシンプルだけど更新処理や作成処理と比べて意外と難しいです。 それはなぜかというとドメインオブジェクト内の実装に削除処理を書くことができないからです。 例えば権限に管理者と一般ユーザーの二つの権限があるとします。

      削除のビジネスロジックをドメイン層に閉じ込める簡単で強力な「DeletableIDパターン」の紹介
    • オンラインホワイトボード「Miro」をガッツリ使うヒント|鷹野 雅弘

      Miroそのものは以前から利用していましたが、とある案件での利用を機会に掘り下げました。これからMiroに取り組む方のために、メモを残しておきます。 なお、Frameは「フレーム」と表記します。 ここ数日でMiroにむっちゃ詳しくなった。 ・URLをペーストしたらカード風のものができたり ・動画のURLは、そのまま埋め込まれたり ・Illustratorにはないオブジェクトの連結 ・表組みもイケて ただ、Miroも(PowerPointも)クリック操作が多くて疲れ方がハンパなく、そして時間がかかる。 — 鷹野 雅弘 Masahiro Takano (@swwwitch) December 7, 2021 Notion vs. Miro共同編集を前提としたデータのストックにはNotionだと思っていたけど、リニア(線形)なNotionに比べて、ジオメトリックに配置できるMiroに軍配が上がり

        オンラインホワイトボード「Miro」をガッツリ使うヒント|鷹野 雅弘
      • Pythonについて思うこと | 雑記帳

        みなさん、Pythonは好きですか? この記事では、私がPythonという言語とそのエコシステムについて思うところを書いていきます。全体を通したストーリーみたいなのはなくて、トピックごとに書いています。 私のPython経験は3年弱です。Pythonについてまだまだ新米だという自覚はありますが、そこは有り余る才能でカバーしてこの記事を書いています。 静的型 Pythonには静的型がありません。型ヒントはありますが、インタープリターにとっては飾りにすぎません。 mypyとかの型チェッカーはありますが、「それさえあれば万事ハッピー」なものではなく、既存のコードを適宜書き換えないと型チェッカーでまともな結果を得るのは難しそうです。型検査を念頭に書かれていない(型ヒント付きの)コードをそのままmypyにかけても大量のエラー・警告が出てくるでしょう(ちなみに、型ヒントなしの関数はmypyのデフォルト

        • DDDとORMのEntityを混同しないための考え方

          2つの ”Entity” ある種の ORM では RDB のテーブルスキーマモデルとなるクラスのことをEntityと呼んでいます。例えば PHP のDoctrineや TypeScript のTypeORMなどがそうです。 そういった ORM を採用したプロジェクトで DDD に取り組むとき困るのが用語の衝突です。ORM の Entity は RDB のための定義を含むため当然 DDD の Entity とは異なるのですが、なにぶん同じ名前なので混同してしまいがちです。 本記事では両者を混同せず扱うための考え方をまとめます。 Entity の定義 まずは定義から確認します。 DDD での定義 エヴァンス本の日本語訳から引用します。 主として同一性によって定義されるオブジェクトはエンティティと呼ばれる Eric Evans. エリック・エヴァンスのドメイン駆動設計 (Japanese Edi

            DDDとORMのEntityを混同しないための考え方
          • マインスイーパでオブジェクト指向の設計を学んだ

            はじめに オブジェクト指向の学び方について悩んだことはありませんか? 私は設計の技術書を読んでもイマイチ腹に落ちない感覚を何度も味わってきました。 本記事では、「マインスイーパ」を題材としてオブジェクト指向の設計をします。私はこの設計を通じてオブジェクト指向がチョットワカルになったので是非最後まで読んでいただけると嬉しいです。 対象読者 オブジェクト指向を学びたい方 ソフトウェア設計の技術書を1冊読んだことがある方 ソフトウェア設計に興味がある方 (番外編にて)Rubyのメタプログラミングを学びたい方 サンプルコード サンプルコードはこちらです。 メインロジックはRubyで書かれていますが、WebAssembly上で実行可能にするruby.wasmを利用しています。そのため、Rubyの実行環境がなくてもhttpサーバーを立ち上げてブラウザからindex.htmlにアクセスすればマインスイー

              マインスイーパでオブジェクト指向の設計を学んだ
            • TypeScriptにおける配列の共変性

              const animal: Animal = { animal: "string", }; const dog: Dog = { animal: "string", dog: "string", }; いま,Dog <: Animalです. <:という記号は2つの型のあいだに書いて,「左の型が右の型のサブタイプである」と読みます. TypeScriptの型システムは構造的なので,2つのオブジェクトがサブタイプ関係にあるには,それらに共通するプロパティについてもまた,サブタイプ関係が必要1です. 今回の例では,DogとAnimalに共通するanimalプロパティについてstring <: stringなのでOKです. TSでは,S <: TならばT型の変数にS型の値を代入できます. つまり,Dog <: Animalなので Animal型の変数にDog型の値を代入できます.

                TypeScriptにおける配列の共変性
              • Javaを中心に偏見ベースでプログラミング言語の関係をまとめた - きしだのHatena

                オブジェクト指向言語の話をするときに便利なように、Javaを中心にプログラミング言語をまとめてみました。 Javaに影響与えるか、Javaから影響を受けるか、という感じですね。 Simula オブジェクト指向はここから始まったと言われています。 クラス、オブジェクト、継承、仮想関数(多態)といった、オブジェクト指向の基本要素が備わっていました。 ただし、「オブジェクト指向」という言葉は生まれていません。 Smalltalk Simulaから発想を得て「オブジェクト指向」という言葉を生んだのはアラン・ケイでした。 しかし、モデルとしてはSimulaとは異なりメッセージングを主体としたものでした。また、アラン・ケイの「オブジェクト指向」はプログラミングのパラダイムだけではなく、人がコンピュータをどのように扱うかというメタファであり、ダイナブックというハードウェアやそのユーザーインタフェースを含

                  Javaを中心に偏見ベースでプログラミング言語の関係をまとめた - きしだのHatena
                • 開放閉鎖原則(open-closed-principle)ってもはや意味ない - きしだのHatena

                  SOLID原則というのがあるのだけど、原則といつつ やりすぎに注意なみたいなことを言われ、自分で塩梅を探らないといけないなら全然原則じゃないやんということであまり好きではないのだけど、その中でもここではOにあてはまる開放閉鎖原則って意味ないよねって話を。 開放閉鎖原則の原典はメイヤーの「オブジェクト指向入門」で、第2版には次のような記述があります。(初版も書いてることはだいたい同じで、2版のほうが整理されて記述も多くなってます) モジュールは開いていると同時に閉じているべきである ただ、このメイヤーの文脈でいうようなモジュールの拡張ってやらないよねと。 ここでメイヤーの文脈での拡張というのは、モジュール自体に手をいれずに、機能の追加や変更ができるというものです。継承使っていい感じに機能追加ができる設計が「拡張に開かれている」ということです。 でもまあ、そんなライブラリの拡張をやらないですよ

                    開放閉鎖原則(open-closed-principle)ってもはや意味ない - きしだのHatena
                  • できるだけUIを作らない(新規作成画面編)|toofu

                    貿易管理 SaaS を提供している Shippio でプロダクトデザインを担当している toofu です。 最近、機能開発・改善をするときに「なるべく UI つくりたくないなあ」と思うことがよくあるので、その考えを事例とともに共有させてください。 メインオブジェクトの作成機能を設計しました先日、Shippio のメインオブジェクトである「シップメント(貿易案件的なもの)」の作成機能をリリースしました。 メインオブジェクトの作成機能がなかったの…?と思われるかもしれませんが、Shippio にはシップメントを画面上で作成する機能がなく、外部データをインポートすることしかできませんでした。 「プロパティが多い貿易案件をすべて手入力していくよりも、ユーザーが普段の業務で管理している Excel 上の貿易データをそのままインポートしてもらうほうが、より業務効率化に近づくはず」というプロダクト開発初

                      できるだけUIを作らない(新規作成画面編)|toofu
                    • 構文のことは忘れて、JSON, S式, XMLのデータモデルを比較する

                      データをシリアライズするには、独自のフォーマットを定めるよりも、基本的な定義済みの構造を組み合わせてフォーマットを作るほうが望ましい場合が多いです。 そのような仕組みとしてJSON, S式, XMLなどが存在しますが、これらは 「基本的な構造」として何を選ぶか、という観点からそれぞれに個性を持っています。 本記事では、具体的な構文のことは基本的に忘れて、各フォーマットが採用するデータモデルの違いに焦点を絞って比較します。 JSON data JSON = Value data Value = -- Compounds Array [Value] | Object (Map String Value) -- Scalars | Null | Boolean Boolean | String String -- UCS-2 | Number IntegerOrFloat -- no NaNs

                        構文のことは忘れて、JSON, S式, XMLのデータモデルを比較する
                      • Perlの最新動向 2021 - Mobile Factory Tech Blog

                        こんにちは、エンジニアの id:mp0liiu です。 8月28日(土)の Learn Languages 2021 というイベントの Language Update というセッションで@charsbarさんと一緒に2018年以降のPerl5やPerlコミュニティの最新動向について話してきたので、そのとき話した内容に補足などしつつ記事にしていきたいと思います。 配信アーカイブはこちらから見れます。 時系列 2019/5/22 Perl5.30 リリース 2020/6/20 Perl5.32 リリース 2020/6/24 Perl7の発表 2021/5/21 Perl5.34 リリース Perl5.30 の変更点 正規表現や文字周りの細かい改善などはありますが、正直めぼしい変更点が見られないです。 Perl5.32 の変更点 isa 演算子の実装 値があるクラスのインスタンスもしくはそのサブ

                          Perlの最新動向 2021 - Mobile Factory Tech Blog
                        • JavaScript エンジンの高速化

                          これらの JavaScript エンジンのうち、以下では特に JavaScriptCore を扱います。 最適化の基本戦略 JavaScript をはじめとする動的言語は、主にインタープリタにおいて実行されます。しかし、インタープリタはコンパイルされたコードと比較して実行に時間を要するという欠点があります。そこで、インタープリタの最適化では、バイトコードの JIT コンパイルが最初に行われます。 しかし、コンパイルには当然時間がかかります。少しでも高速化されたコードを生成するには、より多くの時間をコンパイルにかけなければなりません。コンパイルによる速度向上とコンパイルのレイテンシはトレードオフの関係にあります。 そこで、多くの JavaScript エンジンは、インタープリタと多階層の JIT コンパイラの組み合わせで構成されています。次の図は、主要な JavaScript エンジンの設計

                            JavaScript エンジンの高速化
                          • axios は v1.0.0 でどう変わるのか

                            概要 本記事は、HTTP クライアントライブラリである axios の v1.0.0 が満を持してリリースされたため、何がどう変わったのか、マイグレーションしても良いのかについて個人的に調べてまとめた結果になります。 TL;DR axios の v1.0.0 は、パッケージのモダン化に向けた節目としてのバージョンともいえる v1.0.0 では多数のバグ修正と、いくつかの小規模の機能追加がまとめて取り込まれた 破壊的変更や非推奨化は少なからずあるが、基本的な使い方や挙動を大きく変える規模の変更はない 一方で劇的に良くなる変化もないので、急いであげる理由もない 公式マイグレーションガイドは記事執筆時点では提供されていない axios について axios は、JavaScript 向けの HTTP クライアントライブラリの一種で、この種のパッケージとしては比較的古くから普及している老舗ライブラ

                              axios は v1.0.0 でどう変わるのか
                            • 難解なソフトウェアをデザインする人にこそお勧めしたいOOUI(オブジェクト指向UI)

                              ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog みなさまこんにちは。ヤフーでデータソリューション事業のUI/UXデザインを担当している、横内です。 2022年11月に弊社が運用するデータ可視化ソフトウェアのDS.INSIGHTで人流データを分析できるPlace機能を大幅アップデートしました。その際使用したOOUIという設計手法から得られた学びをプロジェクトの実例を交えながらご紹介します。 OOUIとは そもそもOOUIとは何者でしょうか。OOUIとは、Object Oriented User Interfaceの略語で、通称オブジェクト指向UIと呼ばれています。 オブジェクトとはその名の通り「役割を持ったモノ」を指す言葉です。例えばお店で買うクロワッサンや、ECサイトでカゴに入

                                難解なソフトウェアをデザインする人にこそお勧めしたいOOUI(オブジェクト指向UI)
                              • JavaScriptの参照レコードとthisバインディング

                                JavaScriptの仕様には「参照レコード」という概念があります。参照を意識することで、JavaScriptにおけるメソッド呼び出しの理解と左辺式の評価順序の理解を同時に深めることができます。本稿ではこの「参照レコード」の動機と詳細の説明を試みます。 ※ 本記事ではECMAScriptの規格で「参照レコード」と呼ばれている概念を説明します。JavaScriptのオブジェクトは参照渡しのような使い方ができますが、これは本稿で説明する「参照」とは少しだけ異なります。 参照レコードの目的 JavaScriptにおける参照レコードは以下の2つの目的で存在しています。 左辺式の中間評価結果を表現するため。 メソッドのレシーバーを決定するため。 左辺式の中間評価結果とは たとえば a[f()] += 2; というコードを考えます。 function f() { console.log("f()");

                                  JavaScriptの参照レコードとthisバインディング
                                • ノーリツ製の給湯器リモコンをPCからNode.jsで操作する(ECHONET Lite)

                                  こんにちは。 久しぶりに帰省したところ、実家の給湯器のリモコンがIoT対応の製品 RC-G001MW-2 (ノーリツ)になっていました。これはハックしなければならないと思っていじってみたところ、HEMS向けの機能を利用することでわりと容易に制御できたので記事にしてみた次第です。 (画像:ノーリツ公式サイトより) 成果物のコマンドラインツールはnpmに公開しているので、同じモデルや同一プロトコルに対応した給湯リモコンをお持ちの方は実験できるかもしれません(詳細は記事末尾参照)。 HEMS HEMS (Home Energy Management System)とは宅内のエネルギー使用量を管理・可視化する装置です。昨今のIoT対応家電はHEMSとの連携が前提になっているものも増えているようです。 ECHONET Lite HEMSのために国内で策定された通信規格がECHONET Lite(エコ

                                    ノーリツ製の給湯器リモコンをPCからNode.jsで操作する(ECHONET Lite)
                                  • オブジェクト指向は継承で多態するプログラミング - きしだのHatena

                                    オブジェクト指向って継承による多態があるからこそなんだけど、継承が非推奨になって以降に雰囲気でオブジェクト指向を知った人には、継承はオプションでカプセル化だけでオブジェクト指向って言ってしまいがちに思います。 実際はカプセル化はオブジェクト指向固有じゃなくて、クラスでカプセル化を実現してるだけです。 さまざまな人のオブジェクト指向の定義 本来ならどのように継承こそがオブジェクト指向なのかという説明をするんですが、かなり長くなりそうなので、とりあえずはいろいろな人たちのオブジェクト指向の定義を抜き出してみます。 「ここに挙がってるのはオブジェクト指向の一派にすぎない」というような意見もありますが他の派閥についてまとまって定義され共通認識になっているようなものは見当たらないので、プログラミングの指針には なりづらいと思います。 ストラウストラップ C++を産んだストラウストラップは「C++の設

                                      オブジェクト指向は継承で多態するプログラミング - きしだのHatena
                                    • 新たなJavaScript日付操作ライブラリ「Tempo」登場 ー ネイティブなDateと直接連携、小さく、速く、使いやすく

                                      先日リリースされた「[Tempo](https://tempo.formkit.com/)」が、全く新しいJavaScriptの日付/時刻ライブラリとして非常に注目を集めている。 先日リリースされた「Tempo」が、全く新しいJavaScriptの日付/時刻ライブラリとして非常に注目を集めている。 JavaScriptの日付ライブラリにはmoment.js、day.js、date-fnsなどがあるが、これらと異なるのは、ネイティブのDateオブジェクトを直接対象としていることである。 従来の日付ライブラリは、独自の日付プリミティブを提供することが一般的であったが、TempoではネイティブのJavaScript Dateオブジェクトと直接連携し、Intl.DateTimeFormatを活用することで、タイムゾーンやロケールのファーストクラスサポートを提供するだけでなく、ライブラリのサイズ削減

                                        新たなJavaScript日付操作ライブラリ「Tempo」登場 ー ネイティブなDateと直接連携、小さく、速く、使いやすく
                                      • プログラミング〈新〉作法  これからプログラムを書く人のために

                                        「プロとしてプログラムが書ける人」に求められる能力が大きく変わった! 1つのプログラミング言語にこだわらず、それぞれの言語のベストプラクティスを学ぼう。現代のプログラミング言語を支える技術が凝縮された一冊 目次 第1章 はじめに 1.1 プログラミングに必要な知識とは 1.2 本書の構成 1.3 プログラマに伴走する生成AI 1.4 コーディング環境 1.4.1 オンライン実行環境 1.4.2 ローカルでのコーディング環境 1.5 まとめ 第2章 C言語からはじめよう 2.1 C言語とは 2.2 入力・演算・出力 2.2.1 変数・定数・リテラル 2.2.2 演算子 2.2.3 入出力関数 2.2.4 数値計算を行うプログラム例 2.2.5 配列 2.2.6 文字と文字列 2.3 制御構造 2.3.1 条件分岐 2.3.2 繰り返し 2.3.3 構造化プログラミング 2.4 関数 2.4.

                                          プログラミング〈新〉作法  これからプログラムを書く人のために
                                        • オブジェクト指向は単なる【整理術】だよ - Qiita

                                          Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 概要 掲題の通りです。異論は認めますだからオブジェクト指向警察の皆さん見逃して下さいお願いします。 この投稿は「オブジェクト指向(OO/ object oriented)ようわからん」って人向けになるべくわかりやすく説明しようとする試みになります。一応は「1冊くらいは入門書読んだ人」を対象にしています。 ちなみにぼくのオブジェクト指向力は100メートル走で例えると多分12~13秒台くらいです。よくわからないけど。 オブジェクト指向は難しい? 初めてプログラミングに触れてオブジェクト指向について学び始める時、その概念を理解するのに苦労して

                                            オブジェクト指向は単なる【整理術】だよ - Qiita
                                          • PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道

                                            PSCustomObjectとはそもそもなんぞや PowerShellのパイプラインは、オブジェクトを流すようになっている。なので、複雑な情報はPowerShellのオブジェクトにすると、あとの処理が簡単になる。 そのためにあるのが、「PSCustomObject」と呼ばれる汎用のオブジェクトだ。このオブジェクトであれば、Format-*や*-ObjectといったPowerShellの汎用コマンドを適用できる。 逆に言えば、PowerShellの汎用コマンドは、フラットな構造のオブジェクトを想定しており、プロパティの値がオブジェクトになっているようなものは扱いにくい。このような場合に、PSCustomObjectを作ってフラットな構造にすることで、以後は処理しやすくなる。 なお、PSCustomObjectの基本的なことは、Microsoftのサイトにページ(https://learn.m

                                              PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道
                                            • 【OOUI】設計を改善したらユーザー(オカン)が使ってくれるアプリになった話 - Qiita

                                              Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? ​​▼この記事では、前回の記事で紹介した自作アプリを題材にしています。 前回の記事を先に読んでもらえると、この記事の内容がより理解しやすくなると思います! 【初アプリ】未経験がFlutterで肉牛繁殖農家のためのアプリを作ってみた こんにちは、Takuです。 先日、Flutterで肉牛生育記録管理アプリ「Memow」をリリースしました。​ ​ このアプリのユーザーである自分のオカンオトンは、特にこちらからレクチャーせずとも問題なく使いこなしています。 基本的にオカンがデータを入力し、オトンは共有データを閲覧するという使い方をしているよう

                                                【OOUI】設計を改善したらユーザー(オカン)が使ってくれるアプリになった話 - Qiita
                                              • 【後編】TypeScript×関数型×DDDで、ユニットテストが激減。実践の全貌とTips【Open Developers Conference 2024 レポート】 | レバテックラボ(レバテックLAB)

                                                TOPコラムテック最前線レポート【後編】TypeScript×関数型×DDDで、ユニットテストが激減。実践の全貌とTips【Open Developers Conference 2024 レポート】 【後編】TypeScript×関数型×DDDで、ユニットテストが激減。実践の全貌とTips【Open Developers Conference 2024 レポート】 2024年11月18日 株式会社一休 CTO 伊藤 直也 大学院卒業後、新卒で入社したニフティ株式会社にて、ブログサービス「ココログ」を立ち上げ。2004年、株式会社はてなに入社、CTOに就任。「はてなブックマーク」などの開発を主導。2010年以降はグリー株式会社にて、ソーシャルメディア統括部長を務める。その後フリーランスを経て、2016年4月に、技術顧問を務めていた株式会社一休に入社。執行役員CTOに就任 X GitHub 2

                                                  【後編】TypeScript×関数型×DDDで、ユニットテストが激減。実践の全貌とTips【Open Developers Conference 2024 レポート】 | レバテックラボ(レバテックLAB)
                                                • Rubyでrescueしたらグローバルなオブジェクトを破壊してたよって話 - ANDPAD Tech Blog

                                                  こんにちは、ydahです。 2021年の12月から株式会社アンドパッドでソフトウェアエンジニアとしてANDPAD検査の開発に携わっています。 昨年、息子が生まれてから夜更かしすることがなくなり、早朝に起きては軽くジョギングをしてから、OSSプログラミングにいそしむのが朝のルーティンになった今日このごろです。 さて本稿では、Rubyの例外処理を眺めていたらrescueがグローバルなオブジェクトを破壊するケースがあったんですよという話と、その対策について話したいと思います。 発生していたケースについて 突然ではありますが以下のコードをご覧ください。 この中にグローバルなオブジェクトを壊してしまうrescueがいます。 # 1 begin raise 'foo' rescue ArgumentError end # 2 begin raise 'foo' rescue => ArgumentEr

                                                    Rubyでrescueしたらグローバルなオブジェクトを破壊してたよって話 - ANDPAD Tech Blog
                                                  • Apidog Blog

                                                    Effective StrategiesFrom API Specs to Code: How MCP Bridges the Gap for Developers Follow our 5-step guide to connect your API specifications directly to AI coding tools using Apidog MCP Server. Eliminate the gap between documentation and implementation while boosting development speed and code quality. TutorialsEmpower Vibe Coding: Publish MCP Supported API Documentation Learn how Apidog's "Vibe

                                                      Apidog Blog
                                                    • JavaScriptの配列メソッド: オブジェクトの配列を扱うときに役立つ便利な配列メソッドを分かりやすく解説

                                                      JavaScriptでオブジェクトの配列を操作するためにもっとも有用な配列メソッドとコードを紹介します。 JavaScript Array Methods: A Comprehensive Guide by Luca Spezzano 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに filter()メソッド: オブジェクトの配列からキーstatusがactiveと等しいオブジェクトの配列を取得する find()メソッド: 配列内から特定のidを持つオブジェクトを検索する findIndex()メソッド: 配列内の特定のキーを持つオブジェクトのインデックスを検索する reduce()メソッド: オブジェクトの配列内にある特定のキーの値を合計する map()メソッド: オブジェクトの配列内に含まれる特定のキーに対応する一意

                                                        JavaScriptの配列メソッド: オブジェクトの配列を扱うときに役立つ便利な配列メソッドを分かりやすく解説
                                                      • あらためて理解するArrayBuffer - JavaScriptでバイナリデータを扱う方法 - ICS MEDIA

                                                        配列(Array)との比較 JavaScriptにはTypedArrayとは別に配列(Array)の違いを説明します。 ArrayはTypedArrayと比べると柔軟で汎用性が高いです。しかし、Arrayは内部で動的なメモリー管理を行うため、データ処理や転送を高い頻度で行う場合にはオーバーヘッドが発生する可能性があります。 TypedArrayは長さが固定であり、バイト単位のデータ格納が可能なため、メモリーアクセスが効率的に行われます。数値計算においてもバイナリデータを直接操作できるので、高いパフォーマンスが期待できます。また、メモリー領域が連続しているので高速なデータの転送が可能です。 大量のデータを処理する数値計算の場合にはTypedArrayで管理するとデータのまとめた取り回しが楽になります。逆にデータの規模が小さい時は汎用的なArrayが良いでしょう。 TypedArrayは決まっ

                                                          あらためて理解するArrayBuffer - JavaScriptでバイナリデータを扱う方法 - ICS MEDIA
                                                        • Windowsカーネルから見るオブジェクトハンドル - ラック・セキュリティごった煮ブログ

                                                          デジタルペンテスト部の北原です。 今回は、Windowsでのツール開発者にとっては重要なハンドルの内部について解説します。 Windowsでは、ファイルやプロセスから始まりすべてのリソースはオブジェクトとして扱われ、ファイルの削除やメモリの確保にはハンドルを取得する必要があります。 ツールやアプリケーションの開発者にとっては、日常的にハンドルを操作する機会がありますが、通常の利用者にとってはあまり意識するものではありません。 本記事では、Windows OSでのハンドルの役割と、OS内部でどの様に管理されているのかについて解説します。 記事の構成は以下の通りです。 ハンドルの役割とアクセス権限 ハンドルへの情報の問い合わせと操作 カーネル空間でのハンドル管理 応用例1 - オブジェクトをロックしているプロセスの特定 応用例2 - カーネルモードルートキット 本記事は以下の読者層を想定してい

                                                            Windowsカーネルから見るオブジェクトハンドル - ラック・セキュリティごった煮ブログ
                                                          • アプリケーションをドメインモデルで設計する - Qiita

                                                            親記事 : https://qiita.com/Regpon/items/1116679adadd8fb76f3f ドメインモデルで設計する狙い オブジェクト指向プログラミングにおいてかなり重要な内容となっているが如何せん概念的な内容となっている。ドメインモデルを設計するには幾度とない失敗の経験を重ねていき、常に改良していく精神が重要。そのための指針となる内容なので是非とも押さえておきたい。 それを踏まえてドメインモデルで設計する狙いは以下の通り。 業務的な判断・加工・計算のロジックを重複なく一元的に記述できる 業務の関心事(データ)とコードを直接対応させ、どこに何が書いてあるのかわかりやすく整理する 業務のルールの変更や追加の時に、変更の影響を狭い範囲に閉じ込める ドメインモデルの設計の難しさ ドメインモデルの設計は手続き型(スクリプト型)のプログラミングと比べて設計がむずかしいとされる

                                                              アプリケーションをドメインモデルで設計する - Qiita
                                                            • 【JavaScript】ネイティブで集合演算できるようになった - Qiita

                                                              Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                                                【JavaScript】ネイティブで集合演算できるようになった - Qiita
                                                              • レトロRPG風デザインのオンラインビデオ通話スペース『 Gather.Town 』で”出社して仕事&気軽に雑談”を楽しく仮想体験! | DevelopersIO

                                                                レトロRPG風デザインのオンラインビデオ通話スペース『 Gather.Town 』で”出社して仕事&気軽に雑談”を楽しく仮想体験! 弊社クラスメソッドは以前からリモートワーク(テレワーク)は全社的に利用出来る体制にあり、2020年初頭以降のコロナ禍を経て(ほぼ)フルリモート体制にシフトした際もそこまで大きな混乱は無く、各種SaaSサービスを活用して比較的円滑に日々の業務をこなしてこれているように思います。 とはいえ、それでもやはり実際にオフィスに出社して仕事をする、また顔を合わせて会話をする(仕事の話でも、雑談でも)というのは良いものですね。特に後者の『会話』の部分についてはリモート体制に移行することで"あそび"の部分がごっそり失われてしまった...というのが大きな変化になったと感じる方は多いのでは無いでしょうか。昨今の状況にあっては、実際に顔を合わせるのは勿論のこと、顔を合わせるために移

                                                                  レトロRPG風デザインのオンラインビデオ通話スペース『 Gather.Town 』で”出社して仕事&気軽に雑談”を楽しく仮想体験! | DevelopersIO
                                                                • 「型システムのしくみ」発売のお知らせ - まめめも

                                                                  「型システムの仕組み - TypeScriptで実装しながら学ぶ型とプログラミング言語」という本を書きました。 「型システムの仕組み - TypeScriptで実装しながら学ぶ型とプログラミング言語」 どんな本? 簡単な型チェッカを自作してみることで、型システムの仕組みを概観する本です。 型チェックする対象の言語はTypeScript(のサブセット言語)、型チェッカを実装するための言語もTypeScriptです。 たとえば、次のようなプログラムが型チェックできるようになります。 const add = (x: number, y: number) => { return x + y; } const a = add(1, 2); const b = a + true; 型チェッカは、それぞれの変数がどういう型を持つか管理しつつ、プログラムの各パートがどういう型になるかを判定していきます。

                                                                    「型システムのしくみ」発売のお知らせ - まめめも
                                                                  • オブジェクトのクローンにJSON化を使う時代は終わった!【JavaScript】 - Qiita

                                                                    const obj = { hoge: [new Date(2023, 3, 12), 1], fuga: 'foo' }; const objClone = structuredClone(obj); // ディープコピー obj.hoge[1] = 10; console.log(objClone.hoge[1]); // 1 objClone.hoge[0].setFullYear(2050); console.log(obj.hoge[0].getFullYear()); // 2023

                                                                      オブジェクトのクローンにJSON化を使う時代は終わった!【JavaScript】 - Qiita
                                                                    • オブジェクト指向でUIを考えられるようになりたい。 - Qiita

                                                                      Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 1. 目的 UIデザインを勉強し始めました。現在「オブジェクト指向UIデザイン-使いやすいソフトウェアの原理」を読んでいます。そのため、学習進行の記録と復習を兼ねて、学んだことを記事にしようと思います。 以下「1. オブジェクト指向UIとは何か」という本書のさわり部分についてまとめています。 この記事で載せている例には私が考えたものも含まれていますので、間違い等ありましたらコメントにてご指摘いただけますと幸いです。 2. オブジェクト指向UI(OOUI) UIをオブジェクト(ユーザーが操作する時の対象物)を起点に設計します。GUIももと

                                                                        オブジェクト指向でUIを考えられるようになりたい。 - Qiita
                                                                      • ついに JavaScript に groupBy が実装されたぞ!!! - Qiita

                                                                        JavaScript標準でgroupBy関数が実装されています。2023年11月現在Safari以外の主要なブラウザで実装済みで、SafariもTechnology Previewのようです。 (現在MDNの日本語の記事は古い情報のままになっており、現行と異なるので注意! →更新していただきました。ありがとうございます!) Proposal の Stage はすでに 4 / Finished なので規格として確定済みです。 基本的な使い方 よくあるgroupByです。配列(Iterable)とキーを抽出する関数の二つを指定すると、キーで配列をグループ化します。 const ret = Object.groupBy([ { name: '山田太郎', address: '東京' }, { name: '山田次郎', address: '愛知' }, { name: '山田三郎', addre

                                                                          ついに JavaScript に groupBy が実装されたぞ!!! - Qiita
                                                                        • メモ:値オブジェクトの定義と差異について - かとじゅんの技術日誌

                                                                          「値オブジェクト」の定義について不勉強だったので「DDDの値オブジェクト」の定義とDDD以外の「値オブジェクト」との違いについて、改めて関連書籍を読み直し整理してみました。 すごい長いし細かいので他人に読ませるような記事ではなく、自分のために書いたメモです。 もし読むなら興味がある人だけで。 自分向けのメモですが、一応 この記事の前提や意図を書いておきます。 「DDDの値オブジェクト」以外を否定する記事ではありません。 原理主義のように書籍の理想どおり実践するべきだと主張するつもりはありません 「理想に従えばよい」「理想に従うの無意味だ」と決め付けの二項対立的な思考ではなく、理想と現実の絡み合ったグレーゾーンを見極めつつ、現場で手を打つのが優れた実践者ではないでしょうか 下記に紹介する、それぞれの値オブジェクトの優劣について細かく議論し、論破する・されることを目的としていません。 言い訳と

                                                                            メモ:値オブジェクトの定義と差異について - かとじゅんの技術日誌
                                                                          • JavaScriptデザインパターン入門 - Qiita

                                                                            1. はじめに JavaScriptデザインパターンは、JavaScriptを使ってプログラムを書くときによく出くわす問題を解決するためのガイドです。これらのパターンの背後にある考え方を理解することで、自分の問題に適用することができます。また、これらのパターンが自分のコードに役立つ場合を見つけることもできます。 2. モジュールパターン モジュールパターンは、JavaScriptのモジュールシステムの一部で、データを保護する方法を提供します。これは、モジュール内のプライベートなデータと動作を保護し、一方で公開APIを提供する方法です。これにより、プライベートとパブリックのアクセスレベルを持つ自己完結型のモジュールオブジェクトを作成することができます。 これは、JavaやC++のような言語でクラスにアクセス修飾子を使用するのに似ています。 JavaScriptでは、クロージャを使用してモジュ

                                                                              JavaScriptデザインパターン入門 - Qiita
                                                                            • Flux の失敗は Store に Store という名前をつけたこと - fsubal

                                                                              強い言い方だけど、Flux Architecture の失敗として Store に Store という名前をつけたことがあると思っている。 あるいは、黎明期の Flux は Store という名前で良かったんだけど、 #Redux はその名前を引き継がないほうが良かったんじゃないかと思っている。

                                                                                Flux の失敗は Store に Store という名前をつけたこと - fsubal
                                                                              • 関数型プログラミングなんもわからん。を考えようと言うイベントを開きました。

                                                                                先日Connpassにて、関数型プログラミングなんもわからん。を考えようと言うイベントを開かせていただきました。 関数型プログラミングがわからない! と言う方達の疑問に対して、普段関数型プログラミング言語を使っているわかる人たちが回答をして行くと言うスタイルのイベントでした。関数型プログラミング言語と一口に行っても、Elm, Scala, Haskell, Clojure, Elixir, F#と様々な言語があり(これは今回参加した人たちの使っている言語で、関数型プログラミング言語の一部にしか過ぎません)何が正解かなどはわからない中での意見の集約といった形のため参考程度にご覧ください。結果イベントとしては様々な視点からの意見が聞けて満足という声が多かったです。私自身知らないことがたくさん知れて勉強になり楽しかったです。 イベントの内容は、Figma上で開けるFigJamファイルとして、公開

                                                                                  関数型プログラミングなんもわからん。を考えようと言うイベントを開きました。
                                                                                • 本当にあったモーダルの怖い話 / Terrifying Nonfiction of Modal

                                                                                  ABEMA weber 勉強会 2021/06/30, 07/07 --- @uenitty 本当にあったモーダルの怖い話 ABEMA weber 勉強会 2021/06/30, 07/07 背景と目的 2 • モーダルに驚くほど苦しめられたので、状況を説明して改善方法を提案する • OO…

                                                                                    本当にあったモーダルの怖い話 / Terrifying Nonfiction of Modal