2023-01-01から1年間の記事一覧
Kaigi on Rails 2023に2日間参加してきましたー! RubyKaigi 2022に参加して以来のカンファレンスへの参加で、オフラインでの参加は今回が初めてでした。 Kaigi on Railsは今回が初めてのオフライン開催だったので、記念すべき日に立ち会えたことをとても光…
さらに追加/修正を行い、ブラッシュアップしていきますが、現時点での目指すエンジニア像をアウトプットをしておきます。 1〜3年後のエンジニア像 職種:バックエンドエンジニア Webアプリのパフォーマンスと安定性を向上させることを目指す。 DBへのアクセ…
今回はSWRの簡単な使い方を習得しました。 Fetchで取得したデータを表示するサンプルアプリにSWRを導入して、UI/UXを改善しました。この改善で、APIからのレスポンスを待つ間に画面が真っ白になる問題を解消しました。 【参考】 SWR公式ドキュメント 修正す…
以前作成したメモアプリに「ログインボタン」を実装し、グローバルなstateを扱う最もシンプルな方法として、React の機能であるContext(コンテクスト)を学びました。 knkkojt6.hatenablog.com 概説 useState()によって管理される値はローカルなstateと呼ば…
今回は、Reactでメモアプリ(SPA版)を作成しました。 このアプリはCRUD(一覧表示、詳細閲覧、追加、編集、削除)を実装していて、ページ全体のリロードなしでメモの閲覧、追加、編集、削除が可能になっています。 アロー関数とfunctionが混在していますが…
今回は、Node.jsでメモの追加・一覧表示・参照・削除ができるメモアプリ(CLI版)を作成しました。 データの保存先にはsqlite3、JavaScriptのクラス構文を使って作成しました。 要件 1. メモの追加 標準入力に入ってきたテキストを新しいメモとして追加する…
自作npmパッケージを作成したので、公開/バージョンアップ/削除の方法をまとめておきます。 ちなみに作成したものは以下です。 www.npmjs.com npmパッケージの公開方法 1. プロジェクトのセットアップ プロジェクトフォルダの作成 package.jsonに必要な情報…
今回は、指定された年月のカレンダーをコンソール上に表示するプログラムを作成しました。 もし年月が指定されない場合、現在の年月が使用されます。 この処理の中心として、Luxonという日付・時刻操作のためのライブラリと、コマンドライン引数を簡単に扱え…
毎回ESLintとPrettierのインストールや設定方法が曖昧だったので、こちらにまとめておきます。 ESLint(静的検証ツール) JavaScriptのコード解析ツール。コードスタイルの指針に従った書き方をしているかチェックし、品質を保つのに役立つ。 Documentation …
この記事では、Node.jsのバージョン管理ツール、nvmのインストールと使い方を説明します。nvmは異なるプロジェクトで異なるNode.jsのバージョンを使用する必要がある場合に、それぞれのバージョンを簡単に切り替えることが可能です。 1. nvmのインストール …
今回はNode.jsでESM (ECMAScript Modules)を使う方法をまとめます。 Node.js v14以降であれば、ESモジュールを使うためのサポートが組み込まれている。 その1. package.jsonに"type": "module"を指定 package.json { "name": "my-esm-project", "version": "…
以前、Rubyの標準ライブラリのみで実装したLinuxやUnix系のOSで使われるlsコマンドを、オブジェクト指向版として実装しました。 要件 オプションなし 最大3列で表示。 ファイルの並び順は以下のとおり。 1 5 9 2 6 10 3 7 4 8 -a、-r、-lオプションを併用で…
以前、Rubyの標準ライブラリのみで実装したボウリングプログラムを、オブジェクト指向版として実装しました。 1. 要件(ルール) 1ゲーム=10フレーム 1フレーム=2投(例外あり) ピンの数は10本 1投目で10本倒したらストライク ストライクの場合は2投目は表…
今回はRailsで自動テスト(モデルテストとシステムテスト)を書く方法を学びました。 Railsのテストはminitest(ほとんどがtest-unitと同じ)がベースになっています。 Rails テスティングガイド なぜテストを書くのか? 品質管理:テストは、アプリケーショ…
今回は、既存のRailsアプリにコメント機能を追加しました。 ポリモーフィック関連付け(Polymorphic Association)...異なる種類のモデル同士を関連づける方法の一つ。通常、Railsでは、あるモデルと別のモデルを関連付ける際に、外部キー(foreign key)を…
今回は、TwitterやInstagramのようなユーザーのフォロー機能を実装し、多対多のモデルの関連付けを学びました。 ここでは「Ruby on Rails チュートリアル - 第14章 ユーザーをフォローする」を参考に実装しました。 これがまた難しかったのでまとめておきま…
今回はRails5.2から標準搭載のファイルアップローダーであるActiveStorageを使い、画像アップロード機能を実装しましたのでまとめです。 AWS S3などのクラウドストレージへのアップロードも設定で手軽に実装できるとのことですが、今回はクラウドストレージ…
Railsで作成したwebアプリケーションに簡単に認証機能(ログイン機能)を実装できるgemである「devise」を使用し、ユーザー認証機能とユーザーページを作成しました。 以下は作成済みの新規アプリケーションがあることが前提です。 学んだこと✏️ 1.devise ge…
今回はRailsで、以下のようなページング処理(ページネーション)を実装するためにkaminari gemを使用しました。 kaminariはこの処理を簡単にしてくれるrails pluginです。 以下は作成済みの新規アプリケーションがあることが前提です。 学んだこと✏️ 1.kami…
今回は、Railsにおける国際化(多言語化)を実現するための機能を提供するi18n(internationalization)について学習しました。 Railsでは、i18nを使用することで、アプリケーションで使用されるテキストメッセージやエラーメッセージなどを簡単に多言語対応…
以下の記事で作成したメモアプリのデータ保存先をPostgreSQLに変更しました。 knkkojt6.hatenablog.com 学んだこと✏️ 1.pgのインストール RubyからPostgreSQLを使用するためのgemであるpgをインストール。 2.DBに接続、テーブルを定義 PG.connectでDBに接続…
Railsという巨大なフレームワークを学習する前に、Rubyを用いてWebアプリケーションを作成するためのフレームワークである「Sinatra」でWeb開発の基礎を学びました。 シンプルなメモアプリを作成しました。 RubyとSinatraではじめる Webアプリケーション開発…