chatGPTと歩むWeb開発

概要

 ひとまず、面倒なプログラミング作業や環境構築作業、データベースの初期データセットアップ作業などをchatGPTにやっていただこうと考えております。おそらく、各フェーズごとに分けたり記事を分割したりして気長にやろうと考えております。
 chatGPTの使い方などは別途記事を作成しようかと考えております。ひとまずWeb開発を行うには何が必要なのか。面倒なのかを体感しながら作業を進めていきたいと考えております。
 また、なかなか時間が取れず推敲できない状況であるため、勘違いアジャイル形式で記事をどんどん修正しては破壊しと繰り返しながら記事執筆にあたるため、論理破綻や読みづらさが散見されるかと思いますが何卒ご了承いただければと存じ上げます。

進捗状況

2023年6月11日
・ひとまず、会計システムっぽいテーブル定義を作成させることはchatGPTさんに依頼し、実施済み。
・Docker Rancher Macの環境構築は完了済み。
・バックエンド、準備が進んでいない状況。悩みますね。pythonかJavaか、はたまたNodeか。

テーブル定義関係

■SQL 現金収支テーブル

CREATE TABLE CashFlow (
    id INT PRIMARY KEY,
    transaction_date DATE,
    account_name VARCHAR(50),
    debit_amount DECIMAL(10, 2),
    credit_amount DECIMAL(10, 2)
);

■サンプルデータ

INSERT INTO CashFlow (id, transaction_date, account_name, debit_amount, credit_amount)
VALUES
    (1, '2023-05-01', '給与', 100000.00, 0.00),
    (2, '2023-05-05', '家賃', 0.00, 50000.00),
    (3, '2023-05-10', '食費', 20000.00, 0.00),
    (4, '2023-05-15', '光熱費', 0.00, 10000.00),
    (5, '2023-05-20', 'クレジットカード支払', 15000.00, 0.00);

■SQL 組織の階層構造を考慮した現金収支を把握するためのテーブル

CREATE TABLE CashFlow (
    id INT PRIMARY KEY,
    transaction_date DATE,
    organization_id INT,
    debit_amount DECIMAL(10, 2),
    credit_amount DECIMAL(10, 2)
);

■SQL 組織テーブルの定義

CREATE TABLE Organization (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    parent_id INT,
    FOREIGN KEY (parent_id) REFERENCES Organization(id)
);

■組織テーブルのサンプルデータ

INSERT INTO Organization (id, name, parent_id)
VALUES
    (1, '組織A', NULL),
    (2, '事業部A', 1),
    (3, '事業部B', 1),
    (4, '部署A1', 2),
    (5, '部署A2', 2),
    (6, '部署B1', 3),
    (7, '課A1-1', 4),
    (8, '課B1-1', 6);

■現金収支のサンプルデータ

INSERT INTO CashFlow (id, transaction_date, organization_id, debit_amount, credit_amount)
VALUES
    (1, '2023-05-01', 7, 10000.00, 0.00),
    (2, '2023-05-05', 4, 0.00, 5000.00),
    (3, '2023-05-10', 3, 2000.00, 0.00),
    (4, '2023-05-15', 2, 0.00, 10000.00),
    (5, '2023-05-20', 6, 5000.00, 0.00);

■SQL 借方・貸方に対応する相手方の勘定科目IDと仕訳IDを追加した現金収支テーブルの定義

CREATE TABLE CashFlow (
    id INT PRIMARY KEY,
    transaction_date DATE,
    organization_id INT,
    debit_amount DECIMAL(10, 2),
    credit_amount DECIMAL(10, 2),
    debit_account_id INT,
    credit_account_id INT,
    journal_id INT,
    FOREIGN KEY (organization_id) REFERENCES Organization(id),
    FOREIGN KEY (debit_account_id) REFERENCES Account(id),
    FOREIGN KEY (credit_account_id) REFERENCES Account(id),
    FOREIGN KEY (journal_id) REFERENCES Journal(id)
);

■SQL 勘定科目テーブル(Account)の定義

CREATE TABLE Account (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

■仕訳テーブル(Journal)の定義

CREATE TABLE Journal (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    description TEXT
);

まとめ

・執筆途中のため、情報がかなり欠落しております。

・ただ、chatGPTを利用するとこのような情報がものの数分で出力されるので、なんと便利なことか。

・DDL定義を出力ツールやテストデータ、サンプルデータを出力するためのツールは多々ありました。VBAなど。ただ、そうったデータはメンテナンスに苦しみレガシーコストになり、ネガティブコストになりますね。自動化パラレル化にまさにふさわしい相棒だなぁと日々感じます。

コメント

タイトルとURLをコピーしました