🗃️

ファイル転送アプリ開発.mp1

に公開

はじめまして、投稿者です。
自己紹介記事から書こうと思ったんですが、とりあえず今作ってるサービスの開発進捗記事から書いていこうと思います。
記事は一週間ごとに土曜日目安で更新します。

初回記事は、サービスを作ろうと思ったきっかけとここ一週間の進捗を書いていきます。
DiscordとTwitterに投下した雑記が執筆の材料になってくれると信じて。

1 サービス作ろうと思ったきっかけ

既存のファイル共有サービスまたは転送サービスをビジネスで使うことを考えたときに、改善の余地があると考えました。
詳細はある程度サービスが形になってからお話ししますが、サービス内容はURLを踏んでファイルをアップしたり落としたりする形式になると思います。

想定技術スタック

  • Golang
  • Next.js
  • PostgreSQL
  • Docker
  • Github

Golang

投稿者の本業での主戦場はバックエンドなのですが、ほぼPHPしか使ってません。
知見を広げる&モダンなものを触る、ということでGoにしました。

Next.js

本業でフロントをサポートすることがあるのですが、Reactぐらいしか経験がありません。
こちらもモダンなものを触る目的でNext.jsにしました。

PostgreSQL

MySQLしか触ったことないので、世の中のシステム全部MySQLで動いてると思ってます。
本記事執筆時点でMySQLとの違いをあんまり把握できてないです。

2 開発進捗

2.1 開発環境構築

とりあえずGoとNext.jsがDocker上で動く環境を作りました。
こちらの記事が大変参考になりました。他所のサイトぉ
https://qiita.com/takakou/items/a01af0515f49e90bd05c

AIにも環境構築について訊いてみたりしたんですが微妙でした。
環境構築面ではまだちょっと頼れないかな~。

2.2 仕様書策定

システム概要書とテーブル定義書を今想定できる範囲で書きました。
拡張性を持たせつつサービス初期は最低限の大きさで動かすことをイメージしました。
機能要件には優先度を付けて、とにかく最低限の機能でデプロイすることを意識します。

2.3 機能開発

2.3.1 ファイルアップ機能

とりあえず本サービスの肝を一番最初に作ろうと思い、とっかかりました。

ブラウザ画面経由でアップしたファイルをローカルに保存する仕組みをフロントで実装しました。
本番はアップされたファイルをS3に格納する予定です。
なので環境変数で保存先を分ける感じでいきます。

2.3.2 テーブルをGoで作成

ファイルをアップしたという履歴を残すために、まずはテーブル作ろうという発想になりました。

ORMはEntにし、Ent内にテーブルを書きました。
AIに訊いてみたらpgxをおすすめされたんですが、生のSQLを書くことに抵抗があったので採用しませんでした。

LaravelでEloquentにお世話になった身としてはね。

2.3.3 仲間と開発環境共有

幸いなことに開発に手を貸してくれる友人が一人います。
その友人に口伝で開発環境構築の手助けをしました。
構築手順をざっくり書いてたけどこれ以上人は増えないしなあ、で書くのを途中でやめました。

ちなみにこの友人は他業界で働いており、全くプログラミング知識がありません。
最初は自分が広く手掛けていきますが、最終的にはフロント全般を任せようと思ってます。
楽しくなってきたな。

3 今の課題

3.1 作ろうとしてるサービスに新規性が無い可能性

一番心配している点です。

本サービスの主な競合はギガファイル便になります。
「それ、全部{任意の別のサービス}でよくね?」と言われると投稿者は卒倒してしまいます。

下調べはしたつもりですが、調べれば調べるほどギガファイル便の異様さが際立ちます。
広告収入だけで容量無制限を維持できる仕組みは興味深く、調べれば調べるほど謎が深まります。
ピーク時のストレージ要求量とか帯域を把握できてたら、自前でストレージサーバー立てても成り立つのかな?

3.2 未経験がとっかかるには重いフレームワーク

ネットワークやプログラミング知識全く無い友人がどう成長するかにかかってます。

Next.jsは成り立ちを辿って学習するには長すぎます。
ぶっつけでTSとReactに頑張って慣れてもらうしか……。

開発状況と相談しつつ、フロントはもっととっつきやすいフレームワークにしてもいいなあとは思ってます。

3.3 開発の時間があまり取れない

12月末までエンド先の都合でフル出社です。
自宅とオフィスを往復するだけで3時間ほど時間使うのもあり、平日は開発に割けるリソースが少ししか取れません。
また、友人君とは休みの日が被っていないので認識合わせの時間も12月中は取るのが難しいです。

時が解決してくれる課題なので一旦は大丈夫。

3.4 記事書くのが遅い

アカウント作成からこの記事書き終わるまで1時間半かかりました。
思いつき行き当たりばったりだとこんなもんか。
記事書く前に情報整理する時間取ればちょっとはマシになるかもしれないですね。

4 終わり

投稿者の熱が続く内に開発をせっせと進めないと頓挫してしまいそうです。
とりあえず手を動かせる時間を如何に確保するかを通勤時間とかで考えてきます。

質問等ありましたら、よろしくお願いします。

Discussion