余白

https://blog.lacolaco.net/ に移転しました

プログラミング

フレームワークへの過大評価

「このフレームワークでは○○ができない」、そういった評価は(ソフトウェアの)フレームワークという概念一般に対する「過大な」評価である。 フレームワークが使用されるとき、その使用者に何事かを禁じうるということは、そのフレームワークによってのみ何…

昨日よりいいコードを書こう

if (document.documentElement.getAttribute('data-page') === 'entry') { const targetUrl = 'https://blog.lacolaco.net/posts/write-better-code'; const head = document.getElementsByTagName('head')[0]; const meta = document.createElement('meta')…

システム設計と哲学的思考

「はじめての哲学的思考」という本を読んだ。 はじめての哲学的思考 (ちくまプリマー新書)作者:一徳, 苫野筑摩書房Amazon この本の読後メモは別で書くとして、この本を読んでどうしても書きたくなったことだけをメモしておく。 ドメインモデルというものがあ…

CircleCIからGitHub Actionsへの移行 (Node.js)

自作のライブラリのCIをCircleCIからGitHub Actionsへ移行したメモ github.com github.com 特にメリットがあるから乗り換えたとかいうわけでもないけど、GitHubだけで完結するならそれに越したことはない ファイルの場所 .github/workflows/<ワークフローの…

AngularコンポーネントにおけるSingle State Streamパターンの紹介

Notionに書きました (まだはてなブログでNotionのOGP展開対応されてない...) https://www.notion.so/lacolaco/Angular-Single-State-Stream-2f1bd9fb0fc348dfba78d068134fce9b

AngularにおけるAtomic DesignとNgModule

Notionに書きました(未だにはてなブログにNotionのURLを貼っても正しく展開できない...Twitterカードは対応してるんだけど) https://www.notion.so/lacolaco/Angular-Atomic-Design-NgModule-52b1c99892e44e0ba032a1da7fbd7f50

DOMのXSSを防ぐTrusted TypesとAngularのセキュリティ機構

Notionに書きました。 https://www.notion.so/lacolaco/DOM-XSS-Trusted-Types-Angular-Security-Context-8e9535e4effb445c96a54eb68c56dc47 ちなみに余談ですが、Notionの公開ページはどこかから参照されるまではクローラが来ないので、SEOが強めの場所から…

Angular ElementsによるAngularJSの段階的アップグレード戦略

Notionに書きました。 https://www.notion.so/Angular-Elements-Angular-542cfebc09d7456791a66d7af8bbce5e

システムの学習曲線とAngularアプリケーションの設計

Notionに書きました。 https://www.notion.so/lacolaco/Angular-6a4169028d37411a895040001af0938d

NgRx v7.4で導入されるAction Creatorの使い方

この記事では NgRx v7.4で導入される Action Creator 機能と、それを使った実装パターンを紹介します。 Action Creatorはまだ ngrx.io のドキュメンテーションに含まれていませんが、将来的に追加された後はそちらを参照するようにしてください。 アクション…

RxJSによるWeb Workerの抽象化 2つのアプローチ

この記事では、RxJS を使ったWeb Workerの抽象化を試みます。 なお、記事中で Web WorkerあるいはWorkerと言ったときに指すのは new Worker() で作成する Dedicated Workerのみで、Shared WorkerやService Workerなどは対象外です。 なぜWeb Worker? Web Wo…

良い設計と平衡

免責事項: 思考過程のメモです 「アプリケーションが動いている状態はある種の平衡状態である」簡潔に言語化できてなかったけどまさにそれを言いたかったんです。ありがとうございますhttps://t.co/A5nZzYu47y— lacolaco / Suguru Inatomi (@laco2net) March…

Angularで巨大なライブラリを動的に読み込む

オリジナルはこちら medium.com 基本的にコードサンプルなどはオリジナルを参照してください。この記事では込み入った事情の部分だけを日本語で補足します。 tsconfig.jsonの準備 tsconfig.jsonの module 設定は、TypeScript内で記述したモジュールのimport/…

README.mdに動的コンテンツを埋め込む、あるいはImage via Functionというアプローチ

突然ですが、 README.md に動的なコンテンツを埋め込みたいと思ったことはないですか?僕はあります。 具体的には、リポジトリのコントリビューターをREADME.mdに埋め込みたいという願望がありました。 つまりこういうことです。 しかし毎回CIなどでREADME.m…

Angularの学習コストは本当に高いのか?

有言実行しなきゃね... ちょっと来月の頭くらいまでに、「本当にAngularは学習コストが高いのか?」っていう内容のブログを書くので、書いてなかったら怒ってください— lacolaco / Suguru Inatomi (@laco2net) 2019年1月24日 この記事では、「学習コストが高…

AngularにおけるListComponent/ListItemComponentの設計

Notionに書いた。 www.notion.so 余談。Notionのほうが書きやすいし読みやすいんだけど、ブログとしての体裁(シェアしやすいとかそういう)が無いのでどうしようか悩む。 Notionで書いてリンクだけブログに貼っていくのどう思います?

次世代Webカンファレンス振り返りと、話さなかったネタ集

次世代Webカンファレンス、お疲れ様でした! nextwebconf.connpass.com ありがたいことに2015年に続き、フロントエンドのセッションで登壇させてもらいました。 楽しかったですが、やはり80分のなかで話せることは限られますね... 次世代らしい話を求める期…

Angular Elementsの野望と、Angularに静的サイト用フレームワークがない理由

「Angularって静的なWebサイトを吐き出せる技術とかないんですか」という質問を受けることがたびたびあります。 例えばGatsbyやGridsome、Next.js、Nuxt.jsなどのようなものですね。 サーバーサイドレンダリングの仕組みは自体はすでにAngular Universalがあ…

Google Compute Engine上にMastodonインスタンスを立てた記録

表題のとおり、GCE上にMastodonのインスタンスを立てたけど、なんだかんだ試行錯誤で4日くらいかかったので自分のために記録を残す。 立てたインスタンスは https://activitypub.lacolaco.net。ひとり用に作ったので新規ユーザーは作成できない。 アカウント…

Angular CDK drag-and-drop の紹介

こんにちは。 この記事ではAngular CDKの次期アップデートで提供される、 drag-and-drop 機能を紹介します。 執筆時点ではまだnpmパッケージとして公開されていないので、一般に利用できるまでにはもうしばらくかかりますが、 もし早く使いたい方は、次のコ…

Angularコンポーネントのスタイルにemotionを使う

追記 型安全にCSSのオブジェクトを書きたいというだけならNgStyleとcsstypeを使うだけでもよさそうだ。 github.com emotionを使うことによる利点は、 CSSクラスにシリアライズされるので、テンプレート中で評価対象が文字列となり、Change Detectionのパフォ…

GraphQLとRESTfulについて今日考えてたこと Backend for Usecase/Resourceについて

DISCLAIMER: これは本当にただのメモ書きで、これがベストプラクティスだとかいう話ではないので、同じようなことを考えてる人いたら今度議論しましょうよ、って程度の話の種。 GraphQLを使うべきスポット、RESTfulが好ましいスポットについて今日ぼんやり考…

Angular CDKのPortalを使ったローディングラッパーの実装

今回はAngular CDK(Component Dev Kit)の Portal 機能を使って、ローディングラッパーコンポーネントを実装する例の紹介です。 Angularの基本的な書き方はわかっている前提の内容になります。 ローディングラッパーとは次のようなテンプレートで、ローディン…

AngularにおけるstrictPropertyInitializationのベストプラクティス

AngularコアチームのStephen Fluin氏が、こんなブログ記事をあげている。 https://fluin.io/blog/property-has-no-initializer-and-is-not-definitely-assigned TypeScript 2.7から導入された、クラスプロパティの初期化をチェックするstrictPropertyInitial…

ECMAScriptのimport/exportについてのメモ

js-primerというJavaScriptの本を書く上でES2015のimport/export構文の仕様について気になったところがあって調べたメモ github.com import - JavaScript | MDN https://t.co/qF0RdE0PfXデフォルトエクスポートをdefaultって名前付きエクスポートのように参…

Angular v6.1で導入されるRouter Scrollerの紹介

こんにちは、lacoです。 Angularの次のマイナーアップデートで、久しぶりに新機能らしい新機能が増えます。 その名もRouter Scrollerです。 長くAngularを使っている人には涙が出るほど嬉しい待望の機能です。 この記事ではRouter Scrollerの紹介と、来週のb…

FlutterのBLoCパターンをAngularで理解する

この記事ではAngularDart/Flutterの文脈で新しいコンポーネント設計パターンとして広まりつつあるBLoCパターンを、Angularの語彙で理解し、実装する方法を紹介する。 BLoCパターンとは BLoCとは、Business Logic Componentの略である。 BLoCを使ったアプリケ…

持続可能なAngularアプリケーション開発のために大事なこと

Webにかぎらず、アプリケーションというのは作って終わりではなく、その後も継続して改修・改善されていくケースが多い。受託で開発して納品して終わりというケースでも、納品した先にメンテナンスする人がいる。 この記事では、Angularアプリケーションの開…

Angular v2からv6までの変化をまとめてみた

Angular 2から6までの主要な進化をまとめた記事を読みたい。— Masahiko Sakakibara (@rdlabo) 2018年4月20日 逆にIonicの変遷が知りたいですね 最近Stencilも出てきたしその辺の絡みとか俯瞰的に見てみたいです— lacolaco (@laco2net) 2018年4月20日 rdlabo…

Custom ElementsとEventTargetの話

Shadow DOMのHayato Itoさんと、Custom ElementsとEventTargetについてちょっと議論できた話。(ありがとうございました!) 先日、Web Components Cafeで登壇しました。 slides.com 最近自分の中でCustom Elementsの盛り上がりが強くて、 単純なPresentatio…