「なぜフロントエンドを学ぶのか、背景と動機は何ですか?」
この質問は、最近 1 ヶ月で最もよく聞かれる質問です。
よく考えると、私はすでに 2 年間フロントエンドに携わっています。まさに 2 年間です。2 年前の今、私は大学 1 年生で、多くの人と同じように若くて迷っていました。将来の道が見えませんでした。それ以前に、私は一時期 Python のウェブスクレイピングを学び、いくつかのスクリプトを作成しました。偶然の機会で、@Paulと知り合いました。彼も独学でフロントエンドを学んでいることを交流を通じて知りました。彼は独自に開発した個人のスペースを持っていて、その時私は将来自分自身もそのようなサイトを作りたいと思いました。その時、ブログを書くことで多くの人と知り合い、独立したブロガーたちと一緒に活動していました。現在では、自己メディアの公式アカウントが溢れかえっていますが、本当に独立したブログを書いている人はほとんどいません。
新しい領域に足を踏み入れるときは、多かれ少なかれ困難です、特に独学の場合はそうです。ほとんどの人は、あるビデオチュートリアルに従って学習するかもしれません。しかし、私はそうではありませんでした。私は他の人が作成した優れたテーマを直接編集して学びました。私は自分がほとんどが乱雑に変更していることを認めますが、それ以上に多くのことを学びました。その時、基礎知識を学びながらテーマを変更していました。それが実践です。目標を達成するためには、より深い知識を認識するために検索エンジンを使用する必要もあります。そのため、私は基礎から学ぶのではなく、それは遅すぎるし、退屈に感じるでしょう。私は常に興味によって駆動されると考えています。私は興味によってのみ、より速く学び、より理解できると信じています。それが私がその時期をとても楽しく過ごした理由であり、毎日学習し、自分のプロジェクトを行っていました。その時期には、複数の Typecho のテーマを移植し、変更しました。また、その時期に私はオープンソースに夢中になりました。Phodalの影響を受け、最終的には GitHub の 100 日連続コミットを達成しました。(そのような黒歴史はまだ GitHub で見つけることができます)
その夏、私は正式にフロントエンドエンジニアリングプロジェクトの学習を開始しました。フロントエンドエンジニアリングの入り口は見つけるのが難しいです。純粋なネイティブからフレームワークへのジャンプです。フロントエンドの一連のツールチェーンに触れる必要があり、ディレクトリ構造の理解、モジュール化の分割が必要です。その学習プロセスでは、私は Bilibili の全栈之巅で公開されたビデオを使用して学習しました。これは非常に優れた UP 主であり、ビデオも非常に優れていますが、注目度は少し低いです。私は Vue 2、Express、NestJS を学びました。学習プロセスは単にチュートリアルに従って作業するだけでは何の収穫もありません。最も重要なのは、一を聞いて十を知ることです。師匠はあなたを初心者に導くだけであり、修行は個人に頼る必要があります。その後、私は独立して実践を始め、新しいプロジェクトを始めました。これが私の初心です。個人のスペースを作ること、それを完成させる時が来たと思います。
独立開発は比較的困難なことです。問題が発生した場合、誰に尋ねるべきかわからないことがあります。公式ドキュメントを読む以外にも、時には問題を解決できません。Stack Overflow を見て、いくつかのトリックを学ぶこともあります。次に、プロジェクトの構造です。初期のアーキテクチャが不適切な場合、後続のメンテナンスが困難になる可能性があります。そのため、最初のバージョンはオンラインになる前に中絶されました。現在のバージョンは他の人のプロジェクト構造を参考にして作成しました。まだかなり混乱していますが、後続のメンテナンスにとっては友好的ではありません。最も重要な原因は、最初に大まかな概要をリストアップしなかったことです。リファクタリングの過程で単体テストは非常に重要ですが、私はまだテストケースを書く方法がわかりませんし、切り口が見つかりません。
その年の後半、私はずっと Vue 2 と関わっており、たくさんのデモを作成しました。実戦経験がない初心者のような私ですが、React の経験がない私にとっては、確かに挑戦です。しかし、それは非常に良い機会であり、私はそれを逃すことはありませんでした。これが私です、自分ができるかどうかに関係なく、試してみる価値があると思います。自分自身の機会を掴む必要があります。私の周りには、フロントエンドを学んでいる人々もいます。彼らに手を差し伸べ、一緒にプロジェクトを行い、彼らを指導することを望んでも、彼らは自分の能力が足りないと言って断ります。そうです、あなたの能力が足りないのなら、なぜこれらの機会を大切にしないのですか。私なら受け入れるでしょう。なぜなら、以前は誰かが言ってくれることを望んでいたからです、「ねえ、一緒にプロジェクトをしましょうか?」
新しいフレームワークを学ぶにはどれくらいの時間がかかりますか。学ぶとは何か、マスターするとは何か。フレームワークを使用することができるようになる場合、ゼロからマスターするのに 1 日しかかからないかもしれません。私はその時 React を学びましたが、1 日でした。私はマスターしましたか、いいえ、ただ使えるようになっただけです。学ぶことは長いプロセスです。今でも私は自分が React をマスターしたとは断言できません。React は非常に優れたフレームワークですが、公式の説明ではフレームワークとは呼ばれず、ライブラリと呼ばれています。Vue 2 と比較すると、React にはルーターやストアがありません。そのため、同じカテゴリーのさまざまな選択肢が生まれました。React JSX の書き方はより使いやすく、私は徐々に React に移行していきました。それ以来、1 年間ずっと、私は React を主要な技術スタックとしています。React JSX の書き方は常に私の心に刻まれており、いつか Vue も React と同じくらい優れたフレームワークになることを願っています。なぜなら、Vue も私が最初に触れたフレームワークだからです。Vue 3 の登場によって、私は光明を見ました。これはまさに React Hooks の翻訳版ですが、何度も使用した後、エコシステムには少し失望しました。多くのライブラリが Vue 2 から移行してきており、TypeScript のサポートが不十分で、JSX の書き方が非常に面倒です。公式は JSX の書き方について明確に説明していません。(公式は常にテンプレートの書き方を推奨しており、コンパイル段階で静的最適化を行い、ランタイムの差分を高速化しています。しかし、私はまだ JSX の書き方が好きです)
TypeScript についての理解は、その時点で長い間醸成されていました。ずっと使ってみたかったのです。ちょうどいい機会がありました。外部委託を受けましたが、バックエンドのフィールドが非常に乱雑で、JavaScript を使用すると、バックエンドデータの処理が難しくなります。すべてのタイプが any(JSON parse 後)であるため、難しいです。JSON2TS ツールを使用して JSON のインターフェースを変換し、それから Vue での TS の書き方、Vue Class Components などを学びました。
その後のストーリーは、過去の記事で読むことができますので、ここでは書きません。
最後に#
もっと知りたい場合は、過去の思い出から読んでください: