見出し画像

今後の学習方針について

不定期している今後の学習方針です。

話題については最近作るといっておいて作っていないもの、最近学習しているもの、今後学習していくことについてです。時系列で古い方から書いていきます。

Goでのブログシステム 

まず、先週〜先々週ぐらいGoで作るブログシステムについて書きます。背景としてGoのフレームワークechoについてある程度基礎を抑え何かを作ることによってさらに知識を増やそうと思っていました。そこで簡単なブログシステムを作成しようと計画していました。当初はDockerでの環境構築などに少し手こずったもののある程度上手くいっていました。しっかりしたルーティング設計もした後いざ作ろうと思って作成していたのですが作成している時にnode_modulesが使えないということに気づきました。これが使えないとTailwind CSSや各種nodeパッケージが使えません。Googleで検索しても使ってみた例というのが日本語、英語で共に見つからず困っていました。

複数の人に聞いてみてわかったのですがGoでnode_modulesを使うのは無理ではないが効率は良くなくお勧めはしないとのこと。そもそもGoでバックエンドを実装する場合基本的にはAPIサーバーとして実装することが多いみたいです。(ああだからechoがデフォルトでテンプレートレンダリングができなかったのか)フロントエンドはフレームワークを使用して実装することが多いみたいです。もう一つわかったのですがGo自体フレームワークを使わずに実装することの方が多くechoやginといったフレームワークを使うこと自体少ないみたいです。一定数使わない人がいるというのは聞いていたのですが使わない例の方が多いというのは知らなかったです。

結論としてこのブログシステム制作がどうなったかと言うとフロントエンドフレームワークを勉強するといった結論を出し、いつの間にか開発がストップしてしまいました、、、Goの勉強って難しいですね。

Reactを勉強してみる

上のことで衝撃を受けてそろそろバックエンドだけでは厳しいかなと思い始めてフロントエンドフレームワークにも手を出そうと思いました。今までバックエンドばかり勉強しておりフロントエンドを一切触ったことがなく何ができるかすらわかっていないので良い経験になると思っていました。ちょうど先週初めくらいですかね?Vueと迷ったのですが世界のトレンドやロゴのカッコよさ、スタック(MERNスタック)やネイティブ用のフレームワーク(React Native)の存在といった点を考慮してReactを学ぶことに(詳しく書くと文字数が、、、)既に決定から2週間近く経っていますが正直なところ就活や別の開発でまだまだ基礎すら学べてないです。

エンジニアの能力を可視化してみる

では今何勉強しているのかと言うのも書いていきます。今現在はGitHub APIを使用してエンジニアの能力を可視化できるようなアプリケーションを作ろうとしています。使用技術としてはLaravel今回はアーキテクチャにも拘って作ろうと思っています。なぜまたLaravelで作ろうとしているのか?ということなのですがどうしてもまだ自分のバックエンドの知識が足りていないからです。広く浅く勉強していくのも一つの手ではあるとは思うのですがその場合「バックエンド」の深い知識に触れるのは難しいと思います。具体的なことを言うとデザインパターンや依存性の注入といった知識、アーキテクチャまでこだわると言うのは広く浅くといった勉強法では難しいと思っています。しかし、ものすごく重要な知識だと思っているので今回もLaravelで作成しさらに知識を深めていこうと思っています。

先ほどReactを勉強ができていないといったのはこちらに手をつけているからです。ある程度こちらの完成が見えてきたり時間があまり出したらReactを勉強しようと思っています。あくまでLaravelを優先していきたい。

アーキテクチャについて

上でアーキテクチャにも拘って作成すると書いたのでそちらについても具体的に書いていきます。まず今現在のLaravelのコードですがアーキテクチャとしてはまだMVCで作成しておりサービスクラスなどを作成してファットモデル・コントローラーが生まれないように努力はしているもののやはりアプリケーションがさらに大きくなり始めると努力も虚しくモデルが大きくなってしまいます。※MVCアーキテクチャはダメと言っているわけではないです そこでクリーンアーキテクチャを勉強してみることにしました。Goを勉強していた時にも時々出ていて気になってはいたもののなかなか踏み出せず今になってやっと勉強してみることにしました。クリーンアーキテクチャではMVC以上にパーツを分類することによってそれぞれのパーツが大きくなりにくいようになっています。その分理解も難しいですが。

どうしても概念を理解するのは難しいのでどんどんコードを書いていった後に図を見返して流れを追って理解していくと言った方針でいこうと思います。


まとめ

以上がここ最近の勉強、これからの勉強の方針です。エンジニアの能力を可視化するアプリはいつできますかね?まだ作成、設計以前の検証段階です。

勉強の方針も日記のみならず記事でも定期的に書いていこうと思います!


この記事が気に入ったらサポートをしてみませんか?