TypeScript だけを書いて Tauri でデスクトップアプリを作ろう / Tauri with only TypeScript
TypeScript だけを書いて Tauri でデスクトップアプリを作ろう / Tauri with only TypeScript
7 Principles of Rich Web Applications@rauchg|November 4, 2014 (10y ago)713,804 views This is a writeup based on a presentation I gave at BrazilJS in August 2014. It builds on some of the ideas I've been blogging about recently related mostly to UX and performance. I want to introduce 7 actionable principles for websites that want to make use of JavaScript to control their UI. They are the result o
With the rise of HTML5 and the huge advancement in Javascript performance and APIs in modern browsers, single page applications are now more popular than ever. With that, several open source frameworks and libraries were born to help us develop these somewhat complex applications. Backbone.js, while being one of the more popular choices, is also one of the smallest ones (in both terms of scope and
Immutable collections for JavaScript Immutable data cannot be changed once created, leading to much simpler application development, no defensive copying, and enabling advanced memoization and change detection techniques with simple logic. Persistent data presents a mutative API which does not update the data in-place, but instead always yields new updated data. Immutable.js provides many Persiste
概要 長らく予約語であったsuperキーワードが、継承元の関数を呼ぶためのキーワードとして機能するようになった。 2種類の使い方 superキーワードは場所によって2種類の使い方があり、それぞれ違う振る舞いをする。 1つ目はコンストラクタ内で使う場合、2つ目はメソッド内で使う場合である。 コンストラクタ内で使う場合 ここでいうコンストラクタとは、Class構文中のconstructorメソッドのことである。 この場合、「super()」や「new super」などとすることにより、その関数のプロトタイプである関数を呼ぶことができる。 そして、 呼び出し先が返した値が以後呼び出し元のthisとして使われる。 つまり、Animalコンストラクタを継承したCatコンストラクタを定義したい以下の例だと、 function Animal( name ) { this.name = name } fu
概要 待ち焦がれた人も多いことだろう。ES2015の一番の目玉機能とも言えるクラス構文が、ついにV8でサポートされた。 Class構文は、『関数(コンストラクタ)定義』+『.prototypeへのメソッド定義』の糖衣構文である。 JSで今まで様々に工夫されてきたクラスの書き方を、綺麗に統一してくれる可能性を秘めている。 クラスを作る 従来、Catクラスを作ろうとした場合このように書いてきた。 function Cat(name) { this.name = name } Cat.prototype.meow = function () { alert( this.name + 'はミャオと鳴きました' ) } しかしこの書き方だとどうしても、コンストラクタとメソッドの定義が分離されているため、クラスとしてまとまりがなく分かりづらく感じる。 メソッドが増えてきた時も、Cat.prototyp
こんにちは!ChatWork CTOの山本です。 チャットワークのバックエンドをPHPからScalaへの切り替えることを決断し、現在は移行に向けての大プロジェクトが進行中です。 バックエンドはScalaにしていく。じゃあフロントエンドはどうするの?ということで、今回はチャットワークのフロントエンド開発における今後の戦略を書いてみようかと思います。 現在のフロントエンドにおける課題現在のJavaScriptコード量は、ざっと5万行ほどになっています。(OSSライブラリ、言語キーなどを除く。たぶん大規模・・ですよね?) 約5年前の開発スタート時より、素のJavaScriptとjQueryをベースにゴリゴリと書き重ねられ、これぐらいのコード規模になったソースコードはご想像通りメンテナンスコストがかなり高くなってしまっています。。。 バックエンドの刷新に伴い内部APIも一新されるため、どうせ大幅に
というか3分ぐらいの情報しかまだ出てきてないんだけど。 先月の@Scale 2014で発表されたFacebookのFlowについて、おそらく唯一のオフィシャルな情報であるこの発表動画を見て分かったことを紹介(ざっと見ただけなので間違ってたらごめんなさい)。 JavaScript Testing and Static Type Systems at Scale - @Scale 2014 - Web 静的な型チェックができるトランスパイラ シンタックスはTypeScript互換 なのでnew languageとかaltjsとか言ってない Code Intelligent Server: コンパイラはサーバー型 モジュール毎にインクリメンタルに型解析をアップデートする 高度に並列化していて高速 クライアントツールは、コンパイラサーバーに型情報のクエリを投げる ES6の各種シンタックスをサポート
ES6+カジュアルトーク - connpass ES6+カジュアルトーク に参加と発表してきました。 自分は明日には使えなくなるES7トークというES7の話をしてきました。 「runstant 始めるEcmaScript6 入門」 by @phi_jp EcmaScript 6 のサンプル集 | runstant runstant jsfiddle的なツール ハンズオン let 2進数を直接書ける Lexical grammar - JavaScript | MDN デフォルトパラメータ 引数にデフォルト値を設定出来る 分割代入 template strings バッククオートでヒアドキュメントを書ける class syntax 「Node.js v0.12で使えるようになるES6+αの機能」 by @yosuke_furukawa Node.js v0.12で使えるようになるES6+の機
JavaScriptで動的にリンクを生成する際に、DOM-based XSSを防ぐためにリンク先がhttpあるいはhttpsに限定されていることを確認したい場合がある。典型的には以下のようなコードとなる。 var div, elm; // 変数 url は攻撃者がコントロール可能な文字列 if( url.match( /^https?:\/\// ) ){ div = document.getElementById( "info" ); elm = document.createElement( "a" ); elm.setAttribute( "href", url ); elm.appendChild( document.createTextNode( url ) ); div.appendChild( elm ); } この場合、変数urlに「http://example.jp」や「
With ProgressBar.js, it's easy to create responsive and stylish progress bars for the web. Animations perform well even on mobile devices. It provides a few built‑in shapes like Line, Circle and SemiCircle but you can also create custom shaped progress bars with any vector graphic editor. ProgressBar.js is lightweight, MIT licensed and supports all major browsers including IE9+. Usage A simple cod
もうなんかこの際マジで言わせていただくんですけど、知ってるか知らないか分かりませんが世の中にはすごい頻度で呼ばれうるDOMイベントって言うのがいくつかあるわけですよ 例えば scroll mousemove, touchmove devicemotion 辺りですよ。 で、高頻度で呼ばれるって言うことは必然的に処理量が増えるって分かりますよね?????while(1) {}じゃないとはいえUIスレッドに十分影響を与えうる頻度で呼ばれる訳です。分かりますよね???????? そうなると当然そのイベント内で重い処理を行えば人間が認識できるレベルでのレスポンス遅延が起きるっていうのはご理解できますよね? 重い処理っていうのはまぁ想像出来るとは思うんですが例えばよくあるのが DOMのレイアウトプロパティへのアクセス offsetTop、offsetLeft、offsetWidth、offsetHe
ユーザファースト推進部の丸山(@h13i32maru)です。 先日「撮るレシピ」というサービスを cookpad.com にて公開しました。「撮るレシピ」というサービスは料理本や雑誌のレシピを写真に撮ってクックパッド上に保存できるというものです。料理本や雑誌でレシピを良く見る方はぜひ使ってみてください(Androidアプリ版もあります)。 この「撮るレシピ」は全体公開前に一部のユーザに限定公開をしていました。そして全体公開をするにあたりフロント側のコードを全面的に書き換え高速化を行いました。その結果、最大で30倍高速化することができユーザの使い勝手が向上しました。以下が「書き換え前」と「書き換え後」の計測結果です(Android端末8機種 + iOS3機種で各操作のターンアラウンド時間*1を計測)。 閲覧系 最大: 30倍高速化(4.2秒→0.14秒) 平均: 15.7倍高速化(3.6秒→
The engineering culture at Twitter requires tests. Lots of tests. I haven’t had formal experience with JavaScript testing before Twitter, so I’ve been learning a lot as I go. In particular, a number of patterns I used to use, write about, and encourage have turned out to be bad for writing testable code. So I thought it would be worthwhile to share a few of the most important principles I’ve devel
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く