From a7bb6262d7b3a03064b3e33af67c4cab499c1640 Mon Sep 17 00:00:00 2001 From: jiro4989 Date: Fri, 8 Jul 2022 02:38:29 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=AF=E3=82=B3=E3=83=A1=E3=83=B3?= =?UTF-8?q?=E3=83=88=E3=81=AE=E6=9B=B8=E3=81=8D=E6=96=B9=E3=82=92=E5=A4=89?= =?UTF-8?q?=E6=9B=B4=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F=E3=82=8F=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ojosama.go | 72 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 37 insertions(+), 35 deletions(-) diff --git a/ojosama.go b/ojosama.go index a012110..81e2465 100644 --- a/ojosama.go +++ b/ojosama.go @@ -1,38 +1,40 @@ -// ojosama はお嬢様言葉への変換ロジックを管理する。 -// -// -// -// 関数や構造体のアクセス範囲に関する方針 -// -// 基本的にライブラリ用途としては Convert 関数1つのみを公開する。 -// Convert関数の挙動の微調整はConvertOption構造体で制御する。 -// -// ユーザ側で独自に変換ルールを追加出来たほうが良いかもしれないが、 -// パッケージ構成や型名を変更する可能性が高いため、 -// 破壊的変更として影響しないように公開する機能を必要最小限にする。 -// -// 「ライブラリ呼び出し側で独自に変換ルールを追加したい」という人は -// おそらく現れないと想定しているが、要望がきた時に改めて考える。 -// -// それまでは好き勝手パッケージ構成や名前を変更しまくれるように -// 公開範囲を極小にする。 -// ゆえにConvert関数内の処理で関数を分割したくなった場合、 -// すべてプライベート関数として実装する。 -// -// 内部実装の都合でパッケージ等が必要になった場合は、 -// すべて internal パッケージ配下にパッケージを切って配置する。 -// -// -// -// 変換ルールの実装方針 -// -// 変換ルールは internal/converter で定義する。 -// 変換ロジックと変換ルールが密結合してるので -// 同じパッケージの方が自然にも感じるけれど分離している。 -// -// 理由は、変換ルールの生成にしか使わないプライベート関数や、 -// 変換条件の判定関数と、その内部実装用のプライベート関数などが増えてきたため、 -// それらのプライベート関数に変換ロジック関数からアクセスさせないためにパッケージを分けている。 +/* +ojosama はお嬢様言葉への変換ロジックを管理する。 + + + +関数や構造体のアクセス範囲に関する方針 + +基本的にライブラリ用途としては Convert 関数1つのみを公開する。 +Convert関数の挙動の微調整はConvertOption構造体で制御する。 + +ユーザ側で独自に変換ルールを追加出来たほうが良いかもしれないが、 +パッケージ構成や型名を変更する可能性が高いため、 +破壊的変更として影響しないように公開する機能を必要最小限にする。 + +「ライブラリ呼び出し側で独自に変換ルールを追加したい」という人は +おそらく現れないと想定しているが、要望がきた時に改めて考える。 + +それまでは好き勝手パッケージ構成や名前を変更しまくれるように +公開範囲を極小にする。 +ゆえにConvert関数内の処理で関数を分割したくなった場合、 +すべてプライベート関数として実装する。 + +内部実装の都合でパッケージ等が必要になった場合は、 +すべて internal パッケージ配下にパッケージを切って配置する。 + + + +変換ルールの実装方針 + +変換ルールは internal/converter で定義する。 +変換ロジックと変換ルールが密結合してるので +同じパッケージの方が自然にも感じるけれど分離している。 + +理由は、変換ルールの生成にしか使わないプライベート関数や、 +変換条件の判定関数と、その内部実装用のプライベート関数などが増えてきたため、 +それらのプライベート関数に変換ロジック関数からアクセスさせないためにパッケージを分けている。 +*/ package ojosama import (