<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[rss latest ja]]></title><description><![CDATA[フリーランスエンジニアのブログです。フリーランス、プログラミング、旅行について「ブログ書け、コード書け」というテーマでやらせてもらってます。]]></description><link>https://ver-1-0.net/blog</link><generator>GatsbyJS</generator><lastBuildDate>Tue, 09 Jun 2026 06:37:43 GMT</lastBuildDate><item><title><![CDATA[2024 年版 開発時のエディタ周りの環境設定(Neovim, tmuxなど)まとめ]]></title><description><![CDATA[最近コーディングの配信を行ったりしているのですが、結構 Vim に関してコメントを頂くことが多く、ちょっと今自分の状況を振り返ってみると 設定したのが昔すぎてうまく説明できない Neovim を使っているが、Vim Script でそのまま設定してたので、lua…]]></description><link>https://ver-1-0.net/blog/2024/10/21/devenv-2024</link><guid isPermaLink="false">https://ver-1-0.net/blog/2024/10/21/devenv-2024</guid><pubDate>Mon, 21 Oct 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;最近コーディングの配信を行ったりしているのですが、結構 Vim に関してコメントを頂くことが多く、ちょっと今自分の状況を振り返ってみると&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;設定したのが昔すぎてうまく説明できない&lt;/li&gt;
&lt;li&gt;Neovim を使っているが、Vim Script でそのまま設定してたので、lua で設定したい&lt;/li&gt;
&lt;li&gt;そろそろ古くなっているプラグインや知らないけど便利なプラグインがあるかもしれない&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;などなどがあったのでこの度 Neovim の設定を lua に移行しつつ使用プラグインの見直しを行いました。
プラスで自分の環境周りも整理したかったので備忘がてら記事にまとめてみました。&lt;/p&gt;
&lt;h2 id=&quot;エディタ周りの環境&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E5%91%A8%E3%82%8A%E3%81%AE%E7%92%B0%E5%A2%83&quot; aria-label=&quot;エディタ周りの環境 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;エディタ周りの環境&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Mac&lt;/li&gt;
&lt;li&gt;モニタ2台(Display Menu)&lt;/li&gt;
&lt;li&gt;tmux&lt;/li&gt;
&lt;li&gt;Alacritty&lt;/li&gt;
&lt;li&gt;Neovim&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;エディタ周りの環境は上記のようになっています。&lt;/p&gt;
&lt;h3 id=&quot;PC周り&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#PC%E5%91%A8%E3%82%8A&quot; aria-label=&quot;PC周り permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;PC周り&lt;/h3&gt;
&lt;p&gt;開発には長年 Mac を使用していて、 モニタ2台で開発していることが多いです。モニタの解像度変更ようには&lt;a href=&quot;https://apps.apple.com/ca/app/display-menu/id549083868?mt=12&quot;&gt;Display Menu&lt;/a&gt; というアプリを使っています。
(大きい方のモニタでコードを書いて、小さい方のモニタでブラウザを開いていることが多いです)&lt;/p&gt;
&lt;h3 id=&quot;ターミナルアプリケーション&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3&quot; aria-label=&quot;ターミナルアプリケーション permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;ターミナルアプリケーション&lt;/h3&gt;
&lt;p&gt;またターミナルアプリケーションは &lt;a href=&quot;https://alacritty.org/&quot;&gt;Alacritty&lt;/a&gt; を使用しています。ターミナルは可能な限りサクサク動いて欲しいので早いという評判の Alacritty を使っています。
今の所そんなに不満はないのですが、&lt;a href=&quot;https://sw.kovidgoyal.net/kitty/&quot;&gt;kitty&lt;/a&gt; が良いというのもちょこちょこ聞くのでいずれ試してみたいところです。ターミナルアプリは真剣に比較していないので暫定的なものです。&lt;/p&gt;
&lt;h2 id=&quot;Tmux-周りの設定や使い方&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#Tmux-%E5%91%A8%E3%82%8A%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%82%84%E4%BD%BF%E3%81%84%E6%96%B9&quot; aria-label=&quot;Tmux 周りの設定や使い方 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Tmux 周りの設定や使い方&lt;/h2&gt;
&lt;p&gt;tmux はターミナルの分割を行うために使用しています。
tmux を使いこなしているとは言い難いのですが、自分が一番重宝している機能はこれかなという感じです。&lt;/p&gt;
&lt;p&gt;tmux を知ったのは結構遅かったと思うのですが、&lt;a href=&quot;https://youtu.be/sSOfr2MtRU8?si=ODpWkFP4qYoo8VMY&amp;#x26;t=269&quot;&gt;Inkdrop 作者の Takuya さんの動画&lt;/a&gt;がきっかけでtmuxを使い始めて動画の説明と同じようにtmuxを使っています。
コマンドベースで最初に開く window の枚数や配置・サイズを指定できるので一瞬で自分の好みのレイアウトを立ち上げられるのが便利です。&lt;/p&gt;
&lt;h3 id=&quot;作業時のウィンドウのレイアウト&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E4%BD%9C%E6%A5%AD%E6%99%82%E3%81%AE%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%81%AE%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88&quot; aria-label=&quot;作業時のウィンドウのレイアウト permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;作業時のウィンドウのレイアウト&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://statics.ver-1-0.xyz/uploads/2024/10/20241021_devenv-2024/devscreen.png&quot; alt=&quot;実際の作業時のウィンドウスクリーンショット&quot;&gt;&lt;/p&gt;
&lt;p&gt;自分は多くの場合、この画像のような上1枚、下4枚のレイアウトで作業しています。下4枚はターミナル用の window で、上が Neovim 用 Window です。
下4枚では左2枚が大体 フロントとバック用のサーバをたちあげてログを流す画面になっています。右2枚はスペアで簡単なコマンドを試したり別ディレクトリのものを触りたくなったりした時に使います。&lt;/p&gt;
&lt;p&gt;多くの場合はエディタ開きっぱなしなのですが、たまにPCを立ち上げ直したあとなどは用意したスクリプトを叩いて必ずこのウィンドウの状況を再現するようにしています。
(tmux のセッションを永続化することも可能なのようなのでそれでやるのも良いと思います。)&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token shebang important&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;token builtin class-name&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-e&lt;/span&gt;

tmux split-window &lt;span class=&quot;token parameter variable&quot;&gt;-v&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-l&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;30&lt;/span&gt;%
tmux split-window &lt;span class=&quot;token parameter variable&quot;&gt;-h&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-l&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;50&lt;/span&gt;%
tmux split-window &lt;span class=&quot;token parameter variable&quot;&gt;-h&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-l&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;50&lt;/span&gt;%
tmux select-pane &lt;span class=&quot;token parameter variable&quot;&gt;-L&lt;/span&gt;
tmux select-pane &lt;span class=&quot;token parameter variable&quot;&gt;-L&lt;/span&gt;
tmux split-window &lt;span class=&quot;token parameter variable&quot;&gt;-h&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-l&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;50&lt;/span&gt;%
tmux select-pane &lt;span class=&quot;token parameter variable&quot;&gt;-U&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;tmux のセッションを開いた後にこれを打てばウィンドウ再現できるかと思います。&lt;/p&gt;
&lt;h3 id=&quot;キーバインド&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%AD%E3%83%BC%E3%83%90%E3%82%A4%E3%83%B3%E3%83%89&quot; aria-label=&quot;キーバインド permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;キーバインド&lt;/h3&gt;
&lt;p&gt;後にも説明しますが、ペーンの移動は Vim の中での移動とtmux 内での移動の両方があるのでそれぞれキーバインドが衝突しないように設定を行っています。
tmux.conf の中の設定でいうと下記のように設定しています。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token builtin class-name&quot;&gt;bind&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-n&lt;/span&gt; C-h select-pane &lt;span class=&quot;token parameter variable&quot;&gt;-L&lt;/span&gt;
&lt;span class=&quot;token builtin class-name&quot;&gt;bind&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-n&lt;/span&gt; C-j select-pane &lt;span class=&quot;token parameter variable&quot;&gt;-D&lt;/span&gt;
&lt;span class=&quot;token builtin class-name&quot;&gt;bind&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-n&lt;/span&gt; C-k select-pane &lt;span class=&quot;token parameter variable&quot;&gt;-U&lt;/span&gt;
&lt;span class=&quot;token builtin class-name&quot;&gt;bind&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-n&lt;/span&gt; C-l select-pane &lt;span class=&quot;token parameter variable&quot;&gt;-R&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;キーバインド&lt;/th&gt;
&lt;th&gt;操作&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ctrl + h&lt;/td&gt;
&lt;td&gt;左のPaneに移動&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ctrl + j&lt;/td&gt;
&lt;td&gt;下のPaneに移動&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ctrl + k&lt;/td&gt;
&lt;td&gt;上のPaneに移動&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ctrl + l&lt;/td&gt;
&lt;td&gt;右のPaneに移動&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Vim 内での移動は Space + hjkl で行うので、ターミナル内での移動は Ctrl + hjkl で行うようにしています。&lt;/p&gt;
&lt;h2 id=&quot;Neovim-の基本設定&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#Neovim-%E3%81%AE%E5%9F%BA%E6%9C%AC%E8%A8%AD%E5%AE%9A&quot; aria-label=&quot;Neovim の基本設定 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Neovim の基本設定&lt;/h2&gt;
&lt;p&gt;さて、続いては Neovim の設定についてです。
こちらはリポジトリで公開しているので、興味がある方はご確認ください。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/version-1/nvimconf&quot;&gt;version-1/nvimconf&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;ディレクトリ構成&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E6%A7%8B%E6%88%90&quot; aria-label=&quot;ディレクトリ構成 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;ディレクトリ構成&lt;/h3&gt;
&lt;p&gt;ディレクトリ構成は下記のようになっています。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;├── README.md              
├── init.lua               # 最初に読み込まれる設定ファイル
├── install.sh             # LSP など依存しているライブラリのインストールをまとめたスクリプト
├── lazy-lock.json         # lazy のロックファイル
└── lua                    # 設定ファイルを分割して書いているディレクトリ
    ├── base.lua           # 基本の設定
    ├── config
    │   └── lazy.lua       # lazy の設定
    ├── keymaps.lua        # プラグインに依存しないキーバインドの設定
    └── plugins            # lazy で読み込むプラグインの設定
        ├── cmp.lua        # cmp 補完プラグインの設定
        ├── formatter.lua  # formatter の設定
        ├── lsp.lua        # lspconfig の設定
        ├── lualine.lua    # lualine の設定
        ├── plugins.lua    # その他設定なしで読み込めるプラグインをまとめたもの
        ├── tree.lua       # nvim-tree の設定
        ├── treesitter.lua # treesitter の設定
        └── whichkey.lua   # whichkey の設定&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Neovim では、init.lua に設定を書いておくと Neovim 起動時に設定を読み込んでくれるのでここに様々な設定やプラグインの読み込みを書いています。
とはいえ、全部の設定を一つのファイルにかくと見通しがわかりにくくなるので、上記の表のように設定を分割しています。&lt;/p&gt;
&lt;h3 id=&quot;基本設定baselua&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%9F%BA%E6%9C%AC%E8%A8%AD%E5%AE%9Abaselua&quot; aria-label=&quot;基本設定baselua permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;基本設定(base.lua)&lt;/h3&gt;
&lt;p&gt;元々の Neovim 組み込みの設定は base.lua に記述しています。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;lua&quot;&gt;&lt;pre class=&quot;language-lua&quot;&gt;&lt;code class=&quot;language-lua&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;-- https://neovim.io/doc/user/quickref.html#option-list&lt;/span&gt;
vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;encoding &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;utf-8&apos;&lt;/span&gt;
vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;number &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt;
vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;smartindent &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt;
vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;clipboard &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;unnamedplus&quot;&lt;/span&gt;
vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;list &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt;
vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;expandtab &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt;
vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;tabstop &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;
vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;shiftwidth &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;
vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;wrap &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;false&lt;/span&gt;
vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;termguicolors &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt;
vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;wildmenu &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt;
vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;ruler &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt;
vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;smartcase &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt;
vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;showmatch &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt;

vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;g&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;mapleader &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos; &apos;&lt;/span&gt;  &lt;span class=&quot;token comment&quot;&gt;-- Leader に Space を割り当てる&lt;/span&gt;
vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;g&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;maplocalleader &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;\\&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;コメントにもありますが、Neovim の設定項目は
&lt;a href=&quot;https://neovim.io/doc/user/quickref.html#option-list&quot;&gt;https://neovim.io/doc/user/quickref.html#option-list&lt;/a&gt;
ここを見ると書いてあります。&lt;/p&gt;
&lt;h4&gt;Leader について&lt;/h4&gt;
&lt;p&gt;一応言及しておくべきは Leader と言って Vim を操作する際にキーバインドの先頭につけるキーをSpaceに割り当てています。
これはVim の操作をする上で最重要なキーバインドになるので、自分の使いやすいリーダーに割り当てられると良いと思います。
自分は、Vimを使い始めた当初にMedium でSpaceが使いやすいと言っている記事(記事の所在は忘れました・・・)を見つけたのでそれ以来 Space を使っています。&lt;/p&gt;
&lt;p&gt;今回記事を書くのとVim周りの設定をluaに移行するにあたり色々な人の vimconfig をみているのですが割と Space に Leaeder を設定している方が多そうです。
参考にした &lt;a href=&quot;https://nvchad.com/&quot;&gt;Nvchad&lt;/a&gt; も Space に Leader を設定しているので、割と一般的な設定にも思えます。&lt;/p&gt;
&lt;h3 id=&quot;基本のキーバインドkeymapslua&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%9F%BA%E6%9C%AC%E3%81%AE%E3%82%AD%E3%83%BC%E3%83%90%E3%82%A4%E3%83%B3%E3%83%89keymapslua&quot; aria-label=&quot;基本のキーバインドkeymapslua permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;基本のキーバインド(keymaps.lua)&lt;/h3&gt;
&lt;p&gt;プラグインによらないキーバインドは keymaps.lua に記述しています。
Vim上でのウィンドウの移動や分割、ターミナルの開閉などのキーバインドをここに書いています。
ここで &lt;Leader&gt; と書いているものが先ほどの base.lua で設定した Space になります。&lt;/p&gt;
&lt;p&gt;luaへの移行前は、コメントの ON/OFF をプラグインでやっていましたが、&lt;a href=&quot;https://neovim.io/doc/user/various.html#_3.-commenting&quot;&gt;Neovimではデフォルトで gcc と入力すれば使える&lt;/a&gt;のが分かったのでキーバインドを変えて使っています。
自分は Ctrl + -(ハイフン) でコメントアウトができるようにしています。&lt;/p&gt;
&lt;p&gt;自分はコードを書いている際に頻繁に window 分割したり移動を行うので、Space + jklh でウィンドウの移動、Space+s or Space + v でウィンドウ分割をしています。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;lua&quot;&gt;&lt;pre class=&quot;language-lua&quot;&gt;&lt;code class=&quot;language-lua&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;local&lt;/span&gt; map &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;api&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;nvim_set_keymap
&lt;span class=&quot;token comment&quot;&gt;-- move window&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;Leader&gt;j&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;C-w&gt;j&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; noremap &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; silent &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;Leader&gt;k&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;C-w&gt;k&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; noremap &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; silent &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;Leader&gt;l&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;C-w&gt;l&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; noremap &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; silent &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;Leader&gt;h&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;C-w&gt;h&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; noremap &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; silent &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;-- split window&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;Leader&gt;s&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;:&amp;lt;C-u&gt;sp\n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; noremap &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;Leader&gt;v&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;:&amp;lt;C-u&gt;vs\n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; noremap &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;-- close window&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;Leader&gt;w&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;:&amp;lt;C-u&gt;w\n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; noremap &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;Leader&gt;q&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;:&amp;lt;C-u&gt;q\n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; noremap &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;Leader&gt;wq&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;:&amp;lt;C-u&gt;wq\n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; noremap &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;-- open terminal&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;Leader&gt;tt&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;:terminal\n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; noremap &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;i&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;C-k&gt;&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;Up&gt;&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;i&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;C-j&gt;&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;Down&gt;&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;i&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;C-h&gt;&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;Left&gt;&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;i&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;C-l&gt;&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;Right&gt;&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;-- show diagnostics&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;Leader&gt;d&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;:lua vim.diagnostic.open_float()&amp;lt;CR&gt;&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; noremap &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;-- rebind embeded command&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;C-_&gt;&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;gcc&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; noremap &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;v&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;C-_&gt;&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;gc&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; noremap &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;NeoVim-のプラグイン周りpluginslua&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#NeoVim-%E3%81%AE%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E5%91%A8%E3%82%8Apluginslua&quot; aria-label=&quot;NeoVim のプラグイン周りpluginslua permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;NeoVim のプラグイン周り(plugins/*.lua)&lt;/h2&gt;
&lt;p&gt;プラグインの設定は plugins ディレクトリ以下に分割して書いていて、個別に設定が必要ないものは plugins/plugins.lua に書きそうでないものは専用のファイルを作って管理しています。&lt;/p&gt;
&lt;h3 id=&quot;パッケージマネージャ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%A3&quot; aria-label=&quot;パッケージマネージャ permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;パッケージマネージャ&lt;/h3&gt;
&lt;h4&gt;lazy &lt;a href=&quot;https://github.com/folke/lazy.nvim&quot;&gt;repo&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;プラグインの読み込みは lazy を使っています。lazy を設定すると plugins 配下のファイルを読み込んで plugin をセットアップしてくれます。&lt;/p&gt;
&lt;h3 id=&quot;補完シンタックスチェック&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E8%A3%9C%E5%AE%8C%E3%82%B7%E3%83%B3%E3%82%BF%E3%83%83%E3%82%AF%E3%82%B9%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF&quot; aria-label=&quot;補完シンタックスチェック permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;補完・シンタックスチェック&lt;/h3&gt;
&lt;h4&gt;nvim-lspconfig &lt;a href=&quot;https://github.com/neovim/nvim-lspconfig&quot;&gt;repo&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;設定 &lt;a href=&quot;https://github.com/version-1/nvimconf/blob/main/lua/plugins/lsp.lua&quot;&gt;plugins/lsp.lua&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;補完やジャンプ、定義の確認、シンタックスチェックにLSP必要なので言語別にサーバを設定できるプラグインです。&lt;/p&gt;
&lt;h4&gt;nvim-cmp &lt;a href=&quot;https://github.com/hrsh7th/nvim-cmp&quot;&gt;repo&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;設定 &lt;a href=&quot;https://github.com/version-1/nvimconf/blob/main/lua/plugins/cmp.lua&quot;&gt;plugins/cmp.lua&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;補完プラグインです。LSP と連携して補完を行うことができます。&lt;/p&gt;
&lt;h4&gt;nvim-treesitter &lt;a href=&quot;https://github.com/nvim-treesitter/nvim-treesitter&quot;&gt;repo&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;設定 &lt;a href=&quot;https://github.com/version-1/nvimconf/blob/main/lua/plugins/treesitter.lua&quot;&gt;plugins/treesitter.lua&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;シンタックスハイライトやシンタックスチェックを行うために入れています。
構文解析のためのツールである treesitter と nvim-treesitter を良い感じに繋げるプラグインという理解です。
(ちょっと使い始めて日が浅いので雑な説明になっていますすみません）&lt;/p&gt;
&lt;p&gt;普段使う言語の Parser だけ使うように設定しています。&lt;/p&gt;
&lt;h4&gt;copilot.vim &lt;a href=&quot;https://github.com/github/copilot.vim&quot;&gt;repo&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;設定 &lt;a href=&quot;https://github.com/version-1/nvimconf/blob/main/lua/plugins/plugins.lua&quot;&gt;plugins/plugins.lua&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;言わずもがな Github Copilot のVim用プラグインです。これでだいぶ補完が効く様になるのですが、そこまで使い方深堀できていないのでまた時間のある時に使い方を調べてみたいです。&lt;/p&gt;
&lt;h3 id=&quot;ファイルエクスプローラ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%97%E3%83%AD%E3%83%BC%E3%83%A9&quot; aria-label=&quot;ファイルエクスプローラ permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;ファイルエクスプローラ&lt;/h3&gt;
&lt;h4&gt;nvim-tree &lt;a href=&quot;https://github.com/nvim-tree/nvim-tree.lua&quot;&gt;repo&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;設定 &lt;a href=&quot;https://github.com/version-1/nvimconf/blob/main/lua/plugins/tree.lua&quot;&gt;plugins/nvim-tree.lua&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ファイルエクスプローラ用のプラグインです。ほぼ一般的なエディタについてるファイルエクスプローラと同様に使えます。
元々はNerdTree を使っていたのですが、lua 移行にともなって移行しました。
&lt;a href=&quot;https://github.com/nvim-tree/nvim-web-devicons&quot;&gt;nvim-web-devicons&lt;/a&gt;もインストールすれば他のIDEと同等の見た目になり、ファイルの情報もみやすくなるのでおすすめです。&lt;/p&gt;
&lt;p&gt;エクスプローラの開閉は Space + e で行うようにしています。こういったプラグインのコマンドを実装するためのキーバインド設定は keymaps.lua でやらずここでやっています。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;lua&quot;&gt;&lt;pre class=&quot;language-lua&quot;&gt;&lt;code class=&quot;language-lua&quot;&gt;keys &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&amp;lt;leader&gt;e&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&amp;lt;cmd&gt;NvimTreeToggle&amp;lt;cr&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; desc &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;TreeToggle&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;デフォルトのキーバインドでは、Enter でファイルを開くときにいちいちどの Pane で開くか聞かれるのが嫌だったのでマッピングを変えています。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;lua&quot;&gt;&lt;pre class=&quot;language-lua&quot;&gt;&lt;code class=&quot;language-lua&quot;&gt;  vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;keymap&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&amp;lt;CR&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; api&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;open&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;no_window_picker&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; opts &lt;span class=&quot;token string&quot;&gt;&quot;Open: No Window Picker&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
  vim&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;keymap&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;O&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; api&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;open&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;edit&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; opts &lt;span class=&quot;token string&quot;&gt;&quot;Open&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;検索&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%A4%9C%E7%B4%A2&quot; aria-label=&quot;検索 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;検索&lt;/h3&gt;
&lt;h4&gt;ファジーファインダー &lt;a href=&quot;https://github.com/nvim-telescope/telescope.nvim&quot;&gt;telescope&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;設定 &lt;a href=&quot;https://github.com/version-1/nvimconf/blob/main/lua/plugins/plugins.lua&quot;&gt;plugins/plugins.lua&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;高機能なファジーファインダープラグインです。ファイル検索や文字列でインクリメンタルサーチができます。
正直エディタにこれがないと辛いですよね。CUIベースのエディタとは思えないくらいリッチなUIを持っているので非常に便利です。&lt;/p&gt;
&lt;p&gt;キーバインドは下記の様な形で頻繁に使うのですぐに使える様にしています。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;キーバインド&lt;/th&gt;
&lt;th&gt;操作&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Space + p&lt;/td&gt;
&lt;td&gt;ファイル検索&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Space + g&lt;/td&gt;
&lt;td&gt;文字列検索&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&quot;フォーマッタ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%82%BF&quot; aria-label=&quot;フォーマッタ permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;フォーマッタ&lt;/h3&gt;
&lt;h4&gt;フォーマッタ &lt;a href=&quot;https://github.com/stevearc/conform.nvim&quot;&gt;conform.nvim&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;設定 &lt;a href=&quot;https://github.com/version-1/nvimconf/blob/main/lua/plugins/formatter.lua&quot;&gt;plugins/formatter.lua&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;フォーマッタプラグインです。他のプラグインなどと同様にファイル保存時に自動でフォーマットをかけることができます。
フォーマッタは言語ごとに設定可能で自分は、gofmt, goimports, prettierd 等々を設定しています。
こちらもフォーマットをかける際のキーバインドはconform用の設定ファイルで書いています。&lt;/p&gt;
&lt;p&gt;コードを書きながら手動でフォーマットをかけるのを好むので手動のフォーマトコマンドを設定しています。
conform では若干設定が必要なので下記の Recipe に従ってコマンドを作ってそれを呼び出す形で使っています。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md#format-command&quot;&gt;Format command&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;見た目系&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E8%A6%8B%E3%81%9F%E7%9B%AE%E7%B3%BB&quot; aria-label=&quot;見た目系 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;見た目系&lt;/h3&gt;
&lt;h4&gt;ステータスバー &lt;a href=&quot;https://github.com/nvim-lualine/lualine.nvim&quot;&gt;lualine&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;設定 &lt;a href=&quot;https://github.com/version-1/nvimconf/blob/main/lua/plugins/lualine.lua&quot;&gt;plugins/lualine.lua&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ステータスラインをカスタマイズするプラグインです。ステータスライン変えるだけでもかなりこなれた感じになるので試してみてみると良いと思います。
前は設定が悪かったのかステータスライン系のプラグインを入れると重くなってしまっていたので、自前で設定していましたが lualine は問題なさそうです。&lt;/p&gt;
&lt;h4&gt;カラープレビュー &lt;a href=&quot;norcalli/nvim-colorizer.lua&quot;&gt;nvim-colorizer&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;設定 &lt;a href=&quot;https://github.com/version-1/nvimconf/blob/main/lua/plugins/plugins.lua&quot;&gt;plugins/plugins.lua&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;カラーコードをプレビューしてくれるプラグインです。CSSを書く際にかなり便利です。
カラーコードの上に乗っかる形でプレビューされるのですが、自分的にはカラーコードの横に色を表示させたい（文字色などによって見辛くなるので)というのは多少あります。&lt;/p&gt;
&lt;p&gt;プラグインの自作にもトライしたいので、時間がある時に作ってみたいなーなんて思っています。&lt;/p&gt;
&lt;h3 id=&quot;その他&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%9D%E3%81%AE%E4%BB%96&quot; aria-label=&quot;その他 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;その他&lt;/h3&gt;
&lt;h4&gt;キーバインドヘルプ &lt;a href=&quot;https://github.com/folke/which-key.nvim&quot;&gt;which-key&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;設定 &lt;a href=&quot;https://github.com/version-1/nvimconf/blob/main/lua/plugins/whichkey.lua&quot;&gt;plugins/whichkey.lua&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;キーバインドのヘルプを表示してくれるプラグインです。自分で設定したキーバインドがわからなくなった時に便利なのでおすすめです。
また自分で設定したキーバインドが効いているかも確認できて非常に便利です。移行の際に知ったプラグインですが嬉しい発見の一つでした。&lt;/p&gt;
&lt;h4&gt;囲み文字編集 &lt;a href=&quot;https://github.com/kylechui/nvim-surround&quot;&gt;nvim-surround&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;設定 &lt;a href=&quot;https://github.com/version-1/nvimconf/blob/main/lua/plugins/plugins.lua&quot;&gt;plugins/plugins.lua&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;こちらは移行の際の調べ物で見つけたプラグインです。動画で紹介しているものを見つけて便利そうなので入れてみました。
まだ使えこなせてはいないのですが、Vim で囲み文字を追加する際に便利そうなので使ってみようと思います。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://youtu.be/NJDu_53T_4M?si=H2mCYhO5M83oPu8A&amp;#x26;t=36&quot;&gt;nvim-surround | 5 Neovim Plugins To Improve Your Productivity&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;ds&quot;&lt;/code&gt; の様に入力するだけでワード周りのダブルクォーテーションを削除できたり、丸括弧、波括弧、角括弧なども少ないキーストロークで入力が行えるので非常に便利そうです。&lt;/p&gt;
&lt;h2 id=&quot;まとめ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%BE%E3%81%A8%E3%82%81&quot; aria-label=&quot;まとめ permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;まとめ&lt;/h2&gt;
&lt;p&gt;今回 lua に移行したのですが、その過程で Neovim をはじめとしたドキュメントを読み漁りました。
自分が知らないプラグインやNeovimの機能が結構あることに気づいたので、やはり定期的に設定を見直すのは必要な様です。&lt;/p&gt;
&lt;p&gt;neovim 内で :terminal とするとターミナルが開くのですが、これを使うとターミナルとエディタ間の移動がいらなくなるので、もしかしたら tmux も使わなくて済むのかもしれないです。
今のところは慣れているtmux+neovimで運用していますが、意外とneovim だけでやっていけるのかもしれません。
(tmuxには他の機能もあるのと、vim内のターミナルの操作がどの程度使いやすいかがあるのですぐに移行はできなそう）&lt;/p&gt;
&lt;p&gt;いずれにせよ、ここに書いたのは現時点での環境ですぐに変わることはないと思いますが徐々に変わっていくことになるかと思うので今回の様な変更があればまた記事を書きたいと思います。
また、もう少し普段 vim を使わない方向けにも記事を書いてみたいと思うので、今回の作業を違った角度から記事にもできればなと思っています。&lt;/p&gt;</content:encoded><thumbnailUrl>https://statics.ver-1-0.xyz/uploads/2024/10/20241021_devenv-2024/thumbnail.png</thumbnailUrl><language>ja</language></item><item><title><![CDATA[Ruby のmethods メソッドをJavaScript で実装する]]></title><description><![CDATA[突然ですが、ruby のmethos メソッドって便利ですよね。
コードを書いているときにそのオブジェクトで呼ぶことができるすべてのメソッドやプロパティを
羅列してくれて検索までできるので、デバッグの時に重宝しています。 それとはまた別に、Rails…]]></description><link>https://ver-1-0.net/blog/2024/07/29/ruby-methos-method-on-js</link><guid isPermaLink="false">https://ver-1-0.net/blog/2024/07/29/ruby-methos-method-on-js</guid><pubDate>Mon, 29 Jul 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;突然ですが、ruby のmethos メソッドって便利ですよね。
コードを書いているときにそのオブジェクトで呼ぶことができるすべてのメソッドやプロパティを
羅列してくれて検索までできるので、デバッグの時に重宝しています。&lt;/p&gt;
&lt;p&gt;それとはまた別に、Rails などフレームワーク独自のメソッドを調べるときにも有効なのでコードリーディングやライブラリの理解の手助けにもなります。
正規のルートではドキュメントを読んだり、ソースコードを参照するのがよいですが、そこまで深入りする必要のないライブラリや
記憶があやふやなメソッド名を調べる時にはかなり役立ってくれます。&lt;/p&gt;
&lt;h2 id=&quot;Ruby-のmethods-メソッドとは&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#Ruby-%E3%81%AEmethods-%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%A8%E3%81%AF&quot; aria-label=&quot;Ruby のmethods メソッドとは permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Ruby のmethods メソッドとは&lt;/h2&gt;
&lt;p&gt;ということで簡単にRuby のmethods メソッドを簡単に紹介すると下記のようになります。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ruby-doc.org/3.2.2/Object.html#method-i-methods&quot;&gt;Object#method&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Returns a list of the names of public and protected methods of obj. This will include all the methods accessible in obj’s ancestors. If the optional parameter is false, it returns an array of obj’s public and protected singleton methods, the array will not include methods in modules included in obj.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;要はレシーバーからアクセス可能なプロパティやメソッドをArrayオブジェクトで返却してくれるものです。&lt;/p&gt;
&lt;p&gt;このメソッドは オブジェクトの始祖であるObject クラスで実装されているので Object クラスを継承したすべてのクラスで使用することができます。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;サンプルコード&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;ruby&quot;&gt;&lt;pre class=&quot;language-ruby&quot;&gt;&lt;code class=&quot;language-ruby&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Hoge&lt;/span&gt;
  attr_accessor &lt;span class=&quot;token symbol&quot;&gt;:fuga&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;token method-definition&quot;&gt;&lt;span class=&quot;token function&quot;&gt;bar&lt;/span&gt;&lt;/span&gt;
    puts &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&apos;&apos;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;end&lt;/span&gt;

puts &lt;span class=&quot;token class-name&quot;&gt;Hoge&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;methods     &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token symbol&quot;&gt;:bar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token symbol&quot;&gt;:fuga&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token symbol&quot;&gt;:fuga&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token symbol&quot;&gt;:hash&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token symbol&quot;&gt;:singleton_class&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token symbol&quot;&gt;:dup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
puts &lt;span class=&quot;token class-name&quot;&gt;Hoge&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;grep &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;fuga&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token symbol&quot;&gt;:fuga&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token symbol&quot;&gt;:fuga&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;例のように Array オブジェクトが返ってくるので grep メソッドでメソッドの一覧を検索することも可能で非常に便利です。&lt;/p&gt;
&lt;p&gt;ということで、これと同じことが JS でできないか考えてやってみました。&lt;/p&gt;
&lt;h2 id=&quot;実装&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%AE%9F%E8%A3%85&quot; aria-label=&quot;実装 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;実装&lt;/h2&gt;
&lt;p&gt;下記が実際のコードです。&lt;/p&gt;
&lt;p&gt;クラス名はなんでも良いのですが、一旦 PropertyFinder と命名しています。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;javascript&quot;&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;PropertyFinder&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;constructor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;receiver&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;receiver &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; receiver
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token function&quot;&gt;grep&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;regexp&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; options &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; res &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;typeof&lt;/span&gt; regexp &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;string&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;find&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; name&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;regexp&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;regexp &lt;span class=&quot;token keyword&quot;&gt;instanceof&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;RegExp&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;find&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; regexp&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;name&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token function&quot;&gt;toString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;find&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token function&quot;&gt;find&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;detect&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; list &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Object&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getOwnPropertyNames&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;receiver&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;it&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;detect&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;it&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;receiver&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;__proto__&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; list
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; ancestors &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;PropertyFinder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;receiver&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;__proto__&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;find&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;detect&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;list&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;ancestors&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;コードの解説はあとにして一旦使い方から&lt;/p&gt;
&lt;p&gt;クラスが定義できたら下記のようにして、Object クラスのプロパティに関数を差し込みます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;javascript&quot;&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;token class-name&quot;&gt;Object&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;methods&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;PropertyFinder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;これをすることで Object クラスを継承するクラスのインスタンスで methods メソッドを使用できるようになります。
ただ、こちらに関しては後に注意を書くのでそちらにご留意の上、自己責任でお使いください。&lt;/p&gt;
&lt;p&gt;下記がその実行例です。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;javascript&quot;&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;
&lt;span class=&quot;token keyword&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Hoge&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;fuga&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;fuga&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Object&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;methods&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// =&gt; [&apos;constructor&apos;, &apos;constructor&apos;, &apos;__defineGetter__&apos;, &apos;__defineSetter__&apos;, &apos;hasOwnProperty&apos; ...]&lt;/span&gt;
console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;methods&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;           &lt;span class=&quot;token comment&quot;&gt;// =&gt; [&apos;length&apos;, &apos;length&apos;, &apos;constructor&apos;, &apos;at&apos;, &apos;concat&apos;, ...]&lt;/span&gt;
console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Hoge&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;methods&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;grep&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;fuga&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;  &lt;span class=&quot;token comment&quot;&gt;// =&gt; [&apos;fuga&apos;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;使用上の注意&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E4%BD%BF%E7%94%A8%E4%B8%8A%E3%81%AE%E6%B3%A8%E6%84%8F&quot; aria-label=&quot;使用上の注意 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;使用上の注意&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;こちらのコードはプロダクションのコードで採用するには、おすすめされないコードになっています。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;上位のクラスにプロパティを追加するモンキーパッチというアンチパターンで、将来的な JS 側の仕様変更の際にトラブルになる可能性があります。
用法・用量を守ってご使用ください。&lt;/p&gt;
&lt;p&gt;参考: &lt;a href=&quot;https://www.audero.it/blog/2016/12/05/monkey-patching-javascript/#the-cons-of-monkey-patching&quot;&gt;The cons of monkey patching&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;コードの解説&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E8%A7%A3%E8%AA%AC&quot; aria-label=&quot;コードの解説 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;コードの解説&lt;/h2&gt;
&lt;p&gt;コードの解説に移っていきます。&lt;/p&gt;
&lt;p&gt;PropertyFinder のメソッドとして一番重要なメソッドは &lt;code class=&quot;language-text&quot;&gt;find&lt;/code&gt; メソッドになります。
このメソッドが与えられたオブジェクトのプロトタイプチェーンを遡り実行可能なプロパティを検索し、リストとして返却してくれます。&lt;/p&gt;
&lt;p&gt;あとの&lt;code class=&quot;language-text&quot;&gt;toString&lt;/code&gt;, &lt;code class=&quot;language-text&quot;&gt;grep&lt;/code&gt; はそれを使うだけのメソッドなので特に解説は行いません。&lt;/p&gt;
&lt;h3 id=&quot;プロトタイプチェーン&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%97%E3%83%AD%E3%83%88%E3%82%BF%E3%82%A4%E3%83%97%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3&quot; aria-label=&quot;プロトタイプチェーン permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;プロトタイプチェーン&lt;/h3&gt;
&lt;p&gt;プロトタイプチェーンは聞きなれない方もいるかもしれませんが、 Object クラスから脈々と受け継がれてきたプロパティの遺伝子です。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/ja/docs/Web/JavaScript/Inheritance_and_the_prototype_chain&quot;&gt;継承とプロトタイプチェーン| MDN &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;詳しい話は、MDNのドキュメントに譲りますが、実は、JavaScript の継承という仕組みがプロトタイプチェーンによって支えられています。&lt;/p&gt;
&lt;p&gt;普段意識はしないですが、なにかしらのプロパティを参照する際には&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;レシーバー自身にそのプロパティがあるか？&lt;/li&gt;
&lt;li&gt;親クラスのインスタンスにそのプロパティがあるか？&lt;/li&gt;
&lt;li&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;の親クラスのインスタンスにぷろぱてぃがあるか？&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;というように先祖を遡りながらプロパティを検索し、ヒットすればそれを返却するというしくみになっています。&lt;/p&gt;
&lt;h3 id=&quot;find-メソッドでやっていること&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#find-%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%A7%E3%82%84%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8&quot; aria-label=&quot;find メソッドでやっていること permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;find メソッドでやっていること&lt;/h3&gt;
&lt;p&gt;上記をふまえて、その仕組み自体を PropertyFinder に実装すると参照できるプロパティのリストが得られます。&lt;/p&gt;
&lt;p&gt;こちらがその実装で親のプロパティを参照するには、&lt;code class=&quot;language-text&quot;&gt;__proto__&lt;/code&gt; プロパティを参照すればよいので下記のように、&lt;code class=&quot;language-text&quot;&gt;__proto__&lt;/code&gt; を再帰的に探索してリストを得ています。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;javascript&quot;&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;    &lt;span class=&quot;token function&quot;&gt;find&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;detect&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; list &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Object&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getOwnPropertyNames&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;receiver&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;it&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;detect&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;it&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;receiver&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;__proto__&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; list
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; ancestors &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;PropertyFinder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;receiver&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;__proto__&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;find&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;detect&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;list&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;ancestors&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;これで、PropertyFinder の解説は以上です。&lt;/p&gt;
&lt;h2 id=&quot;まとめ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%BE%E3%81%A8%E3%82%81&quot; aria-label=&quot;まとめ permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;まとめ&lt;/h2&gt;
&lt;p&gt;これでコード等々や試してみたことの説明は終わりになります。&lt;/p&gt;
&lt;p&gt;今回は実験的というかお遊びみたいなものなのですが、多少知識が必要なものなどもあったので参考にしたり応用してみていただけるとうれしいです。&lt;/p&gt;</content:encoded><thumbnailUrl>https://statics.ver-1-0.xyz/uploads/2024/07/20240729_ruby-methods-method-on-js/thumbnail.png</thumbnailUrl><language>ja</language></item><item><title><![CDATA[2022年。ふりかえり]]></title><description><![CDATA[日本では一足お先に年越してしまっているみたいですね。去年は振り返り書いてなかったみたいですね。
今年は簡単に振り返ります。 本業 Influitiveでやっていることの振り返りです。（フルタイムの仕事を本業と読んでます。） あと数ヶ月で勤続…]]></description><link>https://ver-1-0.net/blog/2022/12/31/recap-2022</link><guid isPermaLink="false">https://ver-1-0.net/blog/2022/12/31/recap-2022</guid><pubDate>Sat, 31 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;日本では一足お先に年越してしまっているみたいですね。去年は振り返り書いてなかったみたいですね。
今年は簡単に振り返ります。&lt;/p&gt;
&lt;h2 id=&quot;本業&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%9C%AC%E6%A5%AD&quot; aria-label=&quot;本業 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;本業&lt;/h2&gt;
&lt;p&gt;Influitiveでやっていることの振り返りです。（フルタイムの仕事を本業と読んでます。）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;あと数ヶ月で勤続2年&lt;/li&gt;
&lt;li&gt;チームの中ではすでに中堅くらいの長さ&lt;/li&gt;
&lt;li&gt;技術スタック的には変わらず JavaScript, Ruby, Go のバックエンド寄り。&lt;/li&gt;
&lt;li&gt;入社して数ヶ月からはじまった Go + GraphQL のバックエンドのプロジェクトがようやくプロダクトで使われ始めている。&lt;/li&gt;
&lt;li&gt;新規モジュールみたいなのが多くなかったので、割とフロントエンドの結合周りの修正多め&lt;/li&gt;
&lt;li&gt;週休2.5日制の開始&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;3月から働き始めたので、来年3月で2年というです。&lt;/p&gt;
&lt;p&gt;仕事自体は昨年のプロジェクトの引き続き続けていたのですが、新規のものは割と落ち着いてきたのでエンドポイントのインタフェースを作る、Rubyで書かれたモジュールをGoでゴリっと書き直すみたいなのは多分なかったです。
ただ、まあプロジェクト終盤になるにつれて詳細を詰める必要があったので最初にざっくり作っていた頃に比べて違った難しさありました。あとは本丸がRailsなのでそちらの修正に狩り出されていた期間もあったりしていたので、2,3週間Ruby書いてGo戻ってみたいなのを割と繰り返してました。
一昨年は、プルリクに複数日とか1週間かかるのもあった気もするのですが今年は小さい単位でポンポン出してた感じでした。&lt;/p&gt;
&lt;p&gt;昨年は、職位が上がったりしたのですが今年はそういったことも特になく据え置きという感じです。ただ、ワークもサポートしてもらえて LMIA も無事通過したので本当に職場には感謝しかないです。
パフォーマンスレビューでも継続的にアウトプットできてるのでindiviualコントリビューターとしては評価されている気はするのですが、それ以外のところがまだまだなのでそれ以外が改善されればまた昇進できそうです。
どうしても昨年よりはましになったとはいえ、英語のコミュニケーションがネックになっているのでなんとかしたいないうところではあります。
メンバーの入れ替わりは思ってたより早く結構馴染みのメンバーが抜けてしまったりしていてるので、2年も経たずに勤続年数で言う中堅くらいになっていてるのでまぁそろそろ存在感出していきたいところです。&lt;/p&gt;
&lt;p&gt;会社としては、ほとんどのメンバーがリモートで週休2.5日制みたいなものを導入していて月に二回月曜日が会社の休みになります。背景としては、ビックテックみたいに高給はやはりどうしても払えないのでそういったところでリクルーティングに差別化しようとのことみたいです。
これは多分カナダの中でも割と珍しく就活していたときに似たような制度にしている会社は一社あったくらいです。
個人的にある程度ユーザがついて安定してきている会社では週5日一つの会社で働くよりは週4日にして他の会社のプロジェクトなり個人の活動したりした方が個人としても会社としてもメリットなのでこちらには大いに賛成ですし、単純に休みが多いので嬉しい制度です。
日本での働き方に関してもかなり議論されていますが、北米圏での働き方のスタンダードも結構変遷があるみたいなのでリモートワーク以外にもこういう週5日労働みたいな所も色々な考え方ができるようになると良いのかなと思います。&lt;/p&gt;
&lt;p&gt;まとめとしてそろそろもう2年も経つので個人のアウトプットとしては内外である程度の信頼はしてもらえるようになったかと思うので、よりチーム・全体レベルの貢献を増やしていけると良いなと考えています。
そのためには既存システムの理解度、メンバーとの連携、英語諸々やっていくこと多いので引き続き頑張っていきたいです。&lt;/p&gt;
&lt;h2 id=&quot;副業&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%89%AF%E6%A5%AD&quot; aria-label=&quot;副業 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;副業&lt;/h2&gt;
&lt;p&gt;今年は、引き続き頼まれているアプリの開発・保守とMENTA、Techpitの執筆の方やってました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;アプリ開発では、Objective C + Java のアプリを React Native でリプレイスしたアプリが安定してきた&lt;/li&gt;
&lt;li&gt;AWS周りのサービスを整理したら、月の利用額が半分ほどになった&lt;/li&gt;
&lt;li&gt;MENTAの方では、受講者は割と落ち着き気味&lt;/li&gt;
&lt;li&gt;昨年同様、数名程度エンジニアとして就職された方(カナダ企業も含め）をサポートできた&lt;/li&gt;
&lt;li&gt;過去にMENTA経由で就職された方から生徒さんを紹介頂けた&lt;/li&gt;
&lt;li&gt;一昨年リリースしたTechpitの教材も年間通してご利用頂けたよう&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;副業はこれまで同様色々なことができました。開発、執筆、メンタリングと色々な種類の仕事ができて満足です。&lt;/p&gt;
&lt;p&gt;アプリの開発の方では、React Native + Rails(ちょっとGo) みたいなスタックでできているのでこちらでは本業とはまた違う学びを得ることができました。
昨年アプリを Objective C と Java でできた古いネィティブアプリを React Native に置き換えましたそちらのリプレイスがだいぶ落ち着き安定してきて、
今年はインフラ部分の方でも作業を行えて、結果的にAWSの月額料金を半分にできました。長くメンテできていないシステムだったので、インスタンスタイプを最新にしたり、
S3の不要なファイルを消したり、オートスケールを正しく設定して必要な時にだけ必要なインスタンスが立ち上がるように設定しました。
インフラ専門の方からすると割と通常のことかもしれないのですが、インフラ専任の方がいないシステムでは割とできていないことのような気もするのでまずはそこを正常化した形です。
個人的には、AWSのインスタンスタイプを新しくするだけで割と料金が減るのを知りました。割と周知のことかもしれないのですが、個人的にこの作業で学んだことでした。&lt;/p&gt;
&lt;p&gt;MENTAでも引き続き学習者さんをサポートさせて頂きました。昨年に比べると受講者数も落ち着きましたが、今年はカナダにいる方などから相談をもらえることが多かったような気もしており個人的に嬉しかったです。
実際に未経験でカナダの企業に就職された方もいたりしてそれは本当に嬉しかったです。また、以前受講していた方から生徒さんをおすすめして頂けたこともありました。
おすすめして頂けたこと自体嬉しかったのですが、以前教えていた生徒さんが現場でバリバリ活躍してステップアップしている近況が聞けたのも同時に嬉しかったです。
こういったことがあるので長く続けると言うのも大事なのかなと最近では思えてきましたし、2023年も引き続き続けていきたいと思っています。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://menta.work/plan/1608?ref=mentor_profile&quot;&gt;MENTA&lt;/a&gt;上で関わった生徒さんもすでに200人弱にのぼり（単発の生徒さんも含む）色々な学習者さんをみている中で&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;公式のドキュメントが読める&lt;/li&gt;
&lt;li&gt;エラーメッセージが読めて正しい手順でデバッグができる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;と言うのがやっぱり一番大事だなと言うのを日々感じています。
「HTML/CSSがー、JSがー、Reactがー」などに囚われがちですが、公式のドキュメントを読める知識・経験量とそれを正しく実行できているか確認できる「エラー解析・デバッキング」の力が自走できる一人前のエンジニアになるには本当に必要だと実感しています。
メンタリングでもこれをどうすれば効率よく教える（メンティーさんができるようになる）にはどうすれば良いか考えながら教材を作ったりメンタリングをしています。
来年はこれを念頭においたコンテンツなども作っていきたいですね。&lt;/p&gt;
&lt;p&gt;また、昨年 Techpit さんで出させていただいた&lt;a href=&quot;https://www.techpit.jp/courses/127&quot;&gt;Hooks API のオンライン教材&lt;/a&gt;ですが、一昨年リリースですがまだボチボチ利用されているようでした。
今年は新しい教材を執筆していたのですが、諸々の事情であまり時間が取れず年末の休暇などを利用してコツコツ執筆を進めています。
来年上半期のどこかで出せれば良いなと思っているのでまた時期がきたら記事書ければと思います。&lt;/p&gt;
&lt;p&gt;相変わらず色々な副業していきますが、 2023年も引き続き頑張っていきたいと思います。副業では本業でできないことが色々できるので楽しみながら色々なことにチャレンジできればと思っています。&lt;/p&gt;
&lt;h2 id=&quot;プライベート&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%97%E3%83%A9%E3%82%A4%E3%83%99%E3%83%BC%E3%83%88&quot; aria-label=&quot;プライベート permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;プライベート&lt;/h2&gt;
&lt;p&gt;今年は一年通してよく遊んだと言うかお金使った一年だった気がします。&lt;/p&gt;
&lt;p&gt;コロナに関する国家間の移動がかなり緩和したので、その反動で色々と旅行にいきました。といっても、アメリカ二回の日本二回の二国だけですが、、&lt;/p&gt;
&lt;p&gt;シアトルには、大谷の観戦に一回、PLL (アメリカのラクロスのプロリーグ）の試合の観戦にいきました。
大谷は 3 回くらいスタジアムで見ているのですが、相変わらず見にいきたくなる選手なので見に行けて良かったです。特に、今回は友達含めてそれなりの人数でワイワイ見れたのが良かったです。
また、ずっと見たかったアメリカのプロラクロスリーグの試合を見に行けたのも良かったです。
学生の頃から見ていた選手を生でみれた感動もデカかったですし、PLLのインフルエンサー的な RJ を間近で見れたのも嬉しかったです。
普段 Youtube で見てる人なんで生 RJ は割と感動しました。来年は自重しようかなという思っているのですが、またシーズンがくるとどこか行こうかなーとなるかもしれないですね。&lt;/p&gt;
&lt;p&gt;その他で言うと、まぁもっぱら家で過ごすことが多いのですが最近家でゲームする時間が明らかに増えました。
カナダ来る前のフリーランス期、カナダ就活期に働き過ぎたのかその反動で仕事終わりにゲームすることが多く、もっぱらApexなどをして過ごしています。&lt;/p&gt;
&lt;p&gt;ゲーム自体は全然良いのですが、必然的にずーっと椅子に座り続けることになってしまうのでうまく運動する時間などもも設けたいところです。
特に、日本で受けた健康診断の結果があまりよくなかったので（日々の飲酒が完全に数値に出てます。）これらも含めてちょっと2023年は生活習慣見直したいです。&lt;/p&gt;
&lt;h2 id=&quot;総括&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E7%B7%8F%E6%8B%AC&quot; aria-label=&quot;総括 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;総括&lt;/h2&gt;
&lt;p&gt;早いものでカナダ生活も3年たち、2023年にはかねての目標だったカナダ永住権も視野に入ってきます。今年一年は、あまり目標を定めずに流れるように過ごしたのですが、2023年はもう少しキッチリラインなど決めながらやっていきたいなと考えています。
永住権にも仕事でのキャリアアップにも必要な英語力の強化や多少落ち着きつつある副業の新しい展開など何か変化のある一年にしていきたいなと思っています。2022年お世話になった方々ありがとうございました。2023年もよろしくお願いします。&lt;/p&gt;</content:encoded><thumbnailUrl>https://statics.ver-1-0.xyz/uploads/2022/12/20221231_recap-2022/thumbnail.png</thumbnailUrl><language>ja</language></item><item><title><![CDATA[プログラミング学習のスケジューリングについて]]></title><description><![CDATA[こんにちは、初めましてJiroです。 こちらはMENTAのアドベントカレンダーの記事です。 カナダでJS/Ruby/Goあたりのスタックを使いながらフルスタックエンジニアをしています。
MENTAは 2020年3月のちょうどコロナが流行り初めてきた頃にはじめて、これまで10…]]></description><link>https://ver-1-0.net/blog/2021/12/21/scheduling-for-programming</link><guid isPermaLink="false">https://ver-1-0.net/blog/2021/12/21/scheduling-for-programming</guid><pubDate>Tue, 21 Dec 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;こんにちは、初めましてJiroです。&lt;/p&gt;
&lt;p&gt;こちらは&lt;a href=&quot;https://qiita.com/advent-calendar/2021/menta&quot;&gt;MENTAのアドベントカレンダー&lt;/a&gt;の記事です。&lt;/p&gt;
&lt;p&gt;カナダでJS/Ruby/Goあたりのスタックを使いながらフルスタックエンジニアをしています。
MENTAは 2020年3月のちょうどコロナが流行り初めてきた頃にはじめて、これまで100人以上のメンティーさんに相談を頂いています。&lt;/p&gt;
&lt;p&gt;みっちり学習プランという&lt;a href=&quot;https://menta.work/plan/1608/4274&quot;&gt;HTML/CSSからJSの基礎、Reactを学習してエンジニアとしてエントリーレベルの実力をつけるコース&lt;/a&gt;をメインに提供し、
フロントエンドの技術を学びたい方の日々の業務でのつまずきポイントをチャットベースで解決したり、オリジナルアプリの開発の相談サポートなどを行っています。&lt;/p&gt;
&lt;p&gt;よかったらこちらにプランが乗っていますので興味がある方はこちらご確認ください。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://menta.work/plan/1608&quot;&gt;MENTA 提供プラン一覧&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;嬉しいことに、サポートさせて頂いた方でも業界未経験からエンジニアとして見事にキャリアをスタートさせている方々もいらっしゃるのですが、
一方で学習が思い通りにうまく進まない、途中で挫折してしまうといった方もいるのでこの記事ではそこの違いといったところをある程度言語化できたらなということで
プログラミング学習のスケジューリングについてをメインのトピックに書きはじめています。&lt;/p&gt;
&lt;h2 id=&quot;なぜプログラミング学習で挫折するのか&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%AA%E3%81%9C%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%AD%A6%E7%BF%92%E3%81%A7%E6%8C%AB%E6%8A%98%E3%81%99%E3%82%8B%E3%81%AE%E3%81%8B&quot; aria-label=&quot;なぜプログラミング学習で挫折するのか permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;なぜプログラミング学習で挫折するのか？&lt;/h2&gt;
&lt;h3 id=&quot;プログラミングを難しくしている要因&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%92%E9%9B%A3%E3%81%97%E3%81%8F%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E8%A6%81%E5%9B%A0&quot; aria-label=&quot;プログラミングを難しくしている要因 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;プログラミングを難しくしている要因&lt;/h3&gt;
&lt;p&gt;ここはまぁ割とよく話されているかと思うのですが、前提を合わせるためにも簡単に触れていきます。&lt;/p&gt;
&lt;p&gt;ざっくりまとめるとプログラミング学習を難しくしている要因はこの辺りにあるのかなと思っています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;必要な知識量の膨大さ&lt;/li&gt;
&lt;li&gt;非エンジニアリングにはない独特の概念・文化への適応の難しさ&lt;/li&gt;
&lt;li&gt;膨大な知識量をカバーするための計画と実行の難しさ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;いくつか要因は上げましたが、本当にゼロから始めた場合極論1週間とかそこらで修得できる物でもなく、
エントリーレベルのエンジニアになるまでに必要な知識量の大さが1番の要因になっており、
その知識量をなんとかするためのソフトウエアエンジニアの文化への慣れとか長期に及ぶ勉強期間をどう管理していくかみたいな問題が付随してやってくるという形です。&lt;/p&gt;
&lt;h3 id=&quot;エンジニアになるために必要な知識&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E7%9F%A5%E8%AD%98&quot; aria-label=&quot;エンジニアになるために必要な知識 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;エンジニアになるために必要な知識&lt;/h3&gt;
&lt;p&gt;知識が膨大だみたいな話をしていても具体性がないので、じゃあ例えばどの辺りのことを理解しておく必要があるの？となるとおもうのですが、僕がMENTAで教えているフロントエンドのコースでは、&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ITの基礎・・・webの仕組み、ハードウェアの仕組み、ネットワークなど&lt;/li&gt;
&lt;li&gt;HTML/CSS・・・数ページの静的なwebページが作れるくらい&lt;/li&gt;
&lt;li&gt;JavaScript・・基礎的な文法などなど、フォームバリデーションなどなど&lt;/li&gt;
&lt;li&gt;サーバーサイド・・node.js,ruby, pythonなど何でも良いのでCRUDができるweb APIがつくれる。&lt;/li&gt;
&lt;li&gt;Linux・・コマンドライン操作、linuxのファイルシステム、ディレクトリ構造などについて&lt;/li&gt;
&lt;li&gt;バージョン管理・・git の使い方、ブランチ運用&lt;/li&gt;
&lt;/ol&gt;
&lt;aside&gt; ※1 1. は基本情報技術者試験などで求められるコンピュータの構造、IPアドレスなどなどITリテラシー的な知識です。&lt;/aside&gt;
&lt;aside&gt; ※2 5. はまとめ方難しいのですが、サーバ作業やローカルの環境構築を念頭においた前提知識やコマンドラインの知識のことです。 &lt;/aside&gt;
&lt;p&gt;あたりの知識をベースに、+α Reactなどのフロントエンドフレームワークを使えるようになると良いというようなことを案内させてもらっています。&lt;/p&gt;
&lt;p&gt;みてわかるようにそれぞれ1項目を倒すだけでも結構時間が必要になるのとそれぞれの知識は繋がっているようで、
各項目ごと違った癖があったりで日々勉強をしているメンティーさんを見ると本当に頑張ってるなと感じます。&lt;/p&gt;
&lt;h2 id=&quot;解決策-スケージューリングにこだわる&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E8%A7%A3%E6%B1%BA%E7%AD%96-%E3%82%B9%E3%82%B1%E3%83%BC%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%AB%E3%81%93%E3%81%A0%E3%82%8F%E3%82%8B&quot; aria-label=&quot;解決策 スケージューリングにこだわる permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;解決策: スケージューリングにこだわる&lt;/h2&gt;
&lt;p&gt;ここまでエンジニアになるためには膨大な量3ヶ月〜半年くらいは少なくともしっかり計画たててコツコツ勉強しないといけなく、一筋縄にはいかないことがわかったと思います。
で、ここからが本題なのですが、日々メンティーさんの勉強の様子だったり、相談を受けた時に「計画段階で結構失敗しているなぁ」という印象を受けることがあります。&lt;/p&gt;
&lt;p&gt;僕自身最初のメンタリングでは、学習の計画について聞くことがあるんですが、計画を聞くとだいたい6ヶ月後を目処に転職したいみたいな時期感は出てくるのですが、その目標を達成するために「自分がどうなっていれば良いのか？どういう知識を得ていればよいのか？」みたいな所の解像度粗いというのがよくあります。&lt;/p&gt;
&lt;p&gt;転職までの期間が6ヶ月だとするとインプット重視の基礎を整えられる時間は、ポートフォリオの作成期間や面接を受ける期間でだいたい最初の3か月くらいかと思うのですが、その中で上のような知識を網羅しようとなるとかなり忙しいですし本当に土日返上+平日は勉強しないと間に合わなかったりするはずです。
なんですが、ここがあまり明確に意識できておらず1日に十分な勉強時間が確保できておらずどんどんスケジュールが後ろに倒れていってしまい、いつしか熱も冷めてしまい・・となりがちです。&lt;/p&gt;
&lt;p&gt;と言った形でここまでが問題提起です。少なくない数の学習者さんがここのスケジューリングを改善すれうばもっとよくなる気がしたので今一度計画を見直すキッカケになればと思います。&lt;/p&gt;
&lt;h2 id=&quot;勉強の計画の立て方&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%8B%89%E5%BC%B7%E3%81%AE%E8%A8%88%E7%94%BB%E3%81%AE%E7%AB%8B%E3%81%A6%E6%96%B9&quot; aria-label=&quot;勉強の計画の立て方 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;勉強の計画の立て方&lt;/h2&gt;
&lt;p&gt;スケジューリングの大切さを語ったところで、ざっくり下記がそのステップになります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;転職する時期を決める&lt;/li&gt;
&lt;li&gt;面接で聞かれる内容、アピールする内容をイメージする&lt;/li&gt;
&lt;li&gt;ポートフォリオで作るものを決める(求人を参考にする)&lt;/li&gt;
&lt;li&gt;テーマ毎の粒度で中期の勉強計画をたてる&lt;/li&gt;
&lt;li&gt;1日に必要な勉強時間・勉強内容をきめる&lt;/li&gt;
&lt;li&gt;1日単位・週単位で振り返りを行い計画を修正する。(時期が迫ったら機能をドロップする短期で補える方法を模索する)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;面接でアピールする内容を先に決めておく&lt;/strong&gt;、&lt;strong&gt;1日に必要な勉強時間・勉強内容をきめる&lt;/strong&gt; あたりがポイントかと思っていますが、
目標を明確にししてそれを1日の具体的なアクションに落とし込む、適宜進捗を見ながら軌道修正を行うあたりが大切になってきます。&lt;/p&gt;
&lt;h3 id=&quot;1-転職する時期を決める&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#1-%E8%BB%A2%E8%81%B7%E3%81%99%E3%82%8B%E6%99%82%E6%9C%9F%E3%82%92%E6%B1%BA%E3%82%81%E3%82%8B&quot; aria-label=&quot;1 転職する時期を決める permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;1. 転職する時期を決める&lt;/h3&gt;
&lt;p&gt;言葉通りですが、 全くのゼロから始めるのであれば少なくとも6ヶ月くらいのタイムスパンは必要かと思います。3ヶ月とかなると元々やってなかったりするとかなりキツイとは思うので、半年程度が妥当なラインかと思います。&lt;/p&gt;
&lt;h3 id=&quot;2-面接でアピールする内容を決める&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#2-%E9%9D%A2%E6%8E%A5%E3%81%A7%E3%82%A2%E3%83%94%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E5%86%85%E5%AE%B9%E3%82%92%E6%B1%BA%E3%82%81%E3%82%8B&quot; aria-label=&quot;2 面接でアピールする内容を決める permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2. 面接でアピールする内容を決める&lt;/h3&gt;
&lt;p&gt;転職を考えている方は、面接で話す内容を学習開始段階から考えておけると良いでしょう。&lt;/p&gt;
&lt;p&gt;転職活動を始める時の前の期間はプログラミング自体の勉強やポートフォリオ作成などを行う準備期間になると思いますが、ここで何をやっておく必要があるのか？ということを明確にするためにも面接でアピールする内容を決めておけると良いでしょう。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;面接で語る内容を具現化したものがポートフォリオで、そのポートフォリを作るための知識を日々の学習で身につける。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;という考え方が根幹になります。&lt;/p&gt;
&lt;p&gt;アピールと言っても100人に1人しか出来ないみたいな事をアピールする必要はなく、各社選考の基準は違うかと思いますがだいたい「webアプリのバックエンドからフロントエンドをざっくり作った経験があり仕組みを理解しているまたは入社後にキャッチアップできる」という部分を納得させられる程度のアピールができれば良いのであまり難しく考える必要はないです。
あとは自分の中で目指したいエンジニア像みたいな物があればそれがアピール出来るようにその要素を自分のポートフォリオに盛り込めると良いでしょう。&lt;/p&gt;
&lt;p&gt;このアピールする内容を決めるというのは限られた期間で「何をする必要があり、何をやらないのか」を決める所がゴールです。裏を返すと、面接で語る必要のないことはあまりやる必要がないです。
（将来的に現場で必要な可能性もありますが、短期的に効率よく成長するためにはいち早く現場の経験を詰めることが第一と考えているので、面接時点で不要な知識は一旦据え置きます）&lt;/p&gt;
&lt;h3 id=&quot;3-ポートフォリオで作るものを決める&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#3-%E3%83%9D%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%AA%E3%82%AA%E3%81%A7%E4%BD%9C%E3%82%8B%E3%82%82%E3%81%AE%E3%82%92%E6%B1%BA%E3%82%81%E3%82%8B&quot; aria-label=&quot;3 ポートフォリオで作るものを決める permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;3. ポートフォリオで作るものを決める&lt;/h3&gt;
&lt;p&gt;ポートフォリオを作る時に考えるべきことは&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;面接あるいは書類選考でアピールするための機能が揃っているか？&lt;/li&gt;
&lt;li&gt;必要な技術スタックを網羅しているか？&lt;/li&gt;
&lt;li&gt;選考に足る複雑度のあるアプリであるか？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;あたりです。&lt;/p&gt;
&lt;p&gt;1. については自分がデザインとフロントエンドに興味があるならUIの実装にこだわってみる。フロントに加えてサーバも出来るようになってフルスタックに働きたいなどあれば、サーバサイド側で定時実行のバッチ処理を実装して組み込むなどのようにエンジニアとしての色が分かるように成果物を考える。&lt;/p&gt;
&lt;p&gt;2. については自分が志望している業界・会社の技術スタックに合わない技術を使っているまたは不十分だったりするとそもそも面接にも進めなかったりするので自分が作ろうとしているポートフォリオにどのように技術スタックを取り込むかという形になるかと思います。必要なスタッフの確認は適宜wantedly,greenなどなど海外ならLinkedinなどなどIT系企業の求人が載っているサイトを見ると結構キーワードでリストアップされているのでいくつか求人をみて頻出な技術スタックを盛り込むようにすると良いです。&lt;/p&gt;
&lt;p&gt;3. については、やはりtodoアプリでページ遷移なしのポートフォリオを持っていってもプログラミング経験はあるのはわかりますが、その人が現場のシステムを理解してプロジェクトにフィットできるかどうかのイメージは湧かないので、バック・フロントがあってawsやherokuなどにホストされていて、&lt;/p&gt;
&lt;p&gt;よくあるwebサービスの&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ログイン機能&lt;/li&gt;
&lt;li&gt;ユーザーページ&lt;/li&gt;
&lt;li&gt;サービスの根幹を実現する機能(CRUD+αを実装したもの)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;あたりは実装されている必要があると思います。&lt;/p&gt;
&lt;p&gt;またポートフォリオを考える時に&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ポートフォリオのサービスを説明する文章&lt;/li&gt;
&lt;li&gt;使用する技術スタック&lt;/li&gt;
&lt;li&gt;簡単な機能がわかるワイヤーフレーム(Figmaなどのツールを使ってもよいし、手書きでも可)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;あたりをざっくり書き出してみると頭で考えるよりはよりクリアにイメージできるでしょう。
学習を始めるまでにここをやっておくと学ぶべき内容もクリアになるので良いかと思います。&lt;/p&gt;
&lt;h3 id=&quot;4-テーマ毎の粒度で中期の勉強計画をたてる&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#4-%E3%83%86%E3%83%BC%E3%83%9E%E6%AF%8E%E3%81%AE%E7%B2%92%E5%BA%A6%E3%81%A7%E4%B8%AD%E6%9C%9F%E3%81%AE%E5%8B%89%E5%BC%B7%E8%A8%88%E7%94%BB%E3%82%92%E3%81%9F%E3%81%A6%E3%82%8B&quot; aria-label=&quot;4 テーマ毎の粒度で中期の勉強計画をたてる permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;4. テーマ毎の粒度で中期の勉強計画をたてる&lt;/h3&gt;
&lt;p&gt;上記で作成するポートフォリオを決めて、使用する技術スタックがわかったらあとはそれらを一つずつ学んでいければ良いでしょう。
何をどれくらい勉強すれば良いかを調べるのはなかなか難しいですが、HTML/CSS、Reactみたいな粒度だったりすると何を学べば良いのかわからなかったりするので、
Reactだったら、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reactの概要&lt;/li&gt;
&lt;li&gt;ステートとProps&lt;/li&gt;
&lt;li&gt;クラスコンポーネントと関数コンポーネント&lt;/li&gt;
&lt;li&gt;hooks API(useState, useCallback, useEffect)&lt;/li&gt;
&lt;li&gt;パフォーマンス最適化&lt;/li&gt;
&lt;li&gt;useRefなどのそのほかのHooks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;などなある程度トピックを書き出してそれぞれを勉強してみる形が良いでしょう。勉強する際にも何を学ぶのか？
を明確にしておかないと何をして良いかわからなくてモチベーションが下がってしまうので、学ぶ内容をできるだけ細分化できると良いです。&lt;/p&gt;
&lt;p&gt;ある程度細分化ができたらそれぞれの項目にかける時間を書き出してみてまとめて、それぞれに必要そうな勉強時間を割り出しましょう。&lt;/p&gt;
&lt;p&gt;ここで実際の学習を進める時に気をつけるのは、
ドキュメントを読むなどインプット自体はあまり時間をかけ過ぎなくてよくて「こういった項目がなんとなくあるんだな」という形であとで検索できたり戻ってきて読み直したりする程度で大丈夫です。
最終的な業務を考えた時は「手を動かして作れる」ようになっていることが目標なのでしっかり普段からコードを書いて、アプリを作る過程に体を慣していけると良いでしょう。&lt;/p&gt;
&lt;p&gt;6ヶ月くらいでフロントエンドで転職を考えているのであれば 3ヶ月 のうちに&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;学習内容&lt;/th&gt;
&lt;th&gt;期間&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;HTML/CSS&lt;/td&gt;
&lt;td&gt;1週間&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSの勉強&lt;/td&gt;
&lt;td&gt;1週間&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reactの勉強&lt;/td&gt;
&lt;td&gt;1週間&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reactを使った簡単なアプリ作成&lt;/td&gt;
&lt;td&gt;1週間&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;React, Reduxを使った簡単なアプリ作成&lt;/td&gt;
&lt;td&gt;1週間&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;React+Redux+API通信を使った簡単なアプリ作成&lt;/td&gt;
&lt;td&gt;1週間&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Linuxの学習（コマンドラインやディレクトリ構造など）&lt;/td&gt;
&lt;td&gt;1週間&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MySQLなどのデータベースの学習&lt;/td&gt;
&lt;td&gt;1週間&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ブログのCRUDをできるようなWeb APIを MySQL+Express.js で作成&lt;/td&gt;
&lt;td&gt;1週間&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;自前Web APIとReactを統合したアプリ実装&lt;/td&gt;
&lt;td&gt;1週間&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;計 10週間&lt;/p&gt;
&lt;p&gt;のような形で計画を立てられると良いでしょう。それぞれの項目の中には先程のステップで細分化した内容を順番に勉強していくような形です。
また〜の学習、勉強のようなアプリ作成と書いていないような項目でもそれぞれなんらかのアウトプットを出すようにすると良いです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HTML/CSSの学習であれば一つサイトの１ページを模写してみる、色の着いた四角い要素をよくあるサイトレイアウトに並べてみる、&lt;/li&gt;
&lt;li&gt;Reactなら自分で設計をして◯×ゲームを実装してみる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;のように自分の練習として、お題を考えて実装してみると学習効率が上がると思います。
Udemyのチュートリアルのようなものでも最初は良いのですが、自分で設計して実装した方が力は着くので、チュートリアル→自作アプリの順番で練習すると良いでしょう。&lt;/p&gt;
&lt;p&gt;上の例では10週間で3ヶ月未満で書いていますが、おそらく学習しているうちに必要な要素が出てきたり想定外のこともあるのである程度バッファをとってスケジュールを引きます。&lt;/p&gt;
&lt;p&gt;そのほか基本情報技術者試験に出てくるような情報処理的な知識も補完しながら進む必要があるので、適宜勉強の合間や移動時間などの隙間時間を見つけて学習できると良いでしょう。&lt;/p&gt;
&lt;h3 id=&quot;5-1日に必要な勉強時間勉強内容をきめる&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#5-1%E6%97%A5%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E5%8B%89%E5%BC%B7%E6%99%82%E9%96%93%E5%8B%89%E5%BC%B7%E5%86%85%E5%AE%B9%E3%82%92%E3%81%8D%E3%82%81%E3%82%8B&quot; aria-label=&quot;5 1日に必要な勉強時間勉強内容をきめる permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;5. 1日に必要な勉強時間・勉強内容をきめる&lt;/h3&gt;
&lt;p&gt;ここまでブレイクダウンできたらあとは1日に必要な勉強時間と1日のうちのどの時間帯に勉強するか、勉強内容を決めます。&lt;/p&gt;
&lt;p&gt;勉強する中でも&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;テキストを読むだけですむもの&lt;/li&gt;
&lt;li&gt;コードを書いて動かす必要があるもの&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;の二種類に分かれるので、読むだけで済み机に向かっていなくてもできるものは隙間時間に行うようにしたり勉強に疲れてゴロゴロするときになんとなく眺める。
みたいな形で効率よく勉強できるように工夫しましょう。同じテキストの同じ文を繰り返し参照するようにすると記憶に残りやすいので、テキストやドキュメント記事は
繰り返し読むのがおすすめです。&lt;/p&gt;
&lt;p&gt;プログラミング学習は長い道のりですが、やはり一日の積み重ねが将来的な地力に繋がるのと時間が飽くと
内容を忘れてしまい効率が悪いので机に向かわなくても勉強できる方法を確立して忙しい日でも勉強できると良いです。&lt;/p&gt;
&lt;p&gt;また、6ヶ月などの遠い目標を達成するのに大まかな目標しかないと具体的なアクションが取れないので、&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;1日何時間程度勉強するのか？&lt;/li&gt;
&lt;li&gt;何を勉強するのか？&lt;/li&gt;
&lt;li&gt;どのように勉強をするのか？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;というのを明確にして勉強できると達成感を感じながら学習を進められるので結果も違ってくると思います。&lt;/p&gt;
&lt;h3 id=&quot;6-1日単位週単位で振り返りを行い計画を修正する&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#6-1%E6%97%A5%E5%8D%98%E4%BD%8D%E9%80%B1%E5%8D%98%E4%BD%8D%E3%81%A7%E6%8C%AF%E3%82%8A%E8%BF%94%E3%82%8A%E3%82%92%E8%A1%8C%E3%81%84%E8%A8%88%E7%94%BB%E3%82%92%E4%BF%AE%E6%AD%A3%E3%81%99%E3%82%8B&quot; aria-label=&quot;6 1日単位週単位で振り返りを行い計画を修正する permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;6. 1日単位・週単位で振り返りを行い計画を修正する&lt;/h3&gt;
&lt;p&gt;1日単位でのアクションプランが練れたら、簡単にで良いので定期的に計画の振り返りを行って計画を修正するようにしましょう。
意外とReactのアプリ作成に時間が必要になったらその分他のスケジュールなどが後ろ倒しになるので、それの影響をみて
「全体を終わらせる必要があるのに、一つのトピックに止まり過ぎていないか？」
などなるべく長期的な視点にたって勉強のし過ぎや勉強のペースを考えて修正を行っていきましょう。&lt;/p&gt;
&lt;p&gt;ここでの注意点は、細かい4.で決めたような中長期のスケージュールは動かしても良いのですが、6ヶ月で転職などのような &lt;strong&gt;大きなスケジュールは
なるべく変えない&lt;/strong&gt; ことです。全体のスケジュールを伸ばしすぎると勉強が苦しくなってしまって挫折したりするので大きなスケジュールは変えずに
「勉強する内容を少し削る」「ポートフォリオにつける機能を減らす」などして計画を調整できると良いです。&lt;/p&gt;
&lt;p&gt;スケジュールを伸ばしに伸ばして打席に立てなくなると、自分に足りていない要素を見つけたり課題に気づいたりという機会が極端に減ってしまうので、
計画後半の方で発生した遅延はやることを減らすことで対処しながらあとは対外的な面接などを通して自分の弱点を補いながら転職に繋げていくという方針が
時間効率が良いです。&lt;/p&gt;
&lt;h3 id=&quot;スケジューリングのまとめ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%B9%E3%82%B1%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%AE%E3%81%BE%E3%81%A8%E3%82%81&quot; aria-label=&quot;スケジューリングのまとめ permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;スケジューリングのまとめ&lt;/h3&gt;
&lt;p&gt;ここまででスケジューリングの方法は一通り説明できました。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;転職する時期を決める&lt;/li&gt;
&lt;li&gt;面接で聞かれる内容、アピールする内容をイメージする&lt;/li&gt;
&lt;li&gt;ポートフォリオで作るものを決める(求人を参考にする)&lt;/li&gt;
&lt;li&gt;テーマ毎の粒度で中期の勉強計画をたてる&lt;/li&gt;
&lt;li&gt;1日に必要な勉強時間・勉強内容をきめる&lt;/li&gt;
&lt;li&gt;1日単位・週単位で振り返りを行い計画を修正する。(時期が迫ったら機能をドロップする短期で補える方法を模索する)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;繰り返しにはなりますが、1日1日のアクションプランと振り返り、面接でアピールする内容から逆算したポートフォリオを作るというのがおすすめですので、
参考にしていただけると嬉しいです。ここまででスケジューリングの話は終わりですが、つぎに計画を立てる時や学習中の注意点みたいなものをまとめて終わりにします。&lt;/p&gt;
&lt;h2 id=&quot;学習計画を立てる時学習期間のNG集&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%AD%A6%E7%BF%92%E8%A8%88%E7%94%BB%E3%82%92%E7%AB%8B%E3%81%A6%E3%82%8B%E6%99%82%E5%AD%A6%E7%BF%92%E6%9C%9F%E9%96%93%E3%81%AENG%E9%9B%86&quot; aria-label=&quot;学習計画を立てる時学習期間のNG集 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;学習計画を立てる時・学習期間のNG集&lt;/h2&gt;
&lt;p&gt;スケジューリングの考え方は流れで説明しましたが、個人的に思う学習の効率を下げている習慣をまとめたので書いておきます。
こちらに着いては賛否あるものもあるかもしれませんが一意見として気に留めておいて頂けると良いかと思います。&lt;/p&gt;
&lt;h4&gt;学習する内容・目的が不明瞭&lt;/h4&gt;
&lt;p&gt;上の説明でも、何回か書きましたが学習の目的を絞って学習するのがモチベーション維持の観点でも非常に大切です。
「今日はHTML/CSSの学習をしよう！」みたいな粒度だと甘いので「Flexboxを使ったレイアウトの方法を勉強しよう」などなど
明確に行動を起こせる目的をもった上で学習を進めると進捗の確認がしやすかったり何がわかっていて何がわかっていないかなどが明確になります。&lt;/p&gt;
&lt;p&gt;これを意識づけできていると自分が理解していないトピックが明確になってくるので時間があるときにどこを補えば良いのかというのがわかってきて、
隙間時間での勉強やりやすくなるはずです。また各技術書なども目的を持って読む必要があり、せっかく買ったんだからと先頭から後ろまで順番に学習する必要はないです。30分などの短時間で読み終えられる技術書なんてほとんどないので、自分が本当に知りたかった情報に辿り着くまでに息切れしてしまいます。&lt;/p&gt;
&lt;p&gt;必ず技術書やドキュメントを読み進める前には目次を見て気になるところから読むようにしましょう。また新しい内容は繰り返し触れるのが記憶にも残りやすいので、
一つの本の同じ箇所を繰り返し読むようにするとさらに良いです。特に技術形のドキュメントを最初読むことに苦労する方が多いですが、別に一回で理解する必要もないので繰り返し気が向いた時に訪れて目を通すようにしましょう。&lt;/p&gt;
&lt;h4&gt;勉強時間を確保するための工夫が十分でない&lt;/h4&gt;
&lt;p&gt;日々メンタリングをしていると業務が忙しくて・・・という形で立ち止まっている方をしばしばお見かけします。&lt;/p&gt;
&lt;p&gt;今やっている仕事が大事なのはわかりますが、自分のキャリアを考えて勉強しているのであれば、優先的に時間を確保すべきで、仕事が忙しいというのはあまり理由にならないのかと思います。
なにも残業した後でもしっかり勉強しろみたいな筋肉質な話をしているのではなく、&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;忙しくない部署に移動できないか交渉してみる&lt;/li&gt;
&lt;li&gt;忙しくない会社に転職する&lt;/li&gt;
&lt;li&gt;残業はしないと割り切って勉強の時間を確保する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;みたいな形でキャリアの優先度を第一に考えて勉強の時間を確保した方が良いかと思います。&lt;/p&gt;
&lt;p&gt;どこかで&lt;a href=&quot;https://www.franklinplanner.co.jp/c_fpl/selfstudy/ss-20.html&quot;&gt;壺に大きい石からものを詰めていく話&lt;/a&gt;を聞いたことがある方もいるかと思いますが、やはり人間1日に集中できる時間は決まっているのでそれが本業で全て一杯になってしまうのは避けるべきです。(本業は適当で良いとは言っておらず、転職のための勉強が第一なのでそれに従って周りの環境を整えようという話です。)
その他にも、隙間時間で勉強するテーマをメモしておいて、移動時間にググって理解する。などなど工夫を行うことで少しづつでも勉強の時間を確保できるかと思うので優先度などを考えながらうまく時間を融通できるようにしましょう。&lt;/p&gt;
&lt;h4&gt;ポートフォリオの完成に執着する&lt;/h4&gt;
&lt;p&gt;学習の後の方でポートフォリオの完成に執着してしまって就活が疎かになってしまう方がいるので気をつけましょう。
コアな機能ができていないなどであればそれは終わらせる必要がありますが、実態として使えるようになっているのであればあまり完成に執着せずに
先に企業に面談にいくなど対外的なフィードバックをもらえる機会を優先しましょう。&lt;/p&gt;
&lt;p&gt;自分として納得できるところまで作り込みたいのはわかりますが、それよりも先にREADME.mdやレジュメなどの情報を充実された方が時間効率がよかったりします。
現場で得られる経験の方が独学で得られる経験よりはるかに大きいのであまり完成に執着せず目標達成のためにより良い選択肢を選び取れると良いでしょう。&lt;/p&gt;
&lt;h4&gt;慣れた方法を続ける結果効率の悪い方法で学習を続けてしまう&lt;/h4&gt;
&lt;p&gt;学習とは慣れた方法を捨ててより良い効率の良い方法を身につけるということでもあるので、より効率の良い方法を探し続けて改善を入れられるようにしましょう。
マウス操作が多かったり、コマンドラインでtabでの補完、↑での履歴を使用する。エディタの分割を使う、ファイルの全検索を使ってコードリーディングの効率を高める、ショートカットを覚えるなど初心者の方ができる工夫というのは数がしれないのでこれを日々身につける癖をつけましょう。&lt;/p&gt;
&lt;h4&gt;学習した内容を書いて覚える/ノートにまとめる&lt;/h4&gt;
&lt;p&gt;受験のときの学習の癖なのか、学習内容を書いて覚えたりノートに手書きでまとめたりする方がいますが、個人的にはこちらあまりおすすめできません。
そもそもネット上の情報だったり書籍というのはそういった作業をしないで良いように情報をまとめたり検索性能を高めたりしているので、
学習者の方がまとめるより質が高くてよくまとまっているものがネット上にあるはずです。&lt;/p&gt;
&lt;p&gt;何かわからなかったら自分のノートをみるなどするよりは少しでも多くググってサイトの記事を読んで効率的に情報収集できるようにすると良いでしょう。
ノートに情報をまとめるよりは、その情報に素早くアクセスできるようにリンク集を作っておくと良いと思います。
僕は個人のSlackスペースを作ってそこにペタペタリンクを貼るようにしています。&lt;/p&gt;
&lt;p&gt;ノートをまとめるにしてもPCのツールを使ってまとめるようにした方がPCスキル自体の練習にもなるしGithubのリポジトリを使ってまとめたりすればGithubの使い方にも慣れるので、業界でよく使われるツールを調べて積極的に使うと良いでしょう。&lt;/p&gt;
&lt;h4&gt;情報収集の習慣をつけない&lt;/h4&gt;
&lt;p&gt;再三言及はしているのですが、プログラミングのための知識は膨大なのでなるべく技術的な情報のアンテナはしっかり立てておくようにしましょう。
経験者と未経験者ではこれらの知識量に圧倒的な差があるので日常的な情報収集の癖をつけられると良いです。実際に触ったことはないけど聞いたことのある項目を増やせると業界の全体像も掴みやすくなるのでTwitter, Qiita, Zennなど技術的な情報を得られるサイトから常に情報収集を心がけられると良いです。&lt;/p&gt;
&lt;h4&gt;コードを動かさない、コマンドを叩かない&lt;/h4&gt;
&lt;p&gt;いくら概要を理解していてもコマンドを思い通りに動かせない、コードを動かせないうちにはエンジニアへの就職は難しいでしょう。&lt;/p&gt;
&lt;p&gt;これを解消するためには、
実際に&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;コードを動かす&lt;/li&gt;
&lt;li&gt;思い通りに動かない&lt;/li&gt;
&lt;li&gt;原因を特定する&lt;/li&gt;
&lt;li&gt;修正する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;というサイクルを高速で回せるように練習する必要があるので、実際にコード・コマンドを動かす癖はつけられると良いでしょう。
英会話を上達させたいのに、実際に英語を話すことなく文法ばかり学習しても英会話は上達しないようにプログラミングをも同じなので、
なるべく遠回りせずにダイレクトに学習を進められると良いでしょう。&lt;/p&gt;
&lt;h4&gt;「なぜか動かない」など原因特定が甘い・疎かにしてしまう&lt;/h4&gt;
&lt;p&gt;初学者のうちは経験が少なくて難しいのですが、デバッグ（原因特定・修正）の能力というのはコーディングの早さに直結してくるので、
ちゃんとエラーメッセージを読んで理解したり、プリントデバッグを使って問題の起きている箇所を特定したりして独力でデバッグを行えるように
意識して練習しましょう。&lt;/p&gt;
&lt;p&gt;ここができないといつまでも経験者に聞かないと実装が進まないのでプリントデバッグやステップ実行・エラーメッセージの読み方などを
学んで実行・原因特定・修正のサイクルを高速に回せるようになりましょう。&lt;/p&gt;
&lt;h2 id=&quot;あとがき&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%82%E3%81%A8%E3%81%8C%E3%81%8D&quot; aria-label=&quot;あとがき permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;あとがき&lt;/h2&gt;
&lt;p&gt;以上、ここまでプログラミング学習の計画の立て方をつらつらと説明しました。&lt;/p&gt;
&lt;p&gt;メンタリングを行う中で結構就職までの計画の話をしたりするのですが、日々の学習に追われて全体の計画とか目標を
見失ってしまっているなー、もったいないなーというのを感じたので、今回こちら思い切って書かせていただきました。&lt;/p&gt;
&lt;p&gt;個人的に中長期定期な計画を立てる時にはまず目標から逆算してマクロな計画を作った上で、また別口でミクロな視点から
実際に必要な時間をつみあげて両者を突き合わせて調整するというのが一番精度が高いのかななんて思っています。&lt;/p&gt;
&lt;p&gt;ここではマクロが6ヶ月の全体計画でミクロが一日の中で何をどれだけ勉強するのか？というところになります。
メンティーさんの話を聞いているとこのどちらかの見積もりが甘かったりなかったりするのでこれが両方できるだけでも、
うまくモチベーションを保ちながら勉強を進めていけるのかなと思っています。やはり一日単位で目標がなかったりするとどうしても
日々の忙しさに追われてなぁなぁになってしまったりするので学習を始める前にしっかりと計画を立てることをおすすめしています。&lt;/p&gt;
&lt;p&gt;また、全体の計画を聞いてみるとバッファがほとんどなかったりするものもあるので、なるべく前倒しで終えられるようにできると
良いと思います。マイクロソフトの元開発者で起業家の中島智さんの&lt;a href=&quot;https://www.amazon.co.jp/%E3%81%AA%E3%81%9C%E3%80%81%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AE%E4%BB%95%E4%BA%8B%E3%81%AF%E7%B5%82%E3%82%8F%E3%82%89%E3%81%AA%E3%81%84%E3%81%AE%E3%81%8B-%E3%82%B9%E3%83%94%E3%83%BC%E3%83%89%E3%81%AF%E6%9C%80%E5%BC%B7%E3%81%AE%E6%AD%A6%E5%99%A8%E3%81%A7%E3%81%82%E3%82%8B-%E4%B8%AD%E5%B3%B6%E8%81%A1-ebook/dp/B01GPCKJWK/ref=sr_1_1&quot;&gt;「なぜあなたの仕事は終わらないのか？」&lt;/a&gt;という著書にロケットスタート時間術
という仕事術が紹介されています。もしも、10日で仕上げるタスクであれば、2割に当たる2日間で8割終わらせるつもりで取り掛かり、
この2割の段階で、全体の6割以上終わっていなければ、スケジュール変更を検討する。というようなものです。&lt;/p&gt;
&lt;p&gt;ここまで徹底する必要があるかはわかりませんが、締め切り当日にゴールを設定すると不測の事態や新しく見つかったタスクに対応できないので
十分なバッファを持たせて計画を立てる必要はあるでしょう。プログラミング学習でも仕事の繁忙と重なった、体調を崩した、予想よりも理解に時間がかかった
環境構築に詰まったなどは十分にありうるのでこれを念頭に計画を立てましょう。&lt;/p&gt;
&lt;p&gt;プログラミング学習は新たにチャレンジすることも多いので、不確実性が高く簡単ではないタスクになると思いますが、
こういったところを抑えながらコツコツと積み重ねていけることができれば必ず達成できるものかとも思います。&lt;/p&gt;
&lt;p&gt;ぜひ、これから学習を始める方々、学習中の方などに参考にしていただけると嬉しいです。ありがとうございました。&lt;/p&gt;</content:encoded><thumbnailUrl>https://statics.ver-1-0.xyz/uploads/2021/12/20211221_scheduling-for-programming/thumbnail.png</thumbnailUrl><language>ja</language></item><item><title><![CDATA[Go言語でのデータ操作+構造体、関数のチートシート]]></title><description><![CDATA[個人的にプログラミング言語を学ぶ時には、それぞれのデータ形式の操作方法 + クラス、関数などの文法を
おさえておくと、何かしらのアプリケーションを書き始める時に役立つと思っています。 と言った所でGo…]]></description><link>https://ver-1-0.net/blog/2021/04/18/go-data-opeartion-cheetsheet</link><guid isPermaLink="false">https://ver-1-0.net/blog/2021/04/18/go-data-opeartion-cheetsheet</guid><pubDate>Sun, 18 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;個人的にプログラミング言語を学ぶ時には、それぞれのデータ形式の操作方法 + クラス、関数などの文法を
おさえておくと、何かしらのアプリケーションを書き始める時に役立つと思っています。&lt;/p&gt;
&lt;p&gt;と言った所でGo言語でそれらの情報をまとめてみました。&lt;/p&gt;
&lt;p&gt;どのプログラミング言語にも大体、文字列、数値、配列、マップのようなデータ型が存在するので、
それらについてプログラムを書く上でよく使う書き方を勉強していくと効率が良いです。
さらに、プラスアルファでクラスや関数などの文法もおさえて置けるとよいです。&lt;/p&gt;
&lt;p&gt;そして、それぞれのデータ形式のCRUDの方法を意識しながら学習して行けるとうまく整理して学習できるかと思います。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;CREATE (初期化方法)&lt;/li&gt;
&lt;li&gt;UPDATE (置換、部分文字列の取り出し、インクリメントなど)&lt;/li&gt;
&lt;li&gt;READ (要素の列挙、型変換など)&lt;/li&gt;
&lt;li&gt;DELETE (キーの削除、要素の削除など)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;というわけで数値から順番にみていきます。&lt;/p&gt;
&lt;h2 id=&quot;数値&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%95%B0%E5%80%A4&quot; aria-label=&quot;数値 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;数値&lt;/h2&gt;
&lt;p&gt;数値、文字列間の変換は頻出も頻出ですが、桁数指定、0埋めなども結構使うのでそれらをまとめました。&lt;/p&gt;
&lt;h3 id=&quot;文字列への変換&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%96%87%E5%AD%97%E5%88%97%E3%81%B8%E3%81%AE%E5%A4%89%E6%8F%9B&quot; aria-label=&quot;文字列への変換 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;文字列への変換&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;str &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; strconv&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Itoa&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;123&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;str&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; &quot;123&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;文字コードからStringへの変換&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8B%E3%82%89String%E3%81%B8%E3%81%AE%E5%A4%89%E6%8F%9B&quot; aria-label=&quot;文字コードからStringへの変換 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;文字コードからStringへの変換&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;a &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;rune&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;65&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
b &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;rune&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;66&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
c &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;rune&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;67&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;a&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; b&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; c&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; A B C&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;小数点の切り上げ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%B0%8F%E6%95%B0%E7%82%B9%E3%81%AE%E5%88%87%E3%82%8A%E4%B8%8A%E3%81%92&quot; aria-label=&quot;小数点の切り上げ permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;小数点の切り上げ&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Ceil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1.1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Ceil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1.9&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; 2 2&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;小数点の切り捨て&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%B0%8F%E6%95%B0%E7%82%B9%E3%81%AE%E5%88%87%E3%82%8A%E6%8D%A8%E3%81%A6&quot; aria-label=&quot;小数点の切り捨て permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;小数点の切り捨て&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Floor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1.1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Floor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1.9&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; 1 1&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;小数点の四捨五入&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%B0%8F%E6%95%B0%E7%82%B9%E3%81%AE%E5%9B%9B%E6%8D%A8%E4%BA%94%E5%85%A5&quot; aria-label=&quot;小数点の四捨五入 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;小数点の四捨五入&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Round&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1.1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Round&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1.9&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; 1 2&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;累乗&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E7%B4%AF%E4%B9%97&quot; aria-label=&quot;累乗 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;累乗&lt;/h2&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Pow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Pow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Pow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; 2 4 8&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;0埋め&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#0%E5%9F%8B%E3%82%81&quot; aria-label=&quot;0埋め permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;0埋め&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;str &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Sprintf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;%05d&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;123&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;str&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; 00123&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;桁数指定切り上げ切り捨て四捨五入&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%A1%81%E6%95%B0%E6%8C%87%E5%AE%9A%E5%88%87%E3%82%8A%E4%B8%8A%E3%81%92%E5%88%87%E3%82%8A%E6%8D%A8%E3%81%A6%E5%9B%9B%E6%8D%A8%E4%BA%94%E5%85%A5&quot; aria-label=&quot;桁数指定切り上げ切り捨て四捨五入 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;桁数指定切り上げ/切り捨て/四捨五入&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// 2桁で切り上げ/切り捨て/四捨五入&lt;/span&gt;
x &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;12.3456&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Floor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;x&lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Round&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;x&lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Ceil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;x&lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; 12.34 12.35 12.35&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;StringByte&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#StringByte&quot; aria-label=&quot;StringByte permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;String/Byte&lt;/h2&gt;
&lt;p&gt;おそらくコードを書いていて最も使うデータ型である string ですが、
小文字大文字変換、文字列の切り出し、配列への変換などがあるのでそれらを中止にまとめました。&lt;/p&gt;
&lt;h3 id=&quot;Stringから文字コード&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#String%E3%81%8B%E3%82%89%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89&quot; aria-label=&quot;Stringから文字コード permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Stringから文字コード&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;rune&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;A&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// 65&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;rune&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;B&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// 66&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;rune&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;C&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// 67&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;StringからByte配列&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#String%E3%81%8B%E3%82%89Byte%E9%85%8D%E5%88%97&quot; aria-label=&quot;StringからByte配列 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;StringからByte配列&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;fuga &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;byte&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;ABC&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;fuga&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; 65 66 67&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;部分文字列の取得&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E9%83%A8%E5%88%86%E6%96%87%E5%AD%97%E5%88%97%E3%81%AE%E5%8F%96%E5%BE%97&quot; aria-label=&quot;部分文字列の取得 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;部分文字列の取得&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;fuga &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;ABC&quot;&lt;/span&gt;
firstChar &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;fuga&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;type: %T, value: %s\n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; firstChar&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; firstChar&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
partial &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; fuga&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;type: %T, value: %s\n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; partial&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; partial&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; type: string, value: A&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//    type: string, value: AB&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;小文字に変換&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%B0%8F%E6%96%87%E5%AD%97%E3%81%AB%E5%A4%89%E6%8F%9B&quot; aria-label=&quot;小文字に変換 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;小文字に変換&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;str &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;ABC&quot;&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;strings&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;ToLower&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;str&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; &quot;abc&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;大文字に変換&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%A4%A7%E6%96%87%E5%AD%97%E3%81%AB%E5%A4%89%E6%8F%9B&quot; aria-label=&quot;大文字に変換 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;大文字に変換&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;str &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;abc&quot;&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;strings&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;ToUpper&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;str&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; &quot;ABC&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;スライスに変換&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%B9%E3%83%A9%E3%82%A4%E3%82%B9%E3%81%AB%E5%A4%89%E6%8F%9B&quot; aria-label=&quot;スライスに変換 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;スライスに変換&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;str &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;apple,banana,pineapple&quot;&lt;/span&gt;
split &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; strings&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;str&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;,&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;type: %T, value: %s&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; split&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; split&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; type: []string, value: [apple banana pineapple]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;リピート&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%AA%E3%83%94%E3%83%BC%E3%83%88&quot; aria-label=&quot;リピート permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;リピート&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;str &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; strings&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Repeat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;abc&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;str&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; abcabcabc&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;スライス配列&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%B9%E3%83%A9%E3%82%A4%E3%82%B9%E9%85%8D%E5%88%97&quot; aria-label=&quot;スライス配列 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;スライス・配列&lt;/h2&gt;
&lt;p&gt;スライスというデータ型がgoの特徴的な型だとは思いますが、RubyやJavaScriptから来た物からすると、filterやmapに相当するものが
組み込みであるのか気になって調べたのですが、どうやらないらしくそこはちょっと欲しいなという気持ちになりました。
こういった所もGoらしいと思いながら色々と調べてまとめています。&lt;/p&gt;
&lt;h3 id=&quot;配列の初期化&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E9%85%8D%E5%88%97%E3%81%AE%E5%88%9D%E6%9C%9F%E5%8C%96&quot; aria-label=&quot;配列の初期化 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;配列の初期化&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; arr1&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;
arr1&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Apple&quot;&lt;/span&gt;
arr1&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Google&quot;&lt;/span&gt;
arr1&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Facebook&quot;&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;type: %T, value: %v \n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; arr1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; arr1&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// type: [3]string, value: [Apple Google Facebook] &lt;/span&gt;

arr2 &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
arr3 &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;bool&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;type: %T, value: %v \n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; arr2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; arr2&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// type: [3]int, value: [1 2 3] &lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;type: %T, value: %v \n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; arr3&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; arr3&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// type: [2]bool, value: [true false] &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;スライスの初期化&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%B9%E3%83%A9%E3%82%A4%E3%82%B9%E3%81%AE%E5%88%9D%E6%9C%9F%E5%8C%96&quot; aria-label=&quot;スライスの初期化 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;スライスの初期化&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;s1 &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
s2 &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
s3 &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;a&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;b&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;c&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;type: %T, value: %v \n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; s1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; s1&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// =&gt; type: []int, value: [] &lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;type: %T, value: %v \n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; s2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; s2&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// =&gt; type: []int, value: [1 2 3] &lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;type: %T, value: %v \n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; s3&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; s3&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// =&gt; type: []string, value: [a b c] &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;要素数でループ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E8%A6%81%E7%B4%A0%E6%95%B0%E3%81%A7%E3%83%AB%E3%83%BC%E3%83%97&quot; aria-label=&quot;要素数でループ permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;要素数でループ&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;s1 &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; i&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; v &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;range&lt;/span&gt; s1 &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; v&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; 0 1&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//    1 2&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//    2 3&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;Find&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#Find&quot; aria-label=&quot;Find permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Find&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;Find&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;list &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; target &lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; i&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; v &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;range&lt;/span&gt; list &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; v &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; target &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; v&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; i
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

res&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;Find&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;a&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;b&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;c&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;c&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;%s is missing in the list&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;c&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;res&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; i&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; c 2&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;Sample&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#Sample&quot; aria-label=&quot;Sample permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Sample&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;list &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
index &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; rand&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Intn&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;list&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;list&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;index&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;ソート&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%BD%E3%83%BC%E3%83%88&quot; aria-label=&quot;ソート permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;ソート&lt;/h3&gt;
&lt;p&gt;文字列や数値のソートであればサクッと書けるのですが、構造体やmapをソートするには、インターフェースの実装が必要そうなのでまた別の機会に書きます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;i &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
sort&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Sort&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;sort&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;IntSlice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// [1 3 4]&lt;/span&gt;

s &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;def&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;aaa&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;abc&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
sort&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Strings&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;s&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;s&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// [aaa abc def]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;部分を取り出し&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E9%83%A8%E5%88%86%E3%82%92%E5%8F%96%E3%82%8A%E5%87%BA%E3%81%97&quot; aria-label=&quot;部分を取り出し permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;部分を取り出し&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;hoge &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
first &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;
last &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;hoge&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; hoge&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;first&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;last&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; [4 5] [2 3]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;結合&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E7%B5%90%E5%90%88&quot; aria-label=&quot;結合 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;結合&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;a1 &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
a2 &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
a3 &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;a1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; a2&lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;a3&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; [1 2 3 4 5 6]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4&gt;Join&lt;/h4&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;str &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; strings&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Join&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;a&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;b&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;c&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;,&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;str&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;map&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#map&quot; aria-label=&quot;map permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;map&lt;/h2&gt;
&lt;h3 id=&quot;初期化&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%88%9D%E6%9C%9F%E5%8C%96&quot; aria-label=&quot;初期化 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;初期化&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;m &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;make&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; 
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;type: %T, value: %v&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; m&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; type: map[string]int, value: map[] &lt;/span&gt;

m2 &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	A&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	B&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	C&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;type: %T, value: %v&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; m2&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; mtype: map[string]int, value: map[A:1 B:2 C:3] 2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;KeyValue-でループ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#KeyValue-%E3%81%A7%E3%83%AB%E3%83%BC%E3%83%97&quot; aria-label=&quot;KeyValue でループ permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Key/Value でループ&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;m &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;A&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;B&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;C&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; k&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; v &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;range&lt;/span&gt; m &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;key: %s, value: %d \n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; k&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; v&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; key: A, value: 1 &lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//    key: B, value: 2 &lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//    key: C, value: 3 &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;要素の削除&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E8%A6%81%E7%B4%A0%E3%81%AE%E5%89%8A%E9%99%A4&quot; aria-label=&quot;要素の削除 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;要素の削除&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;m &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;A&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;B&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;C&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token function&quot;&gt;delete&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;m&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;A&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;delete&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;m&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;B&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;key: %V, value: %v \n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; m&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; m&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; key: C, value: 3 &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;要素があるか&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E8%A6%81%E7%B4%A0%E3%81%8C%E3%81%82%E3%82%8B%E3%81%8B&quot; aria-label=&quot;要素があるか permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;要素があるか&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;m &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token string&quot;&gt;&quot;A&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token string&quot;&gt;&quot;B&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token string&quot;&gt;&quot;C&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; hasAKey &lt;span class=&quot;token builtin&quot;&gt;bool&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; ok &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; m&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;A&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; ok &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	hasAKey &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; hasDKey &lt;span class=&quot;token builtin&quot;&gt;bool&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; ok &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; m&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;D&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; ok &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	hasDKey &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;hasAKey&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; hasDKey&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; true false &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;日付&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%97%A5%E4%BB%98&quot; aria-label=&quot;日付 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;日付&lt;/h2&gt;
&lt;h3 id=&quot;初期化-1&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%88%9D%E6%9C%9F%E5%8C%96-1&quot; aria-label=&quot;初期化 1 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;初期化&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;t &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2001&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;59&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;59&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;UTC&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;現在日付&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E7%8F%BE%E5%9C%A8%E6%97%A5%E4%BB%98&quot; aria-label=&quot;現在日付 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;現在日付&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;t &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Now&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
	t&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;            &lt;span class=&quot;token comment&quot;&gt;// 2009-11-10 23:00:00 +0000 UTC m=+0.000000001&lt;/span&gt;
	t&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Year&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;     &lt;span class=&quot;token comment&quot;&gt;// 2009&lt;/span&gt;
	t&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Month&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;    &lt;span class=&quot;token comment&quot;&gt;// November&lt;/span&gt;
	t&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Day&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;      &lt;span class=&quot;token comment&quot;&gt;// 10&lt;/span&gt;
	t&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Hour&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;     &lt;span class=&quot;token comment&quot;&gt;// 23&lt;/span&gt;
	t&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Minute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;   &lt;span class=&quot;token comment&quot;&gt;// 0&lt;/span&gt;
	t&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Second&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;   &lt;span class=&quot;token comment&quot;&gt;// 0&lt;/span&gt;
	t&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Weekday&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;  &lt;span class=&quot;token comment&quot;&gt;// Tuesday&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;比較&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%AF%94%E8%BC%83&quot; aria-label=&quot;比較 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;比較&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;past &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Now&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Add&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;Second&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
now &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Now&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; past&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;After&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;now&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Past is after now&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; past&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Before&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;now&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Past is before now&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; now&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Before&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;now&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Now is before now&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; now&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;After&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;now&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Now is after now&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; Past is before now.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;加減&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%8A%A0%E6%B8%9B&quot; aria-label=&quot;加減 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;加減&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;date &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2021&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;UTC&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// 2021-04-01 08:00:00 +0000 UTC&lt;/span&gt;

t1 &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; date&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Add&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Duration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;Second&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;t1&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;   &lt;span class=&quot;token comment&quot;&gt;// 2021-04-01 08:00:05 +0000 UTC&lt;/span&gt;
t2 &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; date&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Add&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Duration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;Hour&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;t2&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;   &lt;span class=&quot;token comment&quot;&gt;// 2021-04-01 13:00:00 +0000 UTC&lt;/span&gt;

t3 &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; date&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Add&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Duration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;Second&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;t3&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;   &lt;span class=&quot;token comment&quot;&gt;// 2021-04-01 07:59:55 +0000 UTC&lt;/span&gt;
t4 &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; date&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Add&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Duration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;Hour&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;t4&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;   &lt;span class=&quot;token comment&quot;&gt;// 2021-04-01 03:00:00 +0000 UTC&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;フォーマット&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88&quot; aria-label=&quot;フォーマット permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;フォーマット&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://qiita.com/ruiu/items/5936b4c3bd6eb487c182&quot;&gt;https://qiita.com/ruiu/items/5936b4c3bd6eb487c182&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;date &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2021&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;UTC&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; layout &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;2006-01-02 15:04:05 Mon&quot;&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;date&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Format&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;layout&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// 2021-04-01 08:00:00 Mon&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;パース&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%91%E3%83%BC%E3%82%B9&quot; aria-label=&quot;パース permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;パース&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;str &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Apr 1 12:34:56 JST 2021&quot;&lt;/span&gt;
layout &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Jan 2 15:04:05 MST 2006&quot;&lt;/span&gt;
t&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;_&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Parse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;layout&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; str&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;t&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// 2021-04-01 12:34:56 +0000 JST&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;Unix-Timeへ変換&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#Unix-Time%E3%81%B8%E5%A4%89%E6%8F%9B&quot; aria-label=&quot;Unix Timeへ変換 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Unix Timeへ変換&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;t &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1970&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;UTC&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;t&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Unix&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;          &lt;span class=&quot;token comment&quot;&gt;// 0&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Now&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Unix&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// 1257894000&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;Unix-Timeから日付オブジェクトに変換&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#Unix-Time%E3%81%8B%E3%82%89%E6%97%A5%E4%BB%98%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AB%E5%A4%89%E6%8F%9B&quot; aria-label=&quot;Unix Timeから日付オブジェクトに変換 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Unix Timeから日付オブジェクトに変換&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;t &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; time&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Unix&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1234567890&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;t&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// 2009-02-13 23:31:30 +0000 UTC&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;構造体&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%A7%8B%E9%80%A0%E4%BD%93&quot; aria-label=&quot;構造体 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;構造体&lt;/h2&gt;
&lt;h3 id=&quot;初期化-2&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%88%9D%E6%9C%9F%E5%8C%96-2&quot; aria-label=&quot;初期化 2 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;初期化&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;type&lt;/span&gt; Obj &lt;span class=&quot;token keyword&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	ID &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;
	Name &lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// 宣言された構造体を初期化&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Obj&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Taro&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Obj&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;ID&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; Name&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Taro&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// newで初期化&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Obj&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// 無名構造体&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	ID   &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;
	Name &lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Taro&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;メソッド宣言&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E5%AE%A3%E8%A8%80&quot; aria-label=&quot;メソッド宣言 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;メソッド宣言&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;type&lt;/span&gt; A &lt;span class=&quot;token keyword&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	data &lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;type&lt;/span&gt; B &lt;span class=&quot;token keyword&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	data &lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// 値メソッド&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;o A&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;value &lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;data &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; value
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;o A&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;Value&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;data
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// ポインタメソッド&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;o &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;B&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;value &lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;data &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; value
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;o &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;B&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;Value&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; o&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;data
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

a &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; A&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	data&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Hoge&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

b &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; B&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	data&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Hoge&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;a&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Value&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;b&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Value&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

a&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Fuga&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
b&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Fuga&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// ポインタメソッドの方だけdataの値が書き換わる&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;a&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Value&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;b&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Value&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; Hoge&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//    Hoge&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//    Hoge&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//    Fuga&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;関数&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E9%96%A2%E6%95%B0&quot; aria-label=&quot;関数 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;関数　&lt;/h2&gt;
&lt;p&gt;GOの特徴としては、複数返り値や名前付き返り値などがユニークな所ですが、引数のデフォルト値を設定するような構文は今の所ないようです。&lt;/p&gt;
&lt;h3 id=&quot;初期化-3&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%88%9D%E6%9C%9F%E5%8C%96-3&quot; aria-label=&quot;初期化 3 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;初期化&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;
&lt;span class=&quot;token comment&quot;&gt;// 引数なし&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;Hello&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Hello&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// 引数あり&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;Hey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;msg &lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Hey, %s \n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; msg&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// 複数返り値&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;Divide&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;a &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; b &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; b &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Errorf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Zero divided&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; a &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; b&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;nil&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// 名前付き返り値&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;MaxMin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;list &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;max &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; min &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;list&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; max&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; min
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
        max &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; list&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
        min &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; list&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; item &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;range&lt;/span&gt; list &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; max &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; item &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			max &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; item
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; min &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; item &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			min &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; item
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; max&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; min
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token function&quot;&gt;Hello&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;                               &lt;span class=&quot;token comment&quot;&gt;// Hello&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;Hey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;boy&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;                            &lt;span class=&quot;token comment&quot;&gt;// Hey, boy&lt;/span&gt;

res1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; err1 &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;Divide&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;res1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; err1&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;               &lt;span class=&quot;token comment&quot;&gt;// 2 &amp;lt;nil&gt;&lt;/span&gt;
res2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; err2 &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;Divide&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;res2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; err2&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;               &lt;span class=&quot;token comment&quot;&gt;// 0 Zero divied&lt;/span&gt;

fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;MaxMin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;   &lt;span class=&quot;token comment&quot;&gt;// 3 1&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;可変長引数&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%8F%AF%E5%A4%89%E9%95%B7%E5%BC%95%E6%95%B0&quot; aria-label=&quot;可変長引数 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;可変長引数&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;sum&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;nums &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;total &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; num &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;range&lt;/span&gt; nums &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		total &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; num
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;sum&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; 15&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;無名関数&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E7%84%A1%E5%90%8D%E9%96%A2%E6%95%B0&quot; aria-label=&quot;無名関数 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;無名関数&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;hello &lt;span class=&quot;token operator&quot;&gt;:=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;name &lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Hello, %s&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; name&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;hello&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;there&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; &quot;Hello, there&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;即時関数&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%8D%B3%E6%99%82%E9%96%A2%E6%95%B0&quot; aria-label=&quot;即時関数 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;即時関数&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;name &lt;span class=&quot;token builtin&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Printf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Hello, %s&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; name&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;there&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// =&gt; &quot;Hello, there&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;高階関数&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E9%AB%98%E9%9A%8E%E9%96%A2%E6%95%B0&quot; aria-label=&quot;高階関数 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;高階関数&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;a &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;b &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; a &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; b
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// =&gt; 3&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;go&quot;&gt;&lt;pre class=&quot;language-go&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;a &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;b &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; a &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; b
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

fmt&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;Println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// =&gt; 3&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content:encoded><thumbnailUrl>https://statics.ver-1-0.xyz/uploads/tags/go.png</thumbnailUrl><language>ja</language></item><item><title><![CDATA[CodeSandboxでキーリピーティングができない問題の対処法]]></title><description><![CDATA[普段、フロントエンドのコードを書くのにCodeSandboxを使っていますが、ちょっとした問題があったので、この記事ではその解決方法をご紹介します。 問題: CodeSandboxのVimキーバインドでキーリピートが効かない 私は普段コードを書くときにvim…]]></description><link>https://ver-1-0.net/blog/2021/04/18/how-to-fix-key-repeating-problem-on-codesandbox</link><guid isPermaLink="false">https://ver-1-0.net/blog/2021/04/18/how-to-fix-key-repeating-problem-on-codesandbox</guid><pubDate>Sun, 18 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;普段、フロントエンドのコードを書くのにCodeSandboxを使っていますが、ちょっとした問題があったので、この記事ではその解決方法をご紹介します。&lt;/p&gt;
&lt;h2 id=&quot;問題-CodeSandboxのVimキーバインドでキーリピートが効かない&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%95%8F%E9%A1%8C-CodeSandbox%E3%81%AEVim%E3%82%AD%E3%83%BC%E3%83%90%E3%82%A4%E3%83%B3%E3%83%89%E3%81%A7%E3%82%AD%E3%83%BC%E3%83%AA%E3%83%94%E3%83%BC%E3%83%88%E3%81%8C%E5%8A%B9%E3%81%8B%E3%81%AA%E3%81%84&quot; aria-label=&quot;問題 CodeSandboxのVimキーバインドでキーリピートが効かない permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;問題: CodeSandboxのVimキーバインドでキーリピートが効かない&lt;/h2&gt;
&lt;p&gt;私は普段コードを書くときにvimを使っているので、ご多分にもれず、CodeSandboxでもvimのキーバインドを使っています。&lt;/p&gt;
&lt;p&gt;Vimのキーバインドを設定すると、キーリピーティングが効かなくなり、&lt;code class=&quot;language-text&quot;&gt;j&lt;/code&gt;キーを押してもカーソルが下に移動せず、キーを連打しないと移動しなくなってしまい、非常に困っていました。&lt;/p&gt;
&lt;h2 id=&quot;解決策&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E8%A7%A3%E6%B1%BA%E7%AD%96&quot; aria-label=&quot;解決策 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;解決策&lt;/h2&gt;
&lt;p&gt;ターミナルで下記コマンドを実行してください。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;defaults &lt;span class=&quot;token function&quot;&gt;write&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-g&lt;/span&gt; ApplePressAndHoldEnabled &lt;span class=&quot;token parameter variable&quot;&gt;-bool&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;現在のCodeSandboxはVSCodeの設定を継承しているようで、VSCodeでVim Keybindingを使いたい場合、ターミナルでMacの設定を変更する必要があるのですが、CodeSandboxではターミナルを使う条件が限定されているようで、それができません。&lt;/p&gt;
&lt;p&gt;VSCodeの設定は&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=vscodevim.vim&quot;&gt;こちら&lt;/a&gt;に書いてあります。&lt;/p&gt;
&lt;p&gt;Macには、キーを押したときの動作をアプリケーションごとに設定する仕組みがあるようですが、キーリピートを有効にするには、この設定&lt;code class=&quot;language-text&quot;&gt;ApplePressAndHoldEnabled&lt;/code&gt;を無効にする必要があります。&lt;/p&gt;
&lt;p&gt;VSCodeでは、ローカルターミナルでコマンドを実行することで、この設定を無効にすることができるのですが、CodeSandboxでは同じことができなかったので、一度、グローバル設定の&lt;code class=&quot;language-text&quot;&gt;ApplePressAndHoldEnabled&lt;/code&gt;をオフにしています。
（反映にはコンピュータの再起動が必要です。）&lt;/p&gt;
&lt;p&gt;何か問題があれば元に戻せばいいので、ワークアラウンドとしてグローバル設定をオフにしました。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;defaults &lt;span class=&quot;token function&quot;&gt;write&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-g&lt;/span&gt; ApplePressAndHoldEnabled &lt;span class=&quot;token parameter variable&quot;&gt;-bool&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Chromeを対象に範囲を限定して設定してみてもうまくいかなかったので、過不足なく動くようにするにはう少し追加の設定が必要なのかと思います。&lt;/p&gt;
&lt;p&gt;いざとなれば戻せるのであまり問題にならないと思っていますが、グローバルな設定を変更することになりますので、注意して使用していただければと思います。&lt;/p&gt;</content:encoded><thumbnailUrl>https://statics.ver-1-0.xyz/uploads/2021/04/20210418_how-to-fix-key-repeating-problem-on-codesandbox/thumbnail.png</thumbnailUrl><language>ja</language></item><item><title><![CDATA[ブログをリニューアルするついでにGatsby3に上げたので振り返り]]></title><description><![CDATA[ここしばらく就活をしていてバタバタしていたのですが、無事オファーを頂き仕事も開始して落ち着いて来たので、
そろそろ…]]></description><link>https://ver-1-0.net/blog/2021/04/16/renewal-blog</link><guid isPermaLink="false">https://ver-1-0.net/blog/2021/04/16/renewal-blog</guid><pubDate>Fri, 16 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;ここしばらく就活をしていてバタバタしていたのですが、無事オファーを頂き仕事も開始して落ち着いて来たので、
そろそろ2年ほど前に改築したブログをまたリニューアルしたいということでブログをリニューアルしました。&lt;/p&gt;
&lt;p&gt;なので、そのあたりをまとめて書いておこうかと思います。&lt;/p&gt;
&lt;div class=&quot;related-post&quot;&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://ver-1-0.net/2021/04/15/started-to-work-in-tronto&quot;&gt;トロントの会社でフルタイムのFull Stack Developerとして働き始めました。&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id=&quot;リニューアルの経緯&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%AA%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%A2%E3%83%AB%E3%81%AE%E7%B5%8C%E7%B7%AF&quot; aria-label=&quot;リニューアルの経緯 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;リニューアルの経緯&lt;/h2&gt;
&lt;p&gt;デザインの変更がメインでスタック的にはほとんどNetlify+Gatsbyで変わりはないのですが、しばらく放置していたライブリ郡が古くなり、アップデートして欲しそうな目でこっちを見ていたのでアップデートをしようということになりました。&lt;/p&gt;
&lt;p&gt;ちょうど　GatsbyConf にリアルタイムで参加できて、Gatsby3.0 のリリースを見ていたのもあってちょうど良いかなということで、Gatsby3.0 へのアップデート + リデザインを行っていきました。&lt;/p&gt;
&lt;p&gt;デザインについては、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;宣伝したい物があるのでバナーみたいな物をつけたい&lt;/li&gt;
&lt;li&gt;ポートフォリオ的な位置付けでもあるので、もうちょっと印象に残るデザインが良い&lt;/li&gt;
&lt;li&gt;自分でも記事を検索することがあるので検索つけたい&lt;/li&gt;
&lt;li&gt;モバイルのPageSpeedInsightの評価があまりよくないので改善したい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;などなどの個人的な不満があったのでこれらを元に新しいデザインを決めていきました。&lt;/p&gt;
&lt;p&gt;ちなみに以前はこういった形でした。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://statics.ver-1-0.xyz/uploads/2021/04/20210416_renewal-blog/blog-v1.0.png&quot; alt=&quot;前のバージョンのブログ&quot;&gt;&lt;/p&gt;
&lt;p&gt;自分のブログはこれで大体4代目くらいになります。初代はWordpressで作っていたのですが、ページ読み込みの重さや改めてPHPを書く辛さなどなど
から2年ほど前に一年発起し、Wordpress =&gt; Gatsbyのリプレイスを行いました。
その後にカナダでの就活を見越してリデザインしたのが上の画像の頃でこれが3代目です。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ver-1-0.net/2019/01/10/blog-renewal-by-gatsby&quot;&gt;WordpressブログをGatsby+Netlifyでリプレースした話。&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;そして、今回が4代目になるといった形です。色々と話を煤前に全体の構成も書いておくとイメージつきやすいかと思うのでそちらか書いてきます。&lt;/p&gt;
&lt;h2 id=&quot;全体の構成&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%85%A8%E4%BD%93%E3%81%AE%E6%A7%8B%E6%88%90&quot; aria-label=&quot;全体の構成 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;全体の構成&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://statics.ver-1-0.xyz/uploads/2021/04/20210416_renewal-blog/infra-sturcture.png&quot; alt=&quot;インフラ構成&quot;&gt;&lt;/p&gt;
&lt;p&gt;Netlifyに移行した時からこちらのような構成だったので構成自体には特に変わりはありません。&lt;/p&gt;
&lt;p&gt;ざっくりとした図ではあるのですが、Gatsbyで作成したサイトをNetlifyでホストしているというよくある構成になっています。&lt;/p&gt;
&lt;p&gt;Gatsbyはビルド時に &lt;code class=&quot;language-text&quot;&gt;gatsby-image&lt;/code&gt; や &lt;code class=&quot;language-text&quot;&gt;gatsby-image-plugin&lt;/code&gt; などを使っていると画像の加工処理が入ってしまって重いので画像は、
実際に公開用の環境にデプロイを行うときだけビルドするようにしており、ローカルで &lt;code class=&quot;language-text&quot;&gt;yarn start&lt;/code&gt; などで開発を行うときは直接URLで画像をとるようにして、
Gatsbyの画像処理系のコンポーネントは介さないようにしています。&lt;/p&gt;
&lt;p&gt;サイトとしてそれぞれの記事(全部で100本くらい）にサムネイルが設定されておりそれらを処理するので、それらの画像を処理してから開発用のサーバを立てるというのが
1, 2 分程度かかるのでローカルでは画像の処理を行わないようにして、開発体験があまり毀損されないようにしています。
2代目へのリニューアルをした時に決定したことなので、Gatsby3 でこのあたりは改善されているのかもしれません。
今回はリニューアルが主眼な作業だったのでそちらはひとまず置いておいて上記に書いたような環境で開発を進めています。&lt;/p&gt;
&lt;p&gt;あとは、2代目のリニューアル当初はNetlifyの前にCloudflareを噛ませていたりしたのですが、当時はCloudflareの所で通信に失敗してサイトに不通になるみたいなのが、
少なくない頻度であったのと設定周り色々と面倒なのでNetlifyに直接通信するようにして静的ファイルについてのみCloudflareを噛ませるようにしました。&lt;/p&gt;
&lt;p&gt;ちなみに、ブログ中でも記事中の画像など完璧にGatsbyで処理しきれない物があるのでそれらは、直接Cloudflareの画像にアクセスするように設定しています。&lt;/p&gt;
&lt;p&gt;そのほか、図にはないですが記事の人気順をとるためにGoogle AnalyticsからPVを取得したり、今回追加されたAlgoriaなども使用しています。&lt;/p&gt;
&lt;h2 id=&quot;やったこと&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%84%E3%81%A3%E3%81%9F%E3%81%93%E3%81%A8&quot; aria-label=&quot;やったこと permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;やったこと&lt;/h2&gt;
&lt;p&gt;下記がリニューアルに当たってやったことです。&lt;/p&gt;
&lt;h3 id=&quot;技術的な変更点&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%8A%80%E8%A1%93%E7%9A%84%E3%81%AA%E5%A4%89%E6%9B%B4%E7%82%B9&quot; aria-label=&quot;技術的な変更点 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;技術的な変更点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Gatsby3へのアップデート&lt;/li&gt;
&lt;li&gt;TypeScript化&lt;/li&gt;
&lt;li&gt;Algoriaの導入&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;UI的な変更点&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#UI%E7%9A%84%E3%81%AA%E5%A4%89%E6%9B%B4%E7%82%B9&quot; aria-label=&quot;UI的な変更点 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;UI的な変更点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;全体的なレイアウトやコンセプトなど&lt;/li&gt;
&lt;li&gt;検索モーダルの追加&lt;/li&gt;
&lt;li&gt;モバイルトップの表示改善&lt;/li&gt;
&lt;li&gt;コンソールを使った記事フィルタ&lt;/li&gt;
&lt;li&gt;記事中の目次追加&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以降ではこれらについて一つずつまとめを書いていきます。&lt;/p&gt;
&lt;h2 id=&quot;技術的な変更点-1&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%8A%80%E8%A1%93%E7%9A%84%E3%81%AA%E5%A4%89%E6%9B%B4%E7%82%B9-1&quot; aria-label=&quot;技術的な変更点 1 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;技術的な変更点&lt;/h2&gt;
&lt;h3 id=&quot;Gatsby3へのアップデート&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#Gatsby3%E3%81%B8%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88&quot; aria-label=&quot;Gatsby3へのアップデート permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Gatsby3へのアップデート&lt;/h3&gt;
&lt;p&gt;上にも少し書きましたが、元々Gatsby2.xで作られていたのでGatsby本体をアップデートしました。
元々 2.24.60 だった物を 3.1.2 に上げてそのほかバージョンが古くなっていたライブラリも一緒にアップデートしました。&lt;/p&gt;
&lt;p&gt;最新のバージョン出ないライブラリがほとんどだったので、　｀ncu` を使って雑にアップデートをして動作確認してOKという形でした。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/raineorshine/npm-check-updates&quot;&gt;raineorshine/npm-check-updates&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;console&quot;&gt;&lt;pre class=&quot;language-console&quot;&gt;&lt;code class=&quot;language-console&quot;&gt;% ncu

   ╭──────────────────────────────────────────────╮
   │                                              │
   │      Update available 11.1.1 → 11.3.0        │
   │   Run npm i -g npm-check-updates to update   │
   │                                              │
   ╰──────────────────────────────────────────────╯

Checking /Users/admin/Projects/Private/blog/package.json
[====================] 45/45 100%

 algoliasearch                              ^4.8.6  →   ^4.9.0     
 i18next                                   ^19.9.2  →  ^20.2.1     
 react                                     ^17.0.1  →  ^17.0.2     
 react-dom                                 ^17.0.1  →  ^17.0.2     
 @emotion/styled                           ^11.1.5  →  ^11.3.0     
 @types/react-helmet                        ^6.1.0  →   ^6.1.1     
 babel-preset-gatsby                        ^1.0.0  →   ^1.3.0     
 gatsby                                     ^3.1.2  →   ^3.3.0     
 gatsby-plugin-algolia                     ^0.17.0  →  ^0.19.0     
 gatsby-plugin-canonical-urls               ^3.0.0  →   ^3.3.0     
 gatsby-plugin-emotion                      ^6.1.0  →   ^6.3.0     
 gatsby-plugin-feed                         ^3.0.0  →   ^3.3.0     
 gatsby-plugin-google-analytics             ^3.0.0  →   ^3.3.0     
 gatsby-plugin-image                        ^1.0.1  →   ^1.3.0     
 gatsby-plugin-netlify                      ^3.0.0  →   ^3.3.0     
 gatsby-plugin-react-helmet                 ^4.0.0  →   ^4.3.0     
 gatsby-plugin-sharp                        ^3.0.1  →   ^3.3.0     
 gatsby-plugin-sitemap                      ^3.0.0  →   ^3.3.0     
 gatsby-plugin-twitter                      ^3.0.0  →   ^3.3.0     
 gatsby-plugin-webpack-bundle-analyser-v2  ^1.1.21  →  ^1.1.22     
 gatsby-remark-autolink-headers             ^3.1.0  →   ^4.0.0     
 gatsby-remark-copy-linked-files            ^3.0.0  →   ^4.0.0     
 gatsby-remark-images                       ^4.0.0  →   ^5.0.0     
 gatsby-remark-prismjs                      ^4.0.0  →   ^5.0.0     
 gatsby-source-filesystem                   ^3.0.0  →   ^3.3.0     
 gatsby-transformer-remark                  ^3.0.0  →   ^4.0.0     
 gatsby-transformer-sharp                   ^3.0.0  →   ^3.3.0     
 googleapis                                ^67.1.1  →  ^71.0.0     
 typescript                                 ^4.2.3  →   ^4.2.4     

Run ncu -u to upgrade package.json&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;こういう形で &lt;code class=&quot;language-text&quot;&gt;ncu&lt;/code&gt; コマンドを叩くと package.json のライブラリの差分を表示してくれて、
全部を一気にアップデートしたいときは &lt;code class=&quot;language-text&quot;&gt;ncu -u&lt;/code&gt; とするとライブラリを自動でアップデートしてくれます。
出力結果は実際にリニューアルが終わった後に叩いた物なのですでにアップデートずみになります。&lt;/p&gt;
&lt;p&gt;３月頃にアップデートしたばかりなのに今でも結構差分ありますね。。コンソールで叩くと実施は色付きで表示されるのでもう少し見易いかと思います。&lt;/p&gt;
&lt;p&gt;ちょっと調べると &lt;code class=&quot;language-text&quot;&gt;yarn upgrade&lt;/code&gt; 系のコマンドでも同様のことができるようなのでyarnを使っていればあえてnpm-check-updatesをインストールしてみたいな形でなくても良いのかもしれません。&lt;/p&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;yarn upgrade --latest&lt;/code&gt; で問答無用で最新バージョンにアップデート（&lt;a href=&quot;https://classic.yarnpkg.com/en/docs/cli/upgrade/&quot;&gt;https://classic.yarnpkg.com/en/docs/cli/upgrade/&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;yarn upgrade-interactive&lt;/code&gt;  で対話的にライブラリの更新を確認しながらアップデートというのができるようです。(&lt;a href=&quot;https://classic.yarnpkg.com/en/docs/cli/upgrade-interactive/&quot;&gt;https://classic.yarnpkg.com/en/docs/cli/upgrade-interactive/&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.gatsbyjs.com/blog/gatsby-v3/&quot;&gt;https://www.gatsbyjs.com/blog/gatsby-v3/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Gatsby3 の変更点ですがこちらの記事によると&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ローカルでの開発スピードが 80% 改善&lt;/li&gt;
&lt;li&gt;ビルド時間の改善&lt;/li&gt;
&lt;li&gt;Web Vital, Lighthouse などのスコア向上&lt;/li&gt;
&lt;li&gt;gatsby-plugin-image のリリース&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;あたりが変更点です。&lt;/p&gt;
&lt;p&gt;ちょっとまだ試せていないのですが、開発中のビルドを行う時に差分でページのビルドや画像の加工をしてくれるようになったらしいので開発体験がずいぶん改善されたようです。
構成のパートで言及した開発中の画像加工重い問題がこれのおかげで解消されているのかもしれません。&lt;/p&gt;
&lt;p&gt;また、記事によると &lt;code class=&quot;language-text&quot;&gt;Faster build times on any service&lt;/code&gt;  とあるのでビルド時間も短縮されているようです。
これまで Gatsby Cloud のみで動いていていたインクリメンタルビルドがサービスを選ばずに動くようになったようです。
記事をみる限り、ページごとに差分でのビルドを行っているのでそれがビルド時間の短縮につながっている様です。&lt;/p&gt;
&lt;p&gt;ビルド時にAlgoriaへのインデックスの登録などを行うように変更したりしていたので、リニューアル前よりビルド時間が伸びていてあまり実感できていなかったり、
他に集中するために開発時のビルドの高速化具合が未確認などというちょっとあれな感じですが、デザインリニューアルをメインに対応したのでひとまずはこれらの確認ペンディングということにしています。&lt;/p&gt;
&lt;p&gt;ただ、個人的にこれら変更点を記事で見た限りだとアップデートをしたくなる変更点が多いのかなという感想を持ちました。&lt;/p&gt;
&lt;h3 id=&quot;TypeScript化&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#TypeScript%E5%8C%96&quot; aria-label=&quot;TypeScript化 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;TypeScript化&lt;/h3&gt;
&lt;p&gt;TypesScript全盛な時代になったので、ご多分にもれず自身のブログもTS化しようということでTS化を進めていきました。&lt;/p&gt;
&lt;p&gt;Gatsbyだとフロント部分は結構簡単にTS化できるので、地道にJSファイルをTSに書き換えていく作業を行いました。
TSの方はそこまで厳しい設定にはしておらずだんだんと厳しくして行けば良いのかなというくらいのスタンスで、補完が効くなどの理由でTSを使うようにしました。&lt;/p&gt;
&lt;p&gt;問題は、ページ生成する側の &lt;code class=&quot;language-text&quot;&gt;gatsby-node.js&lt;/code&gt; の部分をどうするかという所なのですが、こちらについては &lt;code class=&quot;language-text&quot;&gt;ts-node&lt;/code&gt; でTS化すると
割と手軽にできるので、&lt;code class=&quot;language-text&quot;&gt;gatsby-node.js&lt;/code&gt; に以下のように書いてそれ以降読み込むファイルをTSファイルにしています。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;typescript&quot;&gt;&lt;pre class=&quot;language-typescript&quot;&gt;&lt;code class=&quot;language-typescript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;ts-node&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;register&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  compilerOptions&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    module&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;commonjs&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    target&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;esnext&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    esModuleInterop&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    resolveJsonModule&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; path &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;path&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; gatsbyNode &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;./gatsby-node/index&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
exports&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;createPages &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; gatsbyNode&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;createPages

exports&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;onCreateNode &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; gatsbyNode&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;onCreateNode
exports&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;onCreateWebpackConfig&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  stage&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  rules&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  loaders&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  plugins&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  actions
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  actions&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setWebpackConfig&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    resolve&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      fallback&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        fs&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Gatsbyも &lt;code class=&quot;language-text&quot;&gt;2.x&lt;/code&gt; 系の頃から File System Route がサポートされているのでそこでのリファクタも考えたのですが、そこまでいくとまた大変そうだったのでそちらは使わず、createPageを実行する関数を分割してページ構成に合わせて &lt;code class=&quot;language-text&quot;&gt;gatsby-node&lt;/code&gt; ディレクトリ配下にファイルを配置するようにしました。
まだリファクタの余地ありそうですがここにはあまり時間使わずTS化する部分だけを行いました。&lt;/p&gt;
&lt;h3 id=&quot;Algoriaの導入&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#Algoria%E3%81%AE%E5%B0%8E%E5%85%A5&quot; aria-label=&quot;Algoriaの導入 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Algoriaの導入&lt;/h3&gt;
&lt;p&gt;サイトに記事が100本以上あるので、検索のために Algoria を導入しました。 Gatsby の場合は、 &lt;code class=&quot;language-text&quot;&gt;gatsby-plugin-algolia&lt;/code&gt; を使うと結構手軽に実装できるのでオススメです。
サイト内検索ができるようになったので、過去記事も漁りやすくなっているかと思いますので試してみてください。自分でも過去記事を漁る時があるので導入してみて自分自身も結構満足しています。　&lt;/p&gt;
&lt;p&gt;ちゃんとしたプロダクトに入れるとなると細かいチューニングなどなど必要かとは思うのですが、個人ブログのタイトル、記事、カテゴリなどからの全文検索であればざっくり必要なデータをインデックスに入れて引っ張ってこれます。&lt;/p&gt;
&lt;p&gt;詳細な導入方法はこちらの記事が良いと思います。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.gatsbyjs.com/docs/adding-search-with-algolia/&quot;&gt;https://www.gatsbyjs.com/docs/adding-search-with-algolia/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;簡単な流れを書いておくと&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;gatsby-plugin-aloglia&lt;/code&gt; をインストール&lt;/li&gt;
&lt;li&gt;Algoriaのアカウントを作成、API KEYやトークンを取得&lt;/li&gt;
&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;gatsby-confing.js&lt;/code&gt; に設定&lt;/li&gt;
&lt;li&gt;ビルド時に全体の記事のインデックス登録が走る。&lt;/li&gt;
&lt;li&gt;インデックス登録された物からデータを取得する場合は、&lt;code class=&quot;language-text&quot;&gt;algoriasearch&lt;/code&gt; をインストールして使用する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;という形です。インクリメンタルサーチを実装したい場合は、 &lt;code class=&quot;language-text&quot;&gt;react-instantsearch-dom&lt;/code&gt; を使ってやったりすると良いそうなのですが、
とりあえずそこの部分は自前で実装しても良さそうだったので今回は使わないようにしておきました。&lt;/p&gt;
&lt;p&gt;細かい UI 部分は後の部分で触れるのですが、インクリメンタルサーチを実装してみたりしたので、
その部分は個人的に勉強になりました。リクエスト部分をスロットルしてリクエストが飛びすぎないように調整していたりします。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;jsx&quot;&gt;&lt;pre class=&quot;language-jsx&quot;&gt;&lt;code class=&quot;language-jsx&quot;&gt;  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; onChange &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;useCallback&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;&lt;span class=&quot;token literal-property property&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token function&quot;&gt;setQuery&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;text&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;text&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; res &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;search&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;text&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

      &lt;span class=&quot;token function&quot;&gt;setResult&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;res&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;setResult&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; onChangeThrottled &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;useMemo&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;throttle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;onChange&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1500&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;onChange&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;css&lt;/span&gt;&lt;span class=&quot;token script language-javascript&quot;&gt;&lt;span class=&quot;token script-punctuation punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;styles&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;container&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token plain-text&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token class-name&quot;&gt;SearchField&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;token attr-name&quot;&gt;initialFocus&lt;/span&gt;
        &lt;span class=&quot;token attr-name&quot;&gt;containerStyle&lt;/span&gt;&lt;span class=&quot;token script language-javascript&quot;&gt;&lt;span class=&quot;token script-punctuation punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;styles&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;field&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;token attr-name&quot;&gt;onChange&lt;/span&gt;&lt;span class=&quot;token script language-javascript&quot;&gt;&lt;span class=&quot;token script-punctuation punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;onChangeThrottled&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token plain-text&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;ul&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;css&lt;/span&gt;&lt;span class=&quot;token script language-javascript&quot;&gt;&lt;span class=&quot;token script-punctuation punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;styles&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;list&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token plain-text&quot;&gt;
      ...&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;実際のスロットリングを行う関数はlodashの物を使っています。
これまでReact でこういった機能を書くことがなかったのでこの機会に実装できてよかったですね。&lt;/p&gt;
&lt;h2 id=&quot;UI的な変更点-1&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#UI%E7%9A%84%E3%81%AA%E5%A4%89%E6%9B%B4%E7%82%B9-1&quot; aria-label=&quot;UI的な変更点 1 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;UI的な変更点&lt;/h2&gt;
&lt;h3 id=&quot;全体的なレイアウトやコンセプトなど&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%85%A8%E4%BD%93%E7%9A%84%E3%81%AA%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%E3%82%84%E3%82%B3%E3%83%B3%E3%82%BB%E3%83%97%E3%83%88%E3%81%AA%E3%81%A9&quot; aria-label=&quot;全体的なレイアウトやコンセプトなど permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;全体的なレイアウトやコンセプトなど&lt;/h3&gt;
&lt;p&gt;前回のリニューアルのときは、ざっくりレイアウトだけを決めてあとはコーディングしながらデザインを考えるという割とズボラな実装の仕方をしていたのですが、
今回はちゃんと Figma でデザインを起こす所からやりました。&lt;/p&gt;
&lt;p&gt;最近、Figma がブラウザで手軽にデザインを書き起こせるので非常に重宝しています。使いこなせているまでは行かないと思うのですが、Figmaでいくつかのサイトをデザインしたので幾分慣れてきたと思います。今回のリニューアルに際しては、一度軽くデザイン作ってみたのですがあまり納得いく物にならなかったので作り直しを行いました。&lt;/p&gt;
&lt;p&gt;先に書いたようなデザインとコーディングを並行でやるズボラなやり方だと結構実装の手間が勝ってしまってデザインがおざなりになってしまうので、
予めデザインをしっかり起こしてからコーディングできると良いのかなと思いました。（当たり前ですが・・今までサボっておりできていなかったので）&lt;/p&gt;
&lt;p&gt;リデザインに関しては、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;宣伝したい物があるのでバナーみたいな物をつけたい&lt;/li&gt;
&lt;li&gt;ポートフォリオ的な位置付けでもあるので、もうちょっと印象に残るデザインが良い&lt;/li&gt;
&lt;li&gt;上に書いたバナーみたいな物を追加したい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;みたいな要求（欲求？）があったのでそれを元にレイアウトなどは決めていきました。&lt;/p&gt;
&lt;p&gt;また、印象にのこるサイトがよかったので紫（これはReactのイメージカラーから持ってきました。。）を基調に最近ボチボチトレンドなどと言われている
Glassmorphism ポイ透け感を入れたサイトにしました。実際に動画などに上がっているGlassmorphismのデザインはもっと派手ですが、記事を読むサイトに置いてあまり派手すぎるとそれはそれで疲れるかなということで抑えめにしています。&lt;/p&gt;
&lt;p&gt;デザインは、全然体系的に勉強はしていなので趣味レベルではあるのですが、ちょっと気づいた時にお気に入りのサイトをストックして観察したり、Youtube のデザイン系のYoutuberの動画をみたりして少しづつ知見をためてきたので以前のデザインよりはましになったのかなと思っています。&lt;/p&gt;
&lt;h3 id=&quot;モバイルの時のUI改善&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB%E3%81%AE%E6%99%82%E3%81%AEUI%E6%94%B9%E5%96%84&quot; aria-label=&quot;モバイルの時のUI改善 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;モバイルの時のUI改善&lt;/h3&gt;
&lt;p&gt;モバイルでの Page Speed Insight のスコアが悪かったのでその辺りも改善できるように工夫したりし、モバイルの記事の一覧はできるだけシンプルにして
サムネイルなどは表示しないようにしました。これは自分でもモバイルで色々な技術系記事をみるのですが、サムネイルがクリックの決め手になることが少ないので
まぁ特になくても影響ないとい判断でサムネイルは表示しないシンプルな画面にしました。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://statics.ver-1-0.xyz/uploads/2021/04/20210416_renewal-blog/mobile-top.png&quot; alt=&quot;モバイルのトップ画面&quot;&gt;&lt;/p&gt;
&lt;p&gt;結果的に元々黄色スコアだったものが緑まで改善されたのと、だいぶ見やすくなったというのがあるのでやってみて成功でした。&lt;/p&gt;
&lt;h3 id=&quot;検索モーダルの追加&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%A4%9C%E7%B4%A2%E3%83%A2%E3%83%BC%E3%83%80%E3%83%AB%E3%81%AE%E8%BF%BD%E5%8A%A0&quot; aria-label=&quot;検索モーダルの追加 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;検索モーダルの追加&lt;/h3&gt;
&lt;p&gt;検索を追加したのは上で書きましたが、検索モーダルは二箇所に設置するようにしました。ヘッダーの検索アイコンと各記事の下に検索フォームを設置して、
サイトに訪れたタイミング、記事を読み終えて他の記事もみてみたいとなった時などに利用できるように二つの箇所に設置しました。&lt;/p&gt;
&lt;p&gt;実際にどれくらい検索されるのかとかは測定してみるのも良いかなと思うので、どこかのタイミングで測定してみたいです。
（使われてなくても少なくとも自分は使う気がする）&lt;/p&gt;
&lt;h3 id=&quot;記事への目次の追加&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E8%A8%98%E4%BA%8B%E3%81%B8%E3%81%AE%E7%9B%AE%E6%AC%A1%E3%81%AE%E8%BF%BD%E5%8A%A0&quot; aria-label=&quot;記事への目次の追加 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;記事への目次の追加&lt;/h3&gt;
&lt;p&gt;記事中で記事の全体が把握できるように目次を仕込みました。Gatsbyでは &lt;a href=&quot;https://www.gatsbyjs.com/plugins/gatsby-remark-autolink-headers/&quot;&gt;gatsby-remark-autolink-headers&lt;/a&gt; を使うとマークダウンから生成された見出しにリンクを自動で付与できるのでそれを使って目次を実装しています。&lt;/p&gt;
&lt;p&gt;それぞれの記事のデータの見出しは &lt;code class=&quot;language-text&quot;&gt;gatsby-transformer-remark&lt;/code&gt; でパースした結果に含まれているのでその結果と上記で生成される id属性を結びつける形で
実行できます。お好みでスムーズスクロールにしたり、目次を追従するようにして出来上がりという形です。&lt;/p&gt;
&lt;p&gt;目次の表示の形としてモバイルだと今目次が表示できていないので、そこは要改善という形です。モバイルでは目次を最初の見出し前に出すような形で表示するよう考えていますが、記事によっては全く見出しのない記事もあるので「どうしたものか」というのはありますが、とにかくどこか時間を見つけて実装できればと思っています。&lt;/p&gt;
&lt;h3 id=&quot;コンソールを模した記事フィルタ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E3%82%92%E6%A8%A1%E3%81%97%E3%81%9F%E8%A8%98%E4%BA%8B%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF&quot; aria-label=&quot;コンソールを模した記事フィルタ permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;コンソールを模した記事フィルタ&lt;/h3&gt;
&lt;p&gt;前述のように印象に残るようなサイトがよかったので、記事のフィルタとしてコンソールを模した物を配置しています。
こちらはまだまだ作り込み必要な気がしているのですが、とりあえず、&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;新着記事&lt;/li&gt;
&lt;li&gt;人気記事準&lt;/li&gt;
&lt;li&gt;ピックアップ記事&lt;/li&gt;
&lt;li&gt;カテゴリ&lt;/li&gt;
&lt;li&gt;タグ&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;という形で記事を絞り込めるようになっています。&lt;/p&gt;
&lt;p&gt;本当のところは、ls, pwd, cd 的な物を実装したかったのですが、ひとまず時間かかりそうなのでリリースを優先してそのまま出しています。&lt;/p&gt;
&lt;p&gt;今のところカテゴリ、タグ周りが結構整理されない形でタギングされているような感じもあるのでここらも合わせて整理していきたいです。&lt;/p&gt;
&lt;h2 id=&quot;振り返り&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%8C%AF%E3%82%8A%E8%BF%94%E3%82%8A&quot; aria-label=&quot;振り返り permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;振り返り&lt;/h2&gt;
&lt;p&gt;トータルで結構な作業量にはなったのですが、Figmaからしっかりデザインを起こして実装・リリースまでできたのである程度納得いく形で終えることができました。
サイト内検索をつけて利便性向上していたりもするので満足です。モバイル用の目次の実装やコンソール部分の実装、Gatsby3で改善された画像のビルド部分を踏まえた開発環境の最適化など積み残しはいくらかありますが、記事追加と合わせて少しづつ作業進めて頂ければと思います。&lt;/p&gt;
&lt;p&gt;ここまで読んで頂いた方には、ブログの実装で使っているプラグイン等々の情報などが役に立てば良いかなと思います。&lt;/p&gt;
&lt;p&gt;では。&lt;/p&gt;</content:encoded><thumbnailUrl>https://statics.ver-1-0.xyz/uploads/2021/04/20210416_renewal-blog/thumbnail.png</thumbnailUrl><language>ja</language></item><item><title><![CDATA[トロントの会社でフルタイムのFull Stack Developerとして働き始めました。]]></title><description><![CDATA[タイトルの通りそのままなのですが、 昨年10月頃から進めていたカナダでの就活が実を結び晴れて3月中旬よりトロントの会社で働きはじめました。 簡単に自己紹介すると、元々事業会社でエンジニアとして働いたり、フリーランスやったりをしていたのですが一昨年の1…]]></description><link>https://ver-1-0.net/blog/2021/04/15/started-to-work-in-tronto</link><guid isPermaLink="false">https://ver-1-0.net/blog/2021/04/15/started-to-work-in-tronto</guid><pubDate>Thu, 15 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;タイトルの通りそのままなのですが、 昨年10月頃から進めていたカナダでの就活が実を結び晴れて3月中旬よりトロントの会社で働きはじめました。&lt;/p&gt;
&lt;p&gt;簡単に自己紹介すると、元々事業会社でエンジニアとして働いたり、フリーランスやったりをしていたのですが一昨年の10月にバンクーバーに移住してきたものです。&lt;/p&gt;
&lt;div class=&quot;related-post&quot;&gt;
  &lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://ver-1-0.net/2019/10/26/move-to-canada-to-find-job)
&quot;&gt;フリーランスを退職します。カナダ行きます。&lt;/a&gt;&lt;/li&gt;
&lt;/div&gt;
&lt;p&gt;今年2月末頃にFull Stack Developerのポジションでオファーを頂き、無事3月からチームにジョインして働きはじめました。住まいはバンクーバーなので、とりあえず自宅からリモートで働いています。&lt;/p&gt;
&lt;h2 id=&quot;これからやること&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%93%E3%82%8C%E3%81%8B%E3%82%89%E3%82%84%E3%82%8B%E3%81%93%E3%81%A8&quot; aria-label=&quot;これからやること permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;これからやること&lt;/h2&gt;
&lt;p&gt;上にも書いたようにFull Stack Developerというポジションでオファーをもらい基本 React, Ruby on Rails のスタックをメインに仕事をしていくことになります。直近はバックエンドのタスクが多そうです。&lt;/p&gt;
&lt;p&gt;Goを使っているプロジェクトもあるようなので、Goあたりも触れると面白いと思っています。またプロダクト自体結構なユーザがいるので、その辺りのインフラ部分やプロジェクトの進め方などなどちょうど北米の開発の仕方などなどを体験してみたかった自分には最適な職場です。&lt;/p&gt;
&lt;p&gt;個人的には、ここの所フロントエンド側への関心が強く、サーバ側の知識のキャッチアップがおざなりになっていたりしているのを自覚しているのでこれを機に、Docker、k8s周りGraphQL、Goなどなどのあたりを何か作りながら知識深めたいなと思っている所です。また、サーバ側をやるにあたって基礎となるローレベルの知識など言語やライブラリによらない知識も増強できると良いなと思っています。&lt;/p&gt;
&lt;h2 id=&quot;就活の話&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%B0%B1%E6%B4%BB%E3%81%AE%E8%A9%B1&quot; aria-label=&quot;就活の話 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;就活の話&lt;/h2&gt;
&lt;p&gt;5ヶ月間就活をしていたのですが非常に長かったです。当初は1, 2ヶ月くらいで決まるかと思っていたのがそうはいかずずるずると時間がたってしまいました。最終的には、会社のカルチャーや技術力、待遇等々の面で納得できる会社からオファーを貰えたので本当に良かったと思っています。&lt;/p&gt;
&lt;p&gt;覚えている範囲でざっくり30, 40社程度アプライをして3つほど最終面接まで行って1社からオファーを頂いたという形です。&lt;/p&gt;
&lt;p&gt;企業を探して自分に応募するというよりは、LikedinやIndeedなどでリクルーターから連絡をもらった会社を受けるというのがメインでした。リクルーター経由だとレジュメだけ渡して面接まで進めることが多いので、場数を踏むことができ英語圏での面接に慣れる事ができたので良かったと思います。&lt;/p&gt;
&lt;p&gt;就活については、機会があればどこかでもう少し詳細にまとめて記事にするかもしれません。&lt;/p&gt;
&lt;h2 id=&quot;働き始めてみて&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%83%8D%E3%81%8D%E5%A7%8B%E3%82%81%E3%81%A6%E3%81%BF%E3%81%A6&quot; aria-label=&quot;働き始めてみて permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;働き始めてみて&lt;/h2&gt;
&lt;p&gt;働きはじめて、まだまだ二週間なのでなんとも言えないところもあるかと思いますが、ひとまずの所感をまとめておきたいと思います。&lt;/p&gt;
&lt;h3 id=&quot;英語について&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E8%8B%B1%E8%AA%9E%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6&quot; aria-label=&quot;英語について permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;英語について&lt;/h3&gt;
&lt;p&gt;ニ週間やってみてですが、まぁやはりこちらが一番苦労する部分なのかなぁと思う所です。一対一でのコミュニケーションはまぁなんとかなるのがやはり複数人のミーティングというところでは中々大変で、今話されているトピックを見失うこともしばしばです。おそらく、ずれた発言をしていたり発言すべきタイミングで上手く乗れなかったりという感じでかなりぎこちない感じになっているかと思います。&lt;/p&gt;
&lt;p&gt;そのほか、やはり英語で情報をインプットした場合の理解力や定着力が日本語の10分の1くらいなのでちょっとしたことにも時間がかかるので中々辛いです。&lt;/p&gt;
&lt;p&gt;英語圏で働くにはあまり文句も言っていられないのですが、まぁ現状こう言った悩みにもある程度長い時間かけて辛抱強く付き合っていかないといけないのかなと思っています。&lt;/p&gt;
&lt;p&gt;英語を使っている時の違和感とかフラストレーションはプログラミングをやっている時に似ているなぁと思っており、人によるのかもしれないですが結構プログラミング初めて最初の二、三年は「なんか上手く行かない・・」という思いをずっと抱えながらプログラミングと付き合っていました。今でもやはり、「なんか思ったのが作れない」「どうやって作るんだろ？」という違和感を抱えながら日々試行錯誤をしているのですが、二、三年前よりは確実に技術力がついているので、英語もそれと同じなのかと思っています。&lt;/p&gt;
&lt;p&gt;英語もきっとこういう形で長い目でみながら試行錯誤を繰り返して向上できると良いなと思っているのですが、せっかく英語圏で働けるのであれば限りなく同じレベルで議論をしたりコミュニケーションを取ったりできるようになりたいすね。それに向けてゴールをブレイクダウンしながら、うまく英語力+コミュニケーション力を鍛えていければと思っています。&lt;/p&gt;
&lt;h3 id=&quot;時差について&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%99%82%E5%B7%AE%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6&quot; aria-label=&quot;時差について permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;時差について&lt;/h3&gt;
&lt;p&gt;家はバンクーバーで職場は反対側のトロントということで時差が3時間あります。言わずもがなでリモートで働いていはいるのですが、トロントの方が時間が早いので、向こうの時間に合わせて7時に起きて仕事を初めています。&lt;/p&gt;
&lt;p&gt;早くに仕事を始めると早く仕事が終わるので良い面もあるのですが、まぁやはり時差は辛いですね。仕事も慣れてくるともう少し柔軟に働けるかとは思うのですが、今は変則的な勤務スタイルになっています。&lt;/p&gt;
&lt;p&gt;カナダでもコロナでやはりリモートワークは一気に加速したようで、就活をしていても本当にいろいろなタイムゾーン、国の人たちと面接をしました。
社内にもトロント以外のタイムゾーンで働く人も多いので、この時差問題についても徐々にベストプラクティスみたいなものが出てくると良いですね。&lt;/p&gt;
&lt;p&gt;時空をいじったりはできないので、コミュニケーションの取り方やツールで解決していくことにはなると思うのですが個人的にも色々模索できると良いと思います。&lt;/p&gt;
&lt;p&gt;今日本、トロント、バンクーバーの3つのタイムゾーンを管理して生活しているのですがアプリのカレンダー機能が手放せません。Macのカレンダーには複数のタイムゾーンで予定を入れて管理しているので重宝しています。&lt;/p&gt;
&lt;h3 id=&quot;リモートでのオンボーディング&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%81%A7%E3%81%AE%E3%82%AA%E3%83%B3%E3%83%9C%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0&quot; aria-label=&quot;リモートでのオンボーディング permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;リモートでのオンボーディング&lt;/h3&gt;
&lt;p&gt;また、今回初の完全リモートでのオンボーディングとなりました。&lt;/p&gt;
&lt;p&gt;リモートでのオンボーディングは受け入れ側とジョインする側共に難しいプロセスだとは思いますが、今のところスムーズに進んでいるかと思います。&lt;/p&gt;
&lt;p&gt;これまであまりオンボーディングのプロセスなどは意識して来なかったのですが、今の会社では最初の二週間くらいで色々な部署の人とのミーティングがセッティングされていてそれを順にこなしていきます。これをすると、とりあえず顔見知りになれたり、丁寧に業務の内容を説明をしてもらったり雑談したりできるのでだいぶ会社のイメージを掴む助けになります。もちろん、そんなちょっとで全てを理解することはできないのですが入社して右も左も分からず、社内の誰とも直接会ったことがないの人にはだいぶ助けになりそうです。&lt;/p&gt;
&lt;h3 id=&quot;全体的な所&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%85%A8%E4%BD%93%E7%9A%84%E3%81%AA%E6%89%80&quot; aria-label=&quot;全体的な所 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;全体的な所&lt;/h3&gt;
&lt;p&gt;という形で全く勝手の違うことばかりなのですが、ある意味こう言った環境を求めてわざわざカナダ移住してきたので大体はウェルカムです。周りの人を見ていて、それが正解なのかはわからないのですが、あぁこういう進め方をするのねと言う形で感心していて日々学びばかりです。&lt;/p&gt;
&lt;p&gt;上に書いたような違和感を一つずつ解消していくのも快感だったりするので、気長にできると良いかと思っています。&lt;/p&gt;
&lt;h2 id=&quot;まとめ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%BE%E3%81%A8%E3%82%81&quot; aria-label=&quot;まとめ permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;まとめ&lt;/h2&gt;
&lt;p&gt;仕事が始まってから書こう、書こうと思っていたのですがようやく書けました。とりあえず、報告みたいな記事になってしまいましたが、思ったことをダラダラ書いてるとずっーと終わらなそうなのでここらで切ります。&lt;/p&gt;
&lt;p&gt;カナダでの働き方や就活の仕方、生活、ぼんやり考えていることなどはまだまだあって記事にできそうなのでどこかのタイミングでまた書けたらと思います。&lt;/p&gt;
&lt;p&gt;では。&lt;/p&gt;</content:encoded><thumbnailUrl>https://statics.ver-1-0.xyz/uploads/2021/04/20210415_started-to-work-in-tronto/thumbnail.png</thumbnailUrl><language>ja</language></item><item><title><![CDATA[2020年の振り返り]]></title><description><![CDATA[時が過ぎるのも早いものでもう2021年2月に差し掛かっています。もういく日もしたら…]]></description><link>https://ver-1-0.net/blog/2021/03/10/review-2020</link><guid isPermaLink="false">https://ver-1-0.net/blog/2021/03/10/review-2020</guid><pubDate>Wed, 10 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;時が過ぎるのも早いものでもう2021年2月に差し掛かっています。もういく日もしたら3月という形でぼーっとしているとすぐに時間過ぎていきそうです。バンクーバーは徐々に雨の日も減り出して春が近づいている？ような気がしています。&lt;/p&gt;
&lt;p&gt;毎年自身のブログで年ごとの振り返りをしているのですが、今年は就活をしていたりドタバタしていたのでしばらくこちらの振り返りをかけずにいました。&lt;/p&gt;
&lt;p&gt;「振り返りたいなー」という気はあったのですが、時間が取れずにいたのでこのふとした時にでも振り返っておこうと思います。&lt;/p&gt;
&lt;p&gt;2018, 2019年の記事もあるのでもしよかったらみてみてください。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://ver-1-0.net/2020/01/01/review-2019&quot;&gt;2018年。フリーランス一年やってみての振り返り。 | So Far, So Tech&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ver-1-0.net/2019/01/16/look-back-2018&quot;&gt;2019年。フリーランス二年目の振り返り | So Far, So Tech&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;まぁこのあとはとつとつとふり返りをしていくのですが2020年はご多分にもれずお家時間が長かったので直接的な刺激が少なかった一年だなぁなんて思っていたのですが、いざ振り返ると人生初のことばかりでそれはそれで充実した一年だったのかなと思います。&lt;/p&gt;
&lt;p&gt;といった形で前振りはここまでで振り返りをしていこうと思います。&lt;/p&gt;
&lt;h2 id=&quot;2020年バンクーバー留学コロナ直撃&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#2020%E5%B9%B4%E3%83%90%E3%83%B3%E3%82%AF%E3%83%BC%E3%83%90%E3%83%BC%E7%95%99%E5%AD%A6%E3%82%B3%E3%83%AD%E3%83%8A%E7%9B%B4%E6%92%83&quot; aria-label=&quot;2020年バンクーバー留学コロナ直撃 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2020年バンクーバー留学コロナ直撃&lt;/h2&gt;
&lt;p&gt;2019年の振り返りにも書いていますが、2019年秋ごろよりバンクーバーに留学して現地のカレッジに通っています。二年で卒業できる仕組みになっており前一年は授業を受けて単位をとる、後一年は自分で就職先を見つけて一定の時間働いて卒業のような形になっています。&lt;/p&gt;
&lt;p&gt;今はその前一年が終わって後にも書きますが、今後の就労先を見つけるために就活をしています。&lt;/p&gt;
&lt;p&gt;コロナが本格的に警戒されはじめたのが去年三月頃で、平日は毎日通学していた学校がリモートに切り替わり、定期的に参加していた言語交換のミートアップ、ラクロスの練習などなどが中止になりもろに影響を受けました。&lt;/p&gt;
&lt;p&gt;個人的には、幸いにもリモートの仕事がメインだったので仕事がなくなるなどのことはなかったのですが、家にいる時間が極端に増加し、運動量が目に見えて低下し、無事体重もキャリアハイを記録することができました。&lt;/p&gt;
&lt;p&gt;飲食店でみんなで集まったりはできなくなりましたが、幸いにもバンクーバは夏はハイキング等々のアウトドアアクティビティ、冬はスノーボードができて非常に充実しているので適度にストレス発散できました。&lt;/p&gt;
&lt;p&gt;また、ステイホーム期間には気づくと人と話す期間が激減して、1週間一度も人と話をしなかったなんてこともありそうですが、MENTAでサービスを提供させて頂いていたおかげでメンタリングの合間の雑談等々でずいぶんリフレッシュができた気がしています。&lt;/p&gt;
&lt;p&gt;MENTAでフロントエンドエンジニアを目指す方向けのコースをはじめました&lt;/p&gt;
&lt;p&gt;兼ねてからフリーランスとして二年程度、エンジニアとしてトータル五年ほどのキャリアがあったのでそこから得たノウハウなどを還元できないかということで2020年の3月頃からMENTAでフロントエンドエンジニアを目指すサービスを提供開始しました。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://menta.work/plan/1608&quot;&gt;MENTAで提供しているフロントエンド向けのコース&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;図らずも、第一波のステイホームの期間と被ったことなどもあり、多くの方に契約頂き半年程度でMENTA内のランキングで全体の上位1%程度のメンターに送られる金バッチメンターとして認定いただけました。&lt;/p&gt;
&lt;p&gt;2020年には常時20~30人ほど契約者様がいるような形で運営をさせて頂き、MENTAのランキングというような外見の実績以外にも、学習をお手伝いさせて頂いた生徒さんの中から実際に未経験から企業への就職を決めた方や課題を進めていく中でどんどんとレベルアップしていく方を目の当たりにして、自身の知見をシェアして役に立てた実感があり実にやりがいのある経験をさせて頂きました。&lt;/p&gt;
&lt;p&gt;また、生徒さんが全国に散らばっていたので生徒さんの地域ならではの話を聞けたりしてこちらも良い経験になりました。&lt;/p&gt;
&lt;p&gt;いろいろな地域のメンティーさんと話す中で首都圏とそれ以外でやはり結構な技術的な格差があるんだなというのにも気付きました。&lt;/p&gt;
&lt;p&gt;技術力の高い企業は首都圏に集中し、その中でコミュニティが形成され知見が共有されていくので必然的にそこに入れない地域とそこにすむ技術者の人はかなり積極的に情報に対してアプローチしないと追い付いていけないのでは？というところが非常に気になりました。&lt;/p&gt;
&lt;p&gt;リモートワークが促進されてこういう隔絶が平準化されると良いなとは思うのと、あとで話す技術アドバイザ的な形でこういった構造を少しでも改善できる取り組みが今後できると良いなと思いました。&lt;/p&gt;
&lt;p&gt;2021年も引き続きMENTAは続けていく予定ですので、興味のある方は上のリンクからご連絡頂ければと思います。&lt;/p&gt;
&lt;p&gt;HTML/CSS, JS ~ Reactを通しで学べるコースをご用意してお待ちしております。&lt;/p&gt;
&lt;p&gt;Techpitさんから「&lt;a href=&quot;https://www.techpit.jp/courses/127&quot;&gt;スネークゲーム 🐍 を作って学ぶ React Hooks API での状態管理&lt;/a&gt;」という教材をリリースさせて頂きました&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://note.com/version1/n/nb6ad3c8f3baf&quot;&gt;React Hooksに関する教材を執筆・リリースしました&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;タイトルの通り、React Hooks APIに関する記事の執筆をさせて頂きました。詳細はこちらの記事を参照頂ければと思いますが、個人のブログ記事をみてくださったTechpitの担当の方から連絡を頂き執筆の機会を頂きました。
リリース後大ヒット！という訳でもないのですが、コンスタントに購入頂いたりTechpit Unlimited という学び放題のプランでもお活用頂いているようで嬉しい限りです。教材の詳細などなどは上記リンク参照ください。&lt;/p&gt;
&lt;h2 id=&quot;バンクーバーでの就活をはじめました&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%90%E3%83%B3%E3%82%AF%E3%83%BC%E3%83%90%E3%83%BC%E3%81%A7%E3%81%AE%E5%B0%B1%E6%B4%BB%E3%82%92%E3%81%AF%E3%81%98%E3%82%81%E3%81%BE%E3%81%97%E3%81%9F&quot; aria-label=&quot;バンクーバーでの就活をはじめました permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;バンクーバーでの就活をはじめました&lt;/h2&gt;
&lt;p&gt;2020年の秋頃から当初のカナダ移住の目的であった現地での就活をはじめました。現在進行形で就活をしているので結果が出ればまた改めて記事をかければと思います。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ver-1-0.net/2019/10/26/move-to-canada-to-find-job&quot;&gt;フリーランスを退職します。カナダ行きます。 | So Far, So Tech&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;今のところはやはり日本の就活とは勝手も違い、使う言語も違えば慣習も違うので、不慣れなカバーレターやレジュメを書いたり、周りの人を頼りながら手探りで進めています。&lt;/p&gt;
&lt;p&gt;計画では、10月頃から就活を初めて3ヶ月程度で終えられれば・・と思ったのですが、そうはうまくいかず最終まで進めたものがあったりもしたのですが就活は2021年に持ち越しとなりました。&lt;/p&gt;
&lt;p&gt;結果が出ればまた改めて記事を書きたいと思います。&lt;/p&gt;
&lt;h2 id=&quot;技術的な話&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%8A%80%E8%A1%93%E7%9A%84%E3%81%AA%E8%A9%B1&quot; aria-label=&quot;技術的な話 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;技術的な話&lt;/h2&gt;
&lt;p&gt;技術的なところでいうと今年は下記のようなところが印象に残っています。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;英語圏に住んで英語力が伸びてインプットできる範囲が広がった&lt;/li&gt;
&lt;li&gt;データ＆アルゴリズムの授業を経て、データ＆アルゴリズムの基礎を踏まえたコードが書けるようになった&lt;/li&gt;
&lt;li&gt;技術アドバイザーの仕事依頼があり、フロント周りのアドバイザーを始めた&lt;/li&gt;
&lt;li&gt;面接対策+MENTAでのメンタリングで知識が深まった&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;まず最初に、英語については「まぁそうだよな」という感じなのですがこちらに一年住んで英語力が向上したのでYoutubeの動画や英語記事、OSSリポジトリなどなどから獲得できる情報が増えインプット元の幅が増えたのでこれまでと違ったアウトプットが出せるような気がしています。&lt;/p&gt;
&lt;p&gt;次に、2020年は主に学校でプログラミングの学習をしていたのですがそこで改めてデータ＆アルゴリズムの授業を受けました。これまで独学でWebエンジニアになってそこまでデータ&amp;#x26;アルゴリズムの学習をやった訳ではないので授業で復習をしましたが、これが結構ためになり普段書いているコードの計算量やデータ構造などへ意識が向くようになり以前よりより良いコードが書けるようになりました。&lt;/p&gt;
&lt;p&gt;フロントエンドだとあまり関係ないと思われるようなこともあるかもしれませんが、DOM自体がツリー構造でツリー構造を扱うには再帰が扱えるとコードを簡潔に書ける。スタック・キューなどの構造を理解しているとエディタ上での編集履歴の管理の実装に役立つなどなどが見えてきて、そこまで難しいことはやらなくて良いから、スタック・キュー、ツリー、再帰などなどの主要なトピックと典型問題の回答みたいな物は抑えておけると実務で同じようなデータ構造のパターンに出くわした時にサクッと簡潔な実装ができるようになりそうです。また、LeetCodeなどの問題を解く中で、実際の面接を想定して30分以内に解ききる、全てのテストケースに一発で通過するようにコードを書くというようなのも良いトレーニングになりました。頭に浮かんだロジックをバグなく実装できるというのは、実装スピードに直結するので「これは良い練習だな」という感想を持ちました。&lt;/p&gt;
&lt;p&gt;三つ目に、MENTAでの繋がりで実際の企業さんからフロントエンド周りのアドバイザを依頼されて初めてアドバイザというポジションで仕事をさせて頂きました。「自分がコードを書けるようになる」というのと「チームメンバーがより良いコードを書けるようになる」という大きな違いがあります。こ違いがアドバイザを行う上で結構大変なのですがやはり、一人で書けるコード量には限界があるので「強いエンジニアを最短で増殖させることができるエンジニア」はプロジェクトの生産性を無限に高められるのでそこを目指して試行錯誤しています。&lt;/p&gt;
&lt;p&gt;最後に、就活対策として想定質問に回答したり、メンタリングでメンティーさんからの質問に回答する中で自分自身に関しても知識の幅を広げることができました。「学んだことを説明するのが一番効率の良い学習法」とはよく言われますが、メンタリングを通して概念を説明する時に自分の理解が追いついてないと説明ができないので教材の準備などを通して自分自身のスキルアップにも役立ちました。もちろん「教える」立場なのでそこがメインの目標ではダメですが副産物として新たな発見があったのでここに書いておきます。そのほかにも、就活対策として「JavaScript interview questions」のような感じでググるというのも面接対策としてだけでなく、スキルアップにも聞きました。Interview Questionsでググると自分が知らない知識のチェックにもあるので弱点を把握できてそこを重点的に学習すると結構効率的にターゲットの分野の知識を得られることに気付きました。例えば、新しいプログラミング言語を学ぶ時なんかにある程度できたなというところで Interview Questions でググってみて自分の実力を把握するなんていうのもアリなのかなと思っています。&lt;/p&gt;
&lt;p&gt;という形で順番に印象的だった内容を書いてきましたが、1 以外はほとんど想定していなかったので良い発見ができてラッキーという感じです。積極的に何か新しいことを始めると、また新たな発見があり次に繋がっていくのを書いていて非常に強く感じました。&lt;/p&gt;
&lt;h2 id=&quot;まとめ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%BE%E3%81%A8%E3%82%81&quot; aria-label=&quot;まとめ permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;まとめ&lt;/h2&gt;
&lt;p&gt;2020年の総括としては、2019年にバンクーバー移住を決めて、2020年は新たな職場が決まるまで色々と落ち着かせる年になるかなとは思ったのですが、思ったよりも新たに始めることができたものが多く、そういう意味では良い年になったかなと思っています。&lt;/p&gt;
&lt;p&gt;コロナでリアルなミートアップに参加できなくなってしまったり、色々なことが制限されたところもあったかとは思いますが、新たに得たものもあり良い一年だったと思っています。&lt;/p&gt;
&lt;p&gt;2021年はバンクーバーでの就職先での活躍はもちろんのこと、英語力の強化、個人開発の継続あたりをテーマにやっていければと思っています。遅くなりましたが、今年一年よろしくお願いします。&lt;/p&gt;
&lt;p&gt;では。&lt;/p&gt;</content:encoded><thumbnailUrl>https://statics.ver-1-0.xyz/uploads/2021/03/20210310_recap-2020/thumbnail.png</thumbnailUrl><language>ja</language></item><item><title><![CDATA[mp3ファイル分割サービス Egg Cutter ベータ版をリリースしました。]]></title><description><![CDATA[I'm so excited to announce that I released Egg Cutter Beta version, which split an mp3 file easily…]]></description><link>https://ver-1-0.net/blog/2021/02/25/beta-release-egg-cutter</link><guid isPermaLink="false">https://ver-1-0.net/blog/2021/02/25/beta-release-egg-cutter</guid><pubDate>Thu, 25 Feb 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;m so excited to announce that I released Egg Cutter Beta version, which split an mp3 file easily. ~と言う形で英語版のアナウンスをかけるくらい流暢であれば良かったのですが、そうでもないので通常通りにお知らせします。&lt;/p&gt;
&lt;p&gt;2月9日に &lt;a href=&quot;https://egg-cutter.net/&quot;&gt;Egg Cutter&lt;/a&gt; のベータ版をリリースしました。&lt;/p&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;ja&quot; dir=&quot;ltr&quot;&gt;書きました &lt;a href=&quot;https://twitter.com/hashtag/EggCutter?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#EggCutter&lt;/a&gt;&lt;br&gt;&lt;br&gt;音声分割サービス Egg Cutter ベータ版をリリースしました。｜version1 &lt;a href=&quot;https://twitter.com/version1_2017?ref_src=twsrc%5Etfw&quot;&gt;@version1_2017&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/note?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#note&lt;/a&gt; &lt;a href=&quot;https://t.co/cA2eS8kJhm&quot;&gt;https://t.co/cA2eS8kJhm&lt;/a&gt;&lt;/p&gt;&amp;mdash; Jiro@Vancouver (@version1_2017) &lt;a href=&quot;https://twitter.com/version1_2017/status/1363080965111705601?ref_src=twsrc%5Etfw&quot;&gt;February 20, 2021&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;ベータ版なので今のところ特に登録不要・無料で公開しています。&lt;/p&gt;
&lt;p&gt;サービスとしては、mp3ファイルをインストール不要でWeb上で分割できるようなサービスになっています。本格的なファイルの分割などは、各デスクトップなどに譲るとして、英語の音声CDの分割など手軽な音声編集に使用できるサービスになっているかなと思っていますので、ぜひ使ってみてください。&lt;/p&gt;
&lt;p&gt;ゆくゆくは有料化したいなーと思っていますが、今のところは機能も少なく小さく始めたばかりなのでページに行けばすぐに使い始められます。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://egg-cutter.net/&quot;&gt;https://egg-cutter.net/&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;Egg-Cutterを作った経緯&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#Egg-Cutter%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%9F%E7%B5%8C%E7%B7%AF&quot; aria-label=&quot;Egg Cutterを作った経緯 permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Egg Cutterを作った経緯&lt;/h2&gt;
&lt;p&gt;僕のことをほとんど知らない人が大半かと思うので、簡単に自己紹介しておくとここ二年ほどは日本の仕事をフリーランスでこなしつつ、カナダのバンクーバーに移住してこちらで働けないか色々と画策しているものです。&lt;/p&gt;
&lt;p&gt;と言うことでご多分にもれずバンクーバーでは英語を使い、いざ働こうものであれば英語は切っても切り離せないものになっています。英語でコミュニケーションをとるには当然ボキャブラリが必要で、&lt;a href=&quot;https://qiita.com/Harusugi/items/f499e8707b36d0f570c4&quot;&gt;「オレ プログラム ウゴカス オマエ ゲンシジン ナル」&lt;/a&gt;みたいなボキャブラリだと生きては行けますが他人の考えに触れたり、バンクーバーにいるバックグラウンド多様な人の話を聞いたりと言うことが出来ない訳です。&lt;/p&gt;
&lt;p&gt;そんな背景でボキャブラリの増強に課題感を持っていたので、どういう方法が良いのかを考えていると以前師事した英語の師匠的な人もYoutube上にいるYoutuberも「音から入る」と言うことを重要視しているようです。&lt;/p&gt;
&lt;p&gt;単語を覚える際も「音を覚える」のと本に書かれた「文字を覚える」のでは大きな差があり、音のみで情景がイメージ出来ないと実際の会話のスピードについていけません。&lt;/p&gt;
&lt;p&gt;正しい発音ではないのはわかっているのですが、以前一緒に働いていた人がpythonのことを「パイトン」と発音していて、自分は何を行っているのが分からず「白湯（パイタン）スープ」が一瞬頭をよぎりました。&lt;/p&gt;
&lt;p&gt;白湯スープが頭を通り過ぎる瞬間はごくわずかでしたが、会話ではこの一瞬が命取りで母語の言葉ではうまく取り繕えたりするかもしれないのですが、第二言語となると致命傷です。&lt;/p&gt;
&lt;p&gt;という訳で単語は音声を通して覚えるのが良いと言う考えのもと音声付きの単語帳を多用しているのですが、多くの単語帳CDは10~20単語ほどの音声を一つのファイルにまとめていることが多いです。&lt;/p&gt;
&lt;p&gt;と言う訳で、10~20ほどの単語をまとめて聴きながらそれぞれの単語を覚えるのですが、正直その中でも定着度にかなりの差が出てきます。以前聞いたことがある単語やフレーズはすぐに覚えられますし、そうでない全く新しい物はなかなか覚えられません。英語を効率的に学ぶ方法としては、「新規」の単語を集中的に潰していくことが大事になるのですが、10, 20セットになっているCDではそれが出来ません。&lt;/p&gt;
&lt;p&gt;ということでそれらの音声を分割して単語、フレーズごとに分割して「覚えたフレーズ」はプレイリストから消していくと言う手法が一番効率の良い学習方法になります。&lt;/p&gt;
&lt;p&gt;なのですが、僕の検索した限りだと同様のサービスはデスクトップアプリとして作られているのでよく知らないアプリをインストールしないと行けない。Adobeなどの製品を使えば分割できるけど、有料だし起動も遅いしでなんか億劫といった問題があり、こちらのEgg Cutterを作ればと言う考えに至りました。&lt;/p&gt;
&lt;p&gt;前置きが長くなりましたが、 Egg Cutter は「mp3ファイルを手軽に分割できるサービス」です。今のところ当初の僕が欲しいツールと言う発想の語学学習者向けの色が強いですが、その他の用途などありましたら連絡いただけると嬉しいです。&lt;/p&gt;
&lt;h2 id=&quot;Egg-Cutter-と言う名前について&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#Egg-Cutter-%E3%81%A8%E8%A8%80%E3%81%86%E5%90%8D%E5%89%8D%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6&quot; aria-label=&quot;Egg Cutter と言う名前について permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Egg Cutter と言う名前について&lt;/h2&gt;
&lt;p&gt;自分のキャリア上プログラマとしてフルスタックエンジニアと言う形で割と「器用貧乏」なキャリアを積んできました。&lt;/p&gt;
&lt;p&gt;エンジニア業にかかわらずいろいろなことに興味があるので一つを極めるというよりは広ーく知っていると言うような表現が近いのかななんて思っており、常日頃あの「ゆでたまご」を均等に切り抜くことに特化した形状や、そのほかに特化することなく、「ゆでたまご」を切り抜くための窪みまで備えた尖ったあの「たまごを切る奴」に憧れ、そんなキャリアを気づくことを夢見ていました。&lt;/p&gt;
&lt;p&gt;と言うことはないのですが、子供の頃からなんか気になるあの「たまごを切る奴」が今回つくったサービスに近いのでEgg Cutterと言う名前にしました。Egg Slicer と言う呼び名もあるようなのですが、Egg Cutterの方がなんかしっくりきたのでそちらを採用しました。&lt;/p&gt;
&lt;p&gt;Egg Cutter と言うサービス自体が音声を聴きながら分割箇所を決めて、そのままの分割ポイントでざっくりと分割できるので、あの「たまごを切る奴」みたいな切れ味を楽しんでもらえると嬉しいです。&lt;/p&gt;
&lt;h2 id=&quot;最後に&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%9C%80%E5%BE%8C%E3%81%AB&quot; aria-label=&quot;最後に permalink&quot; class=&quot;heading-link before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; height=&quot;20&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;20&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;最後に&lt;/h2&gt;
&lt;p&gt;ユーザさんの声を元に機能を足したりもしていきたので、「これがあると嬉しい」みたいなのがあればTwitterやサイトのお問い合わせから連絡いただけると嬉しいです。感想を #EggCutter のタグで呟いていただくだけでも嬉しいです！&lt;/p&gt;
&lt;p&gt;今のところボキャビルのためのサービスですが、他にも色々と使い道がありそうな気もしているのでこういうのに使えそうというのがあれば教えてもらえると嬉しいです。&lt;/p&gt;
&lt;p&gt;まだ、使ったことのない方は一度手元にあるmp3ファイルでその切れ味を試してみてもらえると嬉しいです！&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://egg-cutter.net/&quot;&gt;https://egg-cutter.net/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;では。&lt;/p&gt;</content:encoded><thumbnailUrl>https://statics.ver-1-0.xyz/uploads/2021/02/20210225_beta-release-egg-cutter/thumbnail.png</thumbnailUrl><language>ja</language></item></channel></rss>