並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 92件

新着順 人気順

jsの検索結果1 - 40 件 / 92件

  • PythonだけでWebアプリが作れるライブラリが増えている(2024.05) - Qiita

    ※本記事で言及しているReflexのdiscord内に日本語チャンネルをつくってもらいました。もし、興味をもった人がいたら参加してみてください。 1.PythonだけでWebアプリをつくるライブラリが増えている 最近(2024.05)、Python界隈ではPythonだけでWebアプリが作れるライブラリが増えています。詳しくは他の記事を参照してもらえればと思います。 以下の記事がとても参考になりました。ありがとうございます。 2.ライブラリの分類 こうしたライブラリも大きくわけて2つの種類があるように思います。 ①データ解析の結果を表示するダッシュボードライブラリ ②汎用的なWebアプリをつくるローコードライブラリ ①ダッシュボード系ライブラリ たとえば、上記の記事にも出てきますし、ネットでもかなり情報の多い、StreamlitやDashは項番1のダッシュボードライブラリに該当すると思いま

      PythonだけでWebアプリが作れるライブラリが増えている(2024.05) - Qiita
    • 令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io

      Intro CSRF という古の攻撃がある。この攻撃を「古(いにしえ)」のものにすることができたプラットフォームの進化の背景を、「Cookie が SameSite Lax by Default になったからだ」という解説を見ることがある。 確かに、現実的にそれによって攻撃の成立は難しくなり、救われているサービスもある。しかし、それはプラットフォームが用意した対策の本質から言うと、解釈が少しずれていると言えるだろう。 今回は、「CSRF がどうして成立していたのか」を振り返ることで、本当にプラットフォームに足りていなかったものと、それを補っていった経緯、本当にすべき対策は何であるかを解説していく。 結果として見えてくるのは、今サービスを実装する上での「ベース」(not ベスト)となるプラクティスだと筆者は考えている。 CSRF 成立の条件 例えば、攻撃者が用意した attack.examp

        令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io
      • ドラえもんだらけ

        しばらく経ってもこの画面に変化がない場合は、Javascript を on にして再度読み込んで下さい。

          ドラえもんだらけ
        • ボケた親を見捨ててはいけないの? - Everything you've ever Dreamed

          呆けてしまった親を見捨ててはいけないのだろうか。冷たいようだけれども各々好きにすればいい、と僕は思う。面倒をみるのも見捨てるのも正しい。僕の母はさいわい元気で、呆けるのは貸した金を返すように僕が文句をいうときだけである。僕自身は家族に面倒をみてもらいたいとは思わない。つか面倒をみてくれる家族がいなかった。奥様からは「キミがボケても面倒はみないから」と言われている。ハードコア・ライフだ。そんなことを考えているのは、実家の裏に住んでいる高齢女性が原因のちょっとした騒動に巻き込まれて警察沙汰になりかけたからだ。母からは裏のオバサンが呆けてヤバいという話を聞かされていた。「約束をすっかり忘れる。約束したことすら覚えていない」「一緒に出かけて帰ってきた直後にまだ出かけないの?と訊いてくる」「娘の旦那宛の電話をウチにかけてくる」等々。オバサンは母よりも少し年上なので八十代前半。僕の一学年上の娘が一人い

            ボケた親を見捨ててはいけないの? - Everything you've ever Dreamed
          • 僕の考えた最強の Python 開発環境 (2024)

            はじめに こんにちは, 普段は情報科学専攻の大学院生をしながらバックエンドエンジニアをやっている @koki-algebra です. 普段は Go をよく書いているのですが, 大学でやっている機械学習の研究では Python を使うことがほとんどです. Go のエコシステムに慣れきった私は Python の混沌とした環境に耐えきれず, 最強の開発環境を整えることを決意しました. 具体的には Package Manager, Formatter, Linter, Type Checker, Test Tool を選定し, VSCode の DevContainer を用いてポータビリティに優れた開発環境を作ることを目指します. また, Deep Learning では GPU が必須である場合が多いので, GPU 環境も同時に整えたいと思います. 以下のレポジトリが今回考えた開発環境のテンプ

              僕の考えた最強の Python 開発環境 (2024)
            • group_inou / HAPPENING

              Interactive GIF Music Video by AC-bu

                group_inou / HAPPENING
              • 2024年版 HTMLで作るフォームバリデーション - ICS MEDIA

                すべてのフォームが要件を満たしている場合のみ、送信できます。 フォームバリデーションのデザイン 上記の例では最低限のHTMLのみ実装されています。しかし、実際のサイトではバリデーションエラーをユーザーにフィードバックする必要があります。よりユーザビリティの高いフォームでは、以下の点を検討する必要があります。 エラー時のスタイル エラーメッセージの出し方 バリデーションエラーの表示タイミング 以下では、それぞれについて深堀りします。 エラー時のスタイル エラーを検知する方法として、CSSには:valid疑似クラスと:invalid疑似クラスがあります。これらの疑似クラスは『CSS疑似クラスを活用した、モダンでインタラクティブなフォームの作り方』でも紹介されている、バリデーションエラーが起きている要素にのみ適用されるクラスです。 しかし、この疑似クラスには欠点があります。required属性を

                  2024年版 HTMLで作るフォームバリデーション - ICS MEDIA
                • フロントエンドのスピードに置いていかれたので、よく聞く技術を調べて分類してみた

                  元フルスタックエンジニア(死語)をやらせていただいていたものです。 JavaScript(TS)周りの進歩が凄く、あまりにもついていけていなかったので、気になったワードを片っ端から整理してみました。 それぞれに対する説明の正しくないものが含まれてしまっている可能性があります。 そんなところを見つけたときは優しく教えてくださると助かります。 各ツールの詳細というよりは、それぞれがどんな役割のものなのかを記載しています。 この記事が誰かの助けになれば幸いです。 調査・分類した言葉(技術)たち Hono Bun Deno Biome Vite Webpack Turbopack esbuild Babel SWC Prisma まず上記に上げたものが、どういった機能を持つものなのかもわかりませんでした。 それを整理すると以下になるようです。 JavaScript Runtime Deno Bun

                    フロントエンドのスピードに置いていかれたので、よく聞く技術を調べて分類してみた
                  • 令和のHTML / CSS / JavaScriptの書き方まとめ

                    Web制作の技術は日々進化しており、会社やプロジェクトによっては昨今の環境に適さない書き方をしているケースも時折見受けられます。 そこで今回は「2024年のWeb制作ではこのようにコードを書いてほしい!」という内容をまとめました。 質より量で、まずは「こんな書き方があるんだ」をこの記事で伝えたかったので、コードの詳細はあまり解説していません。なので、具体的な仕様などを確認したい方は参考記事を読んだりご自身で調べていただけると幸いです。 1. HTML 画像周りはサイトパフォーマンスに直結するので、まずはそこだけでも取り入れていただきたいです。また、コアウェブバイタルやアクセシビリティも併せて理解しておきたい内容です。 Lazy loading <img>にloading="lazy"属性を付けると画像が遅延読み込みになり、サイトの読み込み時間が早くなります。

                      令和のHTML / CSS / JavaScriptの書き方まとめ
                    • 巷の「ReactとNext.jsの比較」はここがおかしい、というか比較すること自体が微妙 - honey32

                      (WIP まとまったら Qiita とかに上げるかも) TLDR; 「React と Next.js を比較」という記事で、 Next.js と比較できるのは「フレームワークなしで React を使うという選択肢」であって、「React そのもの」ではない。 ✅️ React を使うのに 「フレームワークあり」 vs 「フレームワークなし」 ❌️「React」 vs 「Next.js」 それはそうと、「create-react-app の機能・特徴」のことを、「React の機能・特徴」であるかのように書いてしまっている記事が多い create-react-app 自体が擬似的なフレームワーク(といえそう) そもそも、create-react-app は今は更新されてないので create-vite-app を使うべき フレームワークあり or フレームワークなし 【フレームワークあり】

                        巷の「ReactとNext.jsの比較」はここがおかしい、というか比較すること自体が微妙 - honey32
                      • Node.js + TypeScriptのモジュールを整理してみる

                        はじめにlink 最近受けるNode.js + TypeScript環境の相談の中で、CommonJSやECMAScript Modulesのあたりで落とし穴にはまっている人が多いという事に気づいた。 Node.jsは歴史的にCommonJSとECMAScript Modules(以後ESMと表記)がどうしても入り乱れる環境にあり、これにTypeScriptのモジュールが加わると組み合わせでさらに複雑度が増すのが現状である。 説明する際に口頭より整理した文章が欲しいと思ったので記事にする。 以下のリポジトリで検証コードを管理している。 https://github.com/koh110/module_test Node.jsモジュールチェックシートlink まず最初にNode.jsにおけるCommonJSとESMの挙動について整理する。 いきなり書かれても把握できないかもしれないが、一旦こ

                          Node.js + TypeScriptのモジュールを整理してみる
                        • PandasからPolarsへ移行した方がいいのか - Qiita

                          なぜこの記事を書くのか 皆さん、データ解析を行う際にどのようなライブラリを用いているでしょうか。 おそらく大半の人はpandasを使っているのではないでしょうか。 私もpandas使ってます。簡単だよね(´・ω・`) しかし、業務でバカクソでけえデータを読み込もうとしたときに、読み込み時間がとんでもなくかかったり、メモリ不足でそもそも読み込めもしないことが起きていました。 読み込みにメモリ食われすぎて他の作業ができずに待機した挙句、燃え尽きたかのようにノーパソのファンが止まると同時にメモリ不足のエラーが出たときには切れ散らかします。 (画像元:葬送のフリーレン公式Xアカウントのポストより) そんなこともあり、AWSなどのクラウドサービスでメモリに余裕を持たせるためにめちゃくちゃ良いインスタンスを使用していましたが、コストの問題で断念しました。 しかし、どうしても読み込みたいということもあり

                            PandasからPolarsへ移行した方がいいのか - Qiita
                          • Node.js の進化に伴い不要となったかもしれないパッケージたち

                            tl;dr はじめに 2024 年の 4 月 24 日に Node.js 22 がリリースされました。ESM を 条件付きで require する機能や、--run フラグによる npm スクリプトのパフォーマンス改善などが v22 で追加され、2009 年に Ryan Dahl が Node.js をリリースしてから 15 年が経つ今も、Node.js は進化を続けています[1]。 こうして Node.js 自身が強化されていくにつれ、以前はサードパーティーのパッケージを使用して実現することが一般的であった機能が Node.js のみで実現可能となり、当該パッケージが不要となるような場合があります。冒頭に引用した Ben Holmes の動画では、そのように不要となったパッケージとして dotenv node-fetch chalk mocha が挙げられていますが、この記事では「これら

                              Node.js の進化に伴い不要となったかもしれないパッケージたち
                            • 初心者大学生が作った機械学習ライブラリがGitHubでスター数300を超えた話 - Qiita

                              この記事について この記事では、プログラミング初心者の大学生である(であった)私が試行錯誤しながらなんとかスター数300越えのOSSライブラリを作った過程をまとめたものです。ライブラリ自体はまだまだ発展中のためこの記事も適宜更新してく予定です。ライブラリ自体の詳細というよりも、自作OSSの認知度を上げで他の人に使ってもらうために有用そうな知見をまとめていこうと思います。 ライブラリの概要 今私が作っているのは、AIJackという、機械学習モデルがもつセキュリティ・プライバシー上の脆弱性についての各種攻撃・防御手法を実験するためのPythonツールです。既存のライブラリの多くは特定の種類の攻撃や防御に特化したものが多く、複数のタイプの攻撃・防御を組み合わせて実験するためにはいくつものライブラリを組み合わせる必要がありました。そこでAIJackでは、できる限り統一的なAPIで様々な攻撃・防御手

                                初心者大学生が作った機械学習ライブラリがGitHubでスター数300を超えた話 - Qiita
                              • Prisma ORMを2年運用して培ったノウハウを共有する

                                TSKaigi 2024 ref: https://tskaigi.org/talks/tockn

                                  Prisma ORMを2年運用して培ったノウハウを共有する
                                • 2024年版最近の実装に合わせた、HTMLでWebページを実装するための必要最小限をまとめたテンプレート一式

                                  Webページを作成する時に役立つ、HTMLをはじめとする必要最小限のファイルをまとめたシンプルな基本テンプレート一式を紹介します。 最新版は、最近の実装に合わせた設計にアップデートされました。 HTML5 Boilerplate -GitHub HTML5 Boilerplateの特徴 HTMLの基本テンプレート HTML5 Boilerplateの使い方 HTML5 Boilerplateの特徴 HTML5 Boilerplateは、Webサイトやアプリを実装するためのプロフェッショナルなフロントエンド用のHTMLの基本テンプレートです。 実践的な基本のテンプレート 200人を超える貢献者による10年間の分析・研究・実験を元にしています。 ブラウザの見え方を最適化 プログレッシブエンハンスメントを念頭において設計されています。 インクルード 推奨されるmetaタグやその他の利点を備えたH

                                    2024年版最近の実装に合わせた、HTMLでWebページを実装するための必要最小限をまとめたテンプレート一式
                                  • Deno first でやっていく

                                    去年末ぐらいから Deno を使う割合がグッと増えてきた。最近のJS関連は7割ぐらい deno 環境の VSCode でコードを書いている気がする。 今回はいくつかの実例を示しながら、実際に Deno 使えるじゃんというイメージを持ってもらうためのユースケースを紹介していく。 というか、 deno が普及してくれないと、自分が作ったツールの紹介を全部 deno のインストールから書かないといけなくなる。みんなインストールしといて。 最初に: なぜ Deno を使いたいか 一番の問題点、Node は新しいプロジェクトを一式整えるための手間が非常に重い。 とくに ts で書いたものを他の環境に渡すための方法が未だにしんどい。ある環境で動いたコードをそのままコピーしても、プロジェクト設定の非互換を踏む可能性が非常に高い。 deno にそういう側面がないとは言わないが、非常に少ない。とくに TS

                                      Deno first でやっていく
                                    • エラーや非同期処理をより安全に扱うための TypeScript ライブラリ Effect-TS

                                      TypeScript の型システムを活用して、本番のアプリケーションにおける実用的な問題を解決することを目指しています。Effect-TS は、以下のような特徴を備えています。 並行性(concurrency):Fiber ベースの並行モデルにより、高いスケーラビリティと低レイテンシを実現 コンポーザビリティ(composability):小さく再利用可能なパーツを組み合わせることで、メンテナンス性、可読性、柔軟性の高いソフトウェアを構築する リソースの安全な管理(resource-safety):処理が失敗したとしても、安全にリソースを開放する 型安全性(type-safety):TypeScript の型システムを活用した型推論と型安全性に焦点を当てている エラー処理(error handling):構造化された信頼性の高い方法でエラーを処理する 非同期性(asynchronicity

                                        エラーや非同期処理をより安全に扱うための TypeScript ライブラリ Effect-TS
                                      • エラーが出たら喜べ。エラーをちゃんと出せ。 - Qiita

                                        どうもエラーを出すもしくはエラーが出るのが怖いという人がいるみたい。例えば改修を行うときに既存部分でエラーが出ないことを最優先にして増築を行いいびつな構造を生み出すとか、単純に例外を全然使わないとか。エラーが出ると、「うわ、エラーになった。手間かけさせやがって面倒だなぁ…」みたいな感覚があって、とにかく自分がコードを書くときも一切例外を投げないというスタンスをとりがちなのかもしれない。 私はここで、適切にエラーが出てくれるのはむしろ喜ばしいことであり、自分がコードを書くときも積極的にエラーを出すようにすべきだ、という主張をする。 関数定義のドキュメンテーションの一部 ある関数の中身で一番最初に書くべき処理は何か、それは引数のチェックをして条件を満たさなければエラーを出すことである。例えば文字列は特定の形式になってなければならないとか、数値に最大値最小値があるとか、これらは関数の入力の前提条

                                          エラーが出たら喜べ。エラーをちゃんと出せ。 - Qiita
                                        • 【熱望】javascript の for 文で var i を宣言するのはやめて下さい - Qiita

                                          この書き方でも for 文は正常に動作します。 しかしながらこの書き方は 以下の書き間違いが生じることがあります。 for(var i = 0; i < array1.length; i++) { //長い処理 for(var i = 0; i < array2.length; i++) { } } 長い処理の中で i を宣言したことを忘れて 再び i を宣言してしまうことで 外側の for 文のカウントにバグが発生し 期待した動作にならない例になります。 私も他の人が作成した web アプリで このバグを見かけたことがあります。 for の変数を宣言する場合 必ず let で宣言して下さい。 var でなければ正常に動作しないのは 構造的欠陥のハズです。 let array1 = [1, 2, 3]; let array2 = [4, 5, 6]; for(let i = 0; i <

                                            【熱望】javascript の for 文で var i を宣言するのはやめて下さい - Qiita
                                          • IME変換中のエンターキーで送信される!への対処法[追記あり] - Classi開発者ブログ

                                            [2024年4月25日 追記] Safariの動作について考慮漏れがありましたので、一部追記・編集しました。 新宿にオフィスのあるClassiは、岡山在住の私のような地方在住者だけでなく、いわゆる通勤圏内に在住していてもリモートワークで働いている人が多い会社です。必然的にミーティングはいわゆるオンラインミーティングとなり、主にGoogle Meetが利用されています。 そのGoogle Meetのチャット機能、ここ1週間ぐらい「IMEで日本語に変換のために押すエンターキーで送信されてしまう」という現象が発生しています。このエントリーを読まれている時点では対応しているかも知れませんが、2024年4月22日17時時点ではその現象は続いています(Windowsでは再現しないという情報もあります)。 入力開始 変換して確定のエンターキーを押すと 送信される エンターキーに頼らない日本語入力を頑張り

                                              IME変換中のエンターキーで送信される!への対処法[追記あり] - Classi開発者ブログ
                                            • 『東京ミドル期シングルの衝撃』(宮本みち子、大江守之編著、東洋経済新報社) - 内田樹の研究室

                                              東洋経済新報社の渡辺さんから新刊の書評を頼まれたので少し長い紹介を書いた。タイトルはやや挑発的だけれど、人口動態と地域コミュニティ形成についての手堅い研究である。でも、ほんとうに衝撃的なのは、こういう研究にごく最近まで誰も見向きもしかなったという事実の方なのである。 人口減問題について語る人たちの多くはマンパワーの不足やマーケットのシュリンクや年金や医療制度の持続可能性について話すけれど、ほんとうにシリアスなのは「高齢期に入って社会的に孤立化したシングルのアンダークラス化」にある。本書はそのタブーを正面から取り上げた例外的な仕事である。 「アンダークラス」というのは「ワーキングクラス」のさらに下に位置する、生活保護なしでは暮らしていけない最貧困層のことである。差別と排除の対象となり、社会の底辺に吹き溜まる閉鎖集団である。 日本でもこれから「高齢者アンダークラス」が大量出現する可能性がある。

                                              • Next.js 型安全なルーティングを使う

                                                Next.js 型安全なルーティングを使う 2024.04.28 Next.js では実験的な機能として、型安全なルーティングを利用できます。この機能を使うことでリンク先のパス名を静的に検査できるため、typo などのエラーを事前に防ぐことができます。 この記事における「型安全」とは、静的な型検査によりランタイムで起こり得るエラーを事前に検知することを指します。 Next.js では Next.js 13.2 より実験的な機能として、型安全なルーティングを利用できます。この機能を使うことでリンク先のパス名を静的に検査できるため、typo などのエラーを事前に防ぐことができます。 なお、型安全なルーティングを利用するためには App Router と TypeScript を使用している必要があります。 型安全なルーティングの利用方法 型安全なルーティングを有効にするためには、experim

                                                  Next.js 型安全なルーティングを使う
                                                • ほぼJSなしで完璧なReactフォームをつくる

                                                  import { ChangeEvent, FormEvent } from "react"; export default function Form() { const showError = (message: string) => (e: FormEvent<HTMLInputElement>) => { if (e.currentTarget.validity.valueMissing) { e.currentTarget.setCustomValidity(message); } else if ( e.currentTarget.validity.patternMismatch && e.currentTarget.name === "postcode" ) { e.currentTarget.setCustomValidity("郵便番号正しく入力してね"); } else

                                                    ほぼJSなしで完璧なReactフォームをつくる
                                                  • The Front End Developer/Engineer Handbook 2024

                                                    This guide is open source, please go ⭐️ it on GitHub and make suggestions/edits there! https://github.com/FrontendMasters/front-end-handbook-2024 1. Overview of Field of Work This section provides an overview of the field of front-end development/engineering. 1.1 — What is a (Frontend||UI||UX) Developer/Engineer? A front-end developer/engineer uses Web Platform Technologies —namely HTML, CSS, and

                                                      The Front End Developer/Engineer Handbook 2024
                                                    • Next.jsのApp Routerを学ぶ際、shadcn/uiが参考になったという話 - Qiita

                                                      Next.jsのApp Routerを学ぶ際に、UIライブラリを探していたところ、shadcn/uiが参考になったので紹介します。 shadcn/uiは、フレームワークやライブラリではなく、コピペで利用できるReactコンポーネントのサンプル集という立ち位置になっています。Tailwind CSSでデザインされており、React Server Components(RSC)にも対応しています。 サンプルの実装方法が参考になる点も魅力の一つです。 簡単ですがつらつらと紹介していきたいと思います。 shadcn/uiとは デモを見てるとフレームワークやライブラリなのかなと思いきやそうではなく、コピペで利用できるサンプル集という立ち位置になっています。基本的にはTailwind CSSでデザインされてるようです。 サンプルとはいえ、実装方法で参考になった箇所が結構あったのでそこも気に入ってるポイ

                                                        Next.jsのApp Routerを学ぶ際、shadcn/uiが参考になったという話 - Qiita
                                                      • Wallaby.jsを使ってフロントエンド開発のテストを効率化しよう - Findy Tech Blog

                                                        Findy Team+でフロントエンドエンジニアをしている 川村(@peijun333)です。 Findy では、フロントエンドのコード品質と安定性を確保するために Jest などのテストフレームワークを積極的に活用しています。通常、Jest は CLI から実行してテスト結果をコンソールで確認しますが、コマンドを用意する手間や、テスト経過のデバッグのために都度 console.log などでその内容を確認しなければならずとても不便です。 そこで、今回はテストの自動化とリアルタイムなフィードバックを提供する JavaScript の統合テストツールである Wallaby.js を紹介します。Wallaby.js を導入することで、開発効率の向上が期待できます。 Wallaby.js とは? 前提条件 VS Code でテストの修正 Wallaby.js はリファクタリングに強い スナップシ

                                                          Wallaby.jsを使ってフロントエンド開発のテストを効率化しよう - Findy Tech Blog
                                                        • Node.js v22 で変わること

                                                          2024/04/24 令和トラベルで発表した Node.js v22 で変わることの話です。

                                                            Node.js v22 で変わること
                                                          • 最近はJavaScriptをデフォルト無効化してブラウジングしてる

                                                            こういう事(これが本当にマルバタイジングだったのかサイト改ざんだったのかどうか等はITmediaから経緯説明があったわけでもないので知らない)があって こういうスタンスなのだけれど、モバイル環境に関しては最近はJavaScriptを無効化してブラウジングしてる。使っているスマホのバッテリーがへたりはじめているので少しでも消費電力を下げたいというのもある。 基本的にはChromeをデフォルトJavaScript無効、よく利用するサイトを例外ドメインとして設定して利用 例外ドメインに追加したくはないけどアドホックにJavaScript有効で見たいページは共有メニュー(インテント)からFirefox Focusで開いている。この運用で今のところ不便さは感じてない。ただデスクトップ環境に関しては今の所は何もしてない。 昔々IEコンポブラウザと呼ばれるものが流行っていた頃のkiller featur

                                                              最近はJavaScriptをデフォルト無効化してブラウジングしてる
                                                            • 「実装例から見る React のテストの書き方」をアップデートする

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

                                                                「実装例から見る React のテストの書き方」をアップデートする
                                                              • TypeScriptのパフォーマンス改善

                                                                2024/05/11に行われたTSKaigiで発表したLTの資料です! ◎概要 TypeScriptはJavaScriptのスーパーセットとして、静的型付けと高度な型システムを提供し、大規模なプロジェクトの開発を助けています。しかし、これらの利点を最大限に活用するためには、コンパイルパフォーマンスの最適化が不可欠です。コンパイル速度を上げることでビルド時間やテスト実行時間の削減を行うことができます。今回の発表では、TypeScriptのコンパイルパフォーマンスを改善するための具体的な手法とその背後にある理論をいくつか紹介します。 ◎内容 1. TypeScriptのパフォーマンスとは何か、そしてなぜそれが重要なのか 2. コンパイル速度を改善するための具体的な手法とその背後にある理論 本資料で紹介している内容については以下の記事で詳しく記載していますので合わせて参照していただければと思いま

                                                                  TypeScriptのパフォーマンス改善
                                                                • 【JS】「ただの {}(ブロック文)」を使うと嬉しいこと

                                                                  JavaScript の 「ブロック文」 をご存知でしょうか。 波括弧(ブレース)で囲む、コレです。 if ブロック if () {} や、for ブロック for () {} として目にすることが多いですが、 {} 単体でもブロック文になります。 これだけだとオブジェクトと思ってしまうかもしれませんが、ブロック文になります。 (オブジェクトとブロック文の解釈については javascriptのオブジェクトリテラルは評価されるまでは、あくまでブロック文でしかない - メモを揉め が詳しいです) なんの意味もないように見える「ただの {}(ブロック文)」ですが、意外と便利なことがあるのでこの記事ではそれを紹介します!

                                                                    【JS】「ただの {}(ブロック文)」を使うと嬉しいこと
                                                                  • TypeScript の型検査にかかる時間を短縮した話

                                                                    こんにちは。ナレッジワークの torii です。 最近、プロジェクトで使用している TypeScript の型検査にかかる時間を 3 割ほど短縮することに成功しました。 参考までにどのようにボトルネックを調査して改善に繋げたのかを書いてみます! きっかけ 改善のきっかけは、たまたまネットを徘徊していて見つけた Zenn 記事でした。 (素晴らしい記事をありがとうございます!) これを読んで「自社のプロダクトでも型検査にかかる時間を短縮できるのでは?」と思い立ち、試してみたところ実際に改善に役立てることができた、というのがこの記事の概要になります。 改善対象 改善対象は、弊社のメインプロダクトであるナレッジワークのフロントエンドです。現在マルチプロダクト化に向けたコード分割に取り組んでいる最中ですが、執筆時点はモノリシックな構成となっています。 改善前の TypeScript ファイルは自動

                                                                      TypeScript の型検査にかかる時間を短縮した話
                                                                    • スムーススクロールの実装例 | TAKLOG

                                                                      html要素にscroll-behavior:smoothを指定するだけのコストの低さ、それでいて従来のアンカーリンクの機能を損ねないことから「スムーススクロールはCSSのみで十分」といった技術記事やポストが多く広まっています。 ただ、そういった技術記事やポストは「CSSのみで対応できる」「ワンライナーで実装できる」と言ったコストの低さばかりが先行していて、肝心のデメリットには触れていません。 実際、CSSのスムーススクロールには多くの問題点が孕んでいます。 全てのページ内リンクがスムーススクロールされるCSSのscroll-behavior:smoothを使用すると、ページ内の全てのアンカーリンクがスムーススクロールの対象となります。そのため、限定的にスムーススクロールを無効化したいと言った場合は別途JSでの対応が必要となります。 僕のブログではJS無効環境のフォールバックとしてhidd

                                                                        スムーススクロールの実装例 | TAKLOG
                                                                      • 【JS体操】JavaScript で頭の体操をしよう!〜第一問 44文字 解説編〜 - KAYAC engineers' blog

                                                                        こんにちは!カヤック面白プロデュース事業部のおばらです。 普段は受託案件、特にインタラクティブな WebGL や Canvas2D を駆使する案件のデザイン&実装を担当しています。 先日出題したJS体操 第一問目、挑戦してくださったみなさまありがとうございました! 早速ですが最短文字数の回答は 44文字 でした! export default x=>x-(x%=.2)+.2-(.04-x*x)**.5 みごと44文字を達成した方は、 halwhite さん koyama41 さん sugyan さん tkihira さん たつけん さん の5名!(※ Unicode コードポイント順) おめでとうございます!! 最短文字数を狙った正統派の回答以外にも、裏技的な面白アプローチがたくさんありました笑 このアプローチは面白い、ぜひ紹介したい!という回答がいくつかあったので、解説記事は2回に分けて

                                                                          【JS体操】JavaScript で頭の体操をしよう!〜第一問 44文字 解説編〜 - KAYAC engineers' blog
                                                                        • pnpm の node_modules を探検して理解しよう - ドワンゴ教育サービス開発者ブログ

                                                                          はじめに こんにちは。ドワンゴ教育事業でエンジニアをしているユーンです。 N予備校アプリケーションやその他複数のプロジェクトで pnpm を採用しました。pnpm とは何か、npm とどう違うのかというのを node_modules の構造を追いながら理解しつつ、教育事業での採用した結果についてお話します。 pnpm とは pnpm とは、npm や yarn とレイヤーを同じくするパッケージマネージャであり、サードパーティのものです。 pnpm.io pnpm は他のツールと比較して高速でありディスク効率が良いと謳っています。 その pnpm の最大の特徴は、 node_modules の構造にあります。 例えば npm では v3 からフラットな node_modules を使うようになっております。yarn もデフォルトでは同様にフラットな node_modules を提供しています

                                                                            pnpm の node_modules を探検して理解しよう - ドワンゴ教育サービス開発者ブログ
                                                                          • JavaScript でキューを実装して性能を比較してみた - Qiita

                                                                            JavaScript でキューを実装して性能を比較してみた。 今回は、以下の条件で実装を行った。 クラスとして実装する 1個のデータのエンキューとデキューを行うメソッドをそれぞれ実装する それ以外のメソッド (要素数、先頭を削除せずに取得など) は実装しない エラー処理 (空のときにデキューを試みるなど) は行わない なお、実装で出てくる # つきのメンバ変数はプライベートプロパティである。 方針・実装 配列のpush・shift 配列の末尾に要素を追加するメソッド push をエンキューとして用い、配列の先頭から要素を取り除いて返すメソッド shift をデキューとして用いる。 エンキューとデキューがともに1回メソッドを呼び出すだけで実現でき、シンプルな実装になる。 class QueueShift { #q = []; enqueue(value) { this.#q.push(val

                                                                              JavaScript でキューを実装して性能を比較してみた - Qiita
                                                                            • GitHub - cezaraugusto/extension.js: 🧩 Plug-and-play, zero-config, cross-browser extension development tool.

                                                                              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 - cezaraugusto/extension.js: 🧩 Plug-and-play, zero-config, cross-browser extension development tool.
                                                                              • 【ハンズオン】RemixでTODOアプリを作ってReactの違いを体感しよう【TypeScript/Supabase/TailwindCSS】 - Qiita

                                                                                【ハンズオン】RemixでTODOアプリを作ってReactの違いを体感しよう【TypeScript/Supabase/TailwindCSS】TypeScriptハンズオンRemixtailwindcssSupabase はじめに Reactを使っていてステートがクライアントとサーバーで辻褄が合わなくなった そんな経験がReactをある程度使ったことがある人はおそらく経験したことがあるはずです。 Reactにおいて状態管理は誰でも使いやすく直感的である半面、クライアントとサーバーの状態を意識する必要が有ります。 どのタイミングでステートの変更をサーバーでも行うのか難しく思う場面もしばしばあります。 今回は最近巷でReactと並んで見かけるようになったRemixについてハンズオン形式で学べるような記事を書いていきます。 ハンズオンを通してRemixの特徴であったり、SupabaseやTail

                                                                                  【ハンズオン】RemixでTODOアプリを作ってReactの違いを体感しよう【TypeScript/Supabase/TailwindCSS】 - Qiita
                                                                                • Go を Wasm にビルドして Google Apps Script で動かす

                                                                                  Go のコードで文字列の変換をする関数があり、これが Google スプレッドシート上の関数としても利用できれば検証[1]に便利かもしれないと思いました。 Google スプレッドシートでは Apps Script の関数をセル上で実行できるので、Go のコードを Wasm にビルドして JavaScript から呼び出すことができれば良いのではないかと考え、実際に試してみることにしました。 動作環境 Go 1.22.2 Apps Script の設定 Chrome V8 ランタイムを有効にする その他 macOS の pbcopy コマンド[2]を利用した手順を記載していますが、Linux 環境でも pbcopy を他の手段に置き換えることで同様に動作しました。 事前調査 Go を Wasm にビルドして GAS で動かす事例は見当たりませんでしたが、Rust を Wasm にビルドして

                                                                                    Go を Wasm にビルドして Google Apps Script で動かす