ねうねう技術らくがき日記

技術的なメモとか何か

平社員エンジニアとしての処世術

最近後輩社員が上司に負け戦を仕掛け、言い争っている姿をよく見かける。しかも質の悪いことに、後輩くんは明らかな劣勢時にも全く退かない。Apexなら絶対同じチームになりたくないタイプ。 一昔前なら自分も同じようなことをしてたかもしれないが、20後半に…

ソフトウェア開発における依存とは?

「依存」という概念は、機能追加や自動テストのしやすいコードを書く上で非常に重要である。 しかし、その辺りを一切考えずにコーディングするプログラマーは非常に多い(前職&現職調べで8割程度)。 そこで、経験の浅いプログラマーでも「依存」を理解でき…

ピュアPHPにLaravelを導入する話

タイトル詐欺です。Laravel導入は技術的にも政治的にも厳しいので、Laravelを構成しているモジュールの一つ「illuminate\validation」を導入してみるお話。 成果物 github.com 導入前の問題点 今のプロジェクトでは、管理画面側のバリデーション処理に登録画…

issetとNull合体演算子の違い

PHP

isset($value) ? $value : 'default'と$value ?? 'default'って実は挙動に差があるんじゃなかろうか?と思って調べたけどそんなことは無かったって話。 調査内容 業務上で配列操作系の関数について調べる機会があり、array_key_existsとissetについて色々サ…

PHPフロントテスト用に時間操作

PHP

GETパラメータとCookieを使って、開発環境でだけ現在日時をごまかせるライブラリを作ってみた。 こういうのがあれば、フロントのデザインとかシステムテストが多少楽になるかなって。 成果物 github.com 弊社システムの一部がまだPHP5.4xとかだったはずなの…

転職後初出社

Unityを触る根気が続かず長らく放置していましたが、本日初出社だったので一応その記録。ちなみに更新サボってた期間はほぼほぼ食事とゲームと睡眠だけ繰り返す日々を送っていました。一応蟻本*1を少しずつ読んだりもしていたのですが、記事にできるほどの知…

日記的な何か

技術的なことで書ける話が無いので、とりあえず直近であったことを書こうかなーと思います。前回更新から1週間ほど空いてしまい、このままだと自然消滅してしまいそうだったので。 ここ最近ずーっとサボって居たわけでは無いのです*1。内定が出る数日前からU…

就職先、決まりました!

前職と同じく、Web系企業のサーバサイドエンジニア。 こんなこと言ったら怒られるかもしれないけど、率直に言うと事業内容にはさっぱり興味がない。 じゃあ何でかと言えば「そこしかなかったから」に尽きる。 事業内容的に気になっていたところは軒並み落ち…

docker-composeでRuby on Rails環境を一から作る

Rubyを勉強する必要が出てきそうだったので、Dockerの勉強も兼ねてRuby on Rails+Nginx環境を作ってみた。 成果物 github.com 作業内容 以下は流したコマンド群。詳しくは上記リポジトリを参照のこと。 mkdir -p docker/{server,app,db} touch docker-compos…

docker-composeでLAMP環境を一から作る その2

基本的には前回と同じサイトを参考に進めた。 成果物 github.com 作業内容(前回の続き) いつものコマンドでLaravelプロジェクトを作成 docker-compose.ymlに、MySQLに関する記述を追記 docker/db/に必要ファイルを配置 コンテナ群をビルド&起動 LaravelのD…

docker-composeでLAMP環境を一から作る その1

前回は特定のサイトをほぼコピペしてLaravel環境を作成した。 今回は自身の理解を深めるために、一部こだわりを持って作り直してみることにした。 ちなみに、環境構築したいだけならLaradockなるものがあるらしいのでそっち使うと良いと思う。 ディレクトリ…

GWでやる気削がれた

土日サボってしまったので今日こそは何かしようと思ったのだが、何だかやる気が起きない。 元から有給消化中なので、休みに入ったからって訳ではないと思うのだが……。 一応docker-composeについて少しずつ調べてはみてるけど、実践はいつになるのやら……。

docker-composeでLaravel+Apache環境を構築してみた

実行手順 基本的には参考サイトの通りにコマンドを実行した。ただ、PHPのバージョンだけちょっと変えてみた。 Docker Quickstart Terminalを起動。 cd ~/Documents/docker_work/ docker run --rm -v $(pwd):/app composer create-project --prefer-dist lara…

Windows10でDockerを試してみた

Dockerの存在自体は以前から知っていた。しかし、個人的に有難みが薄かったり、自分のPC(Windows10 Home)だと導入できないみたいな感じだったので今までちゃんと調べていなかった*1。 しかし、金銭面や環境構築だったりを考えると、開発中はローカル環境で…

LaravelでなんちゃってECサイトを作る その9(最終回)

インストール手順の確認 README.mdに書いてあるコマンドで最低限動作できるか念のため検証した。 とりあえずLightsailインスタンスを別で立てて以下を実行した。ちなみに、こちらにはLightsail環境でのみ必要なコマンドを含めているが、重要な部分は抜けてい…

LaravelでなんちゃってECサイトを作る その8

パスワードリセット・メールアドレス確認機能 認証機能をインストールすると、デフォルトでパスワードリセットページ等も一緒に作られるのだが、 初期状態だとFROMアドレスがセットされていなかったりで動作しない。 .envにGmailアドレスセットすればいける…

LaravelでなんちゃってECサイトを作る その7

商品の閲覧・検索機能を作った。 画像データの事前準備 開発環境のDBデータは消してしまってもマイグレーションでどうとでもなるが、画像データは毎回置き直さなくてはならない。 商品の閲覧画面を実装するにあたり、毎回そんなことをしたくはないので自動で…

LaravelでなんちゃってECサイトを作る その6

画像の編集機能 商品登録時とは異なり、商品データ更新時に画像選択を強制したくなかったため、色々頑張った。また、使い勝手の面を考えて、画像選択時にプレビューを出す機能を作った。 画像アップロード時のプレビュー機能 せっかく作るなら編集画面だけで…

LaravelでなんちゃってECサイトを作る その5

必須カラムの実装 昨日実装できていなかった金額カラムをビュー側に実装した。 商品登録の部分を作成していて気付いたのだが、バリデーションに引っかかった場合に入力内容が消えてしまうようだった(普通に考えて当たり前なのだが)。これを解消するには、…

LaravelでなんちゃってECサイトを作る その4

ECといえば商品が無くては始まらない。ということで商品周りのCRUDを作る。 基本は以下のサイトを参考にして作成した。 Laravel 7 CRUD Example | Laravel 7 Tutorial For Beginners そのうち、アレンジを加えた部分を重点的に以下に記す。 商品モデルの作成…

LaravelでなんちゃってECサイトを作る その3

管理者ログイン機能の実装リベンジ Laravel6でマルチ認証を実装する(UserとAdminの階層を分ける) - Qiita を参考にリベンジしてみた。 シーディング 作ってなかったので一応作成。 php artisan make:seeder AdminUsersTableSeeder vim database/seeds/Admi…

LaravelでなんちゃってECサイトを作る その2

昨夜の続き。 管理者ログイン機能の実装 基本的には前回と同じページを参考に作成していく。 前回: LaravelでなんちゃってECサイトを作る その1 - ねうねう技術らくがき日記 Controllerの作成 下記3ファイルをそこそこ編集。それ以外はnamespaceだけ変えて…

LaravelでなんちゃってECサイトを作る その1

詳細は省くが今作ろうとしているのはECサイトっぽいものである。 ちなみに、一般ユーザ用と管理者用でページが分かれている想定である。 設計 正直、Laravelの使用を知らな過ぎて詳細な設計は難しいのだが、とりあえず必要そうなページのパスだけイメージで…

LaravelにBootstrapVueを導入してみた

かっこいいという理由だけでフロントにはReactを使う予定でしたが、他のことと同時に勉強するには重そうだなと感じました。そのため、業務で少しだけでも使ったことのあるVueに切り替えることにしました。 あと全然関係ないけど、はてなブログにシンタックス…

会社、辞めます!

理由としては、 ゲーム業界とか面白そうだしそちらに転職してみたい。 現職が新型コロナウイルスの影響をもろに受ける業界なので、将来性に不安が出てきた*1。 いつ死ぬかわからないし、今のうちに長期休暇取って犬や家族と一緒に過ごしておきたい。 今なら…

Laravelのデータベースシーディング

Laravelにはデータベースの初期値(レコード)を登録する機能(シーティング)がある。これを、昨日インストールしたログイン機能を使って試してみた。 正直全然進んでないけど、FF7やりたいからしょうがないよね。 シーティング まず以下を実行し、シーディ…

Amazon Lightsail環境の整備(システム時刻とvimrc)

何かしようとするたびに色々設定漏れとか発覚して嫌になっちゃう……。 時刻設定 Laravel自体はタイムゾーンをTokyoにしといたけど、LinuxとMySQLはUTCのままになってたのでちょちょっと修正。 # タイムゾーン変更 sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo…

Laravel環境でnpm run実行時にエラーが出る問題の解決

ここ数日悩まされたLaravelとnpmのよくわからない問題がやっと解決しました。 原因としてはaptでインストールしたnpmとnodeが古かったこと*1。もっと言うと、そのインストール元となるaptのリポジトリが古かったことが原因でした*2。 問題についてのおさらい…

git cloneを使ってLaravel環境を再構築した

壊してしまったLaravel環境を再構築し直しました。 環境再構築 Amazon Lightsailのインスタンスを削除し、再度同設定で作成した。 その後以下の手順で細かい設定を行い、ブラウザからLaravel環境へアクセスできるようになるところまで直した。 # スワップ作…

Laravelのログイン機能を実装しようとして環境をぶっ壊した

いつもの続きでLaravel環境でWebアプリを作っていこうとして、やらかしてしまったお話。 環境整備 Basic認証設定 まだ公開できるサービスではなく、フルオープンにしておくのはちょっと恥ずかしいため、一応認証設定をかけておこうと考えた。 セキュリティ目…