並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 301件

新着順 人気順

eslintの検索結果41 - 80 件 / 301件

  • React+Reduxアプリケーション テスト戦略 | Recruit Tech Blog

    はじめに このエントリは全5回を予定する19卒新人ブログリレーの第4回目です。 はじめまして、リクルートテクノロジーズ新卒2年目の高橋 勇人です。 現在は不動産検索サービスSUUMOのフロントエンドエンジニアとして働いています。新卒入社してからの1年間、SUUMOの新機能開発に携わり、物件を地図から探す機能の開発を進めてきました。 SUUMOではこれまでJavaScript+jQueryで開発されてきましたが、SPサイト上で地図による物件探し機能を実現するために、React+Reduxという技術スタックが採用されました。 (※SP=スマートフォン) 長期的な開発がされてきたプロダクトで、これまで使ってきていなかった技術スタックでの開発を推し進めるにあたり、継続的な保守性を向上するための取り組みの一環としてテストの整備が進められました。 本記事では、React+Reduxでの地図機能の開発に

      React+Reduxアプリケーション テスト戦略 | Recruit Tech Blog
    • ESLint を使い倒す(おすすめルール紹介)

      前書き ESLint は JavaScript, TypeScript のための静的検証ツールです。 ESLint を活用することで、コーディング規約やベストプラクティスを機械的に強制することによりコードレビューの手間を省き、本番環境でのエラーやパフォーマンスの悪化を抑制することができます。 TypeScript を使っているプロジェクトでは、パーサーを適切に設定すれば型情報を用いたより精密な静的検証を行うこともできます。 eslint を使う際、 eslint:recommended, plugin:@typescript-eslint/eslint-recommended などの各 eslint plugin の推奨 config のみを使って済ませたり、 eslint-config-airbnb などの config のみに頼ることも多い印象ですが、 recommended conf

        ESLint を使い倒す(おすすめルール紹介)
      • 幅広い環境でSSL対応するために知っておくべきこと

        - SSL関連の障害がなぜ起きてしまうのか? - 何で対応端末が変わるのか - 何をすれば障害を防げるのか? - SSL対応するためにどういう体制を組んでいたらいいのか? おことわり: 社内向け勉強会のスライドを再編集したものです。社外向けに割愛した結果、ちぐはぐになっている部分があります。

          幅広い環境でSSL対応するために知っておくべきこと
        • TypeScript Clearly & Quickly

          2024-01-01 quick-lint-js is a JavaScript bug finder. Today, version 3.0 makes it also a TypeScript bug finder! quick-lint-js complements TypeScript with beginner-friendly messages and fast linting. install quick-lint-js 🌐 try in browser code on GitHub Example code used in this article has been adapted from various open source projects, including some Copyright Tiny Technologies, Inc. and Copyrigh

          • CLIツールを作るためにoclifを試してみたら簡単すぎて吃驚した | Trial and Spiral

            CLI用のコマンドを作ってみようと思いたったのですが、CLI開発フレームワークoclifを試してみたらとても簡単で環境構築もすんなりできたのでびっくりしたという話。 概要 ある用途で思いたってCLIのコマンド作ろうと思った oclifというCLI用のフレームワークがあったので試してみた 簡単すぎてびっくりした 追加でPrettierとJestも対応してみました 動機 誰しもCLIのコマンドをつくりたくなることがたまにある。僕はある。 今回はGUIを作るまでもなく、コマンドでシュッと実行したい作業があったので勉強と遊びを兼ねてコマンドを作ることにしました。CLIの開発ツールはいろいろありますが、今回はやりたいことを実現するのにすでに知見としてあるものを流用したい背景aからNode.jsでやることにしまた。 Node.jsにもCLI用を作るためのライブラリがさらにいくつかありますが、今回はoc

              CLIツールを作るためにoclifを試してみたら簡単すぎて吃驚した | Trial and Spiral
            • HSEとは何か

              Heterogeneous-Memory Storage Engineについて解説します これは2020年6月6日に行われた カーネル/VM探検隊 online part1での発表資料です 参考文献 Heterogeneous-Memory Storage Engine: https://www.micron.com/hse Don't stack your log on my log: https://www.usenix.org/node/187064 電源を切っても消えないメモリとの付き合い方: https://speakerdeck.com/fadis/dian-yuan-woqie-tutemoxiao-enaimemoritofalsefu-kihe-ifang この資料のサンプルコード: https://github.com/Fadis/hse_demo カーネル/VM探検隊

                HSEとは何か
              • 「実装例から見る React のテストの書き方」をアップデートする

                社内の人から、自分が以前書いた次の記事が「便利で助かった!書いた時から何かアップデートある?」ってメッセージがきた。 そんな便利だなんてどうもありがとうございますウフフ、と思いながら書いた日を見てみると 2022-08-09 だった。もうすぐ 2 年経とうとしてる。時の流れが早くて怖い。 この記事に書かれた実装例はリポジトリにまとめていたんだけど、当然、何かメンテをしていたわけもなく、2022 年当時の状態がそのまま残っていた。 せっかく便利に思ってくれる人がいたので、内容をアップデートする。 アップデートまとめ メジャーバージョンのリリースやビルドツールの統一の観点で Jest から Vitest に移行 useFakeTimers({ shouldAdvanceTime: true }) @testing-library/reactを v15 にバージョンアップ MSW を v2 にバ

                  「実装例から見る React のテストの書き方」をアップデートする
                • tsconfig/bases の紹介!

                  { "extends": "@tsconfig/strictest/tsconfig.json", } 以上です! tsconfig.json ってどんなふうに書いていますか?? tsconfig.json をこんな感じで書いている人はいないでしょうか { "compilerOptions": { "strict": true, "allowUnusedLabels": false, "allowUnreachableCode": false, "exactOptionalPropertyTypes": true, "noFallthroughCasesInSwitch": true, "noImplicitOverride": true, "noImplicitReturns": true, "noPropertyAccessFromIndexSignature": true, "noU

                    tsconfig/bases の紹介!
                  • ESLintのローカルルールで独自のコーディング規約を実装する

                    Lightning TechTalks #2 〜フロントエンドで導入してよかったOSS〜 で発表させていただいたスライドです フラットコンフィグへの移行は最近新卒の方に一部やっていただきました 新卒エンジニアがESLintのFlat Config移行と格闘した話 - ドワンゴ教育サービス開発者ブログ ドワンゴ教育事業採用サイト

                      ESLintのローカルルールで独自のコーディング規約を実装する
                    • TypeScript + Node.jsプロジェクトにESLint + Prettierを導入する手順2020 - Qiita

                      TL;DR 完成形のソースコードはこちら↑ この記事の趣旨 TypeScript + Node.js プロジェクトのはじめかた2020 で作成したTypeScript + Node.jsのプロジェクトに ESLint / Pretiter / husky & lint-staged を導入する手順を紹介します。 今回導入するツールとバージョンは以下になります。 項目 バージョン

                        TypeScript + Node.jsプロジェクトにESLint + Prettierを導入する手順2020 - Qiita
                      • Mirrativ のWebフロントエンドで使っているライブラリを紹介する! - Mirrativ Tech Blog

                        こんにちは、フロントエンドエンジニア 兼 バックエンドエンジニアの駒木です。 iOS / Android / バックエンドのライブラリ紹介に引き続き、MirrativのWebフロントエンドで使用しているライブラリをご紹介します! JSフレームワーク: React with TypeScript / Vue.js 8割以上のアプリケーションはReact + TypeScriptで実装されていますが、数年前に立ち上げた一部のイベントページはVue.js + Vanilla JSで実装されています。 ビルド・バンドルツール: Vite / Parcel / webpack 2021年5月くらいからViteを利用し始め、以後立ち上げたプロジェクトはViteベースとなっています。 Vite 8割、Parcel + webpackが2割といったところでしょうか。 webpack → Parcel →

                          Mirrativ のWebフロントエンドで使っているライブラリを紹介する! - Mirrativ Tech Blog
                        • npm package を実装するための自分専用テンプレートリポジトリを作った - mizdra's blog

                          npm package を作る度にイチから開発環境の構築をしていて大変だったので、自分専用のテンプレートリポジトリを作りました *1。 github.com せっかくなので、テンプレートの特徴とか、どういうこと考えながら作ったとか紹介してみます。 はじめに: 基本的な技術スタック npm TypeScript Node.js Native ESM Prettier ESLint Vitest Renovate GitHub Actions vscode 向けの各種設定ファイル (extensions.json, launch.json, settings.json) GitHub の「テンプレートリポジトリ」機能を使う GitHub にそれっぽい機能があったので使ってみました。 docs.github.com 「Use this template」というボタンが出て便利です。 「Use t

                            npm package を実装するための自分専用テンプレートリポジトリを作った - mizdra's blog
                          • 最近の ESLint とかの構成2021

                            みんな好きな構成を好きなように入れれば良いと思ってるけど、自分が最近やってるやつを雑に紹介する。 シンプルなTypeScriptのプロジェクトを想定している。 npm install --save-dev eslint prettier typescript eslint-config-prettier @typescript-eslint/parser @typescript-eslint/eslint-plugin npm-run-all

                              最近の ESLint とかの構成2021
                            • JavaScript/TypeScript の Lint ツールを XO で統一した - ドクターズプライム Official Blog

                              @1000ch (id:hc0001) です。掲題の通り、少し前にドクターズプライムの Frontend プロジェクトで使う lint ツールとして ESLint ではなく XO を使っていく方針に切り替えました。最近その振り返りを行ったので、その備忘録として文字に起こします。 github.com 経緯と課題 これまでは Create React App に付属する ESLint に加えてルールを少しカスタマイズして、それをいくつかのプロジェクトで使っていました。これにはいくつかの課題が存在していました。 ESLint およびその周辺プラグインの依存関係を含めたバージョンアップをケアし続ける必要がある renovate や dependabot などを用いて(半)自動化できるものの、依存の数や大きさに応じて依然としてコストが高い ESLint のルールを中長期的にメンテナンスする必要があ

                                JavaScript/TypeScript の Lint ツールを XO で統一した - ドクターズプライム Official Blog
                              • ESLint v7.0.0 の変更点まとめ - Qiita

                                overrides: - files: "*.js" extends: my-config-js - files: "*.ts" extends: my-config-ts のような設定がある場合、eslint lib コマンドは lib ディレクトリ内の *.ts ファイルもチェックします。 なお、eslint lib/** のように Glob パターンを指定した場合は今まで通りに動作しますのでご注意ください。overrides 設定にかかわらず Glob パターンにマッチする全てのファイルをチェックします。 プラグイン開発者へ: あなたが管理するプラグインが *.js 以外のファイルを対象にするルールを提供する場合、recommended設定に overrides を追加すると利用者は便利かもしれません。 動作を元に戻したい場合: 今まで通り overrides 設定にかかわらず *.

                                  ESLint v7.0.0 の変更点まとめ - Qiita
                                • ESLintのconfigがどのように変わり得るか(flat configとは何か)

                                  はじめに ESLint v8.21.0のリリースでこれまでとは異なるconfigシステム(flat config)が持ち込まれた。 以下の通り、新しいconfigシステムへの一歩というように言及があり、ESLintを利用する上で無視できない影響を受ける変更となりそうなので、どのようなものか確認しておきたい。 We took a big step toward ESLint’s new config system! The new FlatESLint class is now merged. Its API is not yet stable, and not all features are implemented yet, but it is accessible via the Node.js API for early testing. See RFC9 for the origi

                                    ESLintのconfigがどのように変わり得るか(flat configとは何か)
                                  • Encraft #1「フロントエンド × 設計」開催レポート

                                    こんにちは、よしこです。 今回は、弊社ナレッジワークで初の開催となったオフライン勉強会「Encraft #1」のイベントレポートをお届けします! Encraftとは? Encraft(エンクラフト)は株式会社ナレッジワークが提供する、 "Enablement" と "Craftsmanship" をテーマにした勉強会です。技術にこだわりを持つ人々が集まって互いに知見を交換し、できることを増やしていく場を作りたいと思っています。 “Enablement” はナレッジワークの事業内容、”Craftsmanship” はナレッジワークのStyle(行動指針)から持ってきています。Encraft、造語ですがなかなか良い語感ではないでしょうか? 今回は#1としてシリーズ初の開催となりましたが、20名の参加枠に対して100名以上の応募がある盛況ぶりとなりました!ご応募いただいた皆様、ありがとうございま

                                      Encraft #1「フロントエンド × 設計」開催レポート
                                    • Result型とESLintでエラーハンドリング漏れを検出する

                                      こんにちは、よしこです。 この記事では、わたしの所属する株式会社ナレッジワークで最近コードベースに取り入れた「エラーハンドリング漏れ防止の仕組み」について紹介します。 背景 「通信を伴うアクションに失敗しても画面にエラーフィードバックが表示されない」という実装漏れをしてしまったことがあり、今後こういうことが起きないように仕組みで防止したいと思いました。 「忘れてしまった」という問題なので、テストで担保するのも難しいように思いました。実装するのを忘れてしまっているということは、テストを書くこともセットで忘れてしまっているはずだからです。 「気をつける」「チェックリストを作る」のような人間が注意する方向ではなく、「嫌でも気付く」「忘れていたらCIが通らない」のように、必要なハンドリングを強制する形にできないか?と思いました。 課題 実行時に通信エラーが起きる可能性があり、ユーザーフィードバック

                                        Result型とESLintでエラーハンドリング漏れを検出する
                                      • @cybozu/eslint-configから学ぶ、全社共通ESLint configの運用

                                        The lightning talk for フロントエンドカンファレンス福岡スピンオフ テーマ: ESLint https://fec-fukuoka.connpass.com/event/201334/

                                          @cybozu/eslint-configから学ぶ、全社共通ESLint configの運用
                                        • Prettier 2.7 にキャッシュを実装した

                                          Prettier 2.7 がリリースされました。 このバージョンには TypeScript 4.7 の対応のほかに、新しい CLI オプションである --cache と --cache-strategy が含まれています。 --cache と --cache-strategy を実装したのは自分なので、その背景や実装、そして使い方の話を雑にしようと思います。 背景 Rome Formatter のブログが公開されて日本の開発者からもそれなりに大きな反響がありました。 私個人としてはコードフォーマッターにそこまでの速さを求めていないのであんまり興味はなかった(もちろん速いほうがいいけど)のですが、みなさん意外と興味あるんだなあという気持ちで眺めていました。 それからしばらくして Prettier の https://github.com/prettier/prettier/issues/58

                                            Prettier 2.7 にキャッシュを実装した
                                          • ESLintでTypeScriptの変数の名付け規則をチェックしよう! | DevelopersIO

                                            上記をグループ化したGroup Selectorsも定義されています。詳しくはこちら 関数の引数にcamelCaseを強制する .eslintrc.jsonの設定は、下記の通り { "@typescript-eslint/naming-convention": [ "error", { "selector": "parameter", "format": ["camelCase"] }, ] } 下記の画像の通り、エラーが検出されています。エラーの内容から、camelCaseする必要があることが分かるので、そのまま修正可能です。 具体例を見ていく 上記はシンプルな例でしたが、他にもより柔軟な名付け規則を適用可能です。 これから説明する例は、typescript-eslint/typescript-eslintのExamplesを参考にしています。 boolean型の変数名に特定のprefi

                                              ESLintでTypeScriptの変数の名付け規則をチェックしよう! | DevelopersIO
                                            • Ubie における ESLint 活用

                                              Ubie では JavaScript や TypeScript で開発されているプロジェクトに対して、静的解析のために ESLint を導入しています。 この記事では Ubie での ESLint を活用事例を紹介します ESLint を活用する目的 まず私が ESLint を活用する目的は、コーディング規約やベストプラクティスを強制することで、コードレビューの手間を省き、結果として本番環境でのエラーやパフォーマンスの悪化を減らすことです。 この記事で紹介するいくつかの設定もその目的を達成するためのものです。 no-restricted-syntax でアンチパターンを禁止する ESLint には no-restricted-syntax というルールがあります。 このルールはセレクタで指定した構文を禁止できます。簡単に言えば、簡易的に独自ルールを作成できます。 たとえば次のように設定する

                                                Ubie における ESLint 活用
                                              • typescript-eslint v6 アップデートガイド

                                                typescript-eslint v6 リリース! 2023/07/10 に typescript-eslint の v6 がリリースされました。 メジャーバージョンアップということで多くの BreakingChange があるのですが、その中でもReworked Configuration Namesと呼ばれる変更は利用者に大きな影響を与えそうです。 Reworked Configuration Namesはざっくり言うと「config に書くrecommendedのようなルールセットの名前や枠組みが変わるよ」という変更です。 ルールセットの名前だけでなく、含まれるルールや分類自体に変更があるので、設定ファイルを v5 のままアップデートしてしまうと意図したルールセットと異なる設定になってしまいます。 ここでは上記の記事にある変更点を紹介しつつ、なるべく既存の設定のままアップデートする

                                                  typescript-eslint v6 アップデートガイド
                                                • 【Next.js】eslint + pretteirをやめてBiomeにした話

                                                  はじめに Next.jsなどReactのプロジェクトにはlinterとformatterが必須でeslintとpretteirを使うと思います。 しかし、導入するとなると考慮すべき点や面倒な点が結構あります。 以下は一例です。 eslintとprettierは設定が複数あり、プラグインのインストールが必要 eslint-plugin-prettierを使えば、pretteirがなくてもformatterは実現できるため、そもそもprettierいるのか問題 逆にeslintはlinterとしての役割のみにして、formatterの機能は持たせたくない そこででてくるのがBiomeです。 Biomeとは 一言でいうとeslintとprettierを一つにしたものです。 以下、公式の引用とページです。 Biome はWebプロジェクトのための高性能なツールチェーンであり、プロジェクトの健全性を

                                                    【Next.js】eslint + pretteirをやめてBiomeにした話
                                                  • TypeScriptではNumber.isNaN()よりもisNaN()の方が安全かもしれない

                                                    これまで「グローバルのisNaN()ではなくNumber.isNaN()を使え!」を教義に生きてきたのですが、揺らいできました。 JavaScriptのisNaN()は引数を数値に変換した結果がNaNであるかを判定します。 一方のNumber.isNaN()はES6で提供された関数で、引数がNaN以外の時はtrueを返しません。 console.log(isNaN('hello')); // true console.log(Number.isNaN('hello')); // false Number.isNaN()はより厳密な比較であり、キャストを行わないため余計な混乱を避けられるものとして提供されました。 文字列などを渡した場合はtrueを返さないため、Number.isNaN()に渡す時点であらかじめ数値に変換しておくなど型を意識した操作がアプリケーション側の責務として求められるよ

                                                      TypeScriptではNumber.isNaN()よりもisNaN()の方が安全かもしれない
                                                    • TypeScript 5.0 で追加された verbatimModuleSyntax とは何か?

                                                      // A: そのまま残る import { Foo } from "./foo"; // B: 識別子 `Foo` が削除される import {} from "./foo"; // C: import 文ごと完全に削除される どれになるかは、以下の状態の組み合わせ依存する(他にも条件あるかも)。 そのファイルでFooが値として参照されるか、型として参照されるか、参照されないか Fooがfoo.tsで値として定義されているか、型として定義されているか tsconfig のオプション設定 importsNotUsedAsValues: 値として参照されない import 文を残すかどうか preserveValueImports: 参照されない import 識別子が値なら残す isolatedModules: ファイル単位でトランスパイルする 上記は出力するモジュール形式が ESM の場合

                                                        TypeScript 5.0 で追加された verbatimModuleSyntax とは何か?
                                                      • kintoneのアクセシビリティ改善とESLintルールの整備 - Cybozu Inside Out | サイボウズエンジニアのブログ

                                                        こんにちは。Poca11y(ポカリ)チームのSUGI(@blindsoup2p1)と小林(@sukoyakarizumu)です。 わたしたちPoca11yチームは「kintone」のアクセシビリティ改善活動に参加しています。この記事ではkintoneのアクセシビリティを改善するチーム体制について解説します。さらにPoca11yチームとkintone開発チームが協力して整備したアクセシビリティを強化するためのESLintルールについても解説します。 Poca11y(アクセシビリティ)チームとkintoneのアクセシビリティ改善 Poca11yチームとは Poca11yチームはサイボウズ全体の「アクセシビリティ」向上を目的としたチームです。Poca11yチームでは主に以下3種類の活動を行なっています。 社内啓発:アクセシビリティの社内研修・勉強会・ガイドライン作成などを行います。 製品改善:サ

                                                          kintoneのアクセシビリティ改善とESLintルールの整備 - Cybozu Inside Out | サイボウズエンジニアのブログ
                                                        • JavaScriptで3 > a > 1と書いてしまった話 - sasurau4のブログ

                                                          はじめに 仕事でチームメンバーみんなでTypeScriptを書いているのだが、たまにmarkdownの中のJavaScriptをいじることがある。 ある日、ある数字aが3より小さく1より大きいという条件を書く必要があった。 そのときに書いたコードがこれ if (3 > a > 1) { // 省略 } プログラミングをやっていると、こういうときは 論理演算子で2つの式を結合して3 > a && a > 1 と書くように手癖がつくものだが、小学生のときから習ってきた数学的な記法はふとしたときに顔を出す。 特に、現代のエディターによる便利な補完に慣れきってしまっている状態で一切の補完が効かない状態で油断してJSを書くと上記のようなコードが爆誕する。 今回はこれのお話。 3 > a > 1の返り値 ところで、3 > a > 1の式、実はJSのSyntaxErrorにならないのを知っていただろうか

                                                            JavaScriptで3 > a > 1と書いてしまった話 - sasurau4のブログ
                                                          • eslint-plugin-vue で来たる Vue.js 3 のリリースに備えよう - BASEプロダクトチームブログ

                                                            フロントエンドチームの右京です。 Vue.js 3 が八月上旬にリリース予定ということで、BASE でもバージョンアップに向けて少しづつアクションを始めています。 Vue.js 3 では多くの機能が追加され開発の幅が広がりますが、一方で削除や非推奨となる機能も多く頭を悩まされている方もいるのではないでしょうか、BASE もそうです。 この記事では ESLint とその Vue.js 向けプラグインの eslint-plugin-vue を利用した、deprecated となる機能へのアプローチを紹介します。 なぜ eslint-plugin-vue か ESLint には Vue.js の SFC のためのプラグインとして eslint-plugin-vue が開発されていて、BASE でもこれを利用しています。 このプラグインには vue/no-deprecated- で始まるルールがい

                                                              eslint-plugin-vue で来たる Vue.js 3 のリリースに備えよう - BASEプロダクトチームブログ
                                                            • 大規模アプリのVue3アップデート対応知見まとめ

                                                              はじめに 今参加させてもらっている案件でついにVue3へのアップデートが完了したので、知見をまとめていきます! 僕1人だけではなく、チームでやったので多少曖昧なところもありますが、そこはご愛嬌でお願いします。 マジで一年くらいかかりました。笑 ちなみにこれを全てやれば完璧にVue3対応出来るわけではなく、あくまでこのプロジェクトで躓いた知見を書いているだけでですので、実際に上げる場合はしっかりと公式ドキュメントを確認してください。 特に移行ビルド系は執筆時点で確認していたら、かなりリリースされていたので是非確認してみてください。 前提 新規機能の開発は止めない Options APIからComposition APIへの書き換えなどはしない 特にいつまでにアップデートなどの期限は設けない マイグレーションビルドは使わない webpackerをつかっている TypeScriptは使っていない

                                                                大規模アプリのVue3アップデート対応知見まとめ
                                                              • JSのプラグインシステムについて書くJavaScript Plugin Architecture 2.0をリリースしました

                                                                JSのプラグインシステムについて書くJavaScript Plugin Architecture 2.0をリリースしました JavaScriptのプラグインシステムについて書いた小さな電子書籍であるJavaScript Plugin Architecture 2.0をリリースしました。 1.0(初版)公開時の記事は次のページから参照できます。 JavaScript Plugin Architectureというプラグイン設計について学ぶ無料の電子書籍を書いた | Web Scratch 2.0の詳しい変更点についてはリリースノートを参照してください。 Release v2.0.0 · azu/JavaScript-Plugin-Architecture 2.0リリース時にGitBookからHonKitに移行しました。 そのため、公開するURLが次の場所に変更されています。 https://a

                                                                  JSのプラグインシステムについて書くJavaScript Plugin Architecture 2.0をリリースしました
                                                                • 注目したいクライアントサイドの脆弱性2選/ Security.Tokyo #3

                                                                  Security.Tokyo #3の発表資料です。 クライアントサイドのパストラバーサルと、postMessage経由の脆弱性を取り上げました。

                                                                    注目したいクライアントサイドの脆弱性2選/ Security.Tokyo #3
                                                                  • TypeScriptのProject Referencesを使ってソースコードを分割し、レイヤー間の依存関係を強制する

                                                                    TypeScriptのProject Referencesを使ってソースコードを分割し、レイヤー間の依存関係を強制する サマリ Project Referencesを使うと、1つの巨大なtypescriptプロジェクトを、複数のプロジェクトに分割し、プロジェクト間の依存関係を整理することができる。これにより、例えば以下のようなことができる test/ ディレクトリで export しているテスト用の関数を、 src/ ディレクトリの本番用コードでは参照できなくする レイヤードアーキテクチャで設計しているとき、プレゼンテーション層で定義している関数を ドメイン層から参照できなくし、レイヤー間の依存関係を強制する また、プロジェクトの分割によりビルド時のパフォーマンスが大幅に改善する。 …と公式で書いているが、ビルド時の挙動を正確に把握しないとむしろ悪化するので、注意が必要 適切なプロジェクト

                                                                      TypeScriptのProject Referencesを使ってソースコードを分割し、レイヤー間の依存関係を強制する
                                                                    • Chaos Engineeringという考え方 / A concept of Chaos Engineering

                                                                      ChaosConf2019 recapイベント( https://chaosconf2019recap.splashthat.com/ )で発表した資料です。(一部修正) Chaos Engineeringの基本的な知識や考え方を、 Chaos Conf 2019に登壇した企業が語った内容を併せて発表したものです。

                                                                        Chaos Engineeringという考え方 / A concept of Chaos Engineering
                                                                      • React + TypeScriptのESLintルールをカスタマイズしたり、Airbnbのやつを導入するぞ。 | Ginpen.com

                                                                        何もしないでそのままでも十分かもしれない。 先にまとめ 最近の react-scripts は ESLint を含んでいるので別途インストール不要 設定は .eslintrc.js を作成して extends: ['react-app'] する Airbnb のルール設定を使う場合はもうちょい頑張る 元々 create-react-app してない場合も同じ Airbnb ルール利用時の手順概要 ESLint 初期化 ESLint の設定を更新 コードを recommended な状態へ対応 想定環境 Node.js v10.16 react-scripts v3.1 TypeScript v3.5 ESLint v6.1 @typescript-eslint/eslint-plugin v1.13 React アプリの準備 create-react-app でテンプレートから作成します。

                                                                          React + TypeScriptのESLintルールをカスタマイズしたり、Airbnbのやつを導入するぞ。 | Ginpen.com
                                                                        • Pug を HTML に移行して .vue ファイル の template タグ内に ESLint を効かせた話 - SMARTCAMP Engineer Blog

                                                                          こんにちは!スマートキャンプでインサイドセールスに特化した SaaSを作っているエンジニアの中川です。 上記プロダクトのフロントエンドは Vue.js を用いて開発しているのですが、 その中で SFC 内のtemplateタグで使用していた Pug をやめて HTML に移行した件をこの記事ではお話しようと思います。 また、実際にtemplateタグに ESLint を効かせてみて発覚したエラーや警告のなかで数が多かったものや、これから Vue 3 に移行していく上で対応する必要があったルールを紹介します。 背景 eslint-plugin-vue が効かない チームに Pug 推進派がいない Pug を HTML に移行するには Vue 3 に準拠した Lint ルールを導入する Lint を実行してみる 対応した目ぼしいルール vue-require-v-for-key vue/val

                                                                            Pug を HTML に移行して .vue ファイル の template タグ内に ESLint を効かせた話 - SMARTCAMP Engineer Blog
                                                                          • 1,100 超えコンポーネントの Jade / Pug テンプレートを移行した話 | PLAID engineer blog

                                                                            1,100 超えコンポーネントの Jade / Pug テンプレートを移行した話 | PLAID engineer blog

                                                                              1,100 超えコンポーネントの Jade / Pug テンプレートを移行した話 | PLAID engineer blog
                                                                            • Flat Config導入完了! 新しいESLintの設定フォーマットを使ってみた

                                                                              皆さんこんにちは。株式会社バベルでエンジニアをしている uhyo です。バベルが提供しているaileadというプロダクトでは TypeScript が多く使われており、ESLint も活用されています。この記事では、ailead のコードベースにおいて ESLint の新しい設定フォーマットであるFlat Config (eslint.config.js)を導入した事例を紹介します。 Flat Config とは? Flat Config については、ESlint 公式ブログでも詳しく説明されています。 ファイル名がeslint.config.js固定であり、必ず JavaScript で書かなければいけないのが特徴です。新しいフォーマットでは、従来の設定ファイル(.eslintrc{.yml,.json,.js})で辛かった部分が解消されています。特に、設定内容の解決にあたって ESLi

                                                                                Flat Config導入完了! 新しいESLintの設定フォーマットを使ってみた
                                                                              • チームで同じような React コンポーネントを書く

                                                                                はじめに 「eslint-plugin-react の plugin:react/recommended に含まれていないルールにも有効なものがあるよ!みんなで同じようなコンポーネント書いて、レビューを楽にして保守性も上げよう!」という内容の記事です。 この記事では React の関数コンポーネント、TypeScript、Prettier を使っている前提で書いています。そのため、タグの位置調整など Prettier で対応可能なものは Prettier に任せる方針です。 先に結論の .eslintrc.cjs を載せておきます。React 以外の設定は省いています。 { extends: [ "plugin:react/recommended", "plugin:react/jsx-runtime", "plugin:react-hooks/recommended" ], rules:

                                                                                  チームで同じような React コンポーネントを書く
                                                                                • GitHub Actionsでeslintを動かすだけでFiles changedにlint errorが表示されて便利 - $shibayu36->blog;

                                                                                  GitHub Actionsでeslintを動かすだけでFiles changedにlint errorが表示されるのが便利すぎたので紹介。 様子 https://github.com/shibayu36/typescript-cli-project/pull/7/files やり方 GitHub Actionsでsetup-nodeを使った上でeslintを動かすだけ。 まずGitHub Actionsでlintを実行するように設定する .github/workflows/lint.yml npm run lintの実体はこんな感じ package.json これだけで上で紹介したようにlintのエラーがFiles changedに出てくる。便利。 仕組み Problem Matchersという仕組みを使っているみたい。例えばsetup-nodeだと .github/eslint-sty

                                                                                    GitHub Actionsでeslintを動かすだけでFiles changedにlint errorが表示されて便利 - $shibayu36->blog;