rhanda | 元銀行員Web系エンジニアの日記

実務未経験からWeb系受託開発企業に転職したひよっこエンジニアが覚えたことや日々の感情を残すブログ

『Web API The Good Parts』読みました

Web API: The Good Parts作者:水野 貴明オライリージャパンAmazon 構成 1章 Web APIとは何か 2章 エンドポイントの設計とリクエストの形式 3章 レスポンスデータの設計 4章 HTTPの仕様を最大限利用する 5章 設計変更をしやすいWeb APIを作る 6章 堅牢なWeb A…

Playright + reg-suit + GitHub Actionsでビジュアルリグレッションテストを定期実行する

ビジュアルリグレッションテストとは なぜやりたかったのか 構成 実装 Playwrightを使ったスクリーンショットの撮影 reg-suitの設定 actualDir thresholdRate reg-simple-keygen-plugin GitHub Actionsの設定 DockerfileとComposeファイル 実行した結果 詰ま…

『良いコード悪いコードで学ぶ設計入門』読みました

良いコード/悪いコードで学ぶ設計入門―保守しやすい 成長し続けるコードの書き方作者:仙塲 大也技術評論社Amazon 構成 第1章 悪しき構造の弊害を知覚する 第2章 設計の初歩 第3章 クラス設計〜すべてにつながる設計の基盤〜 第4章 不変の活用 〜安定動作を…

『オブジェクト指向設計実践ガイド』読みました

オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方作者:Sandi Metz技術評論社Amazon 構成 第1章 オブジェクト指向設計 第2章 単一責任のクラスを設計する 第3章 依存関係を管理する 第4章 柔軟なインターフェー…

親コントローラに入れる処理をテストしやすくするための設計

複数あるエンドポイントについてデフォルトで実行したいフィルタを、before_actionとして親コントローラに登録したいことがありました。 当初は親コントローラでメソッド定義とフィルタの登録をして、テストは各エンドポイントのテストで行うやり方を考えて…

『Vue.js&Nuxt.js超入門』読みました

構成 Chapter1 Vue.jsを使ってみよう Chapter2 Vue.jsの基本をマスターしよう Chapter3 コンポーネントを使おう Chapter4 コンポーネントをさらに掘り下げる! Chapter5 Nuxt.jsにアップグレード! Chapter6 外部サービスを利用しよう! Addendum JavaScript…

福岡Rubyist会議03の参加レポート

概要 2/18に開催された福岡Rubyist会議03に出席しました。 その時の学んだメモや感想を簡単にまとめます。‍♀️ 感想 RubyKaigi2022に続いて2度目のカンファレンスオフライン参加でした。 事前にタイムスケジュールを見た時から「RubyKaigiよりも理解できる内…

request specのファイル名は複数形・単数形どちらにすべきか

request specを新たに追加するとき、これまであまり意識せずにファイル名を/複数形_spec.rb(ex. /users_spec.rb)としていたが、既存のrequest specで単数リソースの場合には/単数形_spec.rbとしているものもあることに気づいてどうすべきか迷ったことがあ…

『プログラミングTypeScript』読みました

プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発作者:Boris Chernyオライリー・ジャパンAmazon 構成 1章 イントロダクション 2章 TypeScript:全体像 3章 型について 4章 関数 5章 クラスとインターフェース 6章 高度な型 7章 エラー…

E2Eテストで意識したいこと

beforeでブラウザ操作しない。 一連の操作自体がテスト対象なのでscenarioにすべて書く これはrequest specでも同じで、テスト対象のリクエストをbeforeには書かない コストが非常に高い(遅い、壊れると直すのに時間がかかる)ので、最もありうるユースケー…

『オブジェクト指向でなぜつくるのか 知っておきたいOOP、設計、アジャイル開発の基礎知識』読みました

オブジェクト指向でなぜつくるのか 第3版 知っておきたいOOP、設計、アジャイル開発の基礎知識作者:平澤 章日経BPAmazon 構成 第1章 オブジェクト指向はソフトウエア開発を楽にする技術 第2章 オブジェクト指向と現実世界は似て非なるもの 第3章 OOP を理解…

『ファシリテーションの教科書』読みました

ファシリテーションの教科書―組織を活性化させるコミュニケーションとリーダーシップ作者:グロービス,吉田 素文東洋経済新報社Amazon 構成 chapter01 ファシリテーション − 変革リーダーのコアスキル chapter02 議論の大きな骨格をつかむ chapter03 参加者の…

Rubyの正規表現で ASCII印刷可能文字を表現する

range を使ってできました。 (' '..'~').to_a.join # => " !\"\#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" 使用できる文字をASCIIの0x20から0x7Eまで(半角空白を含む半角英数記号)に制限したいこと…

『SQL実践入門 高速でわかりやすいクエリの書き方』読みました

SQL実践入門 ──高速でわかりやすいクエリの書き方 WEB+DB PRESS plus作者:ミック技術評論社Amazon 構成 1章 DBMSのアーキテクチャ 〜この世にただ飯はあるか 2章 SQLの基礎 〜母国語を話すがごとく 3章 SQLにおける条件分岐 〜文から式へ 4章 集約とカット …

周りをフル利用して成長するための考え方

概要 今の会社には、「10分でわからなかったら質問しよう」という文化があります。 私のような駆け出しエンジニアにとってそう言っていただけることは非常にありがたく、研修中から考え方に詰まったら聞くようにしていました。 しかしながら、いざプロジェク…

IdPとは

今度アサインを受けたプロジェクトで認証周りの知識が必要になったので、調べてまとめてみました。 参考 IdPとは? 役割や機能、SPとの違いをわかりやすく解説! IdPとは?実現できることや必要性などを解説します! 多要素認証とは?導入するメリットから認…

『Webを支える技術』読みました

Webを支える技術 ―― HTTP,URI,HTML,そしてREST WEB+DB PRESS plus作者:山本 陽平技術評論社Amazon エンジニアとして成長していくにあたって、RESTの考え方に習熟していきたいと思った時に、「そもそもWebとは」みたいなことへの知識もあると、より理解が…

自分のコードが初めて世に出ました

コードが初めて世に出た ついに自分がコードを書き、リリースされる経験をしました。 正直そこまで実感はないというのが率直な感想です。 そう感じる主な理由は、新規サービスなどではなく、既に走っているサービスの一部改修であったために「リリースされた…

Rubyプログラム実行時に、コマンドライン引数を取得できるようオプションを作成

先日カレンダープログラムの作成に取り組みました。 その中でオプション設定や、それに係るエラーメッセージの表示を初めて行ったので、メモとして残すものです。 最終的に作ったコード require 'optparse' option = {} OptionParser.new do |opt| begin opt…

『リーダブルコード』読みました

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)作者:Dustin Boswell,Trevor FoucherオライリージャパンAmazon 読んだきっかけ 研修としてのアプリケーション開発で沢山のコードレビューを頂くなかで、 「…

RubySilver受験記

先日Ruby技術者認定試験(Silver)に合格しました。 自分もいくつかの合格記を参考に学習をしたので、記録も兼ねて残してみたいと思います。 どなたかの参考になりましたら幸いです。 前提(スキルレベル) 2020年9月に前職を退職し、6ヶ月のプログラミング学…

【Rails】MVCとは

先日、セレクトボックスで扱いたいデータの配列をモデルに定義する際に「選択肢を日本語表示したい」と思ったことから、キーを日本語名にしたハッシュを作成しました。 しかしながらモデルは「データを扱う役割」です。 「ビューでこう表示したい」や「日本…

【Rails】gemを使わないで手軽にenumをi18nに対応させて日本語化する

不用意にgemを追加すべきでない場面もあるかと思い、学習を兼ねて取り組んでみました。 また同じようなやり方をしている記事も見当たらなかったので、記録として残すものです。 前提 今回は簡単なタスク管理アプリケーションを想定し、Taskモデルに["waiting…

デプロイしていたRailsアプリケーションでThe change you wanted was rejected.が出た

当該エラー The change you wanted was rejected. Maybe you tried to change something you didn't have access to. If you are the application owner check the logs for more information. 解決プロセス ①CSRF対策説 とりあえずエラー文でググって、複数…

VSCodeでファイルを開くとき、常に新しいタブでエディタを開く方C

VSCodeを使っていると、ファイルを開く時に現在のタブに上書きされて表示される時があり、ちょっと不便に思うことが多いと感じたので設定してみました。 ファイルに設定を追記する方法ではなく、メニューバーから入っていって設定したメモ。 参考記事:https…

Ajax通信を実装しようとしたら、Uncaught ReferenceError: $ is not definedが出た

Uncaught ReferenceError:~~is not defined 調べたところ「〜〜の変数や関数が定義されていないから使えmasenn」というエラーのようです。 また今回の$ is not definedは、「jQueryが読み込まれていない段階でjQueryの関数は使えないよ!」と言われているこ…

Webpackとは?

何度も調べまわっているような気がしたので、関連の用語をまとめてメモしてみました。 修正点・誤っている箇所等あれば、アドバイスを頂けると幸いです。 Webpackとは JavaScriptのモジュールバンドラー。 ややこしいと思ったのはWebpackerとは別物だという…

【インフラ】冗長化して稼働率を高くするとは

AWSインフラ構築学習で、稼働率向上のための具体的な冗長化に初めて取り組んだので、そこで学んだ用語等をメモしておきます。修正点やアドバイス等ございましたら教えていただければ幸いです。 参考講座:AWS:ゼロから実践するAmazon Web Services。手を動…

rails newをしたらPG::ConnectionBad: could not connect to server: No such file or directoryとエラーが出た

「PostgreSQLが起動していないよ」というエラーのようです。 PCの再起動によるものと思われますが、以下の方法で解決できました。 何度も遭遇している割には、復旧手順を毎回調べていると感じたので記録しておきます。 手順 ①PostgreSQLが出力するログファイ…