UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

2024-07-01から1ヶ月間の記事一覧

【Notion】APIを使ってNotionDBにデータを保存する

APIを使ってNotionDBにデータを保存したく、やり方を調べた まずは、notion の integrationsページにいく www.notion.so ここで、新しいインテグレーションを作る必要があるが、これはworkspaceに対して管理者権限がないと行えない なので、権限をつけてもら…

【Slack】チャンネルのスレッドのやり取りを取得する

Slack API でチャンネルのスレッドのやり取りを取得したい 基本的なセットアップはこちらに書いたので、やりたいことに合わせて設定をする uga-box.hatenablog.com 権限付与 appに権限を持たせる 必要な権限はAPIのドキュメントに記載されている api.slack.c…

【Slack】slack appを作る

初めてslack appを作ったのでメモ まずここにアクセス api.slack.com 右上の「Create New App」をクリックすると以下のポップアップが出てくるので 「From scratch」を選択 次の画面で、App Nameと導入する Workspace を選択して、「Create App」 基本的な流…

【Kotlin】Operator overloadingを調べた

Kotlinの関数についてる operator がわからなかったので調べた kotlinlang.org operator はオペレータオーバーロードという機能で、独自のクラスに対して演算子の振る舞いをカスタマイズできるというもの 例えば、プログラミング言語に組み込まれている演算…

【Kotlin】when式ついて

Kotlinを触ってみていて、when式というの調べてみた kotlinlang.org 基本的な書き方 when (x) { 1 -> print("x == 1") 2 -> print("x == 2") else -> { print("x is neither 1 nor 2") } } 分岐条件が満たされるまで、引数をすべての分岐と順番に照らし合わ…

【Git】git submodule について

Git

gitのsubmoduleを使ったことがなかったので調べた git-scm.com submoduleは、あるプロジェクトで作業をしているときに、プロジェクト内で別のプロジェクトを使わなければならない時に使う 例えば、自身が別途開発している複数の親プロジェクトから利用してい…

【Kotlin】KotlinのORMライブラリのExposedについて

KotlinのORMライブラリのExposedを知ったので調べた jetbrains.github.io Exposedは、JetBrains社が開発したKotlin専用の軽量SQLライブラリ 特徴の1つとして、テーブルアクセスのやり方が2通りある DSL (Domain Specific Language) 複雑なクエリや結合が必…

【gRPC】Field behavior のIMMUTABLEとは

gRPCのソースを読んでいて、よく出てくるField behaviorのIMMUTABLE がよくわからなかったので調べた RecognitionAudio audio = 2 [(google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE]; google.aip.dev Field behaviorは、P…

【gRPC】repeatedのfieldのサブフィールドに対してfieldMaskしたい

以前、gRPCの更新の際に、FieldMaskを使って余計なフィールドを更新しないようにする方法を調べた uga-box.hatenablog.com 今度は、repeatedのfield、いわゆる配列の要素のサブフィールドに対してfieldMaskしたい場合はどうするか調べた 例えば、次のような …

【アルゴリズム】Fractional indexing で並び替え機能を考える

一覧の並び替えの更新に関して、面白い方法を知ったのでメモ www.figma.com Figmaのように複数人で共同編集できる場合で、順序付けられたリスト内に新しい要素を挿入する場合、1度の編集で全てのリストを更新する方法だとタイミングよっては意図しない状態…

【gRPC】KotlinでFieldMaskで無駄なフィールドを更新しないようにする

gRPCでの更新の際、クライアントからEntity情報をサーバーに渡すが、不要なフィールドは更新しないようにしたい 例えば、以下のようなデータのemailだけ更新したい場合 { "user": { "id": "001", "name": "uga", "email": "uga@gmail.com" } } gRPCでは Prot…

【gRPC】KotlinでgRPCチュートリアル

gRPCのお勉強で、KotlinでgRPCチュートリアルをやってみて、わからなかったことを調べた grpc.io ソースコードをcloneしてきて、ビルドして起動してみる $ git clone --depth 1 https://github.com/grpc/grpc-kotlin $ cd grpc-kotlin/examples $ ./gradlew …

【Architecture】古典ドメインモデリングパターンから解脱する話

吉祥寺pmで発表された@kawasimaさんのスライドを見た scrapbox.io 「古典」ドメインモデリングパターンとは以下の2冊で書かれているドメインモデルパターンのことを指している Patterns of Enterprise Application Architecture Domain-Driven Design - Tack…

【タスク管理】マーニャの法則とは

マニャーナの法則というのを知ったので調べた これはスペイン語の「mañana(明日)」に由来する考え方で、物事を「後回しにする」という文化的な姿勢や態度を指す言葉 「明日やる」を基本にすることで、仕事を完全に終わらせるタスク管理方法 主なポイント …

【技術本まとめ】ドメイン駆動設計をはじめよう(第四部)読書メモ

「ドメイン駆動設計をはじめよう」という本を読み始めた ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法作者:Vlad KhononovオライリージャパンAmazon 第四部の「他の方法論や設計技法との関係」について読書メモを書いて…

【技術本まとめ】ドメイン駆動設計をはじめよう(第三部)読書メモ

「ドメイン駆動設計をはじめよう」という本を読み始めた ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法作者:Vlad KhononovオライリージャパンAmazon 第三部の「ドメイン駆動設計の実践」について読書メモを書いておく 第…

【技術本まとめ】ドメイン駆動設計をはじめよう(第二部)読書メモ

「ドメイン駆動設計をはじめよう」という本を読み始めた ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法作者:Vlad KhononovオライリージャパンAmazon 第一部に続いて、第二部の「実装方法の選択」について読書メモを書い…

【技術本まとめ】ドメイン駆動設計をはじめよう(第一部)読書メモ

「ドメイン駆動設計をはじめよう」という本を読み始めた ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法作者:Vlad KhononovオライリージャパンAmazon まず第一部の「設計の基本方針」についての読書メモをかいていく 設計…

【pnpm】corepackを使って各プロジェクトのバージョンに合わせたpnpmを利用する

あるプロジェクトで pnpm を使っていたのだが、別のプロジェクトで Node.js のバージョンをnodebrewで変えた時、pnpmがインストールされていないとなった そんなはずはと、Node.js のバージョンを戻してpnpmがどこにパスが通っているか調べたら、以下に通っ…

【開発環境】direnvという環境変数を管理するツールを知った

direnvというツールを知ったので使い方等を調べた github.com direnvはシェル(bash、zsh、fishなど)を拡張し、特定のディレクトリに入ったときに自動的に環境変数を設定し、そのディレクトリから出たときに環境変数を元に戻すことができるツール セットア…

【JavaScript】Terserを触ってみる

TerserというJavaScriptコードを圧縮・最小化するためのツールを知って使ったことがなかったので触ってみる terser.org 基本的な使い方 $ terser -c -m -o output.js -- input.js オプション -c: コードを圧縮 -m: 関数名などの名前を短い名前に変換 -o outp…

【GraphQL】UNIONで型が競合するフィールドをどうするか

UNION型に対してクエリする時、フィールド名が一緒だが型が違うため、競合エラーを起こした { firstSearchResult { ... on Person { value { name } } ... on Photo { value { name } } } } { ... "message": "Fields \"value\" conflict because they retur…

【システム開発】Featureフラグについて

Featureフラグについて調べた こちらの資料が主に参考になった speakerdeck.com RevComm社がサービスの安定性と信頼性を高めるためにFeature Flagを導入し、実践した過程と結果をまとめたもの Feature Flagとは、ソースコードの修正や再デプロイなしに機能の…