この記事はGitHubのブログ: 掲載されており、実際の仕事で遭遇した問題や、フルスタックの方向でビジネスを考えたり学んだりしたことが書かれています!
ウールギャザリング
今年の前半は流行の影響で東京の大学が部外者に門戸を開いていなかったので、長年続けてきたランニングの予定が途絶えてしまいました。幸い都内には立派な公園がたくさんあるので、予防接種キャンペーンのために事前に予約する手間を考えて年間パスをもらい、公園でのランニングに切り替えました。
しかし、何かをするということは、常に自分が望んでいることの裏返しであり、長い間、初心を空から放り投げてきたのですが、年賀状を握りしめて走ろうと思い始めたのが、東京公園・羊毛の旅でした。というわけで、より身近な東京動物園と悠々庵は、もう10回以上握りつぶされ、長い間チケット代に見合うだけの価値があり、満足しています。ただ、体重だけはかなり増えましたが...。
個人プロジェクト
今年の前半は、楽しみと、技術的な予備軍として新しいテクニックを練習するために、個人的なプロジェクトをたくさんこなしました。
強い状態と弱い状態、そしてサーバーに頼る必要があるかどうかに基づいて、テクノロジーの選択は以下のカテゴリーに分けられます:
- shfshanyue/markdown-to-html-api: mardownに従ってhtmlを美化するGraphQL APIの生成
個人的なプロジェクトの簡単なリストで、どれもとても小さなものです。また、誰もが自分の小さなニーズを満たすプロジェクトを見つけ、それを完了するために1日か2日取ることを試みることをお勧めします。
- shfshanyue/markdown-to-html-api: mardownから美化されたhtmlを生成するためのGraphQL API。
- shfshanyue/geek:ギーク・タイム・リベート・プラットフォーム: geek.shanyue.tech
- :: 個人公開アカウント用自動アップロードスクリプト、 shfshanyue/markdown-to-html-api SDKとして使用。
個別プロジェクトのインフラ
個々のプロジェクトをよりよくサポートするために、インフラ関連のいくつかのことが行われました。
CaaS
コンテナ・アズ・ア・サービス(Container as a Service)、コンテナ・アズ・ア・サービス(Container as a Service)、個人プロジェクトをサーバーに迅速にデプロイするためのものです。また、mysql、prometheus、ES、kibanaのような、大きなソフトウェアのデプロイを行うこともできます。
Package
- : map、filter、retry、sleep などの便利なプロミスユーティリティ。
- cls-session: Node の CLS ライクな実装で、async_hooks における Promise のメモリリークを回避します。
Template
Service
いくつかの基本的なサービスは、イメージプロキシサービスなど、ほとんどがgithubから取得したものです。
技術の蓄積
学ぶということは、流れに逆らってボートを漕ぐようなもの。特に技術、特に技術の応用層については、接触しないまま1年半が過ぎると、見たこともないように錆びついてしまいます。新しい技術の習得については、よく考えてみると、そうではなく、古い技術をもう一度見直しているだけのような気がします。
うろ覚えのために、あるいは『100年の孤独』の記憶喪失との戦いに関するちょっとしたメモのように、体系的な要約のために、シリーズの要約をいくつか書いてみました。
もし10年後、私がテイクアウトの配達に行ったとき、ブログを指差して「ほら、私はコードを書いていたんですよ」と言えるようにするためです。
フロントエンドアドバンスプログレッションシリーズ
- @shanyue/promise-utils
- cls-session
- 高度なフロントエンドの進歩:ウェブサイトにおけるキャッシュ制御ポリシーのベストプラクティスと考察
- 高度なフロントエンドの進行:チームコード仕様の制約ベストプラクティス
- フロントエンド上級:本番環境でnpmのi速度を50%向上
- Advanced Frontend: dockerを使ったフロントエンド・アプリケーションの効率的なデプロイ
- 高度なフロントエンドの進行:CICD下でのフロントエンドのマルチフィーチャー分岐環境の展開
- フロントエンドの進化:フロントエンド展開の進化
- フロントエンドの高度な高度な:ローカル環境のhttps証明書の設定
Node
- ノード練習言語:モジュールとその詳細を紹介する方法
- ノードプラクティスソース:koaのコンパクトバージョンを実装するための40行のコード。
- Nodeコードの実践:アプリケーションへのユニットテストの追加
- ノード・プラクティス・ロギング:正しく効率的にログを印刷する方法
- ノード実践ログ:async_hooks、CLS、非同期リソース・ライフサイクル・リスニング
- Nodeの実用的なロギング:Nodeのフルリンクロギング
- ノード・プラクティス・モニタリング:ノード・サービスのメモリを監視する方法
個人サーバー運用保守
また、パーソナル・サーバー・オペレーションやk8sシリーズなど、以前に書かれたシリーズにも追加があります。
シーケンス
構成
- 効率的でシンプルなサーバーログイン設定
- サーバーへの git のインストールと基本的な設定
- vim 基本操作と設定
- クラウドサーバーの基本メトリクス情報ビューとコマンド
- ansible
- docker はじめに
- Dockerfile ベストプラクティス
コンテナ
- tmux マルチウィンドウ管理で
- docker compose オーケストレーション・アーキテクチャ入門
- docker compose はじめに
- traefikを使ってリバースプロキシ
- docker compose を始める
- docker compose オーケストレーション・アーキテクチャ入門
- docker compose はじめに
- postgresを使ったデータ保存
- redisをキャッシュサービスとして利用
- Sentryを使った例外監視
- キャッシュ・サービスとしてredisを使用
- セントリーによる例外監視
- linux 各種監視指標
モニタリング
コマンド
プロフェッショナルワーク
また、社内のビジネス思考の総まとめにも時間がかかりました
- : さて、これはまだ書かれていません。マシンの数を増やすことに加えて、無駄なリクエストや書き込み操作を最小限にすること、バッチやキャッシュをうまく使うことです。バックエンドはデータをredisに放り込んでデータベースとのやりとりを減らします。フロントエンドはindexdb/websql/localstorageを使ってグローバルな状態を永続化し、バックエンドとのやりとりを減らします。
この数年間、会社で行ってきたビジネスを振り返ってみると、ビジネスの深さ、接点の広さがあまりない、考えが足りない、理解力が足りない、常に技術的な成長を追い求めている、といつも感じます。
全体を俯瞰して計画しなければ、全領域を計画することはできません。 かつては、技術の広さを意図的に追求しましたが、業務領域を軽視していました。CRM、ERP、MIS、DSP、インテリジェントビルシステム、WebIDEなどの小さなシステムから、Eコマース、金融、教育、マルチメディア、クラウドコンピューティングなどの大きな産業まで、多くのビジネスが全産業に共通していることを知りません。
辞任
他に書くことがあるとすれば、裸の諦念。裸の辞任は本物の泥棒ですが、今はまだその過程にあります。