Baby step - 思考と実験の足跡

日常のちょっとした、気になって試したこと集です。

開発

eslintでmax-lenが指摘されたときに試すこと

eslintとは? JavaScriptの静的解析ツール コードを実行する前にスタイルの統一やバグの発見ができる 検証ルールのカスタマイズや多くのビルドツール・プラグインとの連携が可能 cf. ESLint - Pluggable JavaScript linter ESLint 最初の一歩 - Qiita eslint…

Dockerhubにあるalpine, buster, slimってなんのこと?

背景 Rubyのアップデートを行う際にDockerhubに訪れたところ、バージョンの横に"alpine, slim, buster"などと書かれているのを目にしました。 cf. ruby - Docker Hub それらのちゃんとした違いをわかってなかったので、調べました。 調べてみた まとまってそ…

Swagger2.0でbearerトークン認証の定義を書く

背景 以下の続きです。 Docker+Rails6+apipieを使ってAPI定義をSwagger UIに表示 - Qiita Rails + apipieでDartのクライアントコードを生成する - Qiita SwaggerUIでBearerToken認証ができるようにするのが目的です。 環境 Rails 6.0.3.3 Swagger 2.0 // api…

URL, URIの違いやプロトコルなどの関連用語についてまとめてみた

背景 かつて"URL"は「Web上の住所に当たるもの」という認識をしていました。 API開発をするようになり、いつからか"URI"という表現を見るようになりました。 なぜAPI開発の文脈ではURIがしばしば使われるのか? 何が違うのか? それらを噛み砕くために、関連…

Graph APIを使った開発をする上で参考になったリンク集

目的 Microsoft系のサービスは種類が多く、また似た用語も多いです。 それゆえ検索しても関連しない記事がヒットすることも... 今回は Graph API開発に関連しそうなリンクをまとめました。 なお、用語の予習をしたいという方はこちらも併せてご覧ください。 …

Azure Active Directoryについてまとめてみた

背景 Azure Active Directory(AAD)を使ったOAuth認証の機能開発をしました。 AADだけでなくMicrosoftのサービス自体に不慣れで、用語の理解に時間がかかりました。 実装を行う上で重要だった用語や概念についてまとめました。 用語の定義 Azure Active Dir…

GraphAPIで利用するアクセストークンの有効期限を変更するには

背景 ユーザーではなくアプリケーションに権限を持たせてGraphAPIを操作するアプリを開発しました。 cf. ユーザーなしでアクセスを取得 - Microsoft Graph | Microsoft Docs アクセストークンの有効期間は、アクセストークンを取得するAPIのレスポンスより60…

VSCodeの拡張機能を指定したプロジェクトに追加する

背景 VSCodeでは、設定や拡張機能を「個人」「プロジェクト」単位で設定できます。 そのことは覚えているのですが、具体的にどうやって「プロジェクトに拡張機能を追加する」か忘れてしまいました...。 備忘録として、手順や参考記事をまとめます。 今回は例…

OpenAPIのadditional_propertyオプションってなに?

背景 友人とアプリ開発をしています。 わたしがRailsでバックエンドを、友人がDart/Flutterでアプリを担当しています。 Railsにapipieのgemを導入し、Swagger定義を出力できるようにしました。 cf. Docker+Rails6+apipieを使ってAPI定義をSwagger UIに表示 -…

githubのissue/PR検索でよく使うパターンをまとめてみた

たびたび忘れるので、備忘録としてまとめてみました。 cf. Issue およびプルリクエストを検索する - GitHub Docs 今回のスプリントで自分が担当しているissue is:issue assignee:USERNAME milestone:CURRENT_MILESTONE 前回のスプリントで自分が作成したPR i…

Rails Consoleを見やすくするためのgemを入れた

背景 趣味でRailsプロジェクトを立ち上げRails Consoleを開いたところ、普段見るpryではなくirbでした。 ああ、ここもgemの力でpryになってたんだなあ。 ということで、見慣れたpryにするためにgemを追加しました。 導入 Ruby: 2.7.1 Rails: 6.0.3.3 pry-rai…

rails-erdでER図を自動生成した

背景 テーブル設計時のコミュニケーションを取りやすくするため、ER図を作ろうとしました。 ER図を作るツールはいくつかありますが、GUIタイプのは肌に合わず、plantumlはコードで書けるものの都度更新が必要だなあ、と。 自動で作ってくれるものはないかな…

Rubyでカスタム例外を作る時にStandardErrorを継承するのはなぜか?

背景 Rubyでカスタム例外を作るにあたりWeb検索したところ「カスタム例外を作る時はStandardErrorを継承する」と書かれた記事を多く目にしました。 そうなんだーと思いつつも、その理由がよくわからなかったので、調べてみました。 結論 rescueに引数を渡さ…

base64の値をURLに使うとエラーになる時がある話

背景 サービスに未登録のユーザーが会員登録をするためのページとして以下を用意しました。 ## routes.rb get "entry/:access_key" ※ Railsでの実装例 access_keyとは、認証のためサービスが一時的に発行したトークンです。 access_key = SecureRandom.base6…

Moment.jsからDay.jsに乗り換えたときにハマったこと

背景 JavaScriptで日付操作を行う有名なライブラリの1つに "Moment.js" があります。 プロジェクトでも利用していましたが「代替ライブラリを探すように」とのアナウンスがありました。 JavaScriptの日付操作ライブラリ「Moment.js」の開発チームは9月15日、…

Gitブランチモデルの比較と使い分け

背景 開発初期のプロジェクトに参画していまして、その際に「Git FlowとGitHub Flowのどちらにします?」という質問がありました。 Git Flowの存在は知っていましたが、経験はありませんでした。 GitFlow以外にはどんなものがあるか? それらをどう使い分け…