コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

経験則

Webアプリ開発における検証環境に求められるものとは何なのかを言語化する

検証環境というものは最初からあったりすることが多いが、元々どういうものとして存在すべきなのか。 検証環境はなぜ必要なのか 多くの開発において、実際に使われる環境、いわゆる本番環境や商用環境といわれるものでシステムが稼働する前に最終的に問題な…

Rubyにてハッシュを用いたキーワード引数(**引数)を使いたくなった場合は本当のそれが必要かを一息おいて考えてほしい

ハッシュを用いたキーワード引数(アスタリスクを二重につける記法のもの)を使ってしまうことによるデメリットと代替案に関してまとめます。 今回扱うケースとRubyのバージョン 一息おいて考えてほしいケースのサンプルコードは以下 def put_english_text(*…

表データのエクスポートフォーマットはカンマ区切り(CSV)よりもタブ区切り(TSV)が使いやすい

何もしないとCSVだけど、TSVのほうがいいよねという話を言語化したものです。 TL;DR Excelなどの表データ書き出しでCSV(Comma Separated Value)を選択したくなったらTSV(Tab Separated Value)のほうがおすすめ データの性質によるが、文字列においては , よ…

認証が必要なページにおける403/401と404の使い分けに関してざっくりまとめる

認証エラーだから401を返してあげるのがよいのか、悪いのかをざっくりまとめる まとめ 順当に作る場合は認証を終えていないと見れないページはHTTPステータスコードは401(認可における不足の場合は403)のレスポンスコードを返す ただし認証をした人だけ認…

変数名に省略形をつかっていいかの判断基準

自分なりの判断基準を整理したものです。 TL;DR 「略語は必ず使ってはならない」と絶対的に言えるほど否定するものでもないので、チームで使い方を整理するのがベスト その際に考えるべきことは以下 狭い範囲でしか通じない略語は避けるべきだが、広く一般で…

Railsのbefore_actionで通常のインスタンス変数をセットするのは、本当にそれが最適解か考えてからやってほしい

before_actionでインスタンス変数を設定するとミスリードが多くなりがちなのでそれに対する話。 (記事製作時)の環境 # bin/rails -v Rails 6.0.3.1 (前提として)before_actionとは ActionControllerが提供するフィルタの機能の一種。 before_action は ind…

早期returnにおける使い方のパターン(防御的プログラミング、あるいは分岐処理)をざっくりまとめる

自身の書き方を言語化するシリーズ この文章内での早期returnとは メソッドなどで処理の終端に到達する前に return をして戻り値を先行して返すこと。 早期returnを利用できるパターン 早期returnが有用なケースをパターン分けすると以下の2つになると考えて…

変数代入を複数回行うと何が良くないのか、どうするといいのか

変数の代入を複数回行う、すなわち変数の再代入をすることは何が辛いか、また変数の代入を1回にすると何が嬉しいかを書く。 今回の題材 例えばRubyで以下のようなメソッドがあるとする def make_aisatsu_text(people_name: "Suzuki", is_san: false) text = …

「本番環境で断りなく作業する」 の何が危険なのか

暗黙の空気として「production環境で許可なく作業することは良しとされないこと」があるが、何故か?と問われるとさらりと説明ができないので言語化してみる 本番環境で作業をする、とは 今回記載をする「本番環境作業」とは ユーザーに機能を提供しているい…

Railsのenvは production / test / developmentで動かそう

教訓的なメモ Railsの基本的なenvironment(env) Railsでデフォルトで存在するのは以下の3つ produciton(本番) test(テスト/Rspecなどの実行用) development(開発環境) envは増やせる、が このenv、増やすことができる。根本的には config/environments…

異なる環境間で現在時間を受け渡して判定するときに気をつけること

端末時間とサーバー時間に関して色々思うことがあったので、考えをアウトプットするだけの雑記です。 今回考えるシチュエーション 異なる環境から時間情報を受け渡すということを考える。登場人物としては「送信元」と「送信先」があるが、例としては以下の…

サーバサイド開発におけるリリース後の重点監視に関してざっと書く

あんまり明文化されないけどみんなやってるよね系シリーズ サーバサイド開発におけるリリース作業とリリース後重点監視 開発を重ねてきた機能をリリースを迎えるとき、リリース前までにある程度のテスト工程を行ってくるものの、本番で実際にやってみたとき…

Webサービスでテスト項目書に基づいてテストするとき、テスターにやさしいテスト環境を考える

この前はデバッグの起票に関して書いたけど、今回は用意するべき環境の心構え的メモ テストのために望ましい環境とは 主に心がけたいことは以下 確認に必要なテストデータが入っている、入れることができる 既存環境からの拡張であれば、既存環境に近い状態…

チャットコミュニケーション全盛だからこそのリリース作業の報連相を考えてみた。

自分の中のノウハウ的なものをアウトプットしよう的な雑記です。 この記事で言うリリース作業 Webアプリケーションには往々にして『環境』が分けられており、実際に利用ユーザが触れる『本番環境』、それに準じた内部関係者が利用する『ステージング環境』な…