ソムリエでエンジニアのブログ

ワインの事も書きたいけど基本エンジニア用

PHPでバックトレースを実施する

PHP

経緯 Zend frameworkを使ったシステムでGETリクエストに対して想定しない404画面が描写された。 対象のコントローラーには404になる処理は実装されておらず、ログをチェックするもリクエストに対応するコントローラー内を通っていない。 各コントローラーの…

【読書メモ】「技術書」の読書術

はじめに 気になったので「技術書の読書術」を読んでみました。 せっかくなので見返せるようにまとめておきます。 www.amazon.co.jp 本について こちらの本は、技術書の「選び方」「読み方」「情報発信 & 共有のやり方」の3点について2人の筆者が実践する様…

(JavaScript)mapでcontinueできないので代替案を探す

はじめに 普段JSやTSで新しい配列要素を作成したい時にmapをよく利用します。 for~ofで回しながら先に用意している配列にpushしていく書き方よりも、配列を加工したい旨を明示でき、すっきり表現できると考えています。 何がしたいのか 全ての配列に対して加…

PHPコンテナにLaravelスケジューラーの設定を追加するとnginxコンテナとの接続でエラーが出た

発生した事 cronとLaravelアプリを同一コンテナに入れnginxと接続しようとすると502 Bad Gatewayが発生した。 nginx側のエラーログを確認すると以下のような内容が... connect() failed (111: Connection refused) ... 続く どのようなDockerfileを使ってい…

SQL Alchemy, Alembicでマルチテナント型のデータベース生成とマイグレーションを実行する方法

概要 本業でPythonで処理を書き, ORMとしてSQL Alchemy, マイグレーションの管理をSQL Alchemy, で実施しているプロジェクトがあります。 そのプロジェクトではマルチテナント方式?(一つのユーザーに一つのスキーマーが切られているイメージです。)を採用し…

ブラウザ→webサイトに接続できなくなった... そんな時のwebエンジニア向けトラブルシューティング

お疲れ様です!おっくんです。 2022年も早1ヶ月半ほどたちましたねー。毎日が早すぎる... 記事執筆のきっかけ 私は現在、エンジニア数10名以下のベンチャー企業で勤務しています。 あるあるですが、インフラをメインで触っているエンジニアの数が少なく、イ…

Laravelで用意したファイルを使ってテストする

はじめに CTIのサービスに携わっている為、音声ファイル関連の機能に関わる事が多く自動テストで音声ファイルを扱う機能をカバーしたいと考えていました。 初期実装では、UploadedFile::fake()を利用して以下のようにダミーデータ作り対応していました。 cre…

2021年を振り返る

はじめに 2019年8月にwebエンジニアとしてのキャリアをスタートし早2年半。 初めてのwebエンジニア→webエンジニア転職も を経験し、成長を感じれる部分もありました。 今年も残すところ数日となったのでそんな2021年をざっと振り返っていこうと思います。 最…

アジャイルについて知らない事だらけだったので『アジャイルサムライ』を読んでみた

はじめに 「アジャイルってなんか短いスパンで開発するんでしょ?」 以前の私はアジャイル開発に対してこの程度の認識で、その内容をはっきりとは捉えていませんでした。 自社でも開発フローを見直したいというニーズがありこの機会にアジャイル開発を詳しく…

iframeを使ってアプリケーション内に外部サイトを表示する

はじめに フロントエンド開発で、あるページに外部サイトを表示したいとの要望がありiframe(インラインフレーム)を利用して対応を行ったのでその内容を記録しておきます。 iframe(インラインフレーム)とは... iframeとは、HTMLタグの中にさらに別のファ…

php artisan make:modelコマンドのファイル生成先を変更する

はじめに 最近、Laravelで開発しているプロジェクトにオニオンアーキテクチャを意識したディレクトリ構成を採用しました。 導入したディレクトリ構成ではモデルファイルをInfrastrucure/Eloquent/ディレクトリ 以下に置くよう変更を加えたいと思っています。…

.gitignoreを後から追加する方法

git

はじめに TypeScriptを学んでいる時に、誤ってリモートリポジトリにnode_modulesディレクトリ以下のファイルを追加してしまいました。 そこでgit管理したくないファイルをコミットした際、後からgitignoreファイルを追加する方法を調べたので備忘録として残…

Laravelでバッチ処理を実装

はじめに 開発中のシステムで月初に決められた処理を実施するような機能を実装したのでまとめておきます。 定期処理を実施する記述などLaravelを利用するとシンプルに実装する事ができ驚きました。 実装環境 Laravelのバージョンは現時点で最新の8系を利用し…

Laravelでコレクションをfilterする際にインデックスを連番にする方法

はじめに 最近Laravelのコレクションを積極的に使用しています。 readouble.com filterを使ってフィルタリングする処理を実装した際、インデックスが飛び飛びになり、その後の処理に影響がでてしまう場面が、 今回は、filter使用時にインデックスを連番で返…

vscodeでPHP開発中、プロパティに型指定するとエラーが表示される

PHP

はじめに vscodeを利用して開発していた時にクラスのプロパティに型指定を追加するとエラー表示される事象があったのでそちらの改善方法を殴り書き程度のメモになりますが残しておきます。 事象 下記のようなクラスを作成しました。 …

ある日いきなりgithubがpushできなくなった 

git

はじめに 2021/07/29の夕方、担当している機能の実装が完了したのでいつも通り プッシュコマンドを叩いた。 この瞬間は格別だ。 一息つこうと思った時、不穏な空気が漂った。 $ git push origin main remote: Password authentication is temporarily disabl…

Vue.jsでクリップボード機能を実装する

はじめに PCであれば、「範囲選択→ショートカットキー」で簡単に範囲コピーをする事が可能ですが、スマホの場合面倒な作業になってしまいます。 ユーザー体験向上の為、ブラウザ上でクリップボード機能を実現する目的でClipboard APIを利用したので紹介しま…

Rails consoleのsandboxモードを利用してコードを確認してみた

はじめに Railsでアプリケーションを開発していると、コードの挙動を確認したい場面が多々あると思います。 今回はRailsコンソールのsandboxモードを利用して挙動確認を行ったので備忘録としてまとめます。 記事の目的 ・Rails consoleを利用して挙動確認を…

FactoryBotでテストデータ作成する方法

はじめに 本記事は以前Qiitaに掲載していた内容です。 エンジニア転職を目指してRails Tutorialで学習を行なっていた際に、デフォルトで紹介されているminitestではなく、現場で利用されている事の多いRspecを利用してみました。 テストを作成する中でFactor…

Laravel × Vue CLIを利用した環境構築案を考えてみた

はじめに 最近、LaravelとVueを触る機会が多くなりました。 Laravelはフロントエンドの開発が行やすいようLaravel Mixの仕組みが用意されています。 今まではこちらを利用してVue、ReactなどをLaravelに組み込んでいました。 今回Vue CLIの雛形をそのまま使…

ソースコードのコメントについて再考してみる

はじめに 「クソコード」と呼ばれるコードが生まれる理由は様々ですが、本来コードを読みやすくするはずのコメントが原因でソースコードの可読性が下がる事もあります。 何となく直感でコメント内容を決めていくと可読性を下げるコメントを残してしまってい…

PHPカンファレンスに初参加してみた件

はじめに 5/29(土) に行われた以下イベントに参加しました。 connpass.com ・Twitter HashTag : #phpcon_okinawa 初のPHPカンファレンスへの参加でしたが、有意義な時間となりました。 個人的に関心事であった技術的負債について登壇されたLTが印象に残って…

SES企業って実際どうなの? ~未経験からSES企業に入社した私が感じた事~

はじめに 未経験エンジニアの転職活動での関心事の一つが、 「自社開発・受託開発・SESどのようなビジネス形態の企業を選択するか。」 実務未経験者が影響されそうなテック系インフルエンサーはこぞって「自社開発に就職しろ」、「SESは経験なんてつめない」…

RxJSでポーリング処理を実装してみた

はじめに Angularでwebアプリを開発を行なっております。 フロント側からサーバにリクエストを投げるポーリング処理の実装を行なったので記事にまとめたいと思います。 対象 ・ポーリング処理のイメージを掴みたい方 ・AnuglarでRxJSを利用してポーリング処…

Dockerでcomposer requireを実行するもkilledで失敗した時の対応

はじめに Dockerを利用してLaravel × Vue..jsの開発環境を構築した際、ログイン画面を作成する為にlaravel/uiのインストールを実行しました。 github.com README.mdに記載がある通り下記コマンドを実行するもkilledという文字が表示され処理が終了ました。 $…

PHPのアクセス修飾子 ~public, protected, privateを感覚で使ってませんか?~

PHP

はじめに 未経験からwebエンジニアに転職し、最初の案件でPHPを利用したサービスを担当しました。 その際、プロパティやメソッドのアクセス修飾子を全く意識せずコードを書いていたことに対してレビューで指摘が、、、 レビューいただいてた先輩には感謝しか…