たけぴの言っちゃったもん負け

ガジェット、Apple、ゲーム、テクノロジー、たまに時事問題などの話題を提供します


独立チーム向けのGolangプロジェクトの構造:より良い方法

 こんにちは!たけぴです。
ソフトウェアエンジニアの皆さん開発プロジェクトでチームリードに悩んでいませんか?
開発リーダやマネージャ以上の方はどうやって上手くプロジェクトを回すか、という問題に直面することは少なくないかもしれません。
プロジェクトの構造定義とか開発プロセスの提案とか、ややもすると「めんどくさい」と思ってしまうかもしれませんね。

そんな悩みに対するヒントになればと、今回はDEVELOPER by Andrea Medda の記事をお届けします。それではどうぞ!

 

小規模で独立したチームで作業することは、エンジニアにとって難しい場合があります。 フィンテックセクターの急成長企業であるカーブのエンジニアとして経験して分かったのですが、チームごとにまったく異なるアプローチを使用する傾向があることがあり、チームの移動とチーム間のコミュニケーションが課題になります。

カーブでは、プログラミングにGolang(または略してGo)を使用します。 Goは、シンプルで信頼性の高い効率的なソフトウェアを簡単に構築できるオープンソースプログラミング言語です。

複数のチームでオープンソース言語を使用すると、独自の課題が発生する可能性があります。 たとえば、構造の違いやさまざまな規格への適合から多くの問題が発生します。 すべてのプロジェクトがベストプラクティスに従うことを保証しながら、高いコード品質基準を維持しようとするのは困難な場合があります。

定義済みのプロジェクト構造をチームと共有すると、このような課題を克服できます。 また、Goなどのオープンソース言語を使用する場合は生産性も向上します。

これが発生すると、すべてのプロジェクトがより似たような外観になり、チーム間の移行がはるかに簡単になります。 また、経験豊富なGopher(Goのエンジニアと呼ばれます)は、関連するファイルやディレクトリを見るだけで何が起こっているかを知ることができるため、プロジェクトメンバーが貢献するのも簡単です。

明確に定義されたプロジェクト構造は、確立された標準に従うことが容易であるため、新しいGo開発者にも役立ちます。 新しいチームメンバーは、サービスの動作を学習する必要なく、変更を加えて他のプロジェクトに複製することができます。

f:id:future7:20200311113758j:plain

出典:DEVELOPER

問題は、組織でこのような仕組みをどのようにして確立するかです。

あなたの配置された立場では2つの選択肢があります。 1つ目は、go-kitgo-microなどのフレームワークを使用して、構造とアプローチを提案することです。

このタイプのフレームワークを使用する利点には、すぐに使用可能なユーティリティ(ロギング、トレース)、および事前に合意され、コミュニティとオープンに共有されている標準が含まれます。ただし、この方法にはいくつかの欠点があります。それはこのようなフレームワークには多くの定型文が付属しており、コアコンポーネントに変更を加えることは困難であるということです。また、コミュニティによって管理されているという事は、変更を待つ時間が長すぎるため、バイナリのサイズが大きくなることも意味します。

2番目の選択肢は、単純に会社レベルでプロジェクト構造に同意することです。これを行うことで、あらゆるアプローチやライブラリを自由に使用でき、迅速な変更を行い、バイナリを小さくし、慣用的なGoを簡単に追跡できます。これの潜在的な欠点は、これらの変更に同意して適用するプロセスを促進するために、会社のエンジニアリング文化が十分に成熟している必要があることです。このような長く退屈なプロセスにより、仲間のエンジニアは価値があるかどうか疑問に思うかもしれませんが、一部の標準は自然に発生し、時間とともに進化します。詳細を確認した後、合意された標準を再検討することは何の問題もありません。

カーブでは、この2番目のアプローチを選択したのですがこれには課題がありました。たとえば、複数の会議と長い議論のため、合意プロセスには数ヶ月かかりました。急成長企業では、これは生産性レベルに大きな影響を与えてしまうでしょう。また、明確なフレームワークがないため、チームは通常「すぐに使える」要素を手動で実装する必要があり、場合によっては、複数のサービス間で誤ってコードが複製されてしまうこともありました。

多くの場合、開発しながら学習し、ほとんどの決定はエンジニアの日々の経験に基づいてフィードバックを受け取った後に行われました。それはコミュニティに注目しながら、また他の成功したGoベースの企業が何を行うかを調査しながらでした。

この方法を採用することで、時間の経過とともに大幅に改善されました。コアチームのエンジニアで構成してGo関連の決定を行うために、「Goチャプター」というものを設置しました。彼らは数週間ごとに会合を開き、関連するトピックについて議論し、新しい標準の採用案に投票します。次に、すべてのチームがすべての新しいサービスにそれを採用し、プロジェクトをリファクタリングする時間を自律的に割り当てて、プロジェクトをフォローします。

プロジェクト構造に関しては、採用する前にすべてのトピックについて何度も議論します。 また、ビジネス目標を確実に達成するために、必要に応じて何度でもプロセスを修正および変更します。

これまでのところ、この新しいアプローチは私たちにとってうまく機能しています。 これは、高品質で安定したサービスをより頻繁に出荷できることを意味し、譲渡を簡素化できます。 これにより、すべてのエンジニアが何をすべきか、問題を解決してバグを見つける方法を簡単に知ることができます。

ただし、次の2つの欠点も確認されています。
 ・レガシーサービスのリファクタリング
 ・既存のサービス全体に変更を置き換えること
後者については、最近、ログ記録と監視の戦略を見直し、それに従うためにすべてのサービスに関わる必要がありました。

これまでのところ、このアプローチの維持は比較的簡単です。エンジニアは、構造とコードの再利用に関連するサービスの問題を解決しようとして、新しいより良い方法を見つけるかもしれません。実験してチームメイトからのフィードバックをもらったら、エンジニアは「Goチャプター」で提案できます。

最近の例では、grpcではなくhttpまたは両方の可能性があるサービスを使用する必要性に基づいて、トランスポートレベルを分割することを決定したことです。これを容易にする素晴らしい方法を発見し、承認されました。

このプロジェクト構造は、チームや会社が十分に成熟しており、サービスを学習して改善したいがために間違いを犯してしまう場合にも有効です。明確なコミュニケーションと努力が必要ですが、最終的には合理化されたプロセスに取り組む価値があります。

 

Final Fantasy VII Remake クラシック版からの展開

 こんにちは!たけぴです。
ゲームの話題。たけぴはいつも面白そうで飛びつくけど、時間がなくなってCompleteできないヘタレゲーマーです。
今一番気になっているのはこれ、ファイナルファンタジーVIIリメイク。先日デモゲームが公開されましたね。
これは買っちゃうかもしれない。ちなみに本リリースはPS4で2020年4月10日の予定です。
今回は以下、The Guardianの記事から。それではどうぞ!

続きを読む

5G iPhone コロナウイルスの影響で遅れる可能性

 こんにちは!たけぴです。


今年は自分のiPhoneを買い換える年かなぁ、そろそろ電池もへたってきたし。。


さて、コロナウイルスの影響で次のiPhoneの発売時期はどうなるのでしょうか?

 

噂では5G iPhoneの発売は今年秋に1ヶ月, iPhone 9とiPhone SE 2も数ヶ月遅れると言われています。


発売されても品薄状態が続いたりしないか、気になるところです。

 

アップルも株価が2020年2月から3月にかけて13%程度落ち込んでいるという情報もあるが短期的には収益目標に影響はないと言ってます。

 

参考、MacRumors by Frank McShan

 

 

2020年 火星探査機の命名

 こんにちは!たけぴです。


近未来的なものが好きなたけぴは宇宙開発にも興味があるよ。


今回は火星探査機についてのニュースをお届け。

 

今年2020年の火星探査機の名前が"Perseverance"になったとのこと。

 

"Perseverance"は日本語にすると「忍耐」とか「不屈の精神」という意味です。

 

全米の小中学校対象に探査機命名エッセイコンテストから応募して審査の結果決まったそうです。

 

Alexander Mather君(バージニア州の7年生)が優勝しました。(おめでとう)

 

しかも選ばれなかった名前とエッセイをシリコンチップに記憶して一緒に火星に飛ばすんだって!


NASAの粋な計らいにグッときた!

 

 UNIVERSE TODAYの記事より

 

PS5リリース日、スペック、ニュースと噂

 こんにちは!PS5の情報が気になるたけぴです。
今年2020年にPS5の発売を控え、気になっている方もいるのではないでしょうか?
いやぁ、今回の発売はXbox Series Xの発売とガチンコ勝負の気配がありますね。
あることない事、色んな噂も飛び交っているようですが、ガセネタは掴まないようにしたいです。
ということで以下の記事から「言っちゃった情報」をどうぞ!

続きを読む

このブログについて

ガジェット、Apple、ゲーム、プログラミングに関する話題を提供するブログです。

管理人のたけぴが独断で選んだトピックについて世界のニュースをお届けしたり、思ったことを綴ります。

【免責事項】

世界のニュースからその翻訳情報をお伝えすることがありますが、執筆時点での情報であり状況が変わっていることがあります。また一部のコンテンツが原典と異なったり、翻訳が正確でない場合もあることをご了承ください。誤りがありましたらご指摘いただけると助かります。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

iPhoneは石鹸水で洗える

 皆さんこんにちわ。たけぴです。

皆さんは自分のスマートフォーンを日頃キレイにして使っていますか?

スマートフォンの表面には色んな菌がついているそうですよ。

病院感染ジャーナルによるとコロナは金属、ガラス、プラスチック上で最大9日間は生きることができるそうな。

変な菌を身体にとりこまないようにiPhoneやガジェット類はキレイにしておくのがいいですね。

iPhoneはある程度の耐水性レベルだから軽く石鹸水で洗うくらいは大丈夫みたいです。

ただし充電ポートに水が残っていると充電ができなくなるので良く拭くこと。

僕は水洗いするかはともかくアルコールで拭くように心がけます。

 
以下Yes, you can wash your iPhone with soap and water | Cult of Mac

の記事から BY LEANDER KAHNEY