タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

jsxに関するkarupaneruraのブックマーク (8)

  • Kazuho's Weblog: 良いソフトウェアに求められる3点セットとJSXの開発手法の改善とgit-pushdirについて

    テスト駆動開発(TDD)の一般化とGitHubの登場によって、機能追加の際にコードとテストを同時に実装する(そして、両者を一括してmasterにmergeする)という開発手法が一般化してきました。 しかし、「良いプログラム」の要素を構成するのは、コードとテストのみではありません。動作するコードと、その品質を担保するためのテストがあったとしても、適切なドキュメントがなければ、ユーザーはそのプログラムをどうやって使ったら良いかわかりません。 つまり、ユーザーに使いやすいプログラムを継続的に開発/提供しようと思うと、 コード テスト ドキュメント の3点セットを提供する必要があるのです注1。 今日のJSXが抱えている最大の課題は、ドキュメントが不足しているという点にあります。その原因は、「機能追加」の際にコードとテストのみを実装してmasterにmergeすることを繰り返す一方で、ドキュメントは

    karupanerura
    karupanerura 2014/05/09
    git-pushdir
  • Profiling JSX App

    JSX Advent Calendar のひとつです。 JSX コンパイラの生成する Javascript コードは、玄人の叡智により最適化されており速い。 しかし、じっさいにアプリを速くするためには、その前にやることがある。 コンパイラの最適化は、コードの表面を削る。それは紙やすりのようなものだ。美しい木のテーブルに最後の表面仕上げをするように。 しかし、まずはテーブルをきちんと組み上げないといけない。足の長さが違っていたら、のこぎりでギコギコ切ることになる。それには紙やすりだと日が暮れる。 コードの意味を吟味し、構造的な改革、 O(n^2) -> O(n) にできないかとアルゴリズムを考え直す。そういうことをまず一通りやり尽くすこと。のこぎりでぎこぎこ。 とはいえ、速くすべき箇所がわからないとなんとも考えようがない。どこを磨くといちばんきれいになるのか? そこでプロファイラの出番になる

    Profiling JSX App
  • JSX - 公開から1年を迎えて

    Persuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناعHani Al-Menaii

    JSX - 公開から1年を迎えて
  • JSXの最近の新機能 - Islands in the byte stream (legacy)

    テンプレート関数がユーザー定義できるように (0.9.58) array/mapリテラルのケツカンマを許可(0.9.58) string + number が許可。ただしその他のオブジェクトは依然として明示的な変換が必要 (0.9.58) optimizerが大幅に強化(0.9.54~58) String.fromCharCode(1, 2, 3) や "a".charCodeAt(0) などもコンパイル時に定数になる inline化で複雑な式でも展開できるケースが増えた `jsx --test a.jsx` で_Testがなくてもエラーにしない(0.9.53) 単なるsyntax checkとしても使えるようになった 型推論できる箇所がいろいろ増えた(0.9.49, 0.9.58) `jsx --enable-source-map --run a.jsx` で例外時にJSXソースのファイ

    JSXの最近の新機能 - Islands in the byte stream (legacy)
    karupanerura
    karupanerura 2013/07/27
    ++
  • JSX minifierの圧縮性能 - Islands in the byte stream (legacy)

    JSX compilerのソースコードで検証してみました*1。 Mode Size(KiB) Ratio original 1507 1.00 JSX minifier 277 0.18 Closure Compiler/D 602 0.40 Closure Compiler/A 301 0.20 対象にしたソースコードがJSXから変換したJSというやや特殊な状況ですが、Closure CompilerのADVANCED_OPTIMIZATIONSよりもサイズが小さくなりました。また、ADVANCED_OPTIMIZATIONSと異なりJSX minifier*2はコードを破壊する圧縮は一切行わないので、圧縮したらコードが動かなくなるということが非常に起こりにくくなっています。しかしそれでも、JSXの豊富な型情報を使って圧縮すればADVANCED_OPTIMIZATIONSよりもサイズを小

    JSX minifierの圧縮性能 - Islands in the byte stream (legacy)
  • JSXのgeneratorで同期的なsleep()を実装してみる - Islands in the byte stream (legacy)

    [追記]v0.9.84現在、--enable-generator-emulationが必要です。これを付けないと、ES6のgeneratorを使うようにコンパイルされます。[/追記] 最近、JSの非同期まわりが新しい盛り上がりがありました。 Google Chromeに入ったジェネレータとPromiseで非同期処理に革命が起きた - 素人がプログラミングを勉強していたブログ 2013-05-02 とくにES6のgeneratorを使えば、非同期コードを同期的に書けるようになるということで期待が持てます。 ところで、JSXにも最近実験的にgeneratorが実装されました*1。生成されるJavaScriptはES5準拠ですから、スマートフォンでも実行可能です。 すなわち、これが格的に使えるようになれば、ブラウザの対応を待たずにgeneratorが使い放題になるというわけですね!genera

    JSXのgeneratorで同期的なsleep()を実装してみる - Islands in the byte stream (legacy)
    karupanerura
    karupanerura 2013/05/04
    すごい
  • Jsx language-notes

  • JSX の進化速度が半端ない - ぐるぐる~

    気に入らない所を直して pull request 投げたら、取り入れられたので、8 日前に書いたエントリが過去のものとなっちゃいました。 関数型 以前の JSX では、関数型は function(: int): string のように書く必要がありました。 これはこれでそのまま使えるのですが、新たに (int) -> string という形式にも対応しました。 ちなみに、複数引数はカンマ区切りで (int, boolean) -> string のようになります。 カリー化された関数は、 function(: int): function(: number): string の代わりに (int) -> (number) -> string と書けます。 引数を囲むカッコは、(今のところ) 省略不可能です。 これには 2 つの理由があります。 この機能を追加したとき、JSX のパーサの能力

    JSX の進化速度が半端ない - ぐるぐる~
  • 1