NAKKA-Kの技術ブログ

技術に関する知見や考え方などを投稿します。

vuex-persistedstateを使っていると、ストアを変更しても前のデータがlocalStorageに残って困る

VueやNuxtのプロジェクトでよく使われるvuex-persistedstateというストア永続化プラグインがあります。 このプラグインはストアの内容をlocalStorageに永続化してくれるものです。 問題 ストアの内容を永続化し、ページを開いた時ストアに再展開してくれるの…

DockerとNuxtのSSRでConnectionRefusedが発生する問題の原因を解説する

Docker上でAPIサーバーとNuxt(SSR)を動かす環境で、connection refusedが発生したりしなかったりする問題に遭遇しました。 今回はその問題の発生原因について書いていきます。 一言で どういうこと? 前者のパターン 後者のパターン 何が問題? 解決策 まと…

env設定忘れでDBが動かず、Dockerを初期状態から立ち上げた

Dockerでpostgresを起動。 同じくDockerでRailsを起動しdocker-composeで接続。 ActiveRecord::NoDatabaseError FATAL: role "myuser" does not exist docker-compose up -dした時に環境変数をセットするのを忘れていました。 postgresにボリュームを設定し…

独立したGitリポジトリのマージをすると発生するfatal: refusing to merge unrelated historiesの解決

GitHubでリポジトリを作る。 ローカルでリポジトリを作る。 その後、マージしないとと思い立ちgit pull origin masterをすると、fatal: refusing to merge unrelated historiesが表示されてしまいました。 そんな時はということで、git merge --allow-unrela…

GoModuleを使ったgo getができない問題を解決する

$GOPATH以下ではデフォルトでGO111MODULE=ofになるため依存パッケージがインストールされておらず、明示的にGO111MODULE=on go get -uをする必要があった。 参考 Go Modules

Laravel5.7でAPIコントローラーをメソッドとしてテストする方法

LaravelでAPIやコントローラーをテストする方法を調べると、大体出てくるのはサーバーを立ち上げてルーティングに対してリクエストを飛ばしてテストする方法です。 今回はコントローラーのメソッドをそのままテストする方法について記述していきます。 なぜ…

Laravel5.7のServiceコンテナをモック化してする方法

Laravelに限らずですが外部のAPIを通信したり、重い処理を実行しているの部分があるのでテストの時はモックにしたい、といった場面は多々あると思います。 今回はServiceコンテナをモック化する方法をまとめていきます。 Serviceコンテナが使われているコー…

vimのGoの言語補助プラグインでUnknown functionバグが発生した

vimをupgradeさせた時に唐突にvimがエラーを吐き出し始めました。 エラーは吐き出すもののとりあえず動いてはいました。 ですがvim-goのある部分でエラーが発生しているようでした。 Error on startup: Unknown function: go#config#CodeCompletionEnabled …

webアプリケーション開発で個人的に重視しているテストの話

Slackでテストの話について盛り上がったので、webアプリケーション開発で個人的なテスト毎の優先順位などについて書きたいと思います。 早速本題に入りたいと思います。 Controller コントローラーの処理をホワイトボックステストする利点は少なく、ブラック…

Laravel5.7 [API開発]で権限設定をPolicyに任せて幸せになろう

LaravelでAPIを作っていると、例外周りの処理を良い感じにしてくれないので非常に大変です。 Policyをそのまま使っても403ページが返ってしまいますし、エラーメッセージの変更も困難です。 今回は権限判定をPolicyに移植して、かつ任意のエラーメッセージを…

Laravelを使ったAPI開発でController内のバリデーションをFormRequestに抽出して幸せになろう

私の開発しているプロジェクトでは Laravel 5.7 React/Redux を使って開発しています。 バックエンドのLaravelはAPIを実装しています。 LaravelでAPIを実装すると通常のwebで作るより処理が煩雑になる気がします。 その上、いろんな処理をControllerにまとめ…

Raspbianの固定ローカルネットワークアドレスの設定

IPの設定 まず/etc/dhcpcd.confを開きます。 ここで固定IPを設定します。 interface eth0 static ip_address=192.168.10.33/24 static routers=192.168.10.1 static domain_name_servers=192.168.10.1 8.8.8.8 ip_addressは設定したいRaspberryPiのIPアドレ…

Reactのプロジェクトを平成最後の大リファクタリングした話

平成の技術的負債を令和に持ち越したくないからリファクタリングしよう!!と思ったのが事の始まりでした。 短期的に開発速度を求めLintを後回しにしてしまったプロジェクトにLintツールを導入し、Reactのコードを全て綺麗にした時のツールや方法を書きます…

資格を取るべきなのか専門学校生としての経験をもとに考えてみた

最近Twitterでは基本情報やらITパスポートやら資格についての話がよく見受けられます。 資格をかなり重要視している専門学校の、生徒だった経験から資格をとった方が良いのか、取らなくても良いのか、どのような心構えで取るべきなのかを個人的な考えで書い…

「ゼルダの伝説 ブレスオブザワイルド 」のUXについて考察しました

Nintendo Switch版「ゼルダの伝説 ブレスオブザワイルド 」(通称BoW)のUXについて考察してみました。 このゲームには素晴らしい仕組みや面白さなど多くの要素がありますが、今回話す内容はその中でもトップクラスに素晴らしい要素について書きたいと思います…

ロケール環境設定を良い感じに設定する方法

ロケール環境設定の詳細な意味は以下の私の記事を呼んでください。 qiita.com 結論 特にこだわりがないならとりあえずLC_ALLを設定しておけば大丈夫です。 export LC_ALL=ja_JP.UTF-8 ja_JP.UTF-8の部分は自由に変更してください。

プログラマーの学習方法は1つを極めるべきなのか、広く学ぶべきなのか?

プログラマーの学習方法はどうするのが一番良いのでしょうか? ある人は1つに決めてひたすら習熟し、その後に別の技術に手を出すべきだ。と言います。 はたまたある人は1つだけを学んでいても意味がないから、幅広く学ぶべきだ。と言います。 どっちだよ!!…

「HeadFirstデザインパターン」のObserverパターンをGo言語で実装してみた

「HeadFirstデザインパターン」ではJavaを用いてデザインパターンの実装が解説されています。 これらのデザインパターンをGo言語で実験的に設計し直した実装を紹介します。 前回はStrategyパターンを実装しました。 nakka-k.hatenablog.com Observerパターン…

「HeadFirstデザインパターン」のStrategyパターンをGo言語で実装してみた

「HeadFirstデザインパターン」ではJavaを用いてデザインパターンの実装が解説されています。 これらのデザインパターンをGo言語で実験的に設計し直した実装を紹介します。 Strategyパターンとは 簡単な概要だけを説明すると、 複数の振る舞いをインターフェ…

「Go言語でつくるインタプリタ」を読んでインタプリタの身近さをを確認した

「Go言語でつくるインタプリタ」は、そこらへんのネットに転がっている超軽量なRubyで作ったLispインタプリタほど小さくなく、重厚な理論に関する論文や書籍のような難しすぎるものでもなく、インタプリタがどのように動作するのか理解するために十分で適量…

プログラマーがモチベーションを維持するためにやったこと

モチベーションとは自分の意志だけで維持するのは非常に難しいです。 どれだけ外部から効率的にモチベーションを得られるかが鍵となっています。 新生活が始まるこの時期からスタートダッシュを維持できるように、私が実践しているモチベーションアップ方法…

「超一流になるのは才能か努力か?」を読んで己の限界を越えよう

この書は人々が才能と呼ぶ生まれ持った資質と全面から闘い、己の道を切り開くための本だ。 超一流になるのは才能か努力か?作者: アンダースエリクソン,ロバートプール,Anders Ericsson,Robert Pool,土方奈美出版社/メーカー: 文藝春秋発売日: 2016/07/29メデ…

ダムを見てオブジェクト指向に思いを馳せた話

先日旅行に行った時、ダムを見てオブジェクト指向に思いを馳せたことをここにまとめてみます。 ダムについて 雨が少ない時に渇水してしまわないようにダムに雨水などを貯めておき、いつでも必要な時に水を確保できるようにする役割を担っています。 その後、…

「テスト駆動開発」を読んでTDDについてまとめた

kent beck 著、和田卓人 訳「テスト駆動開発」を読んだ感想を書く。 TDD(テスト駆動開発)とは 自動化されたテストを書く。 テストが失敗した時のみ新しいコードを書く。 重複を消去する。 テスト駆動開発とはこれらのシンプルな制約のもとになりたつ。 これ…

業務で扱った技術について個人ブログを書くのは有り?無し?についてアンケートしてみた結果

Twitterで技術ブログの投稿を見た時にふと「業務で扱った技術について業務時間に個人ブログを書くのは有りなのか、はたまた無しなのか?」という疑問を持ちました。 その疑問をTwitterの投票機能によって集計した結果と意見をここに記します。 対象読者 自企…

専門学校生がプログラマーとして新卒月収42万で入社するまでにやったこと

専門学校に入学した頃はまともに就職できるのかすら不安でしたが、なんやかんやでちゃんとした会社に入れたという事実に困惑しています。 実際に業界の人たちと話してみないと案外わからないことだらけだなという印象を持ちました。 なので、プログラミング…

エンジニア志望の学生にオススメする就活らしくない就活方法

昔ながらの就活はいやだ リクナビに登録して興味のない企業のオススメメールが山のように届き、スーツで何社もの企業説明会を周り、手書きの履歴書を何枚も書いて...... 今時こんな就活はしたくありません。 ポートフォリオや志望業種などを登録して、自分に…

プログラマの行動・意思におけるプラクティス記事を読んで

どうも、NAKKA-Kです。 Qiitaで、初心者プログラマが犯しがちな過ち25選 - Qiitaという、The Mistakes I Made As a Beginner Programmer – jsComplete EdgeCodersの翻訳記事を読みました。 この記事はそれなりに経験を積んだプログラマとしては当たり前であ…

【WaZ】イベントの作成機能追加!

おはようございます、NAKKA-Kです。 今回もWaZの進捗ブログを書いていきます。 今回の進捗報告 現在の画面 機能説明 アカウント イベント イベント参加 実装について アカウント イベント まとめ 今回の進捗報告 今回は、WaZでメインの機能になるイベントに…

【WaZ】With any Zeal(WaZ)サービス開発始動!!

はじめまして、NAKKA-Kです。 このブログでは開発に関係する記事はなんでも投稿して行くブログとなっています。 今回の題目にもある通り、「With any Zeal」略して「WaZ」というサービスの開発記事をはじめていこうと思います。 WaZに関する記事には題目の先…