movee(モビー) オノデラのブログ

(株)movee代表。週末は自社サービスを作っています。

2023-01-01から1年間の記事一覧

2023年12月ふりかえり

引き続き決済系のサービスを作っている。フロント開発にも少しだけ慣れてきたし、楽しくなってきた。もっと勉強していく。 業務で学んだこと storeとか Express.jsがとても使いやすい n回目だが、エンジニア採用には費用がかかる Intersection Observer API…

2023年11月ふりかえり

引き続き決済系のサービスを作っているがフロント開発がメインでJavaは読むぐらい。 フロント開発はあまり経験がないががんばる。Ts+Vue3 業務で学んだこと Vue3のcompositionAPI Vue3はブラウザを上手に利用してデバックする Expressのインフラ環境とても…

2023年10月ふりかえり

10月から新規案件に入った。決済系サービス。 業務で学んだこと SQLServerは日本語文字はNプレフィックスを付けないと文字化けする SQLServerはAuto IncrementをIDENTITYと表現する Vimで連番を挿入する方法を理解した。とても便利。Vim で複数行の先頭に連…

(読書ログ)達人プログラマー ―熟達に向けたあなたの旅― 第2版 1/1

・エンジニアは1年に1つは新しい言語を習得しなさい ・ツールを完璧に使いこなせるようになりなさい ・納期でぐじぐじ言わず、間に合わないのはその能力がない自分のせい ・テストコードを書くこと ・割れ窓を放置しない https://amzn.asia/d/hHMSyml この本…

(読書ログ)ふたりは同時に親になる 1/N

https://www.amazon.co.jp/gp/product/B07Q1KJT58/ref=ppx_yo_dt_b_d_asin_title_o00?ie=UTF8&psc=1 出産は大怪我のようなもの 出産が大変なのは一瞬で乗り越えれば楽になると思い込んでいたが、それはかなり違う 最低でも産後2週間は、ママが授乳以外は何…

Ticket Class Test Case

チケットクラスのテストコードのサンプル Test Code function testTotalTicketsInitialization() { $ticketSystem = new Ticket(10); assertSame($ticketSystem->getTotalTickets(), 10, "Total tickets initialization"); } function testRemainingTicketsI…

PHPerKaigi2023にオンライン参加した

PHPerKaigiにday0より参加している。 App RunnerやFargate×Laravelなど興味深い話が聞けて面白い。 あと性能測定みたいな話もday1で3つのセッションがあってどこも表示速度とかUXみたいな部分への対応が課題なのかなと思った。 何より、ああいう場で発表を…

Github ActionsでCICDを整える(sakuraサーバ)

以前、EC2とCICDでLaravelアプリのCICDを整えたが、自分が作っているsakuraのパッケージシステムもCICDを整えたかった(今まではサーバにsshしてgit pull origin master..)CICDが整ってないと積極的に改修できないので開発のネガティブファクターになる。 …

git rebaseで作業ブランチに最新masterを反映させる

複数名で開発しているとmasterが変わることがある。常に最新masterを読み込んだ上で作業ブランチで開発したい。 マスターを最新にする % git checkout master % git pull origin master rebaseする % git checkout 作業中ブランチ名 % git rebase master con…

t_wadaさんのpodcastを聞いてTDDについて思うこと

t_wadaさんのpodcastを聞いてTDDをやる意義がわかったので書いておこうと思う。 TDDは最初のうちは工数がかかる、これは間違いない。過去にテストコードを書いていたときもあるが、アサーションの書き方に詰まったりして苦戦した記憶がある。特に受託開発だ…

Gitで修正を取り消す

ローカルの変更を取り消したい時はgit checkout . ただ、これだと変更は戻せるけど新規ファイルは削除できない。 新規ファイルを取り消したい時はgit clean -df . addを取り消したい時はgit reset HEAD . pushを取り消したい時はgit revert [<commit>]を実行後にgit </commit>…

LaravelでECR、ECSでデプロイしてハマったこと

バックエンドはLaravel、フロントエンドはvue、Webサーバはnginx、のアプリケーションをECSで稼働させる業務をした。 そこでハマったことを書いておく。 結局のところnginxの設定が一番ハマった。ローカルで動くんだからECSでも同じ感じで動くだろと思ってた…

array_searchを条件式で使う場合は===、!== を使うのが良さそう

array_searchはarray_searchは、配列の中から指定した値を検索する関数です。見つかった場合はInteger型のキーを返す。配列変数[0]~[20]に値を詰めた時に[0]の場合に注意が必要。 if文は、int型の0も、boolean型のFALSEも、同じFALSEと判断するので存在判断…

三項演算子使っていく

ifelse文を短くするときに使える。elseなしのif文はちょっと書き方に悩んだ記憶。 見やすいのでとても良い。 参考:PHPで三項演算子を使いこなそう!読みやすいコードを書くコツも解説 エルビス演算子やNULL合体演算子など使っていくとよさそう。 $loop = co…

chromeの便利なショートカットキー

コードを書くスピードも大事だが、情報を素早く取得するスピードも大事だと思うのでchromeを快適に操作できることは大事。 よく使うショートカットキー 追加でタブを出す Ctrl+T タブの右移動 Ctrl+Tab アドレスバー選択 Ctrl+L

便利なiterm2コマンド

slackアプリの立ち上げ open -n /Applications/Slack.app googleブラウザのの立ち上げ open -a 'Google Chrome' 'https://google.com' いちいち打つのも面倒なのでコマンドのエイリアス設定をする vi .zshrc alias slack="open -n /Applications/Slack.app" …

RDSAurora(MySQL)を作成

上から順にすすめるだけ。 DBホストやDBユーザー名、DBパスワード名は自由に設定する。 追加設定項目の中にデータベース名を設定する箇所があるので、開いて設定する。 データベース作成は追加作成できなそう。

ed25519でSSH鍵を作成してGithubに登録

たぶんセキュリティ的にも強くて、速い鍵で鍵を作った。RSAよりも推奨度は高い。 参考:SSH は (RSA 鍵より) ED25519 鍵の方が強固で速い | らくがきちょう v3 $ssh-keygen -t ed25519 (色々聞かれるがエンター連打で良い) $ cd ~/.sshで鍵があるかを確認…

SCPコマンドでEC2にファイルアップロード/ダウンロードする

ローカルからEC2へのファイルアップロード/ダウンロードコマンドをメモしとく 年1回程度使うぐらい。 アップロード アップロードしたい場所まで移動しておく scp -i ~/.ssh/keyの場所/xxx.pem アップロードしたいファイル名 ec2-user@パブリックIP:アップロ…

Gitでcommitをきれいにまとめたいときのステップ

タイポなどコミットコメントを残したくないコミットの場合はコミットを1つにまとめたほうがコミットがきれいになる。 雑なステップ git log --oneline git rebase -i HEAD~2 消したい方をpick→ squashに変更して保存 消したいコミットメッセージを消去して保…

Dockerでexecutable file not found in $PATH: unknownエラーが出たのでその対応

OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "worker.sh": executable file not found in $PATH: unknown ERROR: Encountered errors while bringing up the project. Dockerでdocker-compose upしたとき…

LaravelアプリケーションをECSで動かす自分的ベストプラクティス

【前提条件】 ・イメージは1つにしておく。 Dockerfileの作り方を学んでおく必要がある。2つだと登録できないので。そのため、phpコンテナの中にnginxを同居させなければいけない。 ・ ローカルで動かないイメージは本番でも動かない(当たり前) nginxの設…

nginxのrequestのさばき方について

参考:nginxがリクエストをどのように処理するか 日本語訳 nginx はどのようにリクエストを処理するか nginx.conf serverの基本的な設定 listenディレクティブ内のdefault_serverパラメータを使って、どのサーバがデフォルトかを明示的に設定することができ…

kintoneのデータ取得上限について

kintoneアプリからデータを取得する場合、デフォルトだとlimit 100が設定してあるため100件しか取得できない。明示的にクエリにlimit 500を記載すれば500件まで取得できる。500件が上限のため、offsetと組み合わせて500件ずつ取得して配列変数に詰める方法が…

linuxでプロセスを確認する

linuxでプロセスを確認するときはps auxが便利。psだけだとかなり広範囲のプロセスを拾ってしまうのでauxオプションを付ける。 auxは、「端末操作の」「CPUやメモリの使用率を付与した」「現在実行中の」プロセスを確認するオプション。 ・プロセス名で絞…

ECS execでコンテナにログインして調査する

2021年頃からECSコンテナにログインできるようになったのでログイン方法をメモする。権限付与やexecute-commandをtrueにする必要があるなど、ローカルでdockerコンテナにログインするより面倒だが、まぁ便利なのでメモする。 参考: ECS ExecでFargateにログ…

linuxで検索する

一括でファイル検索するときにいつもコマンドを忘れるのでメモしておく。 hogeというテキストを今のディレクトリ配下から検索するコマンド find ./ -type f | xargs grep hoge grep -r hoge ./* /etcディレクトリ配下の「.php」で終わる名前のファイルまたは…

ECSコンテナのエラー原因確認方法

nginxとphp-fpmのコンテナがSTOPPEDになるので原因を探りたい。ただし、コンパネでは必要な情報が足りないので、もうちょっと調査してみる。 その場合の調査方法。 STOPPEDのコンテナを探すためにステータスがSTOPPEDのコンテナをリスト化する。 aws ecs lis…

ECSでLaravelを動かす。でもその前にHTML

Laravel+MySQL+nginx+php-fpmで構築したアプリケーションをECSで動かしたいのだがよくわからないので、HTMLを動かすところから始めていく。 参考にした記事:ECRリポジトリにプッシュしたイメージをECS Fargateで起動する | DevelopersIO HTMLファイルをE…

aws ecr get-loginしてpushするとEOFになる

aws ecrでloginが成功したのにimageをpushしてもEOFになる場合があったのでメモ。これは単純に違うアカウント、ユーザーとしてpushしているから。push先のアカウントが異なる場合に発生する可能性があると思われる。 aws ecr get-login-password --region ap…