タグ付けされた質問 「golang」

3
Golangでの「this」の使用
Golangがここにあるスタイルガイドに最も近いのは、Receiver Namesの下です。 メソッドのレシーバーの名前は、そのアイデンティティを反映したものでなければなりません。多くの場合、そのタイプの1文字または2文字の略語で十分です(「クライアント」の「c」または「cl」など)。「me」、「this」、「self」などの汎用名は使用しないでください。これらは、関数ではなくメソッドに重点を置くオブジェクト指向言語の典型的な識別子です。名前はメソッドの引数のように説明的なものである必要はありません。その役割は明白であり、文書の目的には役立たないからです。 個人的には、「this」が関数の記述および編集時に取り組んでいるものの焦点であるため、常に「this」を識別子として使用しています。それは正しいように聞こえ、(少なくとも私には)理にかなっています。 名前が記述的である必要がない場合、その役割は明白であり、ドキュメンタリーの目的を果たしません。なぜ「これ」の使用が眉をひそめるのでしょうか?

1
クリーンなアーキテクチャーに従って設計されたGoアプリケーションの構築方法
ここで説明するように、私はクリーンなアーキテクチャを使用してプロジェクトを構築しようとしています。Goでこれを行う方法についての素晴らしい記事を見つけました。 この例は非常に単純なものであり、作成者はコードをパッケージ内のレイヤーに基づいて名前が付けられたパッケージに入れます。ボブおじさんのアプリケーションのアーキテクチャはその意図を明確に伝えるべきだという考えが好きです。したがって、ドメイン領域に基づいたトップレベルのパッケージをアプリケーションに持たせたいのです。したがって、私のファイル構造は次のようになります。 /Customers /domain.go /interactor.go /interface.go /repository.go /... the same for other domain areas これの問題は、複数のレイヤーが同じパッケージを共有することです。したがって、依存関係のルールがいつ違反されているかは明確ではありません。何が何に依存しているかを示すインポートがないためです。 私は、これはあなたが個々のファイルをインポートすることができますので、問題の限りではありませんので、Pythonの背景から来ているcustomers.interactorインポートすることができcustomers.domain。 パッケージをネストすることにより、gOで同様のことを実現できます。その結果、customersパッケージにはドメインパッケージとインタラクターパッケージなどが含まれます。これは不格好に感じられ、同じ名前のパッケージは扱いが面倒です。 別のオプションは、ドメイン領域ごとに複数のパッケージを作成することです。1つはcustomer_domainと呼ばれ、もう1つはcustomer_interactorと呼ばれます。しかし、これも汚い感じがします。これはGoのパッケージ命名ガイドラインにうまく適合せず、名前には共通のプレフィックスが付いているため、これらの個別のパッケージはすべて何らかの方法でグループ化する必要があるように見えます。 では、これに適したファイルレイアウトは何でしょうか。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.