Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

クラス、インターフェース、タイプの命名について #49

Open
ryunix opened this issue Sep 19, 2023 · 4 comments
Open
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@ryunix
Copy link
Contributor

ryunix commented Sep 19, 2023

こんにちは、英語でうまく伝えられる自信がないので日本語で失礼します。

現在、ほとんどのクラス、インターフェース、タイプが camelCase になっていますが、これを PascalCase に変更したいと考えています。これらは一般的に PascalCase で書かれることが多いようです。

多くは内部で使用するためのものなので、パッケージの利用者に影響は出ないと思っていますが、もしかしたら影響が出るかもしれません。たとえば、audioQuery クラスのインスタンスは通常 createAudioQuery メソッドで生成しますが、頑張れば自力でインスタンスを生成することもできるかもしれません。もし、そのような使い方をしているユーザーがいればこの変更によって壊れてしまいます。

そのような使い方はレアだろうということと、バージョン1未満であることから思い切って変更してもよいのではないかと考えます。
もちろん、個人の好みもありますし、変更しなければ問題が発生するというわけでもありませんが、やるなら早いほうがいいかと思い提案させていただきました。

本件について、ご意見をいただきたいです。よろしくおねがいします。

@ryunix
Copy link
Contributor Author

ryunix commented Sep 19, 2023

次の表はクラス、インターフェース、タイプの一覧です。備考欄が空のものがパッケージの利用者に影響があるかもしれないという感じです。その中でも src/types/*.ts は内部で使用するためのものなので、実質影響なしだと思っています。

ファイル 内容 備考
src/audio_query.ts export class audioQuery {
src/client.ts export class Client { PascalCase なので対象外
src/preset.ts export class preset { 未リリースなので影響なし
src/rest.ts export class RestAPI { PascalCase なので対象外
src/rest.ts type fetchOptions = { export していないので影響なし
src/types/audioquery.ts export interface accentPhrase {
src/types/audioquery.ts export interface audioQuery {
src/types/audioquery.ts export interface createAudioQueryFromPresetOptions {
src/types/audioquery.ts export interface createAudioQueryOptions {
src/types/audioquery.ts interface mora { export していないので影響なし
src/types/preset.ts export interface preset { 未リリースなので影響なし
src/types/synthesis.ts export interface synthesisParams {

@tuna2134
Copy link
Member

tuna2134 commented Sep 19, 2023

なるほど
文法関連の修正は必要みたいですね、、、
ではv1のリリース時に取り込もうと思います!

@tuna2134 tuna2134 added enhancement New feature or request good first issue Good for newcomers labels Sep 19, 2023
@ryunix
Copy link
Contributor Author

ryunix commented Sep 19, 2023

ありがとうございます!

現在、プリセットを追加・更新・削除をするメソッドを実装中なのですが、preset クラスをパッケージの利用者がインスタンス化する必要があるのでそこだけ先行して直してもよいでしょうか?

こんな感じになる予定です。

async function main() {
  const testPreset = new preset({  // <- new Preset と書きたい
    id: 1000,
    // 省略
  });

  testPreset.id = await client.addPreset(testPreset);
}

@tuna2134
Copy link
Member

よろしくお願いします!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants