並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 130件

新着順 人気順

オブジェクトの検索結果1 - 40 件 / 130件

  • 進化するPromiseオブジェクト [JS Modern Features no.2] | gihyo.jp

    こんにちは! サイボウズフロントエンドエキスパートチームの左治木です。 今回のテーマは「進化するPromiseオブジェクト」です。 Promiseは、非同期処理を管理するためのオブジェクトで、ECMAScript 2015 (ES6)で導入されました。ECMAScript 2017ではasync/await構文が追加され、非同期処理がより直感的に記述できるようになりました。現在では、async/await構文が非同期処理の主流となっています。 一方で、Promiseの機能はasync/await構文の登場後も進化を続けています。これにより、非同期処理がさらに扱いやすくなり、従来のPromiseでは難しかった細かい処理も可能になっています。今回は、ES2020以降で追加されたPromiseの新機能をユースケースを交えて解説します。 Promiseの基本を簡単におさらい Promiseは、非同

      進化するPromiseオブジェクト [JS Modern Features no.2] | gihyo.jp
    • 「型システムのしくみ」発売のお知らせ - まめめも

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

        「型システムのしくみ」発売のお知らせ - まめめも
      • あらためて理解するArrayBuffer - JavaScriptでバイナリデータを扱う方法 - ICS MEDIA

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

          あらためて理解するArrayBuffer - JavaScriptでバイナリデータを扱う方法 - ICS MEDIA
        • 個人開発動画編集ソフト「Beutl」の紹介

          はじめに こんにちは。yutotuyです。 今回は、わたしが個人開発している動画編集ソフト、Beutlを紹介していきます。 また、次回以降の記事からはBeutlの開発中に発生した課題と解決策を載せていきます。 背景 私が動画編集ソフトの開発を始めたのは、中学生の頃にさかのぼります。当時、趣味で動画編集をしていた私は、使っていたAviUtlというソフトのスクリプト言語を通じてプログラミングに興味を持ちました。 コロナ禍で自宅にいる時間が増えたこともあって、「もっと性能が良く、安定した動画編集ソフトがあったらいいな」という単純な思いから、プログラミングの勉強と並行して「BEditor」(Beutlの前身)の開発を開始しました。実は、開発する前はAviUtlの利用を便利にするソフトの開発を行っていましたが、AviUtl本体のパフォーマンスや安定性に根本的な課題を感じ、ゼロから新しいソフトを作るこ

            個人開発動画編集ソフト「Beutl」の紹介
          • 開放閉鎖原則(open-closed-principle)ってもはや意味ない - きしだのHatena

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

              開放閉鎖原則(open-closed-principle)ってもはや意味ない - きしだのHatena
            • マインスイーパでオブジェクト指向の設計を学んだ

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

                マインスイーパでオブジェクト指向の設計を学んだ
              • できるだけUIを作らない(新規作成画面編)|toofu

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

                  できるだけUIを作らない(新規作成画面編)|toofu
                • JavaScriptのイテレータ, イテラブル, ジェネレータを理解する!

                  お久しぶりです。GMOインサイトの天河です。 ついこの間、JavaScriptのジェネレータについて社内勉強会で発表したのでその内容をまとめます。 ※ 注意 本記事で言及している「ジェネレータ」はJavaScriptでの言語仕様です。一部通ずる箇所もあると思いますが、Python や C# など他の言語での使われ方についてはしかるべき文献を見てください。 目的 ジェネレータ が何かわかるようになる ジェネレータについて面接で聞かれても余裕で答えられるようになる 実装時にジェネレータを選択肢として持てるようになる 対象読者 ジェネレータ が何か全くわかっていない人 ジェネレータ について認知はしているものの、どういうものかは把握していない人 ジェネレータ を知ってはいるものの、使い所がわからない人 はじめに ジェネレータを理解するためには、「イテレータ」と「イテラブル」について知る必要があり

                    JavaScriptのイテレータ, イテラブル, ジェネレータを理解する!
                  • 【後編】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)
                    • なぜ DuckDB を採用したのか

                      概要 なぜ 自社 で DuckDB を採用したのかを、雑に書いていきます。 変更履歴 2025-03-12: DuckDB の開発体制と Zstandard で圧縮されたファイルの読み込みについて追記 2025-02-13: 今後やりたい事 v2 を追記 まとめ DuckDB / DuckDB-Wasm を利用する事で中小規模のサービスであれば、ログ解析や統計情報の可視化を低コストで提供することができる DuckDB を go-duckdb 経由で利用する事で、HTTP リクエスト単位での DuckDB を利用できる DuckDB-Wasm と OPFS を利用する事で、クライアント側での統計情報のため込みができるようになる 解決したい課題 解決したい課題は基本的にサービスの運用費を抑えるということです。中小規模のサービスでは運用費が大きな課題になります。 自社パッケージ向けのログ解析ツー

                        なぜ DuckDB を採用したのか
                      • プログラミング〈新〉作法  これからプログラムを書く人のために

                        「プロとしてプログラムが書ける人」に求められる能力が大きく変わった! 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.

                          プログラミング〈新〉作法  これからプログラムを書く人のために
                        • ユーザー(手書き入力)を認識する  |  Web Platform  |  Chrome for Developers

                          Handwriting Recognition API とは何ですか? Handwriting Recognition API を使用すると、ユーザーの手書き(インク)をテキストに変換できます。一部のオペレーティング システムには、このような API が長い間含まれていました。この新しい機能により、ウェブアプリでもこの機能を使用できるようになりました。コンバージョンはユーザーのデバイスで直接行われ、オフライン モードでも機能します。サードパーティのライブラリやサービスを追加する必要はありません。 この API は、いわゆる「オンライン」または準リアルタイムの認識を実装します。つまり、ユーザーが描画している間に、単一のストロークを取り込んで分析することで、手書き入力が認識されます。光学式文字認識(OCR)などの「オフライン」手法では最終的な結果のみが判明しますが、オンライン アルゴリズムでは

                          • Windowsカーネルから見るオブジェクトハンドル - ラック・セキュリティごった煮ブログ

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

                              Windowsカーネルから見るオブジェクトハンドル - ラック・セキュリティごった煮ブログ
                            • PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道

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

                                PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道
                              • null or undefined #kyotoasterisk とその補足など - Object.create(null)

                                Kyoto.なんか #6 で発表しました. speakerdeck.com 以下はその補足情報など. 仕様書中の出現頻度 null と undefined がそれぞれの仕様でどの程度使われているのかは, 仕様書中の出現頻度を見るだけでもある程度わかりりそうです. ということで ECMAScript 2024 と WHATWG の標準 (2024-09-07 時点) のうちいくつかの仕様書の中での出現頻度を見てみましょう. Spec #null #undefined ES2024 300 939 DOM 368 120 Fetch 276 10 HTML 1778 275 URL 98 9 見ての通り, 顕著に登場頻度に差があることがわかりますね. なお上記の null の出現数には WebIDL の nullable (T?) を含めていないため, Web 標準における実際の null の

                                  null or undefined #kyotoasterisk とその補足など - Object.create(null)
                                • Amazon S3が「条件付き書き込み」に対応。既にオブジェクトがある場合は上書きせず、分散アプリケーションでの利用が容易に

                                  Amazon Web Servicesは、オブジェクトストレージを提供する「Amazon S3」の新機能として「条件付き書きこみ」(Conditional Writes)をサポートしたことを発表しました。 条件付き書き込みを利用すると、オブジェクトの書き込み時にオブジェクトの存在をチェックし、オブジェクトが存在しない時だけ書き込む、という指定が可能になります。 これにより、アプリケーションがデータをAmazon S3に書き込む際に、既存のオブジェクトを上書きすることを簡単に防ぐことができるようになります。 例えば、複数のクライアントが同一オブジェクトにデータを書き込んでいくような分散処理において、不用意に既存のデータを上書きしないように書き込む直前にオブジェクトを確認するといった処理をアプリケーションで作りこむ必要がなくなり、Amazon S3に任せることができるため、Amazon S3を

                                    Amazon S3が「条件付き書き込み」に対応。既にオブジェクトがある場合は上書きせず、分散アプリケーションでの利用が容易に
                                  • ネストオブジェクトの罠 RE: TypeScriptで「選択肢」の定義をEnum的な定数にまとめる

                                    この記事は、静的解析とビルドサイズ面で興味深いテーマでした。記事として自分の考えを書きます。 注意。あくまでビルドパフォーマンス視点での最適化です。強い意図があって、自分のドメインモデリングの方法論ではこれが最適なんだ、というなら元コードの方法論を止めるつもりはありません。 元記事のコードを minify するとどうなるか 元コードを参考に、それにアクセスするサンプルコードを書いてみます。 const sortingOptions = { priceDesc: { id: "priceDesc", sort: "price", order: "desc", label: "価格が高い順", }, priceAsc: { id: "priceAsc", sort: "price", order: "asc", label: "価格が安い順", }, ratingDesc: { id: "ra

                                      ネストオブジェクトの罠 RE: TypeScriptで「選択肢」の定義をEnum的な定数にまとめる
                                    • JavaScript エンジンの高速化

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

                                        JavaScript エンジンの高速化
                                      • 【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
                                        • Amazon S3にマルウェアを発見したらアクセスをブロック「Malware Protection for Amazon S3」提供開始

                                          Amazon S3にマルウェアを発見したらアクセスをブロック「Malware Protection for Amazon S3」提供開始 Amazon Web Services(AWS)は、Amazon S3に保存されているオブジェクトをAmazon GuardDutyでスキャンし、マルウェアを発見した場合にはそのオブジェクトへのアクセスをブロックできる新サービス「Malware Protection for Amazon S3 Amazon GuardDuty」の提供開始を発表しました。 AWSには以前から継続的に環境内をモニタリングしてマルウェアを検出するサービスであるGuardDutyが提供されています。 Malware Protection for Amazon S3 Amazon GuardDutyでは、このGuardDutyによってAmazon S3のオブジェクトをスキャンし、

                                            Amazon S3にマルウェアを発見したらアクセスをブロック「Malware Protection for Amazon S3」提供開始
                                          • 見よ、これがHonoのRPCだ

                                            僕が開発しているWebフレームワークHonoは、同じJavaScriptのフレームワーク、Expressと比べられることが多いです。どちらもやれることはほぼ同じですが、HonoのアドバンテージはファーストクラスでTypeScriptをサポートしていることです。特に「RPC」機能は他のフレームワークにはなかった「TypeScriptの型でサーバーとクライアントの仕様を共有する」ことを可能にしています。今回はそのHonoのRPCについて紹介します。 どんなものか まず、どんなものかを箇条書きで共有します。 Web APIの仕様、特にインプット・アウトプットをサーバーとクライアント間で共有するためのもの OpenAPIやgRPCを使ってやりたかったことを叶えるかもしれない サーバーとクライアントをどちらもTypeScriptで書くことが大前提である 同種のものにtRPCがあるが、Honoの場合、

                                              見よ、これがHonoのRPCだ
                                            • サブクエリの書き方を2万文字弱かけてすべて解説する

                                              これはなに ども、レバテック開発部のもりたです。 今回はSQLのサブクエリについてまとめます。仕事でクエリを書く際、サブクエリは頻出の構文だと思うんですが、同時にサブクエリの書き方を完全に理解しているよという人は案外少ないのではないでしょうか?[1] 実際、MySQLの公式ドキュメントを見ると12ページくらいを割かれており、意外と奥深いのがサブクエリです。使いこなせると便利ですし、何よりちょっとSQLのコツみたいなのがわかって面白いよ、ということで記事にしてみました。 前提 この記事は以下の前提を含んでいます。 環境 MySQL8.0系 読者の知識 なんとなくサブクエリが書ける けど相関サブクエリとかになると「あーっ」つってGoogle meetを閉じてしまうくらいのレベル感 記事のボリューム 18,000文字 おれの卒論が20,000文字だった マサカリ 間違ってたら投げてくれ〜〜 それ

                                                サブクエリの書き方を2万文字弱かけてすべて解説する
                                              • なんでもメモして個人的な知識を蓄える「Obsidian」のキャンバスデータ保存形式「JSON Canvas」がオープンソース化、中身はこんな感じ

                                                Markdown形式でメモを作成できるサービスのObsidianが使用しているObsidian Canvasファイル形式を「JSON Canvas」ファイル形式としてオープンソース化することを発表しました。 JSON Canvas — An open file format for infinite canvas data. https://jsoncanvas.org/ Announcing JSON Canvas: an open file format for infinite canvas data - Obsidian https://obsidian.md/blog/json-canvas/ 仕様についてはjsoncanvas.orgに記載されています。サイトにアクセスするとこんな感じ。右下の「Toggle output」をクリックしてみます。 右側にJSON Canvas形式

                                                  なんでもメモして個人的な知識を蓄える「Obsidian」のキャンバスデータ保存形式「JSON Canvas」がオープンソース化、中身はこんな感じ
                                                • オブジェクト指向宗教史

                                                  OOC 2024 の発表資料です。後のフィードバックを参考に、より妥当な文言に改訂してあります。 ※ 本コンテンツには、一部特定の宗教思想の迫害に言及する表現がございますが、そのような行いを肯定する意図の内容ではございません。

                                                    オブジェクト指向宗教史
                                                  • オブジェクト指向で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日付操作ライブラリ「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と直接連携、小さく、速く、使いやすく
                                                      • 今からでも遅くないconsoleを使いこなそう - Qiita

                                                        はじめに この記事では、consoleメソッドについて紹介を行っていきます。consoleメソッドには例えばconsole.log()などが挙げられます。web開発においてconsole.log()を使用する方は多いかもしれません。しかしconsoleにはconsole.log()以外にも様々なメソッドがあるので、状況に合わせて使い分けることで少しでも快適なデバック、開発ライフを目指しましょう。 consoleについて consoleオブジェクトを用いることで変数の値などをコンソール上に出力することができます。主に出力の確認であったり不具合の原因特定などのデバックするために使用されます。 代表的なものとして、console.log()がありますが、他にも様々な便利メソッドがあるので紹介を行なっていきたいと思います。 console.log() console.logはコンソールにメッセージ

                                                          今からでも遅くないconsoleを使いこなそう - Qiita
                                                        • JavaScriptは「参照渡し」をしないって本当? - Qiita

                                                          概要 タイトルの答えはYES. JSを勉強し始めたばかりで、JSにおける値渡し/参照渡し/参照の値渡しの処理の違いがわかりませんでした。 調べていくうちに「え、JSって参照渡ししないんだ!?」となったので、ここに学んだことをまとめようと思います。 追記:いただいたコメントをもとに修正しました。コメントありがとうございます! 結論 JSでの処理は「プリミティブ値は値渡し」「オブジェクトは参照渡し」と言われていますが、厳密には「参照渡し」はしません。 JSでは「参照の値渡し」(共有渡し、本文中では共有渡しに統一)が行われています。 値渡し、参照渡し、共有渡しとは 値渡し 引数に値を渡す時、変数の値をコピーして渡す処理。 呼び出しもとの変数は変化しません。 参照渡し 引数に値を渡す時、参照(=メモリ番地)で渡す処理。 変更が呼び出しもとに反映されます。 共有渡し 引数に値を渡す時、変数に格納され

                                                            JavaScriptは「参照渡し」をしないって本当? - Qiita
                                                          • C++erですがCOMに翻弄されています: 再入との戦い - Qiita

                                                            C++ Advent Calender この記事はC++のカレンダー | Advent Calendar 2023 - Qiita の21日目の記事です。 20日目: Try to make a try ! by @wx257osn2 22日目: C++ コンパイル時「出力」で画像ファイル生成 #C++ - Qiita by @Raclamusi はじめに 2021年に新卒で今の会社に入社して以来、ずっととある一つの製品の開発部門に所属していて、その中のWindowsチームというところにいます。 WindowsチームなのにiOSの要件が来たり、サーバーEoLの要件が来たりとなんだか特殊部隊感があるのですが、きっと気の所為です。 さて、ここまで入社以来ずっと本格的な理解から逃げ続けてきた存在があります。それがCOMです。 ところがついにこの秋から冬にかけての要件ではVisual Studio

                                                              C++erですがCOMに翻弄されています: 再入との戦い - Qiita
                                                            • JSONって何? - Qiita

                                                              この記事は「RUNTEQ Advent Calendar 2023」の24日目に参加しています🎄🎅✨ はじめに 現在プログラミングスクールRUNTEQで学習中のhimeです! 以前から気になっていた「JSON」について理解したいと思い、今回テーマに選びました! JSONについて整理したのち、最後にアプリのプロジェクトを立ち上げた際に生成される package.jsonというファイルが何なのか理解したいです。 自分が作ったアプリのpackage.jsonの中身を解説できたらな〜と思います。 JSON とは JSON(ジェイソン) は JavaScript Object Notation の略称です。 日本語訳だと「JavaScriptオブジェクト記法」になります。 JSONは、データの構造化とデータの交換を目的とした軽量なデータ形式で、 ファイルの拡張子は.jsonです。 まとめると、J

                                                                JSONって何? - Qiita
                                                              • TypeScriptのジェネリクス型を使って型に柔軟性を持たせる - iimon TECH BLOG

                                                                ■はじめに ■ジェネリクス型とは? ■ジェネリクス関数を作る ■extendsで制約を付与したジェネリクス型 ■keyofで制約を付与したジェネリクス型 ■ジェネリクスクラスを作る ■ユーティリティのジェネリクス型 ◆Required < Type > ◆Readonly< Type > ◆Pick< Type, Keys > ■最後に ■参考記事 ■はじめに こんにちは、株式会社iimonでエンジニアをしている「白水」です。 業務では、主にフロントエンドを担当させていただいています。 本記事はiimonアドベントカレンダー13日目の記事となります。 今回はTypeScriptの「ジェネリクス型」について書いていきたいと思います。 ■ジェネリクス型とは? ここにnamesという変数があり、文字列を要素として持っている配列があります。 この配列の型は、画像の通りstring[]です。 これは

                                                                  TypeScriptのジェネリクス型を使って型に柔軟性を持たせる - iimon TECH BLOG
                                                                • 削除のビジネスロジックをドメイン層に閉じ込める簡単で強力な「DeletableIDパターン」の紹介

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

                                                                    削除のビジネスロジックをドメイン層に閉じ込める簡単で強力な「DeletableIDパターン」の紹介
                                                                  • ついに 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
                                                                    • Javaを中心に偏見ベースでプログラミング言語の関係をまとめた - きしだのHatena

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

                                                                        Javaを中心に偏見ベースでプログラミング言語の関係をまとめた - きしだのHatena
                                                                      • オブジェクト指向プログラミングの概要 - Qiita

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

                                                                          オブジェクト指向プログラミングの概要 - Qiita
                                                                        • 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
                                                                          • オブジェクト指向の複雑性を軽減する、データ指向プログラミング入門

                                                                            TL;DR データ指向プログラミング(DOP) とは、データとコードを分割してアプリケーションを設計・実装するプログラミングパラダイムのこと。 DOPの実装は、以下の原則に従う。 コードとデータを分離する 汎用的なデータ構造でデータを表現する データをイミュータブルなものとして扱う データスキーマとデータ表現を分離する 個人的にDOPは、バックエンドを宣言的プログラミングっぽく書くための現実的な解だと捉えています。実装の詳細は翔泳社より出版されている「データ指向プログラミング」をご覧ください。 はじめに こんにちは、株式会社CHILLNNという京都のスタートアップにてCTOを務めております永田と申します。 最近、エンジニアコミュニティでオブジェクト指向の定義に関する議論が行われているのを見かけます。Java育ちの自分にとって、オブジェクト指向の権威性を揺るがすような議論はかなり衝撃的だった

                                                                              オブジェクト指向の複雑性を軽減する、データ指向プログラミング入門
                                                                            • 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
                                                                              • 画像生成AI「DALL·E 3」の性能が凄まじい。これを無料で使わせるマイクロソフトは本気で競合をつぶしに来ている (1/3)

                                                                                10月1日頃、OpenAIの新しい画像生成AI「DALL·E 3(ダリ3)」が徐々に使えるようになり、その性能の高さから話題になっています。まずサプライズで使えるようになったのがマイクロソフトのBingチャット。日本語で「猫の画像を作ってください」などと入れるだけでかわいい猫の画像が出てくると。これが無料で使えるのは衝撃的です。マイクロソフトが巨大資本で他の会社をつぶしに来たなという感じですね。どう考えても、今のところはサーバーコストが果てしなくかかる赤字サービスなのは間違いないので……。 「ラーメンを食べる女の子」が描ける! なにより衝撃的だったのは、「アニメ風の少女と猫が遊んでいる姿を作ってください」というリクエストに対し、一発で完璧な正解を出してきたことです。Stable Diffusionだと苦手とされていた指も適切に描写されています。もうひとつの着目点はオブジェクト間の関係性です

                                                                                  画像生成AI「DALL·E 3」の性能が凄まじい。これを無料で使わせるマイクロソフトは本気で競合をつぶしに来ている (1/3)
                                                                                • 並列処理がとても苦手なPythonはプロセスを分けよう コードを書く時に意識したい2つのTipsと2つの落とし穴 | ログミーBusiness

                                                                                  Go、Python、Kotlin、Rust、TypeScript の5つの言語について「並列処理、並行処理の手法」というテーマに絞り解説する「並列処理をGo/Rust/Kotlin/Python/JSで解説!思想の違いを体感しよう」。Python編では橘氏が登壇。Pythonで並列処理を行う際の設計方針と、実装上の癖について話します。 西川氏の自己紹介西川大亮氏(以下、西川):ここからはPython編の「ちょっとしたデータ分析の並列化」というタイトルで、西川から話します。 GOに勤める西川です。今やっているのは、タクシーやハイヤーの営業支援。「お客さんを乗っけていない時間、どこを走ったらいいの?」とか「どういうところで待っていたら注文来やすいの?」というところのナビをする、「お客様探索ナビ」というサービスのいろいろなことをしています。小さなサービスなのでいろいろやっている感じですね。 Py

                                                                                    並列処理がとても苦手なPythonはプロセスを分けよう コードを書く時に意識したい2つのTipsと2つの落とし穴 | ログミーBusiness