最近、よく目にするデータフォーマットに「JSONC」があります。これはJavaScriptでお馴染みのJSON形式にコメントを記述できるよう拡張したものです。Visual Studio Codeでも採用されており、設定ファイルとして利用されることが増えています。そこで、JSONCの記法やJavaScriptから使う方法を確認してみましょう。 JSONCは可読性の高いデータフォーマット JSONCとは 「JSONC(JSON with comments)」とはJSONにJavaScriptスタイルのコメントを記述できるようにしたデータフォーマットです。そのため、基本的にデータフォーマットのJSONなのですが、そこにJavaScript風のコメントである「// コメント」と「/* コメント */」を記述できるようにしたものです。 冒頭で紹介したように、プログラミング用のエディタ「Visual
先に英語で書いてから日本語訳しています。 こんにちは、個人アプリ作家のTakuyaです。 僕はInkdropというMarkdownノートアプリを独りで開発しています。 これはmacOSやWindows、Linux、iOSからAndroidまでスムーズに動作します。 なぜならデスクトップ版はElectron、モバイル版はReact Nativeで組まれているからです。 つまりアプリは基本的にJavaScriptで書かれています。 本稿では、vimにて効率的にJavaScriptをコーディングするためのワークフローについてシェアします。 僕はVSCodeのようなIDEを使わず、主にターミナル上で作業しています。 使っているツールはtmuxとNeovimです。 この構成での基本的なワークフローについてはこちらに書きました。 ここでは、更にvimの設定について掘り下げてご説明します。 僕のdotf
If you're already somewhat familiar with promises, here are some shortcuts to save you some precious scrolling time. Introduction When writing JavaScript, we often have to deal with tasks that rely on other tasks! Let's say that we want to get an image, compress it, apply a filter, and save it 📸 The very first thing we need to do, is get the image that we want to edit. A getImage function can tak
WEB+DB PRESS本誌では久しぶりとなる連載インタビュー企画。新型コロナ禍のさなか対面での取材を避け、リモートで行います。ホストは関満徳が務めます。記念すべき第1回目のゲストとしてお迎えしたのは、Node.js日本ユーザグループ代表理事の古川陽介氏です。 古川氏は、日本トップクラスのJavaScriptエンジニアとして知られ、大学院を卒業後、数社での勤務を経て、社員のマネジメントとWebアプリケーション作成用のユーティリティツールやフレームワークの開発を担当されています。その傍ら、Japan Node.js Association代表理事として、国内外のカンファレンスへの登壇、Node.jsの勉強会やイベント運営など積極的に活動されています。 古川 陽介(FURUKAWA Yosuke)さん(株)リクルートテクノロジーズでマネージャーとしてアプリ基盤の改善や運用、開発支援ツールの
2022年2月15日 JavaScript, Webサイト制作 手書きのものってどこか温かみがあって親近感がわきますよね。今回はそんな手書き風のUIを実装できるJavaScriptライブラリーを紹介します! ↑私が10年以上利用している会計ソフト! Rough Notation Webサイト|GitHub テキストの一部を強調したり、注釈を入れたいところに手書き風マーカーを追加できます。まさに今書いてます!というようなアニメーションも面白いですね。 導入方法 JavaScriptファイルで import { annotate } from 'https://unpkg.com/rough-notation?module'; または npm でインストールします。 npm install --save rough-notation 実装方法 基本的には実装したい要素を指定して、装飾を指定し、
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Hotwire: Reactive Rails with no JavaScript? — Martian Chronicles, Evil Martians’ team blog 原文公開日: 2021/04/12 原著者: Vladimir Dementyev -- Evil Martiansリード開発者。 サイト: Evil Martians -- ニューヨークやロシアを中心に拠点を構えるRuby on Rails開発会社です。良質のブログ記事を多数公開し、多くのgemのスポンサーでもあります。 長文につき前編と後編に分割しました。 サマリー The HEY stack: - Vanilla Ruby on Rails on the backend, running on edge - Stimulus, Turbolink
How to Use Defaulthttps://cdn.skypack.dev/package-name https://cdn.skypack.dev/@scope/package-name Package Versionhttps://cdn.skypack.dev/preact@10 https://cdn.skypack.dev/preact@^10.5.0 https://cdn.skypack.dev/preact@10.5.5 Package Exporthttps://cdn.skypack.dev/preact/hooks https://cdn.skypack.dev/preact@^10.5.0/hooks Minified (?min)https://cdn.skypack.dev/preact?minDeno (?dts)https://cdn.skypack
はじめに 今関わっているプロジェクトで7万行以上のコードを、JavaScriptからTypeScriptに移行するというのを経験しました。 移行するにあたっての準備や手順、実際にやってみて感じたことなどを共有します。 プロジェクトの概要 フルスタックWEBアプリケーション フロントエンド: JavaScript + React バックエンド: Node.js + Express.js + GraphQL なぜそもそもTypeScriptを採用しなかったのか 事前に技術選定をした際に、TypeScriptを利用するかどうかの議論はありました。 当時は以下の理由から採用しないという選択に至りました。 JavaScriptの開発に慣れていたため、TypeScript型定義=面倒というイメージが強かった 「スピードが命」と考えており、TypeScriptを使うことで開発効率が下がると思っていた プ
javascriptJavaScript's Memory Management ExplainedEven though the JavaScript engine manages memory for us, it's good to know what happens under the hood. Read in Chinese or Korean Most of the time, you can probably get by fine not knowing anything about memory management as a JavaScript developer. Afterall, the JavaScript engine handles this for you. At one point or another, though, you'll encount
JavaScriptランタイム「Bun」が約9億円を調達、「Oven」社を設立。ホスティングやCIサービスなど計画 7月に発表されるやいなや急速に注目を集めているJavaScriptランタイム「Bun」の開発者であるJarred Sumner氏が、Bunの開発とサービス提供などを目的とする企業「Oven」社の設立を発表しました。 Introducing Oven: the company behind Bun. Oven has raised $7m led by @buckymoore at Kleiner Perkins with participation from @rauchg @ycombinator and morehttps://t.co/HG2TUCQWbL — Oven (Bun) is hiring engineers (@oven_sh) August 24, 20
作った。 Qronoの特徴 🎨 タイムゾーンとロケールの対応を捨てた軽い日付時刻ライブラリ。 他のライブラリはタイムゾーンとロケールに対応するためにコードベースが巨大になったり使い方が複雑になったりしがち。 ロケール対応はECMAScript® Internationalization APIを使うだけで良い。 ほとんどの場合、クライアント環境のタイムゾーンにだけ対応できれば十分。 Luxonによる説明は、まさにその核心をついている。 Don't make servers think about local times. Configure them to use UTC and write your server's code to work in UTC. Times can often be thought of as a simple count of epoch millise
こういう事(これが本当にマルバタイジングだったのかサイト改ざんだったのかどうか等はITmediaから経緯説明があったわけでもないので知らない)があって こういうスタンスなのだけれど、モバイル環境に関しては最近はJavaScriptを無効化してブラウジングしてる。使っているスマホのバッテリーがへたりはじめているので少しでも消費電力を下げたいというのもある。 基本的にはChromeをデフォルトJavaScript無効、よく利用するサイトを例外ドメインとして設定して利用 例外ドメインに追加したくはないけどアドホックにJavaScript有効で見たいページは共有メニュー(インテント)からFirefox Focusで開いている。この運用で今のところ不便さは感じてない。ただデスクトップ環境に関しては今の所は何もしてない。 昔々IEコンポブラウザと呼ばれるものが流行っていた頃のkiller featur
RomeはLinterでありCompilerでありBundlerでありFormatterでありTesterでありMinifierであり…… ともかく、フロントエンドの統合ツールチェーンです。 これまでBabel、ESLint、webpack、Prettier、Jestなど様々なツールでバラバラに行っていた作業が、Romeひとつ使うだけで完結するようになるという、これまで何度再発明されてきたかわからない究極のフロントエンドツールです。 まあ、今のところ日本での知名度はさっぱりなのですがね。 で、これまでRomeはJavaScriptで書かれていたのですが、これをRustで書き直すことが発表されました。 以下はRome公式サイトの記事、Rome will be written in Rustの日本語訳です。 Rome will be written in Rust 🦀 RomeはJavaSc
JavaScriptに加え、Webブラウザ上でプログラミング言語を実行するためのフォーマット「WebAssembly」を通じてC、C++、TypeScript、Go、C#、F#、Swift、D、Pascal、Zig、Rust、Kotlinでの操作にも対応する。 「このゲームに必要なのは基本的なプログラミングスキルだけ。もしあなたがプロの開発者であるなら、あなたのスキルを限界まで発揮することができる」(Screeps) 今回配信するバージョンは、アーリーアクセス版。今後、プレイヤーからのフィードバックを参考にアップデートしていく予定。 関連記事 中学1年の過半数が「プログラミングできる」 “競プロ”勢も1.7% 東進ハイスクール調べ 東進ハイスクールなどを運営するナガセが、高校生と中学生10万7450人に調査を行った結果、中学1年生の過半数が「プログラミングができる」と回答した。「競技プログ
Hermes is a JavaScript engine optimized for fast start-up of React Native apps. It features ahead-of-time static optimization and compact bytecode. If you're only interested in using pre-built Hermes in a new or existing React Native app, you do not need to follow this guide or have direct access to the Hermes source. Instead, just follow these instructions to enable Hermes. Noted that each Hermes
JavaScriptの大きな特徴の1つは、「シングルスレッド」基盤の言語だという点です。スレッドが1つということは、同時に1つの作業だけを処理できるということです。しかし、実際にJavaScriptが使われる環境を考えてみると、多くの作業が同時に処理されていることが分かります。例えば、Webブラウザは、アニメーション効果を見せながら、マウスの入力を受けて処理をし、Node.js基盤のWebサーバーでは、同時に複数のHTTPリクエストを処理したりします。スレッドが1つなのに、どうしてこのようなことができるのでしょうか?質問を変えると、「JavaScriptはどのように同時実行(Concurrency)をサポートしているのでしょうか?」 このとき登場する概念が「イベントループ」です。Node.jsを導入した際、イベントループ基盤の非同期方式でNon-Blocking IOに対応して…」のような
Oxlintは、JavaScriptやTypeScriptのコードを調べ、エラーにつながりやすい書き方となっている部分や、必要のない部分を指摘する機能を持っている。この用途では「ESLint」が事実上の標準となっているが、100%JavaScriptで記述してあるため、実行速度が問題となっている。 Oxlintでは、プログラムを記述する言語にRustを選ぶことで処理速度を大きく引き上げた。さらに、並列処理に対応し、コンピュータのプロセッサが搭載するコアの数が増えるに従って性能が上がっていく設計になっている。さらに、テスト結果のメッセージをシンプルかつ分かりやすいものにした点も特徴として挙げられる。 正式版になる前からOxlintを試験的に使っていた米Shopifyの担当者は、ESLintを使っていた頃は自社開発のコードをテストするのに75分かかっていたが、Oxlintを使ったところ、10秒
メディアクエリと言えば、CSSの@mediaでスクリーンサイズに合わせて最適なスタイルを適用するものを思い浮かべる人が多いと思います。JavaScriptで実装したコンポーネント、例えば、スライダーなどをレスポンシブ対応にする際にはJavaScriptでメディアクエリを扱った方が便利です。 JavaScriptでのメディアクエリ、matchMedia()の使い方を紹介します。 Working with JavaScript Media Queries by Marko Ilic 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに matchMedia()の使い方 条件の変化を継続的にチェックする方法 昔ながらの方法 まとめ はじめに メディアクエリと言われて最初に思い浮かぶのは何ですか? おそらく、下記のようなCSSでしょ
前置き 私が所属している「もりけん塾」で受けたコードレビューについてまとめていきます。 「もりけん塾」では、先生がマークアップエンジニアからフロントエンドエンジニアになるための課題を作成してくださっており、塾生はその課題を通してJavaScriptの基礎を学んでいきます。 本当に1段1段階段を登っていくように作られており、課題を終える頃にはある程度自走しながらコードが書けるようになります。 私もこの課題に挑戦し、先日課題を終えることができました。だいたい2~3ヶ月くらいかかったと思います。JavaScriptが全然わからない状態から、ここまで書けるようになるとは思っていなかったです。 JS課題はこちら 成果物 👈 README.mdに置いてます。 先を見越したコードを書く編 仕様が増えたときを想定する バリデーションを実装する課題でのレビューです。 名前のバリデーションでは、変数名を n
この記事は LAPRAS アウトプットリレー の3/25の記事です! こんにちは!LAPRAS エンジニアの @rockymanobi です! 最近Node.jsでCLIを作る機会があり、その時に触ったEnquirerというライブラリが便利だったので、軽く紹介してみようというものです。ツールそのものについて軽くふれつつ、制作過程で出てきた「こんなことしたいけど、どう実現すれば良いんだろう」と試行錯誤して分かった使い方などを共有できればなと思います。 Enquirerとは Enquirerは CLIアプリケーションにおける対話的インターフェイスの実装を楽にしてくれるライブラリです。単純なテキスト入力の受付はもちろん、リストからの選択、チェックボックス、パスワード、入力補完、など、様々な入力方式を手軽に組み込むことができます。Node.js製です。JavaScript(TypeScript)万
お世話になります、他人が作ったJavaScriptを見ていると 唐突に謎の書き方が出てきますが言語化が難しく調べるのが難しいものがあります その一つが以下のソースなのですが TextEditor.prototype.createElements = function () { this.TEXTAREA = document.createElement('TEXTAREA'); this.TEXTAREA.tabIndex = -1; (0, _element.addClass)(this.TEXTAREA, 'handsontableInput'); this.textareaStyle = this.TEXTAREA.style; this.textareaStyle.width = 0; this.textareaStyle.height = 0; this.TEXTAREA_PAR
JavaScript の forEach は非同期ではない 時々ネットの解説記事で forEach は非同期だという解説を見かけますがこれは間違っています。実際の処理は逐次関数をコールバックしていくだけなので、普通に同期で動いています。コールバック中に非同期処理を使って待機動作を行っていないので、バラバラに動いているように見えるだけなのです。 検証用の非同期処理を作成 ランダムに 1000ms 以内の時間を待機して文字列を出力する関数です。TypeScript になっているので、JavaScript で実行したい場合は型定義を外してください。 const f = (value: string) => { return new Promise<void>((resolve) => setTimeout(() => { console.log(value); resolve(); }, Mat
JetBrains は過去 7 年間にわたり、変化し続ける開発者の状況と使用されている主要テクノロジーを関連付けるために開発者エコシステムアンケートを実施してきました。 その結果は生データと分析レポートの両方の形式でコミュニティと共有され、すべての関係者がこのエコシステムの状況を把握できるようになっています。 本日は今年の調査結果を JavaScript と TypeScript に焦点を当てて確認したいと思います。 アンケートの概要 2023 年の開発者エコシステムアンケートでは、世界中の 26,348 人の開発者からインサイトを収集しました。 このアンケートの結果を自分で確認し、プログラミング言語やツール、テクノロジーから回答者に関する有用な情報や豆情報に至るまで広範なトピックを網羅した情報を入手できます。 私たちは開発者独特のライフスタイルにも注目し、その情熱や興味を明らかにする予定
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く