今まで業務外で学習したことのサマリ

2022-05-11

はじめに

プログラムを書き始めて、3年以上経ちました。そのうち自分の記憶のある社会人以降の学習記録を棚卸ししてみます。

あと自分の技術の情報収集の手段は以下を利用してます。上から順に頻度が高いです。しっかり理解するというよりは、キーワードをチェックするという感じです。

  • Twitter
  • はてブのテクノロジーカテゴリ
  • Feedlyで各社テックブログの更新を追っておく
  • QiitaやZennのトップページ
  • Tech系のYoutubeや音声コンテンツ

Goの学習

期間

2022年前半頃

モチベーション

  • PHPの型機能が進化していく中で、静的型付けへの興味が湧いた
  • コンパイル型とポインタの概念がある点で、今まで触れてきた言語(PHP,Ruby,JavaScriptなど)と違うため、勉強になりそう
  • 友人がGoを使ってるので話し合わせたい

概要

A Tour of Goにそって学習を進めました。その後、CRUD機能を実装してみました。EchoGORMを使用してます。

学習の記録は以下にまとめています。

媒体 リンク
A Tour of Goのメモ https://github.com/shira79/GoStudy
CRUD実装 https://github.com/shira79/GoBlog
Zenn https://zenn.dev/shlia/scraps/32a5c61a8cafbd

セキュリティ関連

期間

  • 2020年後半~2021年前半

モチベーション

  • 当時やっていたプロジェクトで貢献できそうだったから
  • セキュリティそのものに興味をもったため

概要

PHPにおけるセキュリティの知見をいくつかZennに記録しています。特にデシリアライゼーション周りの脆弱性は、日本語情報が少なく、比較的価値のある内容なのではないかと自己評価しています。

媒体 リンク
Zenn PHPで安全でないデシリアライゼーションを学ぼう
Zenn PHPerが知っておきたいPhar Deserializationという脆弱性の話
Zenn いにしえのPHPを召喚してHTTPヘッダインジェクションを再現する
Zenn オープンリダイレクトについて

安全なウェブサイトの作り方を読んだ上で、OWASP Top10yamory Blogなどのサイトに目を通しました。

WordPress 5.7.2 セキュリティリリースをきっかけに安全でないデシリアライゼーションを知り、実際に業務コードに取り入れることができました。他にも、セキュリティのキャッチアップを行い自社のプロダクトに還元させることができました。

また、ダークウェブやTorについて調べたりしました。

サーバーレスでTwitter API操作

期間

2021年の前半

モチベーション

  • 特定のTwitterアカウントのフォロワー数を記録したかった
  • Serverless Frameworkで構成管理してみたかった
    • 料金を抑えたいので、Lambda + DynamoDB + API Gatewayを使う
    • サーバーレス環境を簡単に構築できる(特にLambdaのLayersとAPI Gatewayの設定を楽したい)
    • インフラ設定をコードに落としこむことで、作業間隔が空いた時にインフラの設定を把握し直す面倒さを解消したい

概要

媒体 リンク
URL https://twitracker.shira79.dev
GitHub https://github.com/shira79/serverless-twitter
Zenn Twitterのフォロワー数の推移を記録&取得するAPIをサーバーレスで作った

Serverless Framework自体が初めてだったのですが、それ以上にDynamoDBのテーブル設計に苦戦した記憶が強いです。また、Lambdaのランタイムには使ったことのないNode.jsを使うというチャレンジもできました。

完全に自分用だったこともあり、UI/UXはあまりこだわれなかったのが正直なところです。僕以外だと、Zennからの流入で40件ちょっとのデータが追加されています。

Nuxt.jsでのブログ作成

期間

2020年前半から中盤

モチベーション

  • 個人ブログを自分で作ってみたかった
  • Jamstackに興味を持った
    • 業務でWordPressを扱う中で、静的なHTMLを配置するという用途だけなら、Jamstackのほうがコスト面、パフォーマンス面、セキュリティ面で優れていると考えた
  • フロントエンドを学習したかった
    • 業務でフロントエンドの経験がなかった
    • 個人開発でVue.jsを使っていたので

概要

このサイトのことです。

最初はVue.js + Contentfulで作成していたが、SSGのためにNuxt.jsに書き換えました。
ContentfulをCMS、OGP画像にCloudinary、ホスティングにNetlifyを使用しています。

普段はバックエンドが中心なので、フロントエンドの知見がなかったが、継続的に学習してそれなりに満足のいくものが作れたと思っています。

媒体 リンク
URL https://shira79.dev/
GitHub https://github.com/shira79/MyBlog
ブログ このブログをNuxtJSのSSGでリプレイス
Zenn フロントエンド初心者がVueで作ったブログをNuxtのSSGで作り直した時につまずいたこと

Laravel関連

期間

2019年の前半から2020年前半ごろ(学生インターン時代)

モチベーション

  • 業務に早くキャッチアップしたかったため
  • 大学生だったため、没頭する時間があったため

概要

何個もリポジトリを立ち上げて、ひたすらコードを書いていました。今、見返すともっと上手くかけるなと思いますが、Laravelに慣れていた分素早く業務に馴染むことができました。
特にカレンダーベースの筋トレ管理アプリは、今でも自分が使っており、気に入っています。