タグ

ブックマーク / qiita.com (242)

  • 【JavaScript】ネイティブで集合演算できるようになった - Qiita

    JavaScriptにはだいぶ前からSetオブジェクトがありましたが、何故か集合演算は全く定義されておらず自力で実装しなければなりませんでした。 その後、まあ不便だねってことでSet Methods for JavaScriptというproposalが提出されました。 実装は珍しくSafariが最も早く、2023/09/18のSafari17から対応しました。 その後2024/02/21にChrome122、そして2024/06/11にFirefox127で実装されたことにより、主要全ブラウザで集合演算が使用可能になりました。 複数環境で実装されたことから、無事ES2025としてStage4、つまり上がりになりました。 ということで使い方を紹介するよ。 Set.prototype.intersection() 要素と引数の、両方に含まれる値を返します。 new Set([1, 2, 3,

    【JavaScript】ネイティブで集合演算できるようになった - Qiita
  • テストコードを書く上で個人的に気をつけている5つのこと - Qiita

    はじめに エンジニアの皆様、テストコードはちゃんと書けておりますでしょうか?(挨拶) どんな開発言語や開発手法を導入していたとしても、アプリケーションの機能実装とテストは表裏一体であると言えます。場合によっては機能の作り込みよりも時間をかけるべきケースが多いくらい重要である(・・・と信じたい)反面、デッドラインが近づくにつれて真っ先に工数が削られやすく軽視されがちな工程でもあります。 時間に追われてテストコードを書いた結果、テストの体をなしていないコードになっていたり後で見返したときに記述が煩雑すぎてメンテ不能になっていたり・・・といった苦い経験は誰しもがあるかと思います。かくいう自分もそんなことは多々ありました。 そんな今までの経験則を基に「自分がテストコードを書くにあたってどんなことを意識しているのか?」をいくつかピックアップして備忘録も兼ねて紹介したいと思います。 一応注意なのですが

    テストコードを書く上で個人的に気をつけている5つのこと - Qiita
    ishiduca
    ishiduca 2024/06/28
  • TypeScriptを導入する意味と限界、型レベルプログラミングの紹介 - Qiita

    はじめに JavaScript/TypeScript初学者を抜けたあたりの方に向けてTypeScriptの利点や限界、型レベルプログラミングについて紹介します。 TypeScriptJavaScriptをラップしたライブラリであり、静的な型情報をつけることができます。また、それらの型情報をもとに型を推論し、型違反な代入やプロパティへのアクセスなどをプログラム実行 以前 に検知することができるようになっています。 例えば、動的型付けの言語であるJavaScriptでは、以下の関数のa,bには数値だけでなく、文字列を渡すことができます。数値同士を渡せば加算してくれますし、文字列同士を渡せば文字列連結をしてくれます。 「数値計算用の関数なのに、文字列連結に利用できてしまう」という緩さを開発時にはなるべく排除しようというのがTypeScriptを導入する意義です。 以下、TypeScriptの基

    TypeScriptを導入する意味と限界、型レベルプログラミングの紹介 - Qiita
    ishiduca
    ishiduca 2024/06/11
  • async/await 比較(C#, JavaScript, Python) - Qiita

    using System.Windows.Threading; Dispatcher.CurrentDispatcher.InvokeAsync(async () => { // いろいろな処理... // メッセージループを終了させる Dispatcher.CurrentDispatcher.BeginInvokeShutdown(DispatcherPriority.Normal); }); Dispatcher.Run(); WPF とか WinForms とかでは、フレームワークがすでにメッセージループを回しているので、自分で Dispatcher.Run() する必要はない。 JavaScript 自分で書く必要なし。 Python asyncio.run(最初に実行するasync関数)

    async/await 比較(C#, JavaScript, Python) - Qiita
    ishiduca
    ishiduca 2024/01/11
  • ハッカーのおもちゃとしてのNostrのススメ - Qiita

    はじめに Nostrという、SNSのようなものはご存知でしょうか? ご存知でなければ、ぜひまず一度触ってみることをお勧めします。 割と普通にSNSっぽく使えます。 分散系SNSっぽいシステム Nostrは、分散系のSNSっぽいネットワークです。 図で表すとこんな感じ。普通に想像するWebサービスとは随分形が違うと思います。 各所のリレーサーバーに、ユーザーは投稿をばらまき、ユーザーがそれを見る形です。 分散の責任がユーザー(クライアント)側にあって、リレーサーバーが落ちたり消えたりしても影響が起きにくい仕組みです。 より詳しい説明は上記でやってるのですが、端的に言って 中央管理者がいない(各リレーに管理者はいる) 冗長で災害に強い Websocketのリアルタイム通信 オープンでシンプルで、でも拡張し放題な仕様 数多のサーバーによる分散ネットワーク といった特徴があります。 ※P2P技術

    ハッカーのおもちゃとしてのNostrのススメ - Qiita
    ishiduca
    ishiduca 2024/01/04
  • Twitterカードが貼られたツイートはすべて詐欺です、という時代 - Qiita

    最近見つけた現象で既に論じられているかと思ったがちょっと解説が見つからなかったのでまとめておく。 手短に X(旧Twitter)クライアントで表示されるTwitterカードについてカードに表示されるドメインとは違うページにリンクさせる手法が存在する この手法は第三者のTwitterカードを利用することができる つまり悪用者は第三者のTwitterカードを表示させながら自身の意図するページに閲覧者を誘導することができる これはフィッシングの手法になりうる 見つけたツイート 以下のツイートはGoogleBloomberg、日経ビジネスのTwitterカードが添付されているがクリックするとそれらとは異なる情報商材サイトにジャンプする。リンク先に危険な仕組みはないと思われるがクリックは自己責任で。念を入れたい人は curl -L で。 PCブラウザでカーソルを合わせてもXの短縮URLサービスであ

    Twitterカードが貼られたツイートはすべて詐欺です、という時代 - Qiita
    ishiduca
    ishiduca 2023/12/08
  • 実践:はじめてのWebAPI設計 - Qiita

    はじめに この記事はAPIの基的な実装方法を丁寧に解説します。基礎を学びたい方、今更聞けないような知識の振り返りを求める方の役に立つことを願っています。もう十分理解できている!という方は、目次から実装にとんでみてください。 具体的にはHTTPと呼ばれる通信方法を利用した、シンプルなの貸し出しシステムの土台を考えます。要件の各ステップで、設計の基原則やベストプラクティスについても触れながら、より実践的な知見を共有できればいいなと思います。 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 基用語 Webに関する基礎知識の解説記事はQiitaに豊富にあったので、要点を抑えつつリンクをまとめました。 WebAPI Web

    実践:はじめてのWebAPI設計 - Qiita
    ishiduca
    ishiduca 2023/10/24
  • 今さら聞けないログの基本と設計指針 - Qiita

    ログの出力場所 ログは、開発者や運用担当者が見つけやすい箇所に出力することを原則としましょう。ファイルに出力する場合は、logディレクトリなどを作成しておくことをお勧めします。基的に、出力先は以下の4つが想定されます。 ・ファイルに出力する コンソール外で起動するアプリケーションに使用される方法です。 ・標準出力 コンソールから起動するアプリケーションで使用されます。途中経過などを出力するための出力方法です。 ・外部ログ管理ツールのファイルに出力 外部のログ管理ツールを用いることが可能な場合は、専用のログ記録場所に出力することを推奨しています。 ・外部システムへ出力 開発者・運用者の作業やコミュニケーションを円滑に行うために、Slackなどのチャットツールに出力するケースもあります。ただし、稼働率に注意する必要があり過度なログの出力は控えるようにしましょう。 基的に、外部ログ管理システ

    今さら聞けないログの基本と設計指針 - Qiita
    ishiduca
    ishiduca 2023/09/06
  • リーダブルコードを読んで重要だと感じたルールを抜粋 - Qiita

    はじめに 業務で開発をしていて、Pull Requestを送るたびに命名について厳しいレビューをもらうので、業務で特に重要だと感じた部分のみまとめてみました! 最初は「動けばいいじゃん!」と思っていたのですが、チーム開発、仕事となるとそうはいきません。 品質も含めて評価されるため、読みやすいコードを書くということは非常に重要です。 レビューで毎回のように 「ちゃんとリーダブルコードを読みましたか?」 と厳しい指摘を受けるので、できるだけその回数を減らしていきたいです。 毎日レビューで厳しい指摘を受けるのは(おそらく上司仕事のためとしてコードに対しての指摘をしていると思われるが)とても辛いです。 レビューは あくまでもコードの指摘をしているだけ で、自分自身の人間性や仕事に対するダメ出しをもらっているということではない!と思うようにしてます。 とはいえできるだけレビューで受ける指摘は減らし

    リーダブルコードを読んで重要だと感じたルールを抜粋 - Qiita
    ishiduca
    ishiduca 2023/08/30
  • imgタグの変化 - 気づいたら時代遅れなHTMLを書いてた - Qiita

    ( 2022年、仕事中であった事例からいろいろまとめた資料を Qiita に記載 ) 私は自社開発の会社に勤めるサーバーサイドエンジニア。 去年(2022年)、フロントエンドエンジニアが書いてたHTMLを見てたら以下のようなコードを見つけた。

    imgタグの変化 - 気づいたら時代遅れなHTMLを書いてた - Qiita
    ishiduca
    ishiduca 2023/08/22
  • ネットワークに基づく分散型SNS一覧(damus, nostr, Bluesky, AT Protocol, Mastodon, Misskey, Threads, ActivityPub ...) - Qiita

    ネットワークに基づく分散型SNS一覧(damus, nostr, Bluesky, AT Protocol, Mastodon, Misskey, Threads, ActivityPub ...)mastodonmisskeythreadsnostrBluesky はじめに Twitterの動乱に巻き込まれ、移住先に選ばれつつある Threads が5日で1億人を突破した今日このごろ、皆様いかがお過ごしでしょうか。 Alt Twitterとしての各種サービスに注目が集まりつつありますが、それらに関しての解説記事も乱立しており、一方で、その正確性や内容には必ずしも正確ではないものもあります。 プロトコルとアプリとサービスの区別がついていなかったり、相互接続できないものが接続できると宣伝されていたり、その逆もあります。 記事では、特にネットワークに基づいて、各種SNSを分類して説明します。

    ネットワークに基づく分散型SNS一覧(damus, nostr, Bluesky, AT Protocol, Mastodon, Misskey, Threads, ActivityPub ...) - Qiita
  • Bashを使いこなすための必須コマンド71選 - Qiita

    はじめに mkdir, ls, cp, touch, mv, rm以上のコマンドにあんまり触れていない。。。という方、もっとコマンドを使いこなしたい!という方。。。必見。 基的だが全部網羅するには大変な基コマンド及びショートカットを溢れんばかり71選お届けします。たくさんありますので、表題に何のコマンドか書いてあるのをご活用ください。 一部、macユーザー向けとなっていることをご了承ください。 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 Ctrl を使ったショートカット 最初に、Ctrlを使ったショートカットを紹介します。 Ctrl-A 行頭移動 ↓ Ctrl-E 行末移動 ↓ Ctrl-W 直前一単語を削除 ↓

    Bashを使いこなすための必須コマンド71選 - Qiita
    ishiduca
    ishiduca 2023/06/13
  • 【Go編】Next.js × Go × AWSでJWT認証付きGraphQLアプリとCI/CDを構築してみよう - Qiita

    ■ご案内■ 連載の背景/作成できるアプリケーション/進め方をご理解頂く上でも【環境構築編】 をご一読頂けると幸いです。 【環境構築編】 【Next.js編】 【Go編】  👈いまここです 【AWS編】 これからも頑張ってハンズオン系の記事を書いていきたいと思っているので、いいねっと思って頂けたらLGTM押していただけると励みになります! 環境構築 サンプルアプリの環境構築方法は【環境構築編】に記載しているので、そちらをご参照ください。 クリーンアーキテクチャ風なディレクトリ設計 以下の記事を参考にしつつクリーンアーキテクチャ風なディレクトリ設計をしてみました。 各階層間をインターフェースを利用して、システムの各部分を疎結合化しております。 # 簡単のため一部ファイルは割愛しています go-graphql-jwt-api/ ├── build/ │ ├── db/ │ └── dock

    【Go編】Next.js × Go × AWSでJWT認証付きGraphQLアプリとCI/CDを構築してみよう - Qiita
    ishiduca
    ishiduca 2023/05/29
  • LOCAL環境でHTTPSが必要なときはlocal-ssl-proxyが便利 - Qiita

    nextauth.js でシングルサインオン機能を実装する場合、SlackなどはアプリケーションがHTTPS接続をサポートしていることが前提となっており、開発時にもHTTPSのサポートが必要となる場合があります。このような場合には、local-ssl-proxyを利用して、リバースプロキシのようにする方法が簡単で便利です。 以下、LOCAL環境=Windows PC、という前提です。 local-ssl-proxyのインストール local-ssl-proxyはグローバルインストールしかサポートしていません。ので、グローバルインストールします。

    LOCAL環境でHTTPSが必要なときはlocal-ssl-proxyが便利 - Qiita
    ishiduca
    ishiduca 2023/05/22
  • ブラウザ上でフロントエンド開発(Node.js環境)ができるWebContainerを試す - Qiita

    概要 タイトル通りブラウザ上でフロントエンド開発(Node.js環境)ができるWebContainerを試してみる 参考記事 https://www.publickey1.jp/blog/23/webwebassemblynodejswebcontainerapihttpnodejs_cli.html ブラウザのみでローカルマシンに Node.js などをインストールすることなく開発環境を用意することができる。 サインアップ 個人利用で github の public リポジトリを使うのであれば無料で利用できる。 以下サイトにアクセス https://stackblitz.com/membership PERSONAL-FREE の「SIGN IN GITHUB」を選択し、github アカウントと接続する プロジェクト作成 https://stackblitz.com/ に移動 使用した

    ブラウザ上でフロントエンド開発(Node.js環境)ができるWebContainerを試す - Qiita
  • JWTとJWSとは何か - Qiita

    概要 今回はJWTとJWSについて自分の中でうまく説明できないことに気づき、改めて仕組み等を調べたのでアウトプットとしてこちらに記載していきたいと思います! JWTとは まず、JWTとはJSON Web Tokenの略でよく認証などに用いられる仕組みです。 先に言っておくとJWTは、それ自体が認証について何か規定しているわけではなく認証を行う際に利用される仕組みに過ぎません。 なのでJWT=認証ではないということは気に留めておいた方がいいかもしれません。 ではJWTは何をするのか? JWTは何をするのか JWTの役割は制約のあるHTTPヘッダやクエリパラメータにJSONデータをうまく付与できるようにすることです。 主に役割は2つあります。 JSONデータをURLセーフ(Base64URLでエンコード)にする JSONデータをコンパクトにする 1. データをURLセーフにする URLセーフと

    JWTとJWSとは何か - Qiita
    ishiduca
    ishiduca 2023/02/25
  • 並行・並列プログラミングと同期・排他制御とイミュータブル性の話〜その1「背景: クロック周波数の停滞とコア数の増加」 - Qiita

    大学の授業で講義資料を作ったので,Qiitaにも展開しておきます. 背景: クロック周波数の停滞とコア数の増加 コンピュータはクロック周波数に同期して計算をします.おおむね1秒間にクロック周波数の数で示されるだけの数の機械語命令を実行できると考えると良いです.たとえばクロック周波数が1GHzであれば,1GHz=1,000MHz=1,000,000(百万)kHz=1,000,000,000(10億)Hzですので,1秒間に1,000,000,000(10億)個の機械語命令を実行できるというような感じです.もちろんこれは概算です. いわゆるヘネパタ(J. L. Hennessy & D. A. Patterson: Computer Architecture: A Quantitative Approach, 6th edition. Morgan Kaufmann, 2017; 邦訳 中條・

    並行・並列プログラミングと同期・排他制御とイミュータブル性の話〜その1「背景: クロック周波数の停滞とコア数の増加」 - Qiita
    ishiduca
    ishiduca 2023/01/08
  • Google Mapよりすごい!と噂の位置情報サービスを使ってみた - Qiita

    こんにちは。ミーティングテクノロジーという会社で会議ツールを開発している伊勢川です。 仕事で位置情報サービスを軽く調べる機会があって、せっかくなので調べた内容を記事にしたいと思います。 位置情報(地図)サービスといえば、Google Mapを思い浮かべる人も多いのではないでしょうか。私もGoogle Mapのヘビーユーザー&ファンで、カーナビの代わりとして使ったり、街で見つけた史跡の写真等を2000件以上投稿したりしています。 B2Cのサービスの中ではGoogle Mapが圧倒的な存在感を放っていますが、B2B向けのサービスとなると様相が異なるようです。今回は、ある調査でB2B向けサービスの中ではGoogle Mapより高い評価がついていた「HERE」というサービスについて書きます。 Google Mapよりすごいと言われる所以はなにか Omdiaのレポートによると、B2B市場の位置情報サ

    Google Mapよりすごい!と噂の位置情報サービスを使ってみた - Qiita
    ishiduca
    ishiduca 2022/12/22
  • シンプル図解: 正規表現の (?= ) とか (?! ) とか (?<= ) とか (?<! ) とか - Qiita

    入社1年目、趣味は整理整頓、 @pal4de です。 正規表現が大好きです。 先日投稿した記事が好評いただき当にうれしかったです。もっとたくさんの人に読んでもらいたい!!! さて、上の記事で紹介したのは単語境界 \b でしたが、これは先読み/後読みを駆使して下記の通りに表せると紹介しました。 便利な\bですらショートハンドに過ぎず、真に強力なものは 先読み(?=...)と後読み(?<=...) だということを主張したい!!! わかりすい図解も添えましたので、是非お楽しみください🏝️ 正規表現の記号は4種類 先読みの紹介に入る前に、改めて正規表現を俯瞰してみましょう。 誤解を恐れずに言えば、正規表現に出てくる記号の種類は4つしかないといえます1 2。 このようにとらえてみると、正規表現と向き合うのがだいぶ楽になります。体系化された理解への第一歩ですね 🗿 図にもある通り、 行頭 ^ も

    シンプル図解: 正規表現の (?= ) とか (?! ) とか (?<= ) とか (?<! ) とか - Qiita
    ishiduca
    ishiduca 2022/12/22
  • Perlのカレンダー | Advent Calendar 2022 - Qiita

    edit_calendarHow to join the calendarYou can join the calendar by selecting an available date and registering the URL of the article you wish to link to. If a slot is available, you can go back to a past date to join!

    Perlのカレンダー | Advent Calendar 2022 - Qiita
    ishiduca
    ishiduca 2022/12/12