gotoshin

主に学んだ事の自分メモ用です。記事に書くまでも無いような事はhttps://scrapbox.io/study-diary/に書いてます。

grpcコースをやってみる〜その4 part1 ユーザ作成を実装する〜

www.youtube.com 今回何をやるか 未実装のAPIを実装する 実装する 完成形のコードは以下 func (server *Server) CreateUser(ctx context.Context, req *pb.CreateUserRequest) (*pb.CreateUserResponse, error) { hashedPassword, err := util.HashPassword(…

grpcコースをやってみる〜その3〜

www.youtube.com 今回何をやるか hatehate-nazenaze.hatenablog.com 前回はデータスキーマとそれを利用したapiを定義したが、今回はそれを動作させるサーバを定義する serverの雛形を作る api/sever.goのコードの中身をコピペする 異なるのはhttpリクエスト…

grpcコースをやってみる〜その2〜

www.youtube.com 環境構築 Protocol Buffer Compilerをinstall Protocol Buffer Compiler Installation | gRPC 記載の通りbrew installしたらいけた Goをビルドするためにプラグインをinstall protoc-gen-go prot ファイルで定義されたデータからgoのリクエ…

grpcコースをやってみる〜その1〜

今回やってみるコース www.youtube.com モチベーション 仕事で触れる機会があるが仕組みが何となくしかわかっていないため手を動かしながらやってみる grpcとは クライアントがリモートサーバの関数を呼び出す 例えばRustで記述されたサーバの関数をGoのロー…

【PostgreSQL】複数トランザクションを並列実行時の順序制限によるdeadlock回避

この記事について 前回の動画ではクエリの機能を活用しdeadlockを防いでいたが、今回は実行するクエリの順序を調整してデータロックを防ぐ How to avoid deadlock in DB transaction? Queries order matters! www.youtube.com 事象 二つのトランザクション内…

【PostgreSQL】 並列実行時のトランザクション管理の注意が必要なパターンと解決策

この記事について 以下Youtube動画を参考にGo×PostgreSQLで簡易銀行APIを作成している その中でトランザクションの部分が少し複雑だったため、自分の頭の整理がてらまとめてみる www.youtube.com 前提 ある口座から別の口座へ金額を移すAPIを2つのゴールチン…

Play Frameworkを使ったWebアプリケーション作成 掲示板作成

ドワンゴ社 新卒エンジニア向けのScala研修資料をやっていくもの ※テスト項目の手前の段階でページが正常に表示される事を確認する 資料 Introduction · Scala研修テキスト 投稿されたメッセージのクラスを作る package controllers import java.time.Offset…

Scala 型パラメータ&関数

ドワンゴ社 新卒エンジニア向けのScala研修資料をやっていくもの 資料 Introduction · Scala研修テキスト 型パラメータ Javaでいうジェネリクスの様なイメージ メソッドの返り値を複数取りたい場合は複数型パラメータを取るクラスを作成し、返り値のクラスを…

Scala クラス & オブジェクト & トレイト

クラス プライマリコンストラクタ 構文上記述する事は可能だが、1クラスにつき1つのコンストラクタしか扱わない 以下の様にコンストラクタの引数と同名のフィールドを定義し、その変数を外部に公開する事が可能 class Point(val x: Int, val y: Int) メソッ…

Scala 記法 & 制御構文

ドワンゴ社 新卒エンジニア向けのScala研修資料をやっていくもの 資料 Introduction · Scala研修テキスト 記法 文字列を直接記述すると文字列自体の意味となる ifと記載すればifという意味になる 文字列をクウォートで囲んでも同様の意味となるが、通常の文…

Scalaの基本

ドワンゴ社 新卒エンジニア向けのScala研修資料をやっていくもの 資料 Introduction · Scala研修テキスト hello-world そういうものかという感じ 簡単な計算 そういうものかという感じ 変数の基本 ほとんどの場面においてvarは使わずにvalを使う val = 値の…

M1 Mac にJDKとstbを入れる

Scalaの環境構築 - Qiita 大まかな手順 JDKのインストール stbのインストール JDK インストール さあやるぞ!と思いきやM1だったことを思い出す M1 Mac に Java の開発環境構築(インストール〜実行)してみた 上の記事にはOracleから入れるなと書いてあるが、…

JavaのSerializableについて

仕事で見かけてイマイチ理解してなかったため調べてみる。 シリアライズやデシリアライズについて シリアライズ化 オブジェクトを出力ストリームに書き出す事を直列化またはという シリアライズ化されたオブジェクトを読み込んでメモリ上に復元させる事 デシ…

Java ボクシング について

EffectiveJavaを読んでいて、ボクシングという単語が出てきてた時に、一瞬井上尚弥が頭を過ぎった自らを戒めるべくJavaのボクシングについて改めて整理する プリミティブ型と参照型について Javaにはプリミティブ型と参照型が存在する プリミティブ型はそれ…

俺はJavaの null・空文字チェックを理解していなかった

仕事でやってていつも何となくやってるなと思い改めて調べてみる 結論 空文字ornullをtrueとして判定したい場合はStringUtils.isEmptyが最も良い。 ※org.apache.commons.lang3.StringUtilsライブラリを使用して問題ない環境であれば String.isEmpty 空文字の…

サロゲートペアってなんなん

仕事でサロゲートペアって単語が出てきて何だっけ?となったので調べておく サロゲートペアとは? 複数の文字で1文字を表現する - 「あ"」など 何が不便なの? 7.6. 文字列処理 — TERASOLUNA Server Framework for Java (5.x) Development Guideline 5.3.0.R…

gradleとかgradlewについて

gradlewとかgradleで混乱したのでまとめ。 gradleとは 優秀なJavaのビルドシステム Gradle入門 - Qiita gradle wrapperとは ラッパーと一緒にプロジェクトを配布することで、前もってGradleをインストールすることなく、誰もがすぐプロジェクトで作業できる…

SpringBootでAPIサーバ構築

環境構築 以下の記事を参考にVScodeで環境構築 【簡単】VSCode+Spring Bootアプリケーション開発手順 | こへいブログ 参考動画 この動画をベースに実装 APIサーバを実装している(テンプレートの実装なし) Spring Boot Tutorial for Beginners (Java Frame…

kotolinチャレンジ〜その1/言語を知る〜

www.youtube.com 最初に押さえておきたいKotlin言語仕様 - Qiita 動機 個人開発でつくりたいと思うサービスの内容が日常のちょっとした事を便利にするような内容が多く、webサービスよりアプリの方が使い勝手が良さそうだったので。 あと僕がAndroidユーザー…

遅延初期化について

現在読んでる本で何回やっても読み方を忘れてしまう書き方があるのでまとめてみる。 private def current_staff_member if session[:staff_member_id] @current_staff_member ||= StaffMember.find_by(id: session[:staff_member_id]) end end これ遅延初期…

Vue(2系)×TypeScript×Firebaseでチャットアプリ

まずは基本的な記述方法を理解する 以前少しだけTSにチャレンジした事がありましたが、ほとんど忘れていたので再学習。 おすすめの記事が掲載されている記事 TypeScript学習ロードマップ - Qiita 実際に今回学習に使用した記事。記事1を軸に分かりにくい箇所…

どうやらhelper_methodに指定したメソッドはviewだけでなくcontrollerでも使えるらしい

gihyo.jp この本を写経している際にふと、これどういう仕組で呼ばれてるメソッドなんだろうと調べたのでついでにメモ。 まずAdmin::BaseControllerというクラスを用意しcurrent_administratorというhelper_methodを定義。 class Admin::BaseController < App…

ビール駆動開発

今まで粛々と技術記事を書いてきたが、今日はただのポエム記事。 今自分の中にあるRailsの知識でまだ雰囲気分かってるなってところを体系化したいと思ったり、テストを学びたいと思い最近本を写経している。 が、個人開発と違ってどうも乗り切れない。 個人…

【ミニ個人開発】本の栞代わりになるサービスを作ってみた

どんなサービス? サービス名 サービス名:SHIORI URL:https://book-memo.work/ (1円で購入したドメインなのでドメイン名は目をつむってくださいw) 解決できること 個人的に本を読むのが好きで同時に複数冊を読むのですが、以下の課題がありました。 何と…

RuboCopを導入してみる

RuboCopでフォーマットしてみたのでメモ。 触りだけだと、思っていたより簡単に出来た。 RuboCopとは? rubyのコードフォーマットしてくれるgem インストール group :development do gem 'rubocop', require: false end 設定ファイルを作成 & 編集 .rubocop.…

nuxtでvee-validate3を使ってみる

インストール yarn add vee-validate 設定 設定ファイル作成 勢いよく取り組んでみたものの、早速ここでドハマリしてしまう。 app/plugins/veeValidate.js (よくある記載例) import Vue from "vue" import { ValidationProvider, ValidationObserver } fro…

RSpecを使ってコントローラで簡単にテストやってみた

参考にした記事 使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」 - Qiita RailsじゃないRspec3環境を構築する方法 - Qiita 初期化 Gemをinstall & 初期化する Gemfileにrspecを追加 group :development, :test do gem "rspec-rails" e…

nuxt×axiosでローディング処理の共通化

この記事について nuxt×axiosのプロジェクトでローディング処理を共通化したのでその方法を記載します。 テンプレートはbootstrap-vueを使用しています。 概要 axiosを使用しているため、axiosの処理中にローディングが走る用に設定します。 手順の概要は以…

初めてTOEICの公式問題にチャレンジしたが全くダメだったので振り返り

結果 リスニング:105〜175 リーディング:75〜120 はい、300いきませんでした。試験慣れとかもあると思いますが、ここまで低いとはwww もはや笑えてきます。 振り返りと対策 ただでは転びません。 主にこちらの動画を参考に対策を練りました。 www.youtube.…

ActiveStorage×GCSで画像アップロード

この記事について ActiveStorageでアップロードした画像をGCSに保存する手順をメモしたものです。 ActiveStorageを使った開発環境での画像の保存は既に出来ているものとします。 参考にした記事 Active Storage の概要 - Railsガイド [Rails5.2] Active Stor…