タグ

2023年2月7日のブックマーク (11件)

  • 【C# 12 候補】IEnumerable 向けリスト パターン

    C# vNext (12 候補)紹介シリーズ。 今日はリスト パターンがらみ。 提案ドキュメント: List patterns on enumerables (この当時から、リスト パターンの文法には結構変更あり) 直近の Language Design Meeting ノート C# 11 のときの話 C# 11 でリスト パターンが入りました。 is [] みたいに、[] を使って配列とか List<T> に対するパターン マッチを行います。 ただ、C# 11 時点では、 countable: Length もしくは Count で長さを取れる indexable: [int index] (整数引数のインデクサー)で i 番目の要素を取れる sliceable: [Range range] や Slice(int start, int length) でスライスを作れる みたいな割と厳

    【C# 12 候補】IEnumerable 向けリスト パターン
  • 「良いコード/悪いコードで学ぶ設計入門」を読んだので自分の記事のコードをリファクタしてみた - Qiita

    はじめに 良いコード/悪いコードで学ぶ設計入門 というを年始に読みました。 実際に試してみたい内容が盛りだくさんだったので、以下記事の自分のコードを直してみようと思います。 【参考リンク】:【Unity(C#)】ARFoundationにおける平面検知シーケンスの実装 該当コード 今回修正するのは以下の処理です。 処理の流れとして、まずはスキャンを促すUIを表示します。 次に画面の中央からRayを出し、検出した平面と衝突した場合は画面タップを促すUIを表示します。 タップしたら画面の中央から出したRayと平面との交点にオブジェクトを表示するという流れです。 コードは以下です。 using System.Collections.Generic; using UnityEngine; using UnityEngine.XR.ARFoundation; using UnityEngine.X

    「良いコード/悪いコードで学ぶ設計入門」を読んだので自分の記事のコードをリファクタしてみた - Qiita
  • neue cc - StructureOfArraysGenerator - C#でSoAを簡単に利用するためのSource Generator

    最近はSource Generatorブームが続いていて、去年末に2022年のC# (Incremental) Source Generator開発手法という記事を出しましたが、まずは今年第一弾のSource Generatorライブラリです。 github.com/Cysharp/StructureOfArraysGenerator これは何かというと、structure of arrays(SoA)を使いやすくするためのコードを生成するというものです。まずそもそもSoAですが、WikipediaのAoS and SoAという記事によるところ(日語版はない)、CPUキャッシュを有効活用したりSIMDを適用させやすくなる構造だよ、と。通常C#の配列はarray of structures(AoS)になります。 上の通常の配列がAoSでXYZXYZXYZXYZといったように並んでいる構造で

  • 【C# 12 候補】コレクション リテラル

    今回はコレクション リテラルの話。 ・提案 issue: [Proposal]: Collection literals #5354 今日の話も、提案自体は去年から結構前向きに検討されてたものです。 リスト パターンの実装の過程で出てきた案で、元から「C# 11 には間に合わないかも」みたいな空気感だったもの。 昨年11月に C# 11 が世に出た後、改めて進捗が出始めたので、今日はその辺りの話になります。 ちなみに、Language Feature Status で、最近 "C# Next" の欄に並びました。 実装もちらほら始まっているので、割かし C# 12 入りが有望だと思います。 コレクション リテラルおさらい 去年から大体決まってそうなところをおさらい。 文法的には [] を使う案が有力です。 using System.Collections.Immutable; // いろん

    【C# 12 候補】コレクション リテラル
  • C#クックブック

    有用性が特に高く、生産性の向上や高品質なコードを担保するようなC#の機能について、遭遇する問題とその解決策を提示するレシピ集です。C#の開発者が知っておくと役に立つ情報を厳選。言語仕様や基など入門の内容は割愛し、脱初心者を目指す開発者、中級以上の開発者向けに、生産性を高め、コードの品質を高めることができるレシピを多数紹介しています。前半は実際にコーディングする手順に沿って、型の組み立て、アプリケーションの構築、アルゴリズムの実装、品質の向上・維持に関するテクニックを、後半ではLINQ、リフレクション、非同期プログラミングといったC#を特徴付ける機能と、データ分析、パターンマッチといった近年ますます重要視されているテーマを取り上げます。 まえがき 1章 型とアプリケーションの構築 アーキテクチャの構築 パターンの適用 オブジェクトの生存期間の管理 レシピ1.1 オブジェクトの終了期間の管理

    C#クックブック
  • ラーメンの構造に学ぶ、コード設計 - そこに汎用性はあるんか (≠Rahmen編)

    プログラムを使ってある仕様を実現するとき、多くの場合、そこに"唯一の答"はありません。 同じ仕様、機能を実現するコードにも多様性があります。 プログラミングにおいてしばしば問題になるのが、「その様々なコードのうち、どのコードを選んで実装するか?」ということです。 とりあえず機能が実現されるという点においてはどのコードを選んでも同じであっても、その後の保守性や拡張性などにおいて、自分がどんなコードを選んで書くか という事は重要です。 今の時点では正しく動作しているコードであっても、可読性や拡張性などの観点でクソコード、悪いコードなどと揶揄される場面がしばしば見受けられます。クソコードというのはかなり強い言葉で、あまり良い言葉だとは思わないですが、その言葉を発する人からすると、どうしてもそう言いたくなるような問題があるのでしょう。 ところで、同じ労力で悪いコードを避けて実装できるのであれば、そ

    ラーメンの構造に学ぶ、コード設計 - そこに汎用性はあるんか (≠Rahmen編)
  • 続かない「習慣」を身につけたりやめたり、自在に扱うための5つの法則 | ライフハッカー・ジャパン

    法則1 「○○したら□□をする」のセットで考えるまずは、新しい習慣を身につけるときに今すでにある習慣「○○」の前後に、新しい習慣「□□」をかならず行うようにするということです。 今ある習慣にくっつける形で新しい習慣を行うタイミングを決めるということですね。 これは、どんな習慣を身につけるときでも有効に働く最重要法則といえるものです。(129ページより) たとえば、「朝の洗面後に常温の水を飲む」「お風呂のあとにストレッチをする」などがそれにあたるわけです。 なお、時刻でタイミングを決めるのではなく、“日常的な行動”をきっかけにしてタイミングを決めることが大切。無意識に始めることができるようになるのが習慣なので、行動に紐づけてタイミングを決めるほうが無意識の状態に持っていきやすいのです。(129ページより) 法則2 アクセスしやすくする習慣にしたいことをできるだけ始めやすくするということです。

    続かない「習慣」を身につけたりやめたり、自在に扱うための5つの法則 | ライフハッカー・ジャパン
  • GA4データの分析用SQLまとめ|Dentsu Digital Tech Blog

    電通デジタルの中野です。 今回は、Google Analytics 4(GA4)をBigQueryで分析する際によく使うSQLをまとめました。 自身の業務でもよく使用するため備忘録的な側面もありますが、参考までに活用いただければと思います。 前提BigQueryに連携したGA4データにはいくつか前提条件があります。 その中で最も大きな点は、GA4のレポート画面と数値が一致しない場合がある、ということです。 詳細については、こちらのページに記載があります。 ユーザー数やセッション数といったユニーク数を算出する場合、データ量が多いと計算に時間がかかります。そこでGA4レポートではHyperLogLogというアルゴリズムを使用して近似値を算出しています。 精緻な値を計算する場合は、現状BigQuery以外に手段がありません。こういった制約からもBigQuery上でSQLを使った分析をする場面は増

    GA4データの分析用SQLまとめ|Dentsu Digital Tech Blog
  • Cloud Runで動くJVMの監視にログベースの指標が便利 - 株式会社ヘンリー エンジニアブログ

    株式会社ヘンリーでSREをやっているTODA(@Kengo_TODA)です。弊社ではGoogle Cloud PlatformGCP)を活用してサービスを構築しており、またサーバサイドにはKotlinを利用しています。Cloud Runで動くJVMサービスの監視にログベースの指標が便利だったので紹介します。 何をもってJVMで駆動するサービスを「メモリが足りていない」と判断するか Cloud Runのメモリ監視で最も利用しやすいのは、Cloud Monitoringでメモリ利用率などを見ることでしょう。次に示す図のように、サービスごとのデータを取ってグラフ化できます。 図1 メモリ利用率をプロットしてみた ではこのグラフから何がわかるのでしょうか?例えば下側に紫色で示されたCloud Runサービスはメモリにずいぶんと余裕がありそうです。常時この状態であれば、メモリ割当量を減らしても良さ

    Cloud Runで動くJVMの監視にログベースの指標が便利 - 株式会社ヘンリー エンジニアブログ
  • 無償で使えるWeb3プラットフォーム、富士通が提供へ 疑似量子やHPCパワーを利用できるAPIも用意

    富士通は2月6日、「Fujitsu Web3 Acceleration Platform」を提供すると発表した。同社のブロックチェーン技術やデジタルトラスト技術を盛り込んだプラットフォームで、同社の共創プログラムに参画し、Web3の新サービス企画や実証実験を予定している国内外のパートナーを対象に無償提供を開始するという。 富士通執行役員 SEVP CTOのヴィヴェック・マハジャン氏、同社理事 SVP UvanceCore Technology 部長の有山俊朗氏 同プラットフォームは、富士通が開発した分散型データ流通と、デジタルIDやデータの真正性を証明するデータウォレットを組み合わせた「IDYX」に加え、ブロックチェーンを応用した台帳データベース「Chain Data Lineage」(CDL)を土台とする。富士通は、スパコン「富岳」にも採用された同社のHPC技術やデジタルアニーラを「C

    無償で使えるWeb3プラットフォーム、富士通が提供へ 疑似量子やHPCパワーを利用できるAPIも用意
  • 今後の React ではどの範囲を Suspense で囲むかという設計が重要になってくる

    はじめに 今後のReactではどの範囲をSuspenseで囲むか という設計が重要になってくる、という話をSuspenseの説明とともにしていきます! ※React18がリリースされて1年近く経つので今更感あるかもしれませんが、お付き合いください。 Suspense とは React18で正式な機能として実装された機能 ※React16.6で実験的機能として追加されていた Suspense でできること データ取得中ローディング状態の宣言的な記述 コンポーネント単位でのSSR コンポーネント単位でのJSロード コンポーネント単位でのHydration Suspense は単にローディングを宣言的に記述できるだけの機能ではない Suspenseはローディングを宣言的に記述できるもの、といった内容を目にすることが多い印象です。 しかし、Suspenseは単にローディングを宣言的に記述できるだけ

    今後の React ではどの範囲を Suspense で囲むかという設計が重要になってくる