suzunedev's blog

@suzunedev のブログ

2023年のふりかえり

はじめに 今年も残すところあと僅かとなりました。2023年は運良く副業を始めたこともあって仕事に忙しい年でした。仕事を通じてWebアプリケーション開発者としての実績が増え、自信がついたため、この先もどうやらWebアプリケーション開発者として仕事を続け…

RubyKaigi 2023に行った話

はじめに 会場の中の階段 5月11-13日に開催されていたRubyKaigi 2023に行ってきました。今までオンラインでは2回ほど参加していましたが、オフラインでは今回が初めてです。開催地は松本で、松本にも久しぶりに行くことが出来てお得でした。RubyKaigiは他の…

株式会社はてなに入社しました。

株式会社はてなに入社しました。 よろしくお願いします。

2022年のふりかえり

はじめに 今年も残すところあと僅かとなりました。2022年は個人的には心境の変化があり、今までに無いぐらい行動した年でした。特別成長できたり、実績が残せたりということはありませんが、ほんの少しだけ心に余裕が出来たのが良かったと実感しています。さ…

Pull Request するときの習慣

はじめに Pull Request するときのルールって会社やプロジェクトごとに定められていることが多いと思うのですが、細かく覚えているかというと、そんなこともない。というよりも、Pull Request するときにルールが記載されているドキュメントを軽く見返したり…

機能開発時の Git 操作の基本

はじめに 機能開発時に Git で操作している内容を記録します。 Git は 2.36.1 を使用しています。 $ git --version git version 2.36.1

RuboCop の Style/SafeNavigation について

はじめに RuboCop 実行時に以下のメッセージが出力されました。 sample.rb:15:6: C: [Correctable] Style/SafeNavigation: Use safe navigation (&.) instead of checking if an object exists before calling the method. if sample && sample.hello サンプ…

Rails 7 にアップグレード後に脱 Webpacker してみた

はじめに Ruby on Rails のバージョンが 7 系になってから、Webpacker が廃止されました。 詳しい経緯は Webpacker のリポジトリから確認できます。 github.com 個人的に Webpacker は扱いにくくビルド時間が遅いため、脱 Webpacker をするにはどうすればい…

2021年の Web アプリケーション開発者としてのふりかえり

はじめに 今年も残すところ僅かですね。1年が過ぎるのが年とともに早くなっている気がします。今年は Web アプリケーション開発者の仕事をするようになってから9年目を迎え、転職をした年でした。記憶の新しいうちにどんなことをしたのかを記録に残したいと…

TypeScript と Jest で単体テストの環境構築

はじめに TypeScript を使ってみたくなりましたが、単体テストを実行するまでの環境構築に手間取ったので、手順を残します。

Rails で Webpacker のみ使う方法

はじめに Rails 6 で新規にアプリケーションを作成するとアセットパイプラインは Sprockets と Webpacker が同梱されています。主に CSS ファイルと画像ファイルは Sprockets で、JavaScript ファイルは Webpacker で管理されています。新規にアプリケーショ…

「白鳥とコウモリ」の感想

はじめに 久しぶりに本屋に立ち寄って、東野圭吾さんの新作を目にしてしまったので速攻書いました。普段は電子書籍でしか本を購入しませんが、どうやら東野圭吾さんの作品は電子書籍化されていないらしいです。私は紙の本でも電子の本でも読めればいいので「…

Hash#transform_keys を利用する

先日行った知床峠の写真です。本記事とは無関係です。 はじめに 久しぶりに Ruby on Rails API モードのアプリを確認していたら、RuboCop の警告が表示されていました。Class: RuboCop::Cop::Style::HashTransformKeys の警告でハッシュのキーを変換するだけ…

佐藤可士和展の感想と都会の緑を楽しむ

国立新美術館 はじめに 私はアートが幼少期から好きでクラスの中では絵が上手い方でした。将来は芸術家かアニメーターか漫画家になりたいという時期もありましたが、いつの間にか Web アプリケーション開発者として働いています。今回は「佐藤可士和展」に行…

「イラスト図解式 この一冊で全部わかるweb技術の基本」の感想

はじめに 「イラスト図解式 この一冊で全部わかるweb技術の基本」を読んだので感想を書きます。

「イラスト図解式 この一冊で全部わかるサーバーの基本」の感想

はじめに 久しぶりに技術書を大量に購入して、習慣的に読み進めるようになりました。半年前も定期的に技術書を読んでましたが、最近は読めてませんでした。技術書を読まなかった理由は、技術以外のことに関心が移っていく中で体系的に本で学ぶメリットを感じ…

Next.js + Material-UI でリロードした時のエラーについて

はじめに Next.js + Material-UI (styled-components) を使ってリロードしたときに、以下のエラーが発生してスタイルが崩れました。 Warning: Prop `className` did not match. サーバーサイドで新しく生成された CSS とクラス名が、クライアントサイドで指…

Amazon Simple Email Service を使ってメール送信する

はじめに 最近、個人開発の勉強のために Web アプリケーションを開発しています。そろそろ Web アプリケーションに会員登録の仕組みを追加して、何らかのサービスを提供できるようにしようと考えており、まずは会員登録の仕組みを追加することにしました。

Vue.js で簡単なテストを書いてみる

Vue.js によって、生成された DOM の結果を確認します。 <template> <div class="sample"> <p>sample</p> </div> </template> <script> export default { name: "Sample" } </script> <style scoped> .sample { text-align: center; } </style> // tests/unit/components/Sample.spec.js import { shallowMo…

React で簡単なテストを書いてみる

React によって、生成された DOM の結果を確認します。 /* App.css */ .App { text-align: center; } // App.js import "./App.css"; const App = () => ( <div className="App"> <p>sample</p> </div> ); export default App; // App.test.js import { render, screen } from "@testing-librar…

Ubuntu 20.04.1 LTS に PostgreSQL をインストール

はじめに パッケージリストの追加で bionic-pgdg ではエラーになったため、インストール方法を記載します。

ダック・タイピングを例に動的型付け言語と静的型付け言語の違い

はじめに If it walks like a duck and quacks like a duck, it must be a duck. (もしも、それがアヒルのように歩き、アヒルのように鳴くのなら、それはアヒルに違いない。) デーブ・トーマスより ダック・タイピングは、オブジェクトに何ができるかはオ…

ES6 と React と Vue.js の基礎を学ぶ

はじめに 最近、JavaScript を中心に勉強しています。業務では Vue.js を使っていますが、 React にも興味があり少しずつコードを書き始めました。React は Simple、Vue.js は Easy と言われておりますが、その意味も理解できるようになってきました。私は下…

Ruby 2.7.0 と Rails 6.0.3.2 で表示される警告の解決方法

はじめに 会社で Ruby on Rails (API モード)のアップグレードを行いました。アップグレードの目的は Active Storage の機能を使って AWS S3 にデータを保管する仕組みを構築するためです。アップレードにあたっては以下のガイドや記事が参考になりました。 …

直接 DOM を更新する問題

はじめに 最近、新規にアプリを開発するときの技術選定で SPA を導入するケースが多くなりました。SPA とは Single Page Application の略で単一の Web ページのみで構成されており、ユーザーの操作や各種イベントによって非同期でサーバーと通信後、必要な…

Vue.js で function の省略記法

はじめに Vue.js のガイドで function を使っている部分を見つけたので直感的に Arrow Function の記法を使ってみましたが、正常に動きませんでした。 jp.vuejs.org // function ありの記法 const app = new Vue({ el: "#app", data: { message: "Hello Vue.…

「JavaScript Primer 迷わないための入門書」を読んで Arrow Function を理解する

はじめに Vue.js を1年弱使って開発していましたが、JavaScript について詳しくないため「JavaScript Primer 迷わないための入門書」の Kindle 版を購入して勉強しています。購入してから気づいたのですが、本書の内容はネット上に公開されているため、買わ…

ノンデザイナーズ・デザインブックを読んで基本を学ぶ

はじめに Web アプリケーションの開発時に毎回、デザインについて悩むことがあります。デザインのガイドラインがあったり、デザイナーさんがいる場合は、開発者側で考える必要が無いのですが、必ずしもデザインの知識が深い人がいるとは限りません。顧客から…

レガシーとモダンな技術の生産性について

はじめに 最近、モダンな技術を使って開発することが出来ており、めちゃくちゃ楽しいです。ですが、一つの機能に対しての生産性は今までよりも上がっている気がしていません。Vue.js + GraphQL + Ruby on Rails を使って開発をしているのですが、表現力や自…

PostgreSQL の基本操作

PostgreSQL の基本操作をまとめてみました。