はとのーと

エジソンノート(アイデア、思い付き、メモ)として使っています。誰かの役に立つかもしれないので公開しています。

メモ 2020-07

目次:

2020-07-17

viのナビゲーションキーがHJKLなのはADM3AのHJKLキーに矢印が書かれていたため

ダム端末ADM3AにRaspberry Piを内蔵してLinuxマシンにした人を発見しました。 ADM3A自体を改造したわけではなくRS232C端子にRaspberry Piを接続したようです。

ADM3A – ancient dumb terminal | adcurtin

ここに次のような記述がありました。

This terminal is where the HJKL navigation keys in vi come from (vi was written on one and those keys have arrows on them on its keyboard). It’s also where the ~ = home directory in unix comes from as well, the ~ key is also the home key.

(↓適当な翻訳)

この端末はviのHJKLナビゲーションキーの出どころです(viはこの端末で書かれ、この端末のキーボードのそれらのキー上には矢印があります)。 この端末はUNIXチルダ(~)=ホームディレクトリの出どころでもあり、~キーはHOMEキーでもあります。

ADM3Aのキーボードの画像がありました (画像は The HERE IS key | Dave Cheney より)。

https://dave.cheney.net/wp-content/uploads/2017/08/Screen-Shot-2017-08-21-at-14.15.25-1024x420.png

また、ADM3Aのキーについて書かれているページ (上記ページの日本語訳的なページ) を発見しました。

テキストエディタ「vi」の開発に使われた端末「ADM3A」には現代のキーボードにはない「HERE IS」というキーがあった - GIGAZINE

画像と記事から、確かにHJKLキーの上に矢印が刻印されており、またチルダ(~)はHOMEと同じキーに書かれています。

2020-07-27

RESTfulアプリ設計のステップ、DOM Scriptingの3原則

RESTful Web アプリの設計レビューの話

www.slideshare.net

  • RESTfulアプリ設計のステップ
    1. 対象となるデータを認識する
    2. 対象となるデータをリソースに分ける
    3. リソースにURLで名前を付ける
    4. リソースに対して統一インターフェイスのサブセットを提供する(GET/POST/PUT/DELETEをマッピング)
    5. クライアントから受信する表現(Representation)を(一つ以上)設計する
    6. クライアントに送信する表現を(一つ以上)設計する
    7. ハイパーメディアリンクとフォームを使用して、このリソースを既存のリソースに統合する (接続性=Connectednessを高める)
    8. 正常系を考える(適切なリクエストがあったとき何が起こるべきか)
    9. 例外条件を考える(不適切なリクエストがあったとき何が起こるべきか)
  • URLに動詞が含まれていないか
  • URLが無理な構造になっていないか
  • URLの意味と意志
    • 例: http://example.com/blog/entries?page=3&lang=ja
    • ?の前までがリソースの意味
    • ?の後がクライアントの意志
      • ?以降を取り去っても意味は変わらない
  • CRUDの重力に引かれていないか
    • 第3正規形のテーブルと1:1のrouteがあるのは粒度が細かすぎる
    • リソースの粒度/視点(つまりはURL)とデータベースの粒度/視点の違いを解釈してしかるべく結びつけるのがControllerの仕事
  • あまり非同期処理に頼らない
    • DOM Scriptingの原則に従う (※)
    • RESTfulなサーバとリッチjsという設計に倒しすぎるとUXや保守性が低下する可能性があるので注意

(※)ここに「DOM Scriptingの原則に従う」と書かれています。 DOM Scriptingの原則とは一体何でしょう?

DOM Scripting ことはじめ

www.slideshare.net

このスライドによると以下のように書かれています。

DOM Scripting 3原則:

  • Progressive Enhancement
    • 段階的強化
    • Structureに段階的にPresentation(CSS)、Behavior(JavaScript)を追加する
  • Graceful Degradation
    • 表示機能的に劣る(もしくは意図的にJS OFFにしている)ブラウザでも、できるだけそれに合わせた形でアクセシビリティを保つこと
  • Unobtrusive JavaScript
    • HTML(Structure)の中にJavaScript(Behavior)を記述しないスタイル