3ヶ月間のブログメンタリングを終えて

今年の3月からカックさんのブログメンタリングに参加し、毎週ブログ更新を3ヶ月間続けてきました。 そして今日でメンタリング期間が終了します。今回は、ブログメンタリングを3ヶ月受けてみた感想について書いていきたいと思います。 ブログメンタリングでは、自分の書いた記事のレビューをカックさんにしてもらえたり、ブログサイトの改善、OSSへのコントリビュート方法などを教えてもらえます。 詳しい内容については以下の記事を参考にしてみてください。 カックさんがどのような方かを知りたい場合は、以下のポッドキャストを聞くといいと思います。このポッドキャストは、普通に勉強になりますし、熱い気持ちになれるのでおすすめです! もし、ブログメンタリングに応募しようと考えている方は、絶対にこのポッドキャストを聞いてから応募するのがいいと思います。 私はブログメンタリング終盤でこのポッドキャストを聞き、もっと早く聞いておけばよかったと後悔しました。

実践的なアジャイルプラクティスを学べるカイゼン・ジャーニーを読んだ

カイゼン・ジャーニーを読み終えたので感想を書きたいと思います。 カイゼン・ジャーニーはストーリー調で話が進んで行くのでとても読みやすかったです。とある企業でのチーム開発の物語で、主人公がチームでプロダクトを作成する過程で様々な困難とぶつかりながらも成長していくといったストーリーです。 本の表紙にアジャイルという言葉が出てくる通り、アジャイル開発についての本です。しかしながら本で紹介されているプラクティスはアジャイル開発でもそれ以外の開発でも使えるものが多かった印象です。紹介されているプラクティスは実践に基づいたものであるため、他の本では紹介されていないような一歩踏み込んだプラクティスが多かった気がします。本の冒頭でも紹介されているのですが、プラクティスをそのまま導入するのではなく、自分たちのチームに適応できるかを一度検討する必要があると記述されていたのも印象的でした。

[Deno] ライブラリをimportする

Denoを触ってみた際のメモです。 Denoはnpmなどのパッケージマネージャーは存在しません。 ライブラリを利用するにはライブラリのコードが存在するURLを指定してimportします。 もちろんローカルにあるファイルを相対パスでimportすることも可能です。URL指定したimportの形式は以下のようになります。 例えば、標準のlogパッケージを利用するときは以下のように書きます。 依存しているモジュールはメインの関数を実行するときに、指定されたURLからローカルにダウンロードされます。 2回目の実行時はURLにはアクセスせず、ローカルのダウンロードを利用します。

GitHubのテンプレートリポジトリ機能について

GitHubにテンプレートリポジトリという機能があるのをご存知でしょうか。 2019年の6月に発表された機能で、その名の通りテンプレート用のリポジトリを作成できる機能です。 テンプレートリポジトリを選択してリポジトリを作成すると、テンプレートリポジトリ内のファイルがコピーされた状態でリポジトリが作成されます。 リポジトリのForkと少し似ていますが、以下の点でForkとは違います。 コミット履歴が引き継がれない 自分で作ったテンプレートリポジトリを自分で利用することができる

ブログメトリクスの可視化Webページの技術要素

現在、ブログメンタリングを受けていて、毎週1記事を目標にブログを投稿しています。 ブログメンタリングについては以下の記事を参照してみてください。 メンタリング期間中は毎週メトリクスを確認するように言われていますが、メンタリング開始から数週間たった後に「Web上でメトリクスを可視化できたらいいかも」と思い立ち、メトリクス可視化Webページを作りました。 Webページの画像は以下です。 今もこのWebページを運用していますが、URL一つでブログのメトリクスを参照できるのは結構いいです。 今回はこのWebページの技術要素について書いていきたいと思います。

[ESLint] eslint-plugin-importを利用して自動でimportをアルファベット順にソートする

以前までTypeScriptの開発ではTSLintを使っていましたが、TSLintの開発が縮小されていくということもあり、最近はESLintを利用しています。 TSLintにはimportがアルファベット順に並んでいないと警告を出してくれるorderd-importsというルールがあります。autofixもサポートされており、VSCodeのTSLint拡張を使うと保存時に自動でアルファベット順にソートしてくれていました。 ただ、ESLintに移行するとこれに代替する機能が標準ではありませんでした。

TypeScript 3.7から利用できるOptional Chainingについて

半年ほと前にTypeScript 3.7がリリースされ、Optional Chainingが利用できるようになりました。 ここ最近で仕事でもよく利用しており、とても便利なので紹介したいと思います。nullチェック、undefinedチェック TypeScriptのコードを書いていると、nullチェック、undefinedチェックをするコードはたびたび頻出します。 例えば以下のようなFooという型があったとします。 以下のFooという型はオプショナルなbarというプロパティがあり、barの中にはオプショナルなbazというプロパティがあるとします。

NODE_ENV=productionにしてyarn install(npm install)するとdevDependenciesがインストールされない

この仕様を忘れていて、幾度となく時間を浪費してきたので備忘録としてブログにしておきます。 NODE_ENV=productionにしてyarn install(npm install)するとdevDependenciesがインストールされません。 NDDE_ENVを利用してAPIのリクエスト先を変えたり、DBのアクセス先を変えたりすることは多いと思います。 例えば、NODE_ENV=testの時はtest環境のAPIにアクセスし、NODE_ENV=productionの時はproductionのAPIにアクセスするというような設定です。

TerraformでAKSにKubernetesクラスタを構築する

前回はTerraformでAzureリソースを作成するための準備の記事を書きましたが、今回は実際にTerraformでAzureリソースを作成してみました。 TerraformでAzureリソースを作成するときの前準備(Service PrincipalとStorage Account) 今回は以下のチュートリアルをやってみました。チュートリアル:Terraform を使用して Azure Kubernetes Service で Kubernetes クラスターを作成する Terraformを使ってAzureのKubernetesサービスであるAzure Kubernetes Service(AKS)のリソースを作成します。 初期設定 まずはAzureリソースを作成するためにAzureプロバイダーの設定です。

TerraformでAzureリソースを作成するときの前準備(Service PrincipalとStorage Account)

TerraformでAzureリソースを作成するチュートリアルをやっていて以外と準備に時間がかかったのでメモしていきます。 「チュートリアルやってみた」の記事はまた、次回書きます。サービスプリンシパルを作る TerraformからAzureリソースを作成する際の認証についてです。いくつか認証の方法はありますが、今回はサービスプリンシパルで認証する方法について書きます。