LoginSignup
33
16

More than 1 year has passed since last update.

「エンジニア歴6年ほど経って得た知見を、惜しみなく公開。技術のトレンドとテクニックを、網羅的に追えます!(有料レベル)」について

Last updated at Posted at 2023-01-17

対象の記事

(魚拓:https://megalodon.jp/2023-0117-1550-00/https://qiita.com:443/joer/items/e579d3e4b35e88868996)

改訂履歴

  • 2023/01/25: コミュニティガイドラインに沿わせる改訂

経緯

Twitterで流れてきたので見た。

感想

  • 「1. Testing Trophyを意識して、フロントエンドのテストを書きましょう」1について、挿入されている画像が著作権法上要請される引用の要件を満たせていない恐れがある。出典を示すべき。

  • 「16. ChatGPTを多用しましょう」1について、生成されたコードの基となるオリジナルのコードは、LGPLやGPLなどコピーレフトなライセンスが適用されたコードが出力される危険性が否めないので不適切。

    • GitHub CopilotのBusinessプランのほうが安全性が高い。既存コードと150文字以上一致するコードが出力に含まれないことが保証される。
  • 「18. nullかundefinedか」1についてTypeScriptの公式wikiを参照しているが、当該ページの冒頭には

    These are Coding Guidelines for Contributors to TypeScript. This is NOT a prescriptive guideline for the TypeScript community. These guidelines are meant for contributors to the TypeScript project's codebase.
    -- 2

    と書かれている。これはあくまでもtsc3など、TypeScript自身のコーディングルールを記述したページであり、TypeScriptの公式な言語スタイルがTypeScriptを採用するすべてのプロジェクトにおいてnullよりundefinedを使うことを推奨していると解釈するのは誤り。

  • レガシーコードをリファクタリングしていた私の意見からすると早期returnだけが「リーダブルコード」の要素ではない (参考: 『リーダブルコード』―より良いコードを書くためのシンプルで実践的なテクニック)。リーダブルコード=早期returnと読めるような断定的な文は誤り。

  • 「28. JWTのトークンのハンドリングに関して」1について:

    • 「最初の認証時にGETしたJWTのトークンをlocalstorageに保存し」1window.localStorageに保存するべきではない。httpOnly属性とsecure属性 (と、domain及びpath属性) が付いたCookieに保存するべきである。
      • 一部の記事はXSSが起きれば全て無力なのでどの方法でもいいと主張している。しかし、それはそもそも「XSSを起こすようなコードを書かない」という大原則を守っていれば起きないのでここではないものとして考える。
    • 「そのトークンのプロパティに期限を扱うexpirationのようなものがある」1
      • 確かに、expクレームはRFC 7519 § 4.1.4で規定されているが、規格上は必須ではない:

        Applications using JWTs should define which
        specific claims they use and when they are required or optional.

      • あくまでも相互運用性のために定められているものである [RFC 7519 § 4.1]

        None of the claims
        defined below are intended to be mandatory to use or implement in all
        cases, but rather they provide a starting point for a set of useful,
        interoperable claims.

  1. 出典:https://qiita.com/joer/items/e579d3e4b35e88868996 2 3 4 5 6

  2. 出典:https://github.com/microsoft/TypeScript-wiki/blob/main/Coding-guidelines.md

  3. TypeScriptのコンパイラ

33
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
16