はじめに
エンジニア歴3年目のAKです。
先月に引き続き、今月に個人学習でやっていたことを記録していきます。
先月の記事です↓
学習18か月目にやったこと
1.DB設計(Dynamodb)
仕事で初めてDBの設計を行う機会がありました。
私のDB経歴(?)は、PostgreSQLでちょろっとCRUDを書いたくらいです。
しかもDynamodbとなると、RDBとは全然考え方が違うので、戸惑いばかりでした。
本記事ではあくまでも個人記録として、参考になった考え方を載せておきます。
・検索条件に制約があるDynamodbは、設計段階から検索要件を洗い出すことが重要
AWS Ambassadorを受賞されている方の記事です。
「最低限これだけ押さえておけば対応できる」ケースをわかりやすく説明してくれています。
検索は同時 2 項目にしかできないという制約の中で、1 項目の中に複数データを突っ込むテクニックと、検索可能な項目をすげ替える 2 種類のインデックスをフル活用して、データの持たせ方を工夫して要件に立ち向かってもらえたらと思います。
・DynamoDBのベストプラクティスを知る
AWSの公式サイトにまとめられていることを後から知りました。
各記事そこまで分量もないので、気軽に読めました。
「可能な場合Scanは避ける」といった一般原則から「大きな属性値はS3に格納する」といった別サービスとの活用事例まで、ひとまずこちらを読んでおけば基礎は抑えられそうです。
また、勉強会でDB設計が得意な方々とお話ししていて、「ベストプラクティスはたくさんあるのでアンチパターンを意識するといい」とご教授をいただきました。
確かに最初のうちは「やってはならないこと」を意識した方がシンプルかもしれないですね。
2.英語LT会の運営にジョイン
過去に何度か参加していたLT回ですが、今回は運営メンバーとしてオープニングを務めました。
海外志向の高いメンバーが多いので、交流していると自分の視野の狭さや、無意識に自分で自分の可能性に制限をかけてしまっていることを痛感します。「できる・できない」という判断軸も大切ですが、自分にとっての「やりたい・やりたくない」にもしっかり目を向けていきたいですね。英語も然り、話せないからといって尻込みする必要はないと思います。
おわりに
何か一つの技術に対してじっくり向き合いたいと思っても、時間的な制約や業務との折り合いでなかなか難しかったりします。なので、せめて調べ物をするときは「知識そのもの」をスキャンするのではなく、「その技術に対する考え方・向き合い方」みたいなものを意識するようになりました。
個人の体感ですが、後者を意識するとより体系的に知識を吸収しやすくなった気がします。