タグ

jay-esのブックマーク (2,147)

  • From many to one: Moving our JavaScript code into a monorepo | Aha! software

    Aha! Develop is for healthy enterprise development teams — that use scrum, kanban, and SAFe frameworks Learn more Do we need a monorepo? When I first joined Aha!, I was surprised by how well-structured the engineering onboarding program was. I spent several weeks getting to know all the teams and learning the pieces of our system. What I didn't realize at the time was these onboarding conversation

    jay-es
    jay-es 2024/02/10
    既存のコードベースをモノレポに移行した話。Git 履歴の統合、ツール選定
  • When 'as never' Is The Only Thing That Works

    jay-es
    jay-es 2024/02/06
    `as never` が必要な例。ページのコード例だと formatter 関数の仮引数は `string & number & boolean` を満たさないといけないので never になる。そのため実引数 も as never しないといけない(as any でもダメ)
  • Method Shorthand Syntax Considered Harmful

    Matt PocockMatt is a well-regarded TypeScript expert known for his ability to demystify complex TypeScript concepts. You might have noticed that there are two ways you can annotate a function on an object in TypeScript. interface Obj { // Method shorthand syntax version1(param: string): void; // Object property syntax version2: (param: string) => void; } They look very innocuous. But there's a sub

    Method Shorthand Syntax Considered Harmful
    jay-es
    jay-es 2024/02/05
    type や interface でのメソッド省略記法は双変なので、予期せぬ実行時エラーを引き起こす危険性がある。関数のプロパティとして記述するのがよい。ESLint で禁止可能
  • Release v9.0.1 · typicode/husky

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    Release v9.0.1 · typicode/husky
    jay-es
    jay-es 2024/02/03
    husky v9 アップデートで設定が簡単になった👀
  • Why I'm excited for Biome's type inference

    A few weeks ago, Biome published their 2024 roadmap. There’s a lot of good stuff in there, but one thing has me particularly curious: type inference for implementing lint rules that rely on TypeScript type information. There’s a lot to unpack in that single sentence. What is Biome actually trying to achieve here? First of all, I would like to stress that they’re not trying to create a full impleme

    jay-es
    jay-es 2024/02/03
    Biome は現在 TypeScript リントルールのための最小限な型推論のサブセットを作っている。将来的には完全な型チェッカーやコンパイラーに発展する可能性あるので期待
  • マネジメントをして考えた、「会社にも自分にもいい」個人目標の設定ステップ|松下ゆき

    デザイナーの松下です。note株式会社で働いています。 私ふくむ会社員の多くは「期初に個人目標をたてる」「それをもとに上司から期末に評価をされる」というプロセスを踏んだことがあるのではないでしょうか? ところがこんな問題が… _人人人人人人人人人人人人人人_ > 個人目標、たてるのだるい <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄ 「個人目標」ってそもそもテキスト起こすの難しいし、特にデザイナーだと何をもって成果といえばいいかがよくわからないし、評価されるっていうのも心にくるからメンタルがいやな感じだし、 「結局何をかけばいいの?」「単に今後やる予定のものを書くんじゃだめなの?」などもかつてはよく思ってキーってなってました。 そんな中、リーダーとして、メンバーの個人目標を立てるサポートを行う機会がありました。 結果、自分なりに「個人目標」への解像度が高まり、以前よりは目標をどう立て

    マネジメントをして考えた、「会社にも自分にもいい」個人目標の設定ステップ|松下ゆき
    jay-es
    jay-es 2024/02/01
    自分の「こうなりたい」を把握する → 会社で何をすれば自分が評価されるか理解する。(自分と会社、両方がWINWINになるような状態)
  • @jay-es/nano-match

    nano-match 🎯 nano-match is a tiny utility simplifying key-based matching in TypeScript, bringing elegance to your code. Installation 🚀 import { match } from '@jay-es/nano-match'; type Language = 'en' | 'es' | 'fr'; const lang: Language = 'en'; // Strict matching, only allows valid keys of type 'Language'. const greeting = match(lang, { en: "Hello.", es: "Hola.", fr: "Bonjour.", }); console.log(g

    @jay-es/nano-match
  • React Server Componentsを理解する | POSTD

    私も年を取ったと感じるのは、今年Reactが10年目を迎えたからです。 混乱していた開発コミュニティにReactが初めて紹介されてから10年、以来いくつもの進化を遂げてきました。Reactチームは、急進的な改革ということに関しては躊躇しませんでした。問題に対して、より良い解決策が見つかれば、それを実行してきました。 数か月前、Reactチームは最新のパラダイム・シフトであるReact Server Componentsを発表しました。史上初めて、Reactコンポーネントがサーバーでのみ実行できるようになったのです。 このことに関連してオンライン上では、きわめて大きな混乱が起きています。それが何なのか、どのように機能するのか、利点は何か、そしてSSR(Server Side Rendering)などとどのように連携するのか、多くの人が多くの疑問を抱いています。 私はReact Server

    React Server Componentsを理解する | POSTD
    jay-es
    jay-es 2024/01/30
  • SPAの歴史とRemix SPAモードという到達点 / the SPA's chronicle reaches to remix

    Niigata 5分 Tech #4と、モニクル社の社内LT大会で喋ったやつです https://niigata-5min-tech.connpass.com/event/307076/

    SPAの歴史とRemix SPAモードという到達点 / the SPA's chronicle reaches to remix
  • Preview Docs - Visual Studio Marketplace

    VSCode Preview Docs ✨ This VSCode extension enables you to preview language and framework documentations directly within your IDE ✨. Preview Docs automatically scans your package.json file and generates documentation specific to each language and framework. Preview Docs supports over 300+ documentation sites. Preview Docs How to contribute? Contributions are welcome and encouraged! If you have any

    Preview Docs - Visual Studio Marketplace
    jay-es
    jay-es 2024/01/28
    プロジェクト内で使用しているライブラリーのドキュメントを一覧&表示できる VS Code 拡張
  • GitHub - rajnandan1/kener: Kener is a Modern Self hosted Status Page, batteries included

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - rajnandan1/kener: Kener is a Modern Self hosted Status Page, batteries included
    jay-es
    jay-es 2024/01/28
    ステータスページを作るためのキット。SvelteKit ベース
  • GitHub - unadlib/mutative: Efficient immutable updates, 2-6x faster than naive handcrafted reducer, and more than 10x faster than Immer.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - unadlib/mutative: Efficient immutable updates, 2-6x faster than naive handcrafted reducer, and more than 10x faster than Immer.
    jay-es
    jay-es 2024/01/28
    Immer 代替。10倍高速らしい
  • Next.js App Router キャッシュの今

    先日Vercelから「Next.js App Router Caching: Explained!」というタイトルの動画が公開されていたので、その内容をまとめることでNext.jsのキャッシュの今について整理しておこうと思います。 基 まずNext.jsでは、静的レンダリングがデフォルトです。RSCを使用していても基的にはビルド時にページが事前レンダリングされます。これはRoute Handlersも同様です。仮にビルド後にデータを更新してもリビルドしない限り表示は古いままであり、これは静的にレンダリングされていると言えます。 ただし、developmentとproductionでは挙動が異なります。ローカルではコードに変更を加えるたびにデータが再取得・レンダリングされるので、ローカルとビルド後の挙動に違いがあることを理解しておきましょう。 リクエストするたびに最新のデータを取得し表示

    Next.js App Router キャッシュの今
    jay-es
    jay-es 2024/01/28
    "ただし、developmentとproductionでは挙動が異なります。" ←これはキャッシュ以外でもいくつかあり、「ビルドしたら期待通りに動かなかった」が起こりがちなのが App Router のつらいところ
  • GitHub - microsoft/typespec

    Official Docs | Try TypeSpec Online | Getting Started | Language Overview TypeSpec is a language for defining cloud service APIs and shapes. TypeSpec is a highly extensible language with primitives that can describe API shapes common among REST, OpenAPI, gRPC, and other protocols. TypeSpec is excellent for generating many different API description formats, client and service code, documentation, a

    GitHub - microsoft/typespec
    jay-es
    jay-es 2024/01/28
    TypeScript にインスパイアされた、API 定義のための軽量言語。Open API や JSON Schema などに対応
  • イベントハンドラの関数名についての雑記 - Qiita

    今日のXでは、イベントハンドラの関数名についての話題を見ました。元の投稿はこちらです。要するに、次のhandleClickのようなhandleイベント名という命名は良くないということです。 const handleClick = () => { ... }; <button type="button" onClick={handleClick} /> これについて少し考えたので、せっかくなのでアウトプットしておくことにしました。 この記事の目的 考えたことを頭の中に残しておくのがもったいないので、文章の形にしておく。 色々な意見が出る問題であり、ベストな答えは無いので各々好きにすれば良いということを、読者に理解してもらう。 とはいえ、筆者の考えに納得して同じ考えの人が多いと嬉しいので、なるべく納得してもらう。 筆者の考え 自分の考えとしては、むしろhandleClickいいじゃん! どんど

    イベントハンドラの関数名についての雑記 - Qiita
    jay-es
    jay-es 2024/01/26
    わかる。React だろうが Vue だろうがイベントハンドラーとしての役割であれば handleClick みたいな命名をするし、onClick や v-on:click に addUser のような関数を直接渡すのもよくやる
  • 単体テストの考え方/使い方 まとめ

    著者は古典学派のスタイルを好んでいて、書では古典学派の定義を採用している テスト対象の焦点をクラスに当てるのは間違っていて、1単位の振る舞いに焦点を当てなければいけない。 また、ロンドン学派のスタイルだと単体テストがテスト対象の内部的なコードと密接に結びつく傾向があるため、賛同できない。 3章 単体テストの構造的解析 AAAパターンという単体テストの構造を用いることで、全てのテストケースに対して簡潔で統一された構造を持たせることができる。また、この構造に慣れることで読みやすさが向上し、保守コストを下げることにつながる。 準備フェーズ(Arrange)フェーズ...ケースの事前条件を満たすように、テスト対象システムとその依存の状態を設定するフェーズ 実行(Act)フェーズ...テスト対象の振る舞いを実行するフェーズ 確認(Assert)フェーズ...実行した結果が想定した結果であることを確

    単体テストの考え方/使い方 まとめ
  • うひょさん、よしこさんと改めて考えるReactコンポーネント設計 | Offers Magazine

    はじめに 佐藤:佐藤歩です。現職では開発からしばらく離れていたんですが、最近またまとまった量のリプレイス開発に携わってるので、モデレーターとして、よしこさん、うひょさんからいろいろお話を伺っていきたいなと思っております。 よしこ:こんばんは。よしこです。株式会社ナレッジワークに創業期に入社し、フロントエンドエンジニアをしています。プロダクトの0→1のところから、今の1→10のフェーズに入るまで、SPAのアプリケーション設計や運用をしてきました。 うひょ:うひょです。株式会社バベルに在籍しています。これまでずっとTypeScriptReactフロントエンドのアプリ開発に携わってきました。昨年はTypeScriptに関するも出版しています。 佐藤:今回は、Reactのコンポーネント設計におけるこちらの5つのテーマごとに、よしこさんとうひょさんに順番に簡単にお話をしていただきつつ、都度ディ

    うひょさん、よしこさんと改めて考えるReactコンポーネント設計 | Offers Magazine
  • RemixでWeb標準を学んだ1年間 / First year with Remix

    フロントエンド技術選定 ~2023を振り返る~ Lunch LT での発表資料です https://findy.connpass.com/event/306714/

    RemixでWeb標準を学んだ1年間 / First year with Remix
  • コンテキスト - GitHub Docs

    コンテキストについて コンテキストは、ワークフローの実行、変数、ランナーの環境、ジョブ、ステップに関する情報にアクセスする方法です。 各コンテキストは、プロパティを含むオブジェクトであり、文字列またはその他のオブジェクトにすることができます。 コンテキスト、オブジェクト、プロパティは、ワークフローの実行条件によって大きく異なります。 たとえば、matrix コンテキストはマトリックス内のジョブに対してのみ設定されます。 式構文を使用してコンテキストにアクセスできます。 詳しくは、「式」を参照してください。 ${{ <context> }} 警告: ワークフローとアクションを作成するときは、コードが攻撃者からの信頼されていない入力を実行する可能性があるかどうかを常に考慮する必要があります。 攻撃者が悪意あるコンテンツを挿入してくるかもしれないので、特定のコンテキストは信頼できない入力として扱

    コンテキスト - GitHub Docs
    jay-es
    jay-es 2024/01/24
    GitHub Actions 内で使う `github` や `env` のドキュメント
  • GitHub - pi0/tired-maintainer: 🗒️ Notes from a tired maintainer

    Hi. You might have come across this text either because you found it somehow or with a link, perhaps in a closed Pull-Request (PR) Issue or a chat. If you are coming from a closed issue or PR, before everything THANK YOU for your contributions and help, i do appreciate that ❤️ The thing is, maintaining multiple open-source projects is not as easy as you might imagine. As a full-time open-source ma

    GitHub - pi0/tired-maintainer: 🗒️ Notes from a tired maintainer
    jay-es
    jay-es 2024/01/23
    OSS のメンテナーは大量の通知やメッセージが来る。PR がすぐマージできないことには理由がある。催促やめて。連絡する際は詳細な情報を添えて欲しい