GithubHelp home page GithubHelp logo

kiyo510 / hagoniwa_island Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 338 KB

古のCGIゲームである箱庭諸島を5系PHPからGolangへフルリプレイスする。

PHP 63.47% CSS 3.29% JavaScript 0.40% Dockerfile 0.17% HTML 32.68%

hagoniwa_island's People

Contributors

kiyo510 avatar

Watchers

 avatar

hagoniwa_island's Issues

.dockerignoreの作成

概要

READMEなどビルドに含めなくても良いファイルを.dockerignoreへ記述する

実装方針

追加する機能

機能追加の完了条件

その他補足や注意点

GoのDockerコンテナをつくる

概要

とりあえずGoが動くDockerコンテナをつくる

実装方針

追加する機能

機能追加の完了条件

その他補足や注意点

[タスク] 箱庭諸島2マニュアルページ作成

概要

  • 既存のWeb上に存在している箱庭諸島2のマニュアルページが絶滅する前にこちらにソースコードのアーカイブを残す

実装方針

追加する機能

機能追加の完了条件

その他補足や注意点

config.phpをgoへ書き換え

概要

とりあえず一番簡単そうなconfig.phpをgoへ書き換える

実装方針

追加する機能

機能追加の完了条件

その他補足や注意点

プロジェクトのちゃんとしたREADMEをつくる

概要

どうせ誰も見てないので適当にreadme.txtへ追記してしまっているが、一応ちゃんとしたREADMEをがんばってつくる。

実装方針

追加する機能

機能追加の完了条件

その他補足や注意点

色々なところで文字化けする

  • 最初にUTF-8へ一括で変換しているので、HTMLを生成しているところがShif_JISになっているのが原因かも?
    • charaset=utf-8 したけどダメ
  • Shift_JISへマルチバイトを変換するような処理があり、それをファイルへ出力するときに辺になるのかも?
    • data/island.1に観光通信データが出力されている

image

image

PHP→Golangへの移行計画を考える

概要

  • おおまかな移行手順を考える

実装方針

  1. まずPHPのソースを→Golangへリプレイスする
  • かなり古いソースコードなのでPHPでHTMLを生成しechoでブラウザへ出力するといった形となっている。最終的にはフロントとバックエンドは疎結合にしたいが、いったんGolangでHTMLを生成する形にして動くようにする。
  1. HTMLとフロントエンドを切り離す
  2. API設計をする
  • 使い慣れているSwaggerを使う
  1. バックエンドのAPI実装
  2. フロントエンドの実装
  • フロントはNext.js + Vercelとし、Next.jsのエコシステムに完全に乗っかっていく
  1. テキストファイル→RDBMSへ
  • これは20年以上前の古のソースコードのため、当時流行っていたDBの代わりにテキストファイルをつかっている。 (島のMAPの描画もテキストファイルでやっているっぽい)
  • 現状のソースでは島のターン更新時には島のMAPの状態、資金、人口、ミサイルや兵器の数などのあらゆるデータが更新されるので、ファイルロックをしている。
  • ターン更新時にファイルロックするため、未確定の島の実行計画を反映させようとすると失敗するようになっている。
    • RDBMSであれば、テーブルロックが必要そうなので、このへんの排他制御によるパフォーマンスの影響はしっかりと考えたい。

追加する機能

機能追加の完了条件

その他補足や注意点

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.