コード学習には終わりがありません。プログラマーはキャリア開発をどのように計画していますか?

円卓の話題


  • トピック 1: 2020 年から国家計画にオープン ソースが含まれるようになってから、オープン ソース プロジェクトがますます増えています。オープン ソース プロジェクトの出現により、誰もがアップグレード プロジェクトについて学び、深く理解することができます。学習の観点から、開発者はどのようにプロジェクトに参加し、プロジェクトについて学ぶのでしょうか?
  • トピック 2: CloudWeGo オープン ソース プロジェクトの主な方向性は、クラウド ネイティブのマイクロサービス フレームワークです が、そのようなプロジェクトの主な使用シナリオは何ですか? このタイプのプロジェクトを学ぶことの価値は何ですか? 混合コミュニティの経験は何ですか?
  • トピック 3: プロジェクト ユーザーとしてのプログラマーの役割と、オープン ソース プロジェクト デザイナーとしての開発者の役割の違いは何 ですか? このような役割の移行を経験したコミュニティ コミッターとして、どのような教訓を共有できますか?
  • トピック 4: コミュニティと全体的な状況の観点から、 主要な工場が囲碁エンジニアを募集している理由について話します。プログラマーは自分のキャリア開発をどのように計画すべきですか? プログラマーの最終目的地は?
  • トピック 5: 大物の共有セッションで、大物が推奨するブロガー/技術学習 Web サイト/本。

ゲスト


発行 1


2020年から国家計画にオープンソースが盛り込まれてから、オープンソースプロジェクトがどんどん増えています。オープン ソース プロジェクトの出現により、誰もがアップグレード プロジェクトについて学び、深く理解することができます。 学習の観点から、開発者はどのようにプロジェクトに参加し、プロジェクトについて学ぶのでしょうか?

共有者:王偉超


この問題に関する導入は、主に次の 4 つの側面から行われます。
  1. Kitex および CloudWeGo コミュニティに接続する方法。
  1. クラウド ネイティブおよびオープン ソース文化に関する個人的な知識。
  1. 私が理解しているように、オープンソースとオープンソースの精神に参加する理由。
  1. オープンソースに関する個人的な将来の考え。

KitexおよびCloudWeGoコミュニティとつながる方法

実は、Kitexさんとのご縁はとても偶然で、バックエンド開発を数年やっておりますが、まだまだ技術的にボトルネックがあると感じているので、自分を磨きたいと思っています。これまでの経験を振り返って:
  • 2021 年 9 月に InfoQ でアウトプットをしようと思います。課題はその日に更新され、より多くの翻訳が行われます。
  • 10 月末に、特定の技術を学ぶことにしましたが、「道」と「法」については、主にプログラミングの概念の知識と理解について学び、「スキル」と「ツール」についてはほとんど学んでいないことに気付きました。 ";
  • 孔子の言葉を思い起こさせます。構造化する前に、いくつかの特定のテクニックを習得することをお勧めします。そこで、別のトピックを見つけて、自分の興味のある側面から始めることにしましたが、Docker、クラウド ネイティブ、アーキテクチャ設計、マイクロサービス シンキングのトピックは非常に熱く、非常に競争が激しく、開始して自分のものにするのは難しいかもしれません。しばらく自分のものを所有します。
  • オープンソース化したばかりの Kitex や、オープンソース化したばかりの CloudWeGo プロジェクトの関連するミドルウェア集のいくつかは、情報やプラクティスが少ないはずだと思い出したので、「CloudWeGo マイクロサービス プラクティス」シリーズを開始し、小さなコレクションを作成しましたが、完全に書いたわけではなく、運用データについて書いただけで、完全な商慣習ではありません。
個人的には、マイクロサービス フレームワークについて学ぶことは、始めるための優れた方法であり、さらに重要なことに、コミュニティに参加できるようにするための優れた方法です。フレームワークについて学ぶ過程で、私は CloudWeGo Feishu グループの関連する傾向について学び、CloudWeGo 関連の PR や問題を調べ、最新の開発のいくつかに注意を払い、自分で何ができるかを確認します。その後、主に Kitex サービスの発見、サービス登録関連のコンポーネント、単体テストなどに貢献しました。

クラウドネイティブとオープンソースの文化に対する個人的な理解

では、どのようにしてオープンソース文化を段階的に理解したり、触れたりしたのでしょうか?
これはおそらく2018年から2019年にさかのぼると思われます.当時、私は深センでいくつかのテクノロジーサミット、ミートアップ、その他の活動に頻繁に参加しました.この都市のテクノロジーの雰囲気はまだ比較的良好です. 当時、クラウドネイティブやコンテナベースの仮想化 K8S が技術的なトレンドであることは明らかでしたが、Docker に興味を持っていたため、K8S のこれらの関連技術分野に注目しました。
最後に、偶然にも、Linux Foundation (Linux Open Source Foundation) がいくつかの技術認証を取得することを知りました。この機会にわざと具体的な技術を学びたいと思っていたのですが、CKAやCKSなどを立ち上げたので、これも一種の学習チャンネルです。
それだけでなく、財団が立ち上げたいくつかのオープンソース プロジェクトにも注目しています。当時、K8S を学んでいたときに、K8S 関連のドキュメントを閲覧し、それらのドキュメントの PR について言及したことが、オープン ソースとの最初の接触でした。

オープンソースに参加する理由とオープンソースの精神を理解している

  • 優れたオープンソース プロジェクトについて学ぶ
井戸の中の蛙になるのは避けて、外に出て他の人が何をしているか見てみましょう。例: 優れたコーディング、コード仕様、設計パターン、アーキテクチャのアイデアなど、よりポジティブな例とベスト プラクティスを探し、技術的な視野を広げます。
  • オープンソースの世界は包括的でオープンな世界です
Github では、世界中のより多くの優れた人々を発見し、協力し、学ぶことができます。彼らの技術的なアイデア、考え方、キャリア プランニングを理解することも刺激になります。
  • 共同構築、少しずつ始め、コミュニティに統合することで達成感が得られます
オープン ソースはしばしば愛を利用して電気を生成します. オープン ソースの最初のステップはコードを公開することです. その後、多くの場合、コミュニティによって推進され、反復と進化が促進されます. オープン ソースの本質と意味は、高レベルの火です.みんなが集まること。私たちがコミュニティに貢献する小さな部分が、将来多くのユーザーの問題解決に役立つかもしれません.これは、オープンソースプロジェクトの活力と私たちの達成感の源です.

オープンソースに関する個人的な将来の考え

可能であれば、オープンソースを将来のキャリアとして使用したいと考えています。主な理由は次のとおりです。
リモートで仕事をしたり、オープンソース製品にコードを提供したり、財団で働いたりすることが夢でした。
  • 説教者
商品化や内向性をあまり考えずに好きな人や物と向き合える。
  • これからの計画
現在のアイデアは一夜にして実現するものではないかもしれませんが、少なくとも CloudWeGo でエントリ ポイントを見つけ、コミュニティにより良い貢献をしたいと考えています。ByteDance の一連の動的で戦略的なレイアウトの観点からすると、CloudWeGo は将来、Go マイクロサービスの分野でより影響力のあるオープン ソース プロジェクトを作成できることは間違いありません。
最後に、オープンソース愛好家を紹介したいと思います. 彼は非常に代表的でマニアックな人だと思います. 彼の名前は Su Yeqin です. 彼は雲南省の小児科医ですが、実際には余暇には Linux プレイヤーです. 興味があれば、詳細を知ることができます.
最後に、皆さんがコードの世界を楽しんでいただければ幸いです。

共有者:ヤン・ウェン


この問題について、私の実体験から始めて、次の 2 つの側面から共有します。
  1. 自分でやる角度。
  1. プロジェクトに参加する視点。

自分でやる角度

Go Night Reading のような Repo のように、自分でオープンソースを行うことは実際にはそれほどハードコアではありません。
Go Night Reading は現在、Github で 1W+ の星を獲得しています. 実際には, 星の数自体は何も表していません. それはより多くの経験を表しています. この観点から, 星の数の参照はオープンソースを理解するのに役立つと思います. . . というか、オープンソースがもたらすフィードバックです。
  • オープンソースプロジェクトの運営意義を明確にする
それが非常にハードコアなプロジェクトであろうと、基本的なコンポーネントであろうと、実際の問題を解決し、誰もが学び成長するのに役立つコンテンツであろうと、私たちはこれが役立つかどうか、そしてどのようにそれを行うかを考えなければなりません.参加 オープンソースのモデル。スターを獲得しようとしている場合、それは逆効果になる可能性があります。実際、私の意見では、それをオープンソース プロジェクトとして運用する必要があります. このことから学べること、オープンソースの精神とオープンソースによってもたらされるいくつかの肯定的なフィードバックを理解することは、実際には非常に多くのことです.星の数に注目すること自体。
  • プロジェクト開発ニーズ プロセス
  1. オープンソース プロジェクトの開発は、最初は 1 人か 2 人で開始します。このプロセスでは、この側面に興味を持っている人を紹介したり、プロジェクトを通じて他の人を助けたりして、他の人を引き付けて、徐々にプロジェクトの規模を拡大することができます. どんなプロジェクトでも、これは実際のプロセスです。Go Night Reading、PingCAP の TiDB、その他の Go Repo など、この段階では比較的成熟して大規模なプロジェクトでさえ、実際にはこの方法で行われています。
まず、あなたが悪くないと思うレベルまでそれを行い、それからあなたの友人やコミュニティの輪でそれを宣伝してください. たとえば、CloudWeGo は実際に問題を解決することでシーンの要件の一部を実際に解決し、それをオープンソース化して、着実に段階を追って開発を進めてきました。今日の私たちのようなイベントは、実際にコミュニティの人々を助けています. プロジェクト自体が価値がありダイナミックなものであれば、チームのリーダーであろうと参加者であろうと、参加すれば実際に多くのことを学ぶことができます。
上記は、自分の視点から開始し、投資したいプロジェクト、または解決する必要がある問題点を見つけて、反復を続けることです。ゴールドは常に輝き、プロジェクトも輝きます. 本当に価値のあるプロジェクトである限り、常により多くの人々に注目されます.

プロジェクトパースペクティブへの参加

別の観点は、いくつかのプロジェクトに参加することですが、プロジェクトに参加する前に選択を行う必要があります.選択基準は、次の3つの側面を参照できます。
  • あなたの問題を解決することができます。これは、プロジェクトをどのように選択し、プロジェクトに参加するかを判断するための基準または基準です。
  • 開発言語を決定します。プロジェクトの構築であろうとオープンソースの運用であろうと、比較的広い範囲をカバーする開発言語を選択すると、より体系的で標準化され、穴を踏むことを避けることができます。
  • オープンソース プロジェクトに参加する目的。オープンソース プロジェクトの影響を考えてみてください。何かを学んで得て、プロジェクトのために自分の価値の一部をアウトプットできるかどうか。
私の経験に関する限り、より完全で影響力のあるオープン ソース プロジェクトを選択することをお勧めします。2018 年に TiDB に参加し、Active Contributor を取得しました. 実際のハードコーディングへの参加の次元はそれほど深くはありませんが、参加についてです. あなたの価値を生み出し、アウトプットし続けると同時に、コミュニティからあなたへのフィードバックを吸収し続けるために、多くのことに投資しなければなりません。
つまり、現時点で自分に適したものを選択し、どのような人になりたいか、どのような役割を果たしたいかを特定し、それに応じて目標を達成するのに役立つプロジェクトを見つけてください. 実際、オープンソース プロジェクトへの参加も、自分の能力に応じて行う必要があり、自分自身と興味に本当に適した分野を選択し、その技術分野で育成を続けます。長期的な技術投資によってのみ、この分野で比較的優れたアウトプットと結果を得ることができ、コアを真に学び、改善することができます。

共有者:李龍


開発者がオープンソースに参加する方法について、以下の 3 つの参考方法を示します。
  1. First Good Issue に参加することで、コミュニティの問題に貢献/解決します。
  1. 実際の戦闘(プロジェクトの実戦/パフォーマンス比較など)を通じて、最適化できるポイントを見つけて解決し、コミュニティにフィードバックします。
  1. ソースコードを直接読んでください。

First Good Issue の寄付に参加する/コミュニティの問題を解決する

  • 一般的なコミュニティには多くのバックログの問題があり、最初にいくつかの簡単な問題を選択できます。
元々はライター業でオープンソースをやっていたのですが、基本的にはByte内の全てのGoサービスはORMとしてGormを使用します。Gorm のことを知ったとき、当時の Gorm には実際には非常に多くの問題があり、現在は 100 を超えるバックログがあることがわかりました。そのため、コミュニティの問題を解決することで、オープンソースに参加できることがわかりました。
一部の問題は使用上のバグである可能性があります。これらのバグの修正を試みることができます。問題を解決し続けることで、徐々にフレームワークに慣れてきて、1 ~ 2 か月ほど続く単純なバグを修正する必要があり、基本的にこのフレームワークに慣れています。
  • オープンソース コミュニティは通常、初心者向けのタスクを随時提供しており、誰もが積極的に参加できます。
CloudWeGo コミュニティは、最初の良い問題、つまり初心者タスクを送信することが多く、初心者タスクを実行することでコミュニティに参加できます。Weichao 氏と私が最初に行った初歩的なタスクは、サービス登録の検出、いくつかのデモ サービス、サンプル サービスなどの拡張でした。これらのサンプル サービスを作成するときに、実際にいくつかの問題を見つけて修正することができました。
要約すると、コミュニティで問題を送信するか、自分で積極的に問題を見つけることで、オープン ソースに参加できます。対照的に、ゴーム自体には多くの問題があり、興味のある学生はいくつかの簡単な問題を選択して参加できます。CloudWeGo は定期的にいくつかの初心者タスクを送信し、誰もが積極的に参加できます。

実戦(企画実戦・性能比較など)

  • ドキュメントのサンプル デモを変更して、コミュニティにフィードバックします。
一部の開発者は、ドキュメントのデモを見て、デモを貼り付けて実行することができますが、直接貼り付けた後に実行できない場合や、ドキュメントが正しく記述されていない場合は、ドキュメントのサンプル デモを修正してフィードバックすることができます。コミュニティのオープン ソースへの参加。
  • いくつかのストレス テストを実行して、さまざまなフレームワークのパフォーマンスを低下させます。
以前は、さまざまなフレームワークのパフォーマンスを比較するストレス テストを好む学生もいましたが、この方法では、公平性と明確性の原則を可能な限り確保し、フレームワークを事前に理解し、最適化して反復できるポイントを見つける必要があります。最適化後にコミュニティに貢献するためのストレステスト。

ソースコードを直接読む

もちろん、ソースコードを直接読むこともできますが、Xiaobai が始めるのはより困難で苦痛です。
上記はオープンソースに参加するための 3 つの方法ですが、オブジェクトの選択に関しては、Kitex や Gorm など、私が普段使用しているプロジェクトを研究する傾向が強くなり、気分が良くなります。

問題 2


CloudWeGo オープン ソース プロジェクトの主な方向性は、クラウド ネイティブのマイクロサービス フレームワークです が、そのようなプロジェクトの主な使用シナリオは何ですか? このタイプのプロジェクトを学ぶことの価値は何ですか? 混合コミュニティの経験は何ですか?

共有者:李龍


CloudWeGoの利用シーン

高性能で柔軟性があり、内部のカスタマイズ要件を満たすことができるフレームワークを選択したい場合は、CloudWeGo が提供するマイクロサービス フレームワークが適しています。CloudWeGo オープン ソース プロジェクトには、主に次のような特徴があります。
  • 高性能 (Netpoll / Sonic / Frugal など)
たとえば、基盤となる Netpoll 自体は高性能ネットワーク ライブラリであり、Hertz には組み込みの Sonic 高性能 JSON エンコーディングおよびデコーディング ライブラリがあります。
  • 豊富な拡張機能を提供
Kitex と Hertz はどちらも豊富な拡張機能を提供します。たとえば、Kitex は電流制限拡張、Transport Pipeline-Bound 拡張などのようなものです。Hertz 自体には強力な拡張機能があり、よりパーソナライズされたカスタマイズ要件を満たすことができます。
  • 最適化されたユーザー API インターフェイス
ユーザーフレンドリーな API インターフェイスがいくつか提供されており、それらは特に複雑ではありません。

このタイプのプロジェクトの価値を学ぶ

  • 学習フレームワークのレイヤード デザイン / 優れたデザイン ポイント
【例】ハーツの4層レイヤードデザインはレイヤー間の結合がなく、スケーラビリティに優れています。
  • フレームワークのパフォーマンス最適化のヒントを学び、視野を広げてください
[例] 一部のシナリオで Netpoll のパフォーマンスが標準ライブラリのパフォーマンスよりもはるかに高いのはなぜですか?
参考:https://juejin.cn/video/7046282096435789835
  • ストレステストフレームワークのパフォーマンス、交換と学習について話し合う
コミュニティの多くの学生は、ストレス テスト フレームワーク、特に Kitex と Hertz、およびその 2 つの Benchmark リポジトリを気に入っています。Kitex と Hertz のフレームワークの違いやその使用方法に関係なく、これらの低レベルの技術的最適化と関連する議論がコミュニティで見られることを強く望んでいます。Hertz、Fasthttp、Gin などのフレームワークのパフォーマンスをテストして比較することで、パフォーマンスの向上とパフォーマンスの最適化に集中できます。これは、比較的低レベルの技術的な深さのロジックです。

コミュニティでの経験の共有

  • 良い例: コミュニティで優れたデザインとパフォーマンスの最適化のポイントを学ぶことで、兄弟コミュニティに貢献します。
    • [例] shardmap でのサイズ調整 に関する ディスカッション · ディスカッション #306 · cloudwego/kitex 、コミュニティでディスカッションを開始し、優れた学習可能な場所を他のオープン ソース プロジェクトに適用します。
  • 悪いケース: 使用されているフレームワークに関するあいまいな質問/評価。
    • 【例】定番コメント「デザインがよくない/デザインが重すぎる」の場合、デザインが良くない/重すぎる具体的なデザインの理由を述べる必要があります。データで話す。

問題 3


プロジェクト ユーザーとしてのプログラマーの役割と、オープン ソース プロジェクト デザイナーとしての開発者の役割の 違いは何 ですか? このような役割の移行を経験したコミュニティ コミッターとして、どのような教訓を共有できますか?

共有者:王偉超


プロジェクト ユーザーの視点

プロジェクト ユーザーとして、オープン ソース プロジェクトを検討する際は、次の点を考慮してください。
  • オープンソース プロジェクトが継続的に維持されるかどうか。
  • ドキュメントは充実していますか?
  • コミュニティがアクティブかどうか。
  • 現在のプロジェクトが利用可能で使いやすく、現在のチームの技術的な問題を解決できるかどうか。
  • 不満なところを伸ばせるかどうか。

オープンソース プロジェクト デザイナーの視点

オープンソース プロジェクトの設計者として、私は主に、ユーザーが問題をより適切に、またはより迅速に解決できるようにする方法を検討しています。CloudWeGo プロジェクトを例にとると、Byte の内部慣行の要約として、オープン ソースは、より多くの人々がいくつかの一般的な問題を解決するのに役立つため、次の問題がより多く考慮される可能性があります。
  • 保守プロジェクトを通じてユーザーからのフィードバックを受け入れ、どのような一般的な問題がカバーされていないか。
  • いくつかの新機能を開発します。
  • バグのメンテナンスがタイムリーかどうか。
  • ユーザーが問題をより迅速に解決できるように支援できますか?
  • ドキュメントのメンテナンスと継続的な強化、ビジネス ケースの分類。

第 4 号


コミュニティの視点とグローバルな視点から、 大規模な工場が Go エンジニアを採用している理由について話してください。プログラマーは自分のキャリア開発をどのように計画すべきですか? プログラマーの最終目的地は?

共有者:ヤン・ウェン


大規模な工場がGoエンジニアを募集しているのはなぜですか?

  • Go言語の進化
Go の開発の重要な理由は、クラウド ネイティブな方向性の開発、Docker コンテナー化の分野、直列に接続された Grpc のエコロジー全体を含む K8S の開発であり、いくつかの基本コンポーネントの開発につながった、または開発のきっかけになったと思います。さまざまなメーカーでのクラウド ネイティブおよび K8S のアプリケーションと相まって、多くのインフラストラクチャ、フロー制御、分散リンク トラッキング サービス、および将来の多くの基本コンポーネントのオープン ソースを実行するきっかけとなり、Go 言語が選択されました。
  • Go言語の特徴
Go 自体の言語機能に基づいて、これらのことを行うことは比較的適切です。Go 言語自体は高性能でシンプルであり、切り替えコストが低く、参入障壁が低い. 言語基盤としてはC言語が基本的にシームレスな接続が可能で、スクリプト言語であれば比較的考え方を変える必要があるかもしれませんが、goのほうが性能が良く、PHPからGoへの変換が可能です。大きなパフォーマンスの問題を解決します。さらに、Go はすぐに使い始めることができ、公式ドキュメントではデモがすぐに実行されます。
  • 大規模工場の適用シナリオ
実際、大規模な工場には、実際のアプリケーション シナリオと問題解決の必要性があります。Go 言語は、関連するビジネスをすばやく開始して完了することができ、その高速性と優れたパフォーマンスもビジネス ニーズを満たします。インフラストラクチャの観点から見ると、これまで大規模な工場では C、C++、または JAVA を使用してリンク全体を構築していました.1 つのセットが効率に影響します.それと比較して、Go の実装はより高速で効率的になります.

プログラマーのキャリア開発と最終目的地は?

私が言いたいのは、言語は問題解決のためのツールに過ぎないということです。
個人のキャリア開発とキャリアパスに関しては、次の点を考慮してください。
  • あなたは語学が得意で、技術的な深みに取り組みたいですか?
  • ビジネスと組み合わせて、ビジネス能力、関連する個人のソフト資質、および管理能力を向上させたいですか?
  • テクノロジーを使用してビジネス上の問題を解決し、ビジネスに価値をもたらしますか?
個人的な観点から、キャリア開発を検討したい場合は、技術スタックや技術的なポイントだけを見るのではなく、得意なこと、予見可能な期間における強み、および発展させたい方向性、それを現在の仕事と組み合わせて、ニーズを明確にします。
Go によってもたらされる価値次元は、しきい値に足を踏み入れたり、問題を解決したりするのに役立つ言語ツールにすぎません。個人のキャリア開発は、主に現在の地位と価値に依存します。Go がビジネスに使用されるか、インフラストラクチャおよび低レベルのコンテンツに使用されるかは、自分の分野や仕事のニーズによって異なります. Go は、専門的な開発ニーズを満たすことができる言語ツールにすぎません.
また、囲碁エンジニアの仕事はまだまだビジネス志向というか、プロダクトの機能が多く、インフラや底辺が比較的少ないのが現状だと理解しています。大規模な工場には、より多くのビジネスや製品があるはずですが、インフラストラクチャなどの他の側面に対する需要は徐々に増加する可能性があります。
Aftership Goのアプリケーションはビジネスサイドが中心で、中にはクラウドネイティブやインフラと一定の関係を持つものもあるでしょうが、広範囲をカバーしていないか、Byteのような特殊なアーキテクチャ部門がGoのインフラ構築を行うわけではありませんエコシステム。まだありませんが、会社の発展段階によっては、これを行うためにまだ必要であり、開発されている可能性があります。

第5号


大物の共有セッションでは、大物が推奨するブロガー/技術学習 Web サイト/本。

共有者:李龍


推奨される理由:
  • データ集約型アプリケーションの設計
これは特に古典的な本であり、開発プロセスのあらゆる面で遭遇するいくつかの問題をカバーし、比較的包括的です。
  • 「プログラマーの自己啓発: リンク、ロード、およびライブラリー」
コンテンツは、主にリンク、ロード、コンパイルなどを含む、比較的低レベルの関連になります。
  • Google SRE ワークブック
SRE だけでなく、R&D も監視する必要があります。
  • 「マイクロサービス アーキテクチャの設計パターン」
マイクロサービスの開発時に発生する問題のいくつかについて、参考のためにここでいくつかの解決策を示します。

共有者:ヤン・ウェン


推奨される理由:
  • 「小さな習慣」
それは、心の次元とマイクロ習慣を開発するという個人的な考え方から始めて、個人に偏っています。ミニ習慣のアイデアは、負担なしで何があっても達成できる非常に小さな次元を想像することです. この本で表現したいコンセプトは、多くの場合、物事を行うことは主に行動であるということです。なぜ習慣は形成するのがとても難しいのですか?主なことは、それが負担であると考え、通常の仕事や生活に影響を与え、リズムを乱すので、それを行うことができないということです. だから、小さく始めてください。時間をかけて小さな行動で自分を抑え、徐々に習慣化し、最終的に夢を実現したり、目標を達成したりしてください。
  • 「ゆでニューディケイド」
なぜこの本がおすすめなのかというと、卒業したばかりの友達が多く、モバイルインターネットのことは知っていても、よくわからないことや、十中八九についてあまり知らないことが多いからです。年 (2010-2020) インターネットの開発。過去 10 年間に、どのような企業やアプリケーションがありましたか? モバイル アプリケーションにはどのようなものがありますか?また、それらはどのように進化しましたか? このプロセスでどのような問題や変化に遭遇しましたか? この本で詳しく説明します。
  • セールスフォースの伝説
この本は、私の現在の業界における ToB SaaS に関連しています。Salesforce は、セールス SaaS 業界のリーダー、というかパイオニアです。本書は、Salesforce の誕生から徐々に発展・成長するまでの全過程を紹介したものであり、Salesforce の成長史です。この本は SaaS 業界の大きな指針となり、段階的にどの段階に到達するか、どのような方法を採用できるか、またはどの段階を経るか、この業界ではまだ SaaS について多くの理解があるはずです。役に立った。

共有者:王偉超


  • ブックリスト
私の本リストの推奨事項は、実際には "Tao" のレベルに傾いています. "Tao" は、これらの本の多くが何らかのアーキテクチャまたはコーディングおよびプログラミングの思考に関するものであることを意味します. ルビーの父・松本幸宏さんの『The Future of Code』のオブジェクト指向の解説がちょっと印象的で、現在のコーディングやプログラミングがなぜプロセス指向からオブジェクト指向に変わっていくのかを説明している本です。その利点は何ですか?背景は何ですか?興味のある方はご覧いただけます。
  • ブログ
信仰指向のプログラミング、Geek Tutu、これら 2 つはより典型的なブログです。1 つは Go 指向設計の最下層用で、もう 1 つは Go コーディング用のフレームワークとミドルウェアの実装用です。Go night reading はより包括的です。Go のテクノロジー スタックについて学びたい場合は、それについて学ぶことができます。
  • ソフトスキル
これは実際には大きなトピックです。アジャイル開発などの職場でのソフトスキルに関しては、現在多くの企業が提案していますが、開発者としてアジャイル開発の標準やベストプラクティスについても学ぶことができます。コミュニケーションとフィードバックもあり、それぞれに独自の成功があり、すべてに反響があります. これらのコミュニケーションスキルにも全員の注意が必要です.

質疑応答

Q: Go 言語の全体的なアーキテクチャのいくつかの進化についてはどうですか? 主に何をサポートしますか?
A: 主にパフォーマンスの問題のためであり、一部のビジネス開発をサポートします。ByteDance 内の一部のシナリオでは、フレームワークの調整は主にパフォーマンスの最適化を目的としています。たとえば、フレームワークの場合、伝送の全体的な損失は大規模な蓄積に基づく実際のコストであるため、パフォーマンスを最適化することでコストの一部の損失を減らすことができます。このため、CloudWeGo を含む ByteDance は、最適な状態を実現するためにパフォーマンスの分野で進歩を続けてきました。同時に、テクノロジーのこの側面にもっと注意を払い、極端なパフォーマンスを経験した学生を含め、ここでいくつかの極端なパフォーマンスのフレームワークが得られることを願っています。私たちのプロジェクトに引き続き注意を払います.
 
Q: Go エンジニアに対する大手メーカーのニーズと要件は何ですか?
A: 現在、Dachang が Go エンジニアを募集しているビジネス面はより多くなります。もう 1 つの部分は、主に基本的なフレームワークのインフラストラクチャのコンテンツを実行し、そのパフォーマンスを全体的に調整することです。この部分に含まれる言語はよりハードコアになり、Go を使用するだけでなく、言語エコロジーや基礎となるロジックなど、Go のコアに精通し、関連するフレームワークのパフォーマンスの最適化を行うことができます。 .
クラウド ネイティブの現状と合わせて、現在業界で発展途上にあります. 多くの企業がクラウド トランスフォーメーションの段階にあり、このプロセスには一定の時間がかかり、移行できない可能性があります.一度に配置します。この状態では、実際には多くのバックグラウンド ロジックと操作が関与することになるため、アーキテクチャの調整と進化は、その後の Go エンジニアの育成のキャリア ディレクションにもなる可能性があります。さまざまな企業の開発段階に応じて、将来的により多くの企業が開発した後、インフラストラクチャ構築の需要が増加し、独自のインフラストラクチャを促進および維持する可能性があるため、Go 言語エンジニアの需要もそれに応じて増加します。

詳しくは

{{o.name}}
{{m.name}}

おすすめ

転載: my.oschina.net/u/4843764/blog/5567708