タグ

ブックマーク / qiita.com/uehaj (14)

  • 流行り始めたtRPCでAPI通信を型にはめて開発しよう - Qiita

    NTTテクノクロスの上原です。 この記事はNTTテクノクロスアドベントカレンダー2022、19日目の記事です。昨日は@kanaza-sさんの記事「PostgreSQL15のロジカルレプリケーションを触ってみる」でした。 tRPCとは何か 最近話題のtRPCですが、あらためて簡単に説明します。 tRPCは、TypeScriptの静的型指定情報を積極的に利用した、遠隔プロシージャ呼び出しのライブラリです。つまり別のサーバ上のコードの呼び出しを、プロシージャ呼び出しのように書くことができる機能です。 tRPCの特徴は、TypeScriptに依存していることと、スタブ・スケルトンといったコード生成を行わないことです。設定ファイルやIDLもありません。コードだけです。 tRPCとは何でないか RESTではない POST,GET,PUT,DELETEなどHTTPのメソッドを使いわけない。使いわけは、q

    流行り始めたtRPCでAPI通信を型にはめて開発しよう - Qiita
    uehaj
    uehaj 2022/12/19
    投稿しました。tRPCはOSI→TCP/IP、XML→JSON、CORBA→RESTfulといような「軽いものが選ばれる」のトレンドに沿うものかと。
  • React Queryを状態管理ライブラリとして使い倒そう!/useQStateのススメ - Qiita

    はじめに NTTテクノクロスの上原です。 この記事はNTTテクノクロスアドベントカレンダー2021 24日目の記事です。昨日は@watanyさんの記事」、明日は@j-yamaさんの記事になります。 自分は過去のAdvent CalenderではReact関連では(React Meets Grails、Grails React Scaffold、Redux Saga、Gatsby、React Spring、AirTableのAPPSをReactで作ろう)などを書いて来ましたが、結局1年ぶりに記事を書いています。もっともっとアウトプットしないといけないですね。 それはともかく、今回は「状態管理ライブラリとしてのReact Query」を紹介し、「useState感覚でクライアント状態管理する手法」 を提案してみたいと思います。何はともあれその手法とやらを先にみたい方はこちらのuseQState

    React Queryを状態管理ライブラリとして使い倒そう!/useQStateのススメ - Qiita
    uehaj
    uehaj 2021/12/24
    会社のアドベントカレンダーの記事を書きました。
  • ReactでAirtableのAPPS(アプリ)を作ろう!! - Qiita

    みなさんこんにちは。 NTTテクノクロスの上原です。業務ではGatsbyを使って内製キュレーションサイトの構築や運用などを行なっています(関連で一昨年書いた記事→Gatsbyの真の力をお見せします)。 これは、NTTテクノクロスアドベンドカレンダー2020 の20日目の記事です。昨日の記事は @y-ohnuki さんによる「iPhone12ProのLiDARスキャナを試してみる」でした。 去年はこんな記事(React-SpringのHooks APIでブラウザアニメーションを基から極めよう!)を書いてたわけですが、今年は新型コロナでいろいろとたいへんだった年でした。みなさまは、いかがお過しだったでしょうか。一年があっという間ですね。来年は何をしているのだろうか。 今年はノーコード・ローコード開発サービスであるAirtableのAPPS機能をプログラマ目線で紹介します。 対象読者 ノーコー

    ReactでAirtableのAPPS(アプリ)を作ろう!! - Qiita
    uehaj
    uehaj 2020/12/20
    アドベントカレンダー記事投稿しました!
  • React-SpringのHooks APIでブラウザアニメーションを基本から極めよう! - Qiita

    🎄メリークリスマスイブ!🎄 この記事は、React-Spring1というアニメーションのライブラリを紹介する NTTテクノクロス Advent Calendar 2019 の24日目の記事です。23日目は@yuitomoさんの記事、明日25日最終日は@korodroidさんの記事です。 2019年、令和初の年末も押しせまってまいりましたが、みなさん如何おすごしでしょうか? NTTテクノクロスの上原と申します。React/Gatsbyを用いた社内キュレーションサイトの構築や運用などを担当しています。当社では上記含め、SPAの開発にReactが採用されるケースも比較的多く、社外ブログにReactVRの記事を書いたり、去年のアドベントカレンダーイベントではGatsbyの記事「Reactベース静的サイトジェネレータGatsbyの真の力をお見せします」を書いたりしております。 はじめに Webサ

    React-SpringのHooks APIでブラウザアニメーションを基本から極めよう! - Qiita
  • Reactベース静的サイトジェネレータGatsbyの真の力をお見せします - Qiita

    NTTテクノクロスの上原です。 業務では、社内情報のReact製自前キュレーションサイトの構築を担当しています。 この記事はNTTテクノクロスAdvent Calendar24日目の記事であり、社内の勉強会で発表した内容をQiita記事として書きなおしたものです。タイトルは釣りです。 (2018/12/28追記あり) 導入 記事を書いた理由 Gatsby.js(以降、Gatsbyと表記)はさまざまな高速化テクニックを用いた「爆速サイト生成」で有名なツールですが、そのリッチな機能性は、たとえばイントラ内サイト、業務システム開発、ツール開発などでも十分に活用できるものだと思い、その可能性を紹介するために書きました。 「静的サイトジェネレータ」って何? いわゆる「静的サイトジェネレータ(Static Site Generator, SSG)」は、CMS(コンテンツ管理システム)の一種です。代表的

    Reactベース静的サイトジェネレータGatsbyの真の力をお見せします - Qiita
    uehaj
    uehaj 2018/12/24
    記事かきました
  • Dartの変数定義時の修飾static/final/const、そしてconst constructorについて - Qiita

    Dartの変数定義時の修飾static/final/const、そしてconst constructorについてDartstaticconstfinal 2019/09/13追記 Dart 2.5で「 As of Dart 2.5, we support many more ways to define constant expressions, including the ability to use casts and the new control flow and collection spread features shipped in Dart 2.3:」とのことで以下が可能となりました。文には反映していません。 // Example: these are now valid compile-time constants. const Object i = 3; const

    Dartの変数定義時の修飾static/final/const、そしてconst constructorについて - Qiita
    uehaj
    uehaj 2018/05/06
    投稿しました。 #dartlang #flutterjp #dart_meetup_tokyo
  • スタンドアローンGORMをGroovyスクリプトからシュっと利用する - Qiita

    G* Advent Calendar 2017 20日目の記事です。 GrailsのO/Rマッピングライブラリである「GORM」は、Grailsから切りはなして単体で使用することもできます。これをスタンドアローンGORMと呼びます。 非WebアプリやGrails以外の他のフレームワークから高機能なORMとして使うことも可能ですし、Grailsでのシステム開発の一部として、バッチやシェルスクリプトやsshでキックしたいとか、シェルアカウントの管理者権限者だけがデータベースにアクセスしたいときには、スタンドアローンGORMが有用なケースがあります。 というのも、そういうケースでは以下のような選択肢があるにはあるのですが、いずれも固有の課題を抱えているからです。 grails scriptsとしてGrailsサービスやGrailsドメインクラスを呼び出す処理などを記述し、Grailsのプロジェク

    スタンドアローンGORMをGroovyスクリプトからシュっと利用する - Qiita
    uehaj
    uehaj 2017/12/20
    G* Advent Calendar 2017 20日目記事書いた スタンドアローンGORMをGroovyスクリプトからシュっと利用する
  • WebAssemblyへのコンパイラ言語を簡単に実装 - Qiita

    後入りですみませんが、WebAssemblyアドベントカレンダー未投稿のところ埋めさせて頂きます。 記事では、WebAssemblyをターゲットとするコンパイラ処理系を実装します。 方針 WebAssemblyへのコンパイル言語処理系を最も簡単に 1実装するための方針は以下のとおり。 言語は「コンパイラがなるべく小さくなる言語として考案」されたBrainf*ckを採用 文法はPEG(Parsing Expression Grammar)で記述し、生成系PEG.jsでパーサを実行時に生成する WebAssemblyコード生成では文字列でWAST形式を生成し、wast2wasm2で変換する(直接WASMを生成しない)。またEmscriptenやbinaryenは使用しない WASTの表現ではflat形式ではなくs-expression形式を使用する ブラウザ上ではなくNode上で実行する。な

    WebAssemblyへのコンパイラ言語を簡単に実装 - Qiita
    uehaj
    uehaj 2017/12/18
    タイトルが長かったので変えた
  • Redux-Sagaでテトリス風ゲームを実装して学んだこと - Qiita

    はじめに React #1 Advent Calendar 2017の11日目です。 Reduxのミドルウェア「Redux-saga」で「やや複雑なリアルタイムゲーム」としてテトリス風のゲームの基部分を開発し、それを通じて学んだこと・感じたことを紹介します。 画面例 まずは実装したテトリス風ゲームの画面例。矢印キーの左右下でピースを動かし、z,xで回転です。 実際にこちらから遊べます。ソースコードはこちらから。 テトリス風ゲーム実装を通じて学んだこと Redux-Sagaの効用として良く言われるのは、「作用を分離する」とか「テストを簡単にする」ということです。それ以外に、今回、ゲームの実装を通じて思ったこと、思いついたことをつらつらと書いていきたいと思います。 利点1. ビューからビジネスロジックを分離する 利点2. ロジックとロジックの間を疎結合にする 利点3. ロジックフローの明確化

    Redux-Sagaでテトリス風ゲームを実装して学んだこと - Qiita
    uehaj
    uehaj 2017/12/12
    React Advent Calender 2017(#1)の11日目に投稿しました。
  • npmのモジュールバージョン指定におけるチルダ(~)とキャレット(^)の違いについての直感的な理解 - Qiita

    セマンティックバージョニングに従う。つまり、メジャーバージョンxを指定し、マイナーバージョンyの上昇、パッチバージョンzの上昇は互換性があるはずだと信じて、「x.{y以上}.{yが同じならz以上、yが上昇していれば任意} 」にあてはまる最新のものを使う。 開発時点と、ソース共有を経ての再ビルド(npm install)時の間で、NPMリポジトリ上の対象パッケージのバージョンが上がっている場合、より新しいものが使われることになる可能性があるが、セマンティックバージョニングの仕様に厳密に従わないパッケージは世の中に結構あるのではまり易い。

    npmのモジュールバージョン指定におけるチルダ(~)とキャレット(^)の違いについての直感的な理解 - Qiita
    uehaj
    uehaj 2017/06/25
    記事書いた
  • [redux][react][redux-saga]redux-sagaで検索機能の実装を写経してCSPのパワーを感じる - Qiita

    この記事は、@inuscriptさんによる「redux-observableで検索機能の実装を写経してRxJSのパワーを感じる」をRedux-Sagaで書きなおしたものです。 記事の目的 実用コードにおける非同期処理では以下のような問題が頻出する。これらについて元記事におけるRedux-obserbable(あるいはAngularが提供する)RxJSを用いた解決方法に対して、Redux-sagaによる解決方法を比較する。 (元記事よりの引用) この時、大きく以下3つの問題に当たる 1: キーストローク毎にリクエストするのはよろしくない 2: 同じリクエストで済むのに無意味にリクエスト飛ばすのはよろしくない foo -> fooo -> foo -> fooo -> foo みたいな入力をした場合に不必要にデータ飛んでしまう可能性 3: 複数リクエストを発火した場合の処理 A -> Bの順

    [redux][react][redux-saga]redux-sagaで検索機能の実装を写経してCSPのパワーを感じる - Qiita
    uehaj
    uehaj 2017/05/01
    記事書いた
  • 関数型プログラミングを業務開発に適用するための架空の社内勉強会資料 - Qiita

    関数型プログラミングを業務開発で活用するために HaskellやScala、Erlang/Elixir、Clojureなどの関数型プログラミング言語に興味がある人は多いと思いますが、自分らが日常行なっている業務での開発では到底それらの関数型言語を採用できないのが現実、という場合があるかもしれません。 なので、当面はJavaやGroovy、JS,Ruby,Pythonなどの非関数型プログラミング言語の上で関数型プログラミングスタイルや考え方をなるべく使っていくことでFPの考え方や技法に馴染み広めていき、利点を享受しつつ、将来は大手を振って転職業務開発で格的な関数型言語を使えるようにしていこうというのが現実的な戦略かもしれません。 以下はそのような目的での洗脳勉強会をやるための架空の資料の目次(案)のようなものです。 「独自研究」の注意 「FPとは何か」の定義について、現時点で一般に合意のあ

    関数型プログラミングを業務開発に適用するための架空の社内勉強会資料 - Qiita
    uehaj
    uehaj 2016/03/23
    追記しました "計算に必要な値の依存関係に着目するのは、そのような言語仕様や関数概念や副作用の定義の差異やブレが介入できないと言う意味で本質的、少なくとも実用的である。
  • 「リアクティブプログラミングが読み難い」というのは本当なのか? - Qiita

    追記(2017/05/2) redux-sagaでの非同期バージョンの紹介とリンクを追記。 追記(2017/2/23修正) 元記事の追記3にて言及を頂いたように、以下の「見易い版」コードは元コードが実現していた機能が抜けおちているという誤りがあります。遅くなりましたが、お詫びの上修正させていただきます。 修正内容は以下の「refreshボタン押下ですべての候補を消去」の項目に追記しました。 上記追記の趣旨として、リアクティブプログラミングはそれほど判り難いのだ、というご指摘になっていますが、返す言葉もございません。 はじめに 先日「リアクティブプログラミングとは何だったか」という記事を目にしまして、内容はたいへん興味深かったのですが、以下の記述がありました。 『宣言的』といえそうなのはわかりますし、パラダイムとして従来のコードとは一線を画すものであることは確かですが、どう贔屓目にみてもひた

    「リアクティブプログラミングが読み難い」というのは本当なのか? - Qiita
  • 第27回 オフラインリアルタイムどう書くの問題「分岐と行き止まり」をRustで解く - Qiita

    オフラインリアルタイムどう書くの過去問題「分岐と行き止まり」を、Rust(rustc 1.0.0-nightly (2fc8b1e7c 2015-03-07) (built 2015-03-07))で解きました。(他の言語での回答はこちら) Rustの感想 Rustは関数型プログラミングには向いてない、と思ったが、勘違いだった。やればできる。 やればできるのだが(後述)、iter(),into_iter()とcollect::<>()だらけのこれが関数型と呼べるのか、関数型プログラミングの成立条件には、簡潔さというものは必須条件なのではないか? あるいはiter()とcollect()は慣れると見えなくなるのか。 ただ、ライブラリの作りとしては関数型プログラミングの道具立はそろえられている。flat_mapしかり、zip, fold, fuse, ..。 ちなみに、iter(),into_

    第27回 オフラインリアルタイムどう書くの問題「分岐と行き止まり」をRustで解く - Qiita
    uehaj
    uehaj 2015/03/09
    Rustで関数型プログラミングはけっこういける
  • 1