2022年7月7日のブックマーク (4件)

  • 排他制御のためだけに Redis 渋々使ってませんか?データベース単独でアドバイザリーロックできるよ!

    トランザクション分離レベルについての教養があったほうがこの記事の内容を理解しやすいため,必要に応じてまず以下を参照されたい。 背景 以前, Qiita で以下の記事を投稿した。今回の議題に直接的な関係はないが,関連している部分があるため引用する。 MySQL/Postgres とも, MVCC アーキテクチャの恩恵で, SELECT と UPDATE は基的には競合しない。 単一レコードのシンプルな UPDATE でも排他ロックされ,排他ロック中のレコードへの UPDATE での変更操作は トランザクション分離レベルによらず ブロックされる。UPDATE 文に含まれる WHERE 句での検索もブロックされ,これはブロックされない SELECT による検索とは別扱いになる。 但し UPDATE 文の WHERE 句上で,更新対象をサブクエリの SELECT から自己参照している場合は例外。

    排他制御のためだけに Redis 渋々使ってませんか?データベース単独でアドバイザリーロックできるよ!
    codehex
    codehex 2022/07/07
    MySQL の GET_LOCK はコネクションが切れたりしたせいで RELEASE_LOCK に失敗してしまうこととかを考えるとタイムアウトの指定が必須だと思ってる
  • Cloudflare Workers で使えるグローバル変数を一覧する - アルパカの徒然文

    Cloudflare Workers では Module Worker Syntax と Service Worker Syntax の2つの記述方式が存在している。 Service Worker Syntax を利用している場合、環境変数はすべてグローバル変数として利用可能になる。 この方法はデバッグ目的とかで使える多分便利な技である。 addEventListener('fetch', (event: FetchEvent) => { // @ts-ignore console.log({ ...global }) event.respondWith(new Response("Hello, World!!")) }) コードを読んで分かる通り、グローバルで扱えるものすべて global 変数に格納されている。これは @cloudflare/workers-types にも定義されてい

    Cloudflare Workers で使えるグローバル変数を一覧する - アルパカの徒然文
    codehex
    codehex 2022/07/07
    Cloudflare Workers で使えるちょっとした裏技を書きました(短文)
  • React、過剰に複雑な代物。 - Qiita

    はいさい!ちゅらデータぬオースティンやいびーん! 今回の記事は筆者に珍しく、技術紹介ではなく、僕の個人的な意見を書きます。あくまでも、自説です。 React自体は画期的で、プログラミング界に貢献したプロジェクトだと思っていますし、完全に否定したいわけではありません。 Reactに対する違和感=芽生えては大きく育った種 筆者はReactがとても好きでした。JavaScriptが好きになったきっかけもReactでした。何から何までもReactで書き直して、Custom Hooksを作って、refを子部品に渡したり、バリバリ満喫していました。 Vue仕事の関係で習得せざるを得なくなったのですが、Vueは最高に大嫌いでした。これならReactで書き直してやるぅ!と思ったりも。 Reactについて社内でも導入を推進したり、React入門の勉強会を開いたりもしています。 しかし、そんな筆者は、最近に

    React、過剰に複雑な代物。 - Qiita
    codehex
    codehex 2022/07/07
    CustomHookの話はそもそもリアクティブプログラミングが難しいのはありそう 色んな気持ちは理解できる感じ
  • CloudflareでもFastlyでもVercelでもDenoでもBunでもService Workerでも動く

    HonoというWebフレームワークを作っています。 当初はCloudflare Workers向けに作っていたのですが、同じCDNであるFastlyのエッジランタイム、Compute@Edgeでも動くことが分かりました。また、Next.jsのEdge MiddlewareもしくはEdge API RoutesとしてVercelの環境でも動きます。そして、少々手を加えるとDenoでも動きました。もちろんDeno Deployにもデプロイできます。さらに、先程レポジトリが一般公開されたYet AnotherなJavaScriptランタイムのBunでも手を加えず動きました。 この「CloudflareでもFastlyでもVercelでもDenoでもBunでも動いた件」が、なかなか面白かったのでそれについて書きます。 Web標準のAPI これらの環境で同じように動くのは、JavaScriptでかつ

    CloudflareでもFastlyでもVercelでもDenoでもBunでもService Workerでも動く
    codehex
    codehex 2022/07/07
    どこエッジでも動くの凄すぎる