【WPF】【服务器启动器】开始GUI编程之前的准备

本文是关于Minecraft JE的服务器管理系统Server Starter的系列文章。其中使用了ShareWorld等特殊词语,如果您有兴趣的话,也可以看一下。

在这个页面中,我总结了我在创建GUI时最基本的考虑事项。由于我自己也是初学者,所以希望您能将其仅视为参考。

一開始就打算開始程式設計,可是…

你突然想“我想要制作这个!”并立即将所有的源代码写完,那么你是个天才。

不仅仅是GUI,如果要构建一个规模较大的系统,通常会在某个地方迷失目标,难以继续进行下去,即便开始写作也常常如此。此外,常常会出现冗长的构建或遗漏构建的情况,成为错误的根源。

因此,在开始创建之前,我认为做好各种事先准备非常重要。
除非是在业务等情况下进行,我想介绍一些关于像兴趣程度的构建的准备工作就足够了。

どんな機能が欲しい?(要件定義)

さて、あなたが作りたいと思ったソフトはどんな機能を有している必要があるのでしょうか。
筆者が作成したServer Starterでは主に以下の点に的を絞ることにしました。

功能要件指的是不得不具备才能成立的功能。

    • ワンクリックでサーバーを起動できる

 

    • 起動バージョンの追加がMinecraft launcherを通さずとも可能

 

    起動するワールドを選択・追加できる

非功能需求(附带功能,使用户能更好地使用软件的功能)

ShareWorld(リモートサーバー同期システム)の導入

server.propertiesを編集できる(よく編集する項目はハイライトされている)
不要になったバージョン・ワールドの削除ができる
ワールドを再生成できる
サーバー起動時にサーバーを立てている人にはop権限を与える
Spigotサーバーが導入できる
Datapack・配布ワールド・Pluginが導入できる
サーバーが終了するとPCもシャットダウンさせることができる
Minecraftのクライアントが存在しなくとも稼働することができる

おそらく、最初の草案で考えている内容は上記の「機能要件」にあたる部分が大半になっていると思います。しかし、ユーザーに楽に扱ってもらう・喜んでもらうためにはこれだけでは不十分です。

「非機能要件」にあるような付属的な機能を充実させることによってユーザーフレンドリーなシステムを構築することができ、ユーザーに喜ばれるようなものに仕上げることができます。
また、ユーザーに喜ばれるだけではなく、単純に個人で開発している際にボリュームのあるものに仕上がるため、達成感を得られると思います。

制定开发方案(设计)。

由于确定了要实施的功能,我想开始编码,但还有一项工作未完成。
确定了要实施的功能,但这仅仅是在编码过程中一个抽象的概念。我们需要进行将这个抽象的概念转化为具体的工作。

对于初学者来说,推荐使用流程图。

考虑到最低限度,我认为其中一个好处是决定处理流程。
通过考虑在哪里进行哪种处理,以及通过条件分支来将分支处理与主流程合并在一起,可以使开发更加有前瞻性,无需进行不必要的分支或方法开发。

これを整理する簡単なツールとしてフローチャートを筆者は使いました。ここで意識していたのはわかりやすければ何でもよいことです。
一例として筆者がかつて作成したフローチャートの一部を貼り付けていますが、このフローチャートは2,3正式な書き方からすると間違っている箇所があります。しかし、自身の思考を整理するためのいわゆるメモ程度のもののため、人に見せるものでもないところは手を抜いても良いのではないかと個人的には感じています。

为了不损害个人开发的速度感,我认为没有必要在与主要流程无关的地方花费过多时间。

image.png

如何设计屏幕布局

image.png

总结

这篇文章总结的内容仅仅是一个例子,不是绝对的。然而,我写这篇文章的目的是为了成为那些初次开始搭建中小规模和大规模系统的人们的参考。

让我们享受与业务不同的自由开发的个人开发!

广告
将在 10 秒后关闭
bannerAds