タグ

関連タグで絞り込む (3)

タグの絞り込みを解除

パッケージ構成に関するakatakunのブックマーク (8)

  • Goの標準プロジェクトレイアウトを読み解く - Tech Do | メディアドゥの技術ブログ 

    The Go gopher was designed by Renée French and has a CC BY 3.0 license. メディアドゥの沓名と奥野です。 今回は、弊社内での複数のGoプロジェクトの構成を整理する際に参考にした情報をまとめます。 背景 最近、弊社内にてGoで書かれたプロジェクトが増えてきました。 今後もGoプロジェクトは増加する予定のため、プロジェクト間で共有したいコードや、フォルダ構成の統一化を今のうちに行おうと思い立ちました。 ここでは、企業向けに定義された「GitHub - golang-standards/project-layout: Standard Go Project Layout」を参考に、Goプロジェクトのディレクトリ構成のルールについてまとめていきたいと思います。 前提 ここで取り扱う内容は、あくまでGoプロジェクトのディレクトリ

    Goの標準プロジェクトレイアウトを読み解く - Tech Do | メディアドゥの技術ブログ 
    akatakun
    akatakun 2019/07/31
    ディレクトリ構成,ここで取り扱う内容は、あくまでGoのプロジェクトのディレクトリ構成についてであり、パッケージ階層については触れません
  • Goにはディレクトリ構成のスタンダードがあるらしい。 - Qiita

    参考URL 上記リポジトリにはGOプロジェクトでのスタンダードとなるディレクトリ構成の説明が書いてある。一つずつ見ていくことにします。 /cmd 一番メインとなるディレクトリ。このディレクトリの中にアプリケーションのエントリーポイントを作る。 注意点としてはmain.goに多くのことをさせないことである。各処理は基的に後述する/pkgなどで実装していくのでそれをインポートする形を取るべきだとある。 /internal /cmdで作ったエントリポイントで使いたいライブラリをおく。だが、このライブラリは各アプリケーション毎に書かれるものとなるので他のアプリケーションと共有するライブラリは置かない。そうゆうのをおくとすれば、後述の/pkgに置く。

    Goにはディレクトリ構成のスタンダードがあるらしい。 - Qiita
    akatakun
    akatakun 2019/07/31
    ディレクトリ構成
  • Railsでロジックを書く場所を意識する - Qiita

    言語を問わずMVCのフレームワークを使う時に以前からよく言われていた話として、ビジネスロジックをコントローラに書いてはいけないというのがあります。 しかし、単にコントローラを薄くすることだけを考えるとモデルがFatになってきたりするので、モデルに切り出すという事以外にもいくつかの方法を知っておく必要があります。 実装のパターン 1.モデルに実装する コントローラにコードを書くのではなく、モデルにビジネスロジックを実装してコントローラを薄くします。 ただし、モデルにコードを集約し過ぎるとモデルがFatになってしまうので、当にモデルに実装すべきかをよく考え、他の層に切り出すことも考えます。 モデルに実装するパターン モデルに紐付いたテーブルのレコード取得(ActiveRecordの操作) モデルに紐付いたテーブルをベースとした関連テーブルを含めたデータ取得 モデルに紐付いたテーブルのデータ更

    Railsでロジックを書く場所を意識する - Qiita
  • [JA] Golang Package Composition for Web Application: The Case of Mercari Kauru

    [JA] Golang Package Composition for Web Application: The Case of Mercari Kauru

    [JA] Golang Package Composition for Web Application: The Case of Mercari Kauru
    akatakun
    akatakun 2018/04/09
    Flat Packages: 機能ごとに分割。Go言語の 標準パッケージの構成に親しい考え方,Micro services,Multiple Packages: デザインパターンに沿った分類,Monolithic,各レイヤ配下はFlat Packages構造にする
  • Goのpackage構成と開発のベタープラクティス

    (images: github.com/egonelbre/gophers) こんにちは。 データエンジニアリンググループ(CETチーム)の寺下です。 自分の所属するCETチームでは今まで主にScalaPythonなどを使ってAPIや基盤を実装してきましたが、最近では徐々にGoによる実装も増えてきており、GAE/GKE上で番運用を行っています。 記事ではGoのプロダクトにおいてDDDライクなpackage構成で実装する際の注意点や、汎用的に通用するであろう実装のTipsについて書いていきます。 記事で紹介する例がベストプラクティスだというわけではありませんので、あくまで実装の一例程度に捉えて頂けると幸いです。 Goのアーキテクチャ Goは言語仕様がシンプルかつフォーマッタが強力なため、syntaxレベルでは開発者によってコードの品質がブレにくいというメリットがあります。 しかしなが

    Goのpackage構成と開発のベタープラクティス
  • Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える

    Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える1. Goのサーバサイド実装における レイヤ設計とレイヤ内実装について 考える 2. 自己紹介 twitter pospome 読み方 ポスポメ 職種 サーバサイドエンジニア 興味 クラス設計全般, DDD ここら辺の技術に興味ある方は フォローしてくださると嬉しいです 3. 発表する前に ・基的にはレイヤ構造の話なのでDDDは関係ありませんが、 微妙にDDDに関する単語や概念が出てきます ・マサカリ歓迎です 「これは良い」「これは間違っている」などなど twitterでご意見いただければと思います ・後からスライド単体でも見直せるように文字多めです 4. 目次 レイヤとは? レイヤ設計について レイヤ内実装について 5. 目次 レイヤとは? レイヤ設計について レイヤ内実装について 6. コードを性質別にザックリと

    Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
    akatakun
    akatakun 2018/03/19
    Domain層が改修起点,input,outputのstructはusecaseがhandlerに依存しない前提なのでinterfaceにしない,infraはDomainでRepositoryのinterfaceを定義し、Infraで実装することでDIP
  • Goのパッケージ構成の失敗遍歴と現状確認

    この記事は Gunosy Advent Calendar 2017の5日目の記事です。前回の記事はGunosyのパーソナライズを支える技術 -ワークフロー編-でした。 GoAPIを書くときの問題僕の在籍するGunosyはGoを昔(?)から番採用しておりまして、ノウハウも潤沢に溜まっている企業だと言えます。 しかし、contextの扱いやベストなパッケージ構成、テスト、net/httpでAPIを書くノウハウなどなど、迷うことは多々あります。 これは弊社特有の事情ではなく、Goのサーバーサイドエンジニア全員にとっての問題です。中でも、パッケージ構成をどうすればいいのか(相互参照せずに快適に開発を進められるパッケージ構成とは)を見つけるのは結構難しく、各々のチームにお任せ、という状況です。 今回は上記の問題のうち、パッケージ構成に踏みこんで見たいとおもいます。会社でもよくパッケージ構成をどう

    Goのパッケージ構成の失敗遍歴と現状確認
    akatakun
    akatakun 2018/03/19
    CLIツールや小さめのサーバー、あるいは小さめのパッケージなどはmainにまとめる,MCVは相互参照で辛い,libraryはutilsほど細かくなく、切り出してもいいレベルのもの
  • Railsアプリのモジュールはどこに置くべきか問題 (公開版)

    Railsアプリにおいて、自分でつくったモジュールをどこにおくべきか問題についての自分の認識をかいたもん。

    Railsアプリのモジュールはどこに置くべきか問題 (公開版)
    akatakun
    akatakun 2017/05/17
    アプリの機能に特化していない("app/"以下やapp定数に依存しない)ものはlibに置く,API Key的なものはconfig/initializersに置く,appの機能は"app/"にサブディレクトリを切って置く
  • 1