本書は、Lydia Hallie 氏 と Addy Osmani 氏らによる Learning Patterns (https://www.patterns.dev/) の日本語訳です。原著は大きく 3 つのセクションに分かれていますが、本書は、その最初のセクションである Design Patterns を訳したものとなります。

追記: この件に関してエンジニアHubにもTypeScriptの記事を書きました: TypeScript再入門 ― 「がんばらないTypeScript」で、JavaScriptを“柔らかい”静的型付き言語に - エンジニアHub|Webエンジニアのキャリアを考える! TypeScriptに対する失望は2パターンあって、その理由は理解できるのですが、いずれにせよそこでTypeScriptを捨てる判断をするのはもったいないと思っています。この2つの失望を感じたとしてもなお、TypeScriptには導入する価値があると思っています。 パターン1: 実はJavaScriptに対する失望である そこらのブログやTwitterで観測していると、理由の7割くらいこれです。これは、TypeScriptが独立した言語ではなくJavaScriptへのトランスパイラ(言語変換ツール)であり、独立したランタイムを
Creational patterns are ones that create objects for you, rather than having you instantiate objects directly. This gives your program more flexibility in deciding which objects need to be created for a given case. Abstract factory: provide an interface for creating families of related or dependent objects without specifying their concrete classes. Builder: separate the construction of a complex o
某社で自分が React/Redux + TypeScript などの講習をやってみた結果、TypeScript 入門用資料が必要だと思って書いたやつです。 このドキュメントのターゲット TypeScript で書かれたプロジェクトに参加する人 TypeScript を導入するために、その事前知識が必要な人 このドキュメントの読み方 ES2015 for Beginners ES2015 for ES5 Programmers ES Modules 非同期表現: Promise と async/await TypeScript エコシステム編 自分が React/Redux などの講習でいろいろやってみた結果、 ES2015 と TypeScript を同時に教えると、初学者は何がどの概念に由来するかの区別が出来ずに混乱します。なので、ES5 -> ES2015, ES2015 -> Ty
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 春ですね!人の配置がリファクタリングされ、コードもリファクタリングの季節です。 では僕がここでモダンなJavaScriptとES2015の利点を語る役をやるので、みなさんはチームを説得する役をやってください。 JavaScriptの歴史 まず最初にJavaScriptの歴史を踏まえることで、今学ぶべきものとその理由を確認しましょう。 なぜ2016年の記事でES2016ではなく、ES2015なのか、と疑問に思った方もいるかもしれません。それは、ES2015がただの年次アップデートではなく、これから始まる毎年のメジャーバージョンアップの起点
You Might Not Need Underscore During past years utility libraries like Underscore and lodash have found their way into the toolchain of many JavaScript programmers. While those utility libraries might make the code easier for you to write, they don’t necessarily make the code simpler or easier to understand. People reading and maintaining the code are obliged to, in addition to knowing the languag
このドキュメントについて 本ドキュメントは Swift で書かれた iOS アプリを Android にポーティングする際のQoncept社内用ガイドライン を公開したものです。社内での利用を主目的としているため役に立つかわかりませんが、何かしら参考になれば幸いです。 ※ 本ドキュメントは Swift から Java への移植を対象としていますが、 Swift から移植する場合、 Java ではなく Kotlin に移植すると幸せになれるかもしれません(特に Optional type とかクロージャとか)。 Java への移植を決定する前に一度 Kotlin を検討してみると良いと思います。 iOS と Android は異なるプラットフォームであり、それぞれに最適な設計は異なります。特に、 UI/UX についてその傾向は顕著です。しかし、現実には予算やスケジュール、クライアントの意向な
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0064 号 バックナンバー Rubyist Magazine 0064 号 Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 RubyKaigi 2019 直前特集号 Rubyist
最近いろいろな環境でES6まわりの環境が整いはじめたので、使っていくために下調べしておこうと思う。 ES6の実装状況であるが、ECMAScript 6 compatibility tableにまとめが載っている。 例えば、io.js (nodeのfork)のES6実装状況。stableなES6 featuresが元から有効になってる。 現在有効なのは、文字列テンプレート、for of、generators, Promise, Map, WeakMap, Setなど。 最新版をターゲットにするのであれば、上の機能は何も考えずにそのまま使うことができる。 このうち、テンプレート、for of, WeakMap以外はpolyfillが手に入るので、それらを使わなければPromise, Mapなどはfeature detectして実装されていない場合はmoduleを読み込むことで幅広いバージョンを
About the content This content has been published here with the express permission of the author. This Tuesday JP Simard gave another talk for the Swift Language User Group (#SLUG) in San Francisco. Hosted by Pubnub, this meetup was a Swift talk for JavaScript developers. JP began with a brief overview of some similarities and differences between Swift and JavaScript. He then focused on eight main
AngularJS には $qっていう promise の枠組みがあるので、使っておくといいこと (ビューが自動的に更新されるだけだけど) がある。フレームワーク組込みの仕組みがあるのに別途 Deferred の仕組み、しかも thenable(笑) じゃない(笑) JSDeferred を読むのもバカにされると思うので、以下のように JSDeferred から Angular $q へ置き換える方法を記す。 基本 JSDeferred における global な next() 関数を $q.when().then() に置き換え、Deferred#next を then() に置き換えればだいたい動く next(function () { alert(1); return next(function () { alert(2); }). next(function () { alert(
Welcome to JSNice — we make even obfuscated JavaScript code readable. We will rename variables and parameters to names that we learn from thousands of open source projects. Furthermore, often we are also able to guess or infer type annotations. Try JSNice on your JavaScript code to see how it works! Override the names suggested by JSNice (by enabling "interactive renames" in settings). Click to le
jQuery and its cousins are great, and by all means use them if it makes it easier to develop your application. If you're developing a library on the other hand, please take a moment to consider if you actually need jQuery as a dependency. Maybe you can include a few lines of utility code, and forgo the requirement. If you're only targeting more modern browsers, you might not need anything more tha
kishikawakatsumi/JavaScriptBridge · GitHub 前にiOS 7から導入されたJavaScriptCore.frameworkを使ってUIKit標準のクラスを操作する話を書きました。 JavaScriptだけでiOSのUIを書いてみる - 24/7 twenty-four seven JavaScriptCoreを使ってJavaScriptからObjective-Cのオブジェクトを操作するのは、あらかじめJSExportプロトコルで公開しておく必要があるなど、あまり実用的ではありませんでしたが、このライブラリを導入すうることで、そういった事前準備がすでに済んでいる状態で使いはじめることができます。 また、JavaScriptからObjective-Cのクラスを定義できるなどいくつかの拡張を加えてあり、UIViewControllerのサブクラスで画面を定
多くのプログラミング言語は、キーワードや予約語などで「function」や「if」といった英単語を使用するため、英語を母国語としない人たちは英単語を覚えるところから始めなければならない。「Babylscript」は、JavaScriptをベースにキーワードなどを多言語化したプログラミング言語だ(Babylscript、 本家/.)。 現在Babylscriptでは英語のほか日本語やアラビア語、ヒンディー語、中国語、フランス語など計13言語のキーワードに対応しており、コード中に「---<言語名>---」のような記述を入れることで切り替えることが可能。たとえば、日本語に切り替えた場合は「function」の代わりに「関数」、「if」の代わりに「もし」といったキーワードを使用してプログラムを書けるようになる。一部を除いて全角と半角は区別されず、日本語の変数名を使用することも可能だ( Transl
CoffeeScript にはクラスを定義するための枠組みが言語自身にあります。この記事では、CoffeeScript でのクラス、継承といった基本的な概念を「使う」ための知識と、「理解する」ための解説を書きました。JavaScript をある程度しっており、CoffeeScript をみようみまねでなんとなく使っている人を想定した内容です。念の為申し添えておきますが、JavaScript でのクラスベースのプログラミングの是非は論じていません。 クラス周辺の言語の機能、ひとめぐり class Dog を JS に展開してみます。大きく括るとコンストラクタ関数でクラスを模倣するタイプだとわかります。 class Dog # (function() { # var Dog; # Dog = (function() { # function Dog() {} # return Dog; # }
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く