https://lintnight.connpass.com/event/263931/
はじめに Dockerfile、サッと書こうと思ったのに、書き始めたら意外と時間かかったりしますよね。 突き詰めるとすごく奥が深いなと思います。 公式のドキュメントでも、Dockerfileのベスト・プラクティスという形で公開してくれていますが、 これを毎回意識するのは大変です。 また、意識できていたとしても、複数人で管理していると、各個人のスキルレベルによって差が出てしまいます。 そんなときにおすすめのツールを見つけたので紹介します。 hadolintというツールです。 Haskell Dockerfile Linterの略だそうで、Dockerfileの静的解析を行ってくれるlintツールです。 hadolintを使うとこんな利点があります。 build前にシンタックスエラーなどに気付ける (地味にトライアンドエラーしてると時間食うんですよね...) 自然とベストプラクティスに則ったD
こんにちは、よしこです。 この記事は 2020年に立ち上げたWebフロントエンド構成の振り返り の「linter/formatter」項の詳細記事です。単体でも読めますが、よければ元記事もあわせてどうぞ! この記事では、今わたしが 株式会社ナレッジワーク というスタートアップで開発・運用しているプロジェクトにおいて便利だったLint/Format関連の設定についてご紹介していきます。 使っているのは、TSのlintのためにESLint, CSSのlintのためにStylelint, 主なファイルのformatのためにPrettierです。 ESLint pluginsとextendsだけどんなもの入れてるか載せておきます。 "plugins": [ "strict-dependencies", // 後述 "unused-imports", // 後述 ], "extends": [ "a
登壇者の自己紹介 後藤智氏(以下、後藤):では、始めたいと思います。今日は「ChatGPT」、もしくはAI周辺について、お話をしたいと思います。 モデレーターを務めさせていただく、キリロムでCTOをやっている後藤と申します。よろしくお願いします。それでは、お一人お一人紹介をしていただきたいなと思います。小林さんからお願いします。 小林聡汰氏(以下、小林):小林です。2022年の5月にUCバークレー、カリフォルニアにある大学のコンピューターサイエンス学部を卒業して、現在はシリコンバレーにあるAI系の会社のソフトウェアエンジニアをしています。本日はよろしくお願いします。 後藤:よろしくお願いします。櫻庭さん、お願いします。 櫻庭洋之氏(以下、櫻庭):櫻庭と申します。「zaru」というIDで活動しています。今は、東京のWeb系のSaaS会社でCTOをやっています。個人では「ムーザルちゃんねる」を
@1000ch (id:hc0001) です。掲題の通り、少し前にドクターズプライムの Frontend プロジェクトで使う lint ツールとして ESLint ではなく XO を使っていく方針に切り替えました。最近その振り返りを行ったので、その備忘録として文字に起こします。 github.com 経緯と課題 これまでは Create React App に付属する ESLint に加えてルールを少しカスタマイズして、それをいくつかのプロジェクトで使っていました。これにはいくつかの課題が存在していました。 ESLint およびその周辺プラグインの依存関係を含めたバージョンアップをケアし続ける必要がある renovate や dependabot などを用いて(半)自動化できるものの、依存の数や大きさに応じて依然としてコストが高い ESLint のルールを中長期的にメンテナンスする必要があ
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
動機 結構 lint 系がアップデートされていたり、以前は必要だったものがいらなくなっていたりしていて自分が作った以前のテンプレートだとちょっと不要な設定などが増えていたので、 これを機に調査しながら設定を見直そうかなと。 今回作ったもの この記事で設定をした Next.js のテンプレートはこちらに公開してあります。 前提 node: v18.17.1 next.js: 13 系 React: 18 系 Next.js まずは Next.js のインストールから。どんなプロジェクトであれ TypeScript で開発をしたいから --ts をつけます。 あとは設問に答えていけば基本的なプロジェクトが作られます。基本的に全て Enter で問題ないです。 ちなみに Would you like to customize the default import alias? はデフォルトで N
この記事は Deno Advent Calendar 2020 6日目の記事です。 5日目は -> Deno Standard Library Working Group について 7日目は -> (あとで埋める) Deno とは こんにちは、@magurotuna です。 このアドベントカレンダーをご覧の方であれば、新進気鋭の JavaScript / TypeScript ランタイムである Deno のことはある程度ご存知の方も多いと思います。 しかし、あえて超ざっくりと説明すると、Node.js (以下 Node と書きます)を作った Ryan Dahl が、Node の反省点をいかして新しく作り直したものです。 "10 Things I Regret About Node.js" (Node.jsについての10の反省点)というタイトルでRyan自身が JSConf EU 2018
なぜ npm ツールチェインで消耗した こういうところでシュッと deno を入れておくことで、あわよくば本番で使う準備をする 経緯 久々に eslint の設定を見直したらやたら長大な感じでメンテがしんどくなった npm/yarn workspace で monorepo 化した際に、様々な eslint のバージョンが混在して peer-deps の管理が困難になった deno に組み込まれてる lint, fmt は deno かどうかはあまり関係なく、単に typescript なら使える 中身は https://dprint.dev/ と https://github.com/denoland/deno_lint deno lint は eslint の recommended 相当のものは実装してある eslint + typescript をメンテするより、 eslint 吹
SWETグループのLint大好きマンKuniwakです。2022/11/18にオフライン・オンライン同時開催の勉強会「Lint Night #1」を開催します! Lint Nightはプログラミング言語不問でLintに関するトピックを取り扱う勉強会です。ここでLintとはソースコードや文書を静的に解析して問題をみつけるツールのことです。ただ、どこまでをLintとするかには幅があるようです。 さて、Lintの面白いところはソースコードや文書を入力データとして扱うプログラムであることです。ソースコードを入力データとするプログラムといえばコンパイラやインタプリタがあげられますがいずれも実装がかなり大変です。しかしLintはそこまでではありません!実は手軽に実装できるんです(Lintの作り方については次のスライドをご覧ください)。 しかもそれでいてコードレビューを一部自動化できて実用的ですし、ソー
Policy as Code を実現する Open Policy Agent に憧れて。ポリシーコードでAPI仕様をLintする はじめにこんにちは、TIG DXユニット真野です。 CNCF連載2回目はOpen Policy Agent がテーマです。前回は伊藤さんによる、k3sを知る、動かす、感じるでした。 https://www.openpolicyagent.org/ Open Policy AgentとはOpen Policy Agent(OPA)は汎用的なポリシーエンジンで、Rego と呼ばれるポリシー言語で定義されたルールに従って、入力がポリシーに沿っているか否かの判定を移譲させることができます。Regoで宣言的にポリシーを実装し、Policy as Code を実現できます。 OPAは汎用的というだけあって、Kubernetes上でしか動かせないと言った制約は無いです。Go言
Biome では、現在約 150 個程度の JavaScript・TypeScript に関する lint ルールを実装しています。 これらのルール多くは既存の ESLint 関連で実装されているルールと同じものになっているのですが、ルールの名前が異なることもあり、その対応関係がわかりにくくなっています。 そこでこの記事では、フロントエンド開発をする場合によく設定していそうな次の lint ルールについて、Biome で実装されているかどうかの対応表を紹介します。 eslint (eslint:recommended) typescript-eslint (plugin:@typescript-eslint/recommended) eslint-plugin-jsx-a11y (plugin:jsx-a11y/recommended) eslint-plugin-react (plugi
Million Lint is in public betaAiden Bai (opens in a new tab), John Yang (opens in a new tab), Nisarg Patel (opens in a new tab) – February 29, 2024 It’s launch time. After three months and hundreds of commits, we invite you to try out Million Lint. The experience is not finished – there are a few known bugs and several missing features – but we are really happy with how it's shaping up and couldn'
はじめに こんにちは。シニアエンジニアのプログラミングをするパンダ(@Panda_Program)です。本記事は BASE アドベントカレンダー 2023 の11日目の記事です。 BASE のバックエンド開発では巨大なモノリスからモジュラーモノリスへの移行が進んでいます。この記事では、モジュラーモノリスの中で自分のチームが担当しているモジュールに導入した PHPStan のカスタムルールの導入とその効果について紹介します。 PHPStan は BASE のモジュラーモノリスなバックエンドシステムに既に導入されていました。モジュラーモノリスの中で PHPStan のカスタムルールは2種類あります。各モジュールが守るべき共通のルールと、それぞれのモジュール内で特有のルールです。 PHP のコード品質を担保する PHPStan は多くの開発現場で採用されていますが、具体的なカスタムルールの事例は
Lint Night #1 に登壇した。 lintnight.connpass.com 当日のスライドは以下です。 今回は Kuniwak さんの方でそもそも「Lint とは?」といった前段の話をしていただけるというのと、"Lint" を冠したイベントを考えて、ここなら事前に求める前提知識をいくつか端折って話して良いだろうと RuboCop の内部構造に踏み込んだ話にしてみました。 今回内部のしくみに踏み込もうと思った時に思い出したのが『Ruby のしくみ』で、表紙はこのパロディになっています。 Rubyのしくみ -Ruby Under a Microscope- 作者:Pat Shaughnessyオーム社Amazon 私の発表の構文解析パートで出てきた書籍はこちら。Yacc の Ruby 版である Racc については『Ruby 256 本 無道編』が構文解析のしくみもろもろと一緒に紹
JSer.info #675 - Vue 3.4 がリリースされました。 Announcing Vue 3.4 | The Vue Point Vue 3.4ではVueテンプレートのパーサーのパフォーマンス改善、watchEffectの改善、defineModelがStable APIに変更されています。 また、v-bindが同名の場合の省略記法を追加、Hydrationのエラー表示を改善などの変更も含まれています。 破壊的な変更として、global JSX namespaceの型を定義しないように変更、実験的な機能だったReactivity Transformの削除なども含まれています。 関連して、Vue 2.x は2023年12月31日にサポートが終了し、End of Life(EOL)となりました。 Vue 2 Has Reached End of Life 最終バージョンは2.7.
HRBrain Advent Calendar 2023 25日目の記事です。 はじめに こんにちは。@yug1224(Yuji Yamaguchi)です。 これまで、pre-commit/pre-push時のLint実行にhusky+lint-stagedを使っていましたが、Monorepo環境だと設定が少し複雑になってしまうので、Lefthookを試してみることにしました。 Lefthookとは The fastest polyglot Git hooks manager out there A Git hooks manager for Node.js, Ruby and many other types of projects. Fast. It is written in Go. Can run commands in parallel. Powerful. It allows
Lint Night #1 に登壇します。 lintnight.connpass.com Lint というテーマに絞っているイベントであることに加えて、そもそも Lint とは何かなどといった話は Kuniwak さん が話されるということで、今回の話はマニア指向で作るつもりです。なので、エンドユーザーが聞いて明日からのお仕事の役に立つかどうかはあまり気にしない方向の話になると思います (が、RuboCop がどういった世界観のプロダクトなのか、より理解が深まると思います) 。 内容としては DeNA Tech さんでアナウンスしていただいている、以下のような方向で進めています (スライドは鋭意作成中) 。 Rubyのプロジェクトでよく使われているRuboCop。 どういう仕組みで動いているか気になったことはありませんか? さて、このRuboCopについてcore teamメンバーの @k
golangci-lint is a fast linters runner for Go. It runs linters in parallel, uses caching, supports YAML configuration, integrates with all major IDEs, and includes over a hundred linters. Join our slack channel by joining Gophers workspace and then joining channel #golangci-lint. Follow the news and releases: Features⚡ Very fast: runs linters in parallel, reuses Go build cache and caches analysis
Rust製TypeScript LinterであるBiome, Oxc, deno_lintなどは、TypeScriptの型情報を利用するLintルール(型情報Lintルール)[1]を持っていません。本記事では、その背景から、Rust製TypeScript Linterが型情報Lintルールを実現するための手段についてまとめます。 筆者のTSKaigi 2024で利用した下記登壇資料に情報を追加し、文章化したものです。 要約すると、以下になります。 Rust製TypeScript Linterは、安全性をさらに高めてくれるtypescript-eslintの型情報Lintルールが欲しいが、パフォーマンスを犠牲にしたくない。TypeScript Compilerに頼らずに実現するには、Alternative TypeScript Compilerや型推論が必要。型情報Lintルールの実装を型
週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙇 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) 🔗Ruby 🔗 RuboCopがオーガニゼーションをgithub.com/rubocop-hqからgithub.com/rubocopへ移行(現在は完了)
monorepo環境で、yarn workspace を使って、create-react-app --typescript した client ワークスペースと、prisma2 で作成した server ワークスペースを共存させる手順のメモです。Lint, Prettier, Huskyの設定も行います。 前提条件 完成品 手元で同様の手順を踏んだリポジトリを、GitHub上に公開していますので、併せてご参照ください。 動作環境 Mac Node.js v10.16.0 npm v6.9.0 create-react-app (react-script v3.1.1) prisma2 v2.0.0-preview-5 TypeScript v3.5.3 Lint, Prettier, Husky <概説>ワークスペース(Yarn Workspaces)とは? デフォルトで利用できるパッケー
DMM Advent Calendar 2019本記事は DMM Advent Calendar 2019 の 9日目 の記事です。 私は現在、DMM.com の CDS というチームに所属し、 主にユーザレビュー基盤 のバックエンドを開発しています。 今回は、Go用Linterである GolangCI-Lint を軽く紹介した後に、 GolangCI-Lint のハマリポイントとその解決策である設定周りの話をします。 Linter 導入していますか?突然ですが、みなさんの開発環境には Linter が導入されているでしょうか? 私の所属するチームでは、 コーディング規約違反 および コンパイラでは見つけられないエラー を検知するために、 ローカルと CI において Linter を回すようにしています。 GoにおけるLinterGoの場合、Linterがデフォルトで用意されているうえに、
Git でコミットする前に Prettier や ESLint を動かす方法を探すと、Husky (v4) + lint-staged の組み合わせがヒットする。 2021/02/26 時点では Husky が v5 になっていて、package.json に hook を記述するのではなく、.husky ディレクトリの hook ファイル (pre-commit など) にスクリプトを定義するやり方に変わっていたのでまとめておく。 What's new in husky 5 - DEV Community それぞれのツールについて整理すると、Husky は Git の hook を管理するツール。lint-staged は Git に stage されているファイル (コミット対象のファイル) に指定したスクリプトを実行するツール。コミット対象のファイルにのみ Lint などのスクリプト
はじめに こんにちは! モジュール開発部の yamakazu (@yamarkz) です。 チームのサイドプロジェクトでLint Ruleの整備を進めてきており、メインプロジェクトを進める傍ら、隙間時間を捻出してはLint Ruleを作っています。 興味本位で始めたLint Rule作りだったのですが、これが思っていた以上に面白く、面白さにハマった勢いで1ヶ月で20以上のLint Ruleを作っていました。 今回はそんな勢いを持って整備を進めていたLint Rule整備の話を取り上げて、そもそもなぜLint Rule整備を始めているのか?Lint Ruleで何を解決したいのか?どういったLint Ruleを作っているのか?を紹介します。 目次 はじめに 目次 話の全体整理 なぜLintを活用していくのか 状況1. プロダクトと組織の拡大 (未知の増加) : 状況2. 多様な表現での実装 (
2020.10.26 週刊Railsウォッチ(20201026前編)Shopifyのerb-lint gem、Form Objectを使いやすくするyaaf gem、railsrcの機能追加ほか こんにちは、hachi8833です。 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙇 ⚓Rails: 先週の改修(Rails公式ニュースより) 以下のコミットリストのChangelogを中心に見繕いました。6.1.0マイルストーンは変わっていませんでした。 コミットリスト: Comparing @{2020-16-09}...master@{
Over 90× faster than ESLint, quick-lint-js gives you instant feedback as you code. Find bugs in your JavaScript before your finger leaves the keyboard. Lint any JavaScript file with no configuration. const occupation = language + " coder"; const language = "JavaScript"; occupation = "Senior " + occupation; E0057 - use of undeclared variable: ocupationconsole.log(`Welcome, ${ocupationoccupation}!`)
警告 この記事の情報は現時点では古くなっています。 ESLintとPrettierを組み合わせる場合、別の記事を参考にしてください。 例: Prettierの導入とESLintとの併用について 経緯については以下を参考にしてください。 Prettier と ESLint の組み合わせの公式推奨が変わり plugin が不要になった Vue+TypeScriptを使用したソースコードに対しESLintとPrettierを適用するにあたり、ESLint関連のパッケージそれぞれがどのような役割を持っているか調べてみると思ったよりもコンパクトな内容(plugins,parser,parserOptionsなどは指定しなくても大丈夫)でLint+整形が出来ることを確認できたため、最終的に確認できた設定と調べた内容を共有します。 動作確認はVSCodeで行っています。 事前に準備が必要なもの Vue3
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く