マスタによくある適用開始日と終了日の命名

TL;DR

RDB でのマスタ系によくある「適用開始日」「適用終了日」の命名ってどんなのがいいだろうかって考えた。

  • activateddeactivated
  • enableddisabled

あたりがよさそう。

created modified みたいなカラム名を使うようなら特に。

その他の考えたやつ

  • apply start dateapply_end_date
    • どこかで見たことある記憶
    • 直訳感
  • effective date とか validity date
    • 有効期限、って感じ
    • 悪くはないけど、開始日の方をどう表現するか悩ましい
      • effective start date
  • expire date
    • 単語的にはよく目にするけど、これも開始の方が難しい
    • inspire date なんて言い回しはないよね多分

他にいいアイディアがあったら教えて下さい。

「現場で使える Ruby on Rails 5速習実践ガイド」を読んだ

タイトルの通り、非常に実践的な本。

入門的な内容も多いが、他の言語やフレームワークをやってきた人が取っ掛かりにするのも良さそう。

後半には Rails に留まらず、チーム開発のやりかたなどにも言及している。
さすがに自分は流し読みだったけど、必要な人には役立つと思う。

CakePHP3 のテストで Fixture を bake する #cakephp

TL;DR

Fixture を bake する際のテンプレ

bin/cake bake fixture \
  --records \
  --schema ${テーブル名} \
  --count ${レコード数} \
  --conditions "${WHERE句に書くような条件}"

--records

( test ではなく) default のデータベースを元にテスト用レコードを Fixture に自動生成してくれる。

--connection を合わせて使えば、 default 以外のデータベースを生成元にもできる

--schema

生成元のテーブル名を指定する。

--count

生成するレコードの数を指定する。

デフォルト値が 1 なので、複数レコードを生成したい時は指定する。

--conditions

生成元のレコードを絞り込める。

例えば --conditions "sex = 'male' AND age > 20" みたいなことができる。

id in (SELECT id FROM....) のようにサブクエリを活用すれば、関連レコードでの絞り込みも可能。

補足

詳しくは bin/cake bake fixture --help する。

参考

kojirooooocks.hatenablog.com

「実装パターン」を読んだ

実装パターン

実装パターン

  • 作者:ケント・ベック,Kent Beck
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2008/12/22
  • メディア: 単行本(ソフトカバー)

いつだったか前職の Slack で話題にあがっていて、目次を見るだけで名著の雰囲気が出ているし、ケント・ベックだしということで手に取った本。

ピアソンの技術書なので、中古で購入したのだが中々いいお値段だった(しかしその価値はあったと思う)。

タイトルの通り、かなり具体的なプログラムを書くうえでのプラクティスとか作法みたいなものが多く紹介されている。

ただ自分はそれ以上に、プログラミングへのメッセージとか心構えみたいなものを感じた。

プログラミングは結局のところ、コミュニケーションなのだと思う。

未来、それもそう遠くない未来に、自分のプログラミングに手を入れる人への手紙みたいなものなのだ。

それは隣の同僚かもしれないし、まだ見知らぬ新しいメンバーかもしれないし、明日の自分自身かもしれない。

「可読性を大事に」みたいなことはよく言われるけど、言い方を変えれば「次にプログラムを触る人へメッセージが伝わるように」っていうことなんだろうと思う。

そんなことを感じさせてくれた本でした。

刺さる文がてんこ盛りだったんだけど、まえがきがエモすぎて突き刺さったので引用しておく。

たとえ最新の注意を払ったコード作成から長期的な経済効果が得られないのだとしても, それでも私はできるだけよいコードを書こうと心がけるだろう. 70年の人生は, 20億秒を少し超えるにすぎない. 誇りの持てない仕事で無駄にする時間はない.

「実装パターン」読書メモ · GitHub

CakePHP3 で Migration を途中からやる #cakephp

概要

CakePHP3 で DB の構成管理を行っているが、何らかの事情でプレーンな環境で migrate できない場合の現実的な回避策としてのメモ。

プロダクションでは利用されているが、十分に開発環境で運用されていない場合などを想定。

現時点での dump を取得する

mysqldump で現在の DB を持ってくる。

--no-data で、定義のみ取得するようにしている。

mysqldump ${DATABASE} -p \
  --result-file=dump.sql \
  --column-statistics=0 \
  --no-data \
  --user=${DB_USER} \
  --host=${DB_HOST} \
  --port=${DB_PORT}

dump を元に新しい DB を構築する

mysql -h ${DB_HOST} -u ${DB_USER} -p ${DATABASE} < dump.sql

mark_migrated する。

mark_migrated コマンドは、指定したバージョンまで Migrate したことにする ことができる。

なので、 migrate 現時点の最新までは実行済にしてしまう。

bin/cake migrations mark_migrated --target=XXXXX

--target で特定のバージョンを指定できる

ちなみに Migration を全く利用していなくて途中から始める場合には migration_snapshot を使うとよさそう。

移行は migrate する

これで migration は騙せるようになったので、移行のバージョンについては通常通りに運用していけばよい。

bin/cake migrations migrate

補足

Cake2 の document では mark_migrated コマンドについて記載があるのに、 Cake3 にはない。

phinx プラグインの doc にもない。

bin/cake migrations help mark_migrated すれば出てくるので、特に deprecated というようなことはなさそうだけど、なんでなんだろ?

教えてもらった。

下記を参照すればよさそう。

https://book.cakephp.org/migrations/2/en/index.html

参考

AWS CLI の default profile が効かない #AWS

問題

aws cli で default profile が効かない現象に遭遇した。

--profile default でやると動く。

解決策

aws configure list してみる。

$ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************XXXX              env
secret_key     ****************XXXX              env
    region           ap-northeast-1      config-file    ~/.aws/config

access_keysecret_key の Type が env になっている。

どうやら、どこかで設定した環境変数が残っていたみたいだ。

環境変数unset したら、期待挙動になった。

$ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************XXXX shared-credentials-file
secret_key     ****************XXXX shared-credentials-file
    region           ap-northeast-1      config-file    ~/.aws/config

参考

docs.aws.amazon.com

(2020-02-07 追記: 転職活動終わりました)【求職エントリ】転職活動してます

(2020-02-07 追記) 転職活動終わりました

今回の転職活動は終了しました。

su-kun1899.hatenablog.com

転職活動しています

現在働いている会社を2019年12月末で退職することになりました。

年明けから無職なので、次の会社を探しています。

1月までは就活しようと思っているので、働き始めるのは2月からを想定しています。
(それまでに決まるといいな)

背景

転職するにあたって一番大変なことって、そもそも受けたいと思う会社を探すことだったりしませんか?

自分の状況を明らかにすることで、(できれば自分のスキルや人となりをそれなりに知ってる人から)おすすめの会社とかエージェントとか、その他お役立ち情報とか教えていただけたら嬉しいなと思っています。

職歴など

Web のバックエンドエンジニアを中心にやってきました。 歴は11年くらいです。

言語は Java と Kotlin , php が主ですが、最近は Go にも興味があります。

チームビルディングや開発プロセスにも関心が高い方です(Scrum好き)。

プロジェクトマネージメント的なこともそこそこできると思います。

LinkedIn や Wantedly を最新化しておきましたので詳細はそちらをご参照ください(書いてる内容はほとんど同じ)。*1

より詳しい情報が必要な場合、個別にご連絡いただければ、可能な限り回答します。

www.wantedly.com

探している会社

重要視してるのは「何を課題として、何を解決策としてやっている(作っている)か」「どんな価値観・文化か」「どんな人がいるか」あたりです。

ただこのへんは言語化が難しいので、実際に会話してからなのかなと思ってます。

なのでそんなに絞らずに探していますが、外せない条件は下記あたりです。

  • 事業会社
  • 正社員
  • 基本的には都内
  • ある程度柔軟な働き方ができる
    • フレックスや裁量労働
    • 状況に応じたリモートワーク
    • etc
  • 開発環境
    • 十分なスペックのPC
    • etc
  • スーツは無理

連絡先

Twitter の DM あたりでご連絡ください。

twitter.com

*1:僕のことを直接知ってる方は「盛りすぎでは」とか「こういうことも書くといいよ」みたいなフィードバックをこっそり下さい。レビュー歓迎