こんにちは。
私はDiscord.pyをまったくのド初心者からお金をかけずに触った結果、とんでもないプロジェクトを2つも生み出してしまいました。
その原因と解決方法をまとめました。
この記事には「整理整頓はちゃんとしようね!」以外の内容は一切ありません。
大抵はコーディング以前の話しかしていません。
それでもよろしければお読みください。
どれくらい初心者だったのか
はじめてDiscord.pyを触ったときのことを一度思い出してみます。
「Pythonってなんだっけ・・・」
おい、嘘だろって思う人も多いかと思います。でも残念、マジです。
Pythonが何なのかすらわかりませんでした。アホですね。
もちろん関数のこともチンプンカンプンです。
そんな中で私は初のプロジェクト、読み上げbotを作り上げました。
初めてのプロジェクトは単純なものに絶対しましょう。間違ってもコイツみたいに最初からむずいやつをつくってはいけません。
「じゃあどうやってbotを作り上げたの?」
この問いに対しての答えとして
「俺にもわからん」
いやなんでやねん。わかれよ。
真面目にどうやって勉強していたかを振り返ると、
- 参考になるbotのコードを何周も読んだ
- 意味が分からないところや、問題解決のカギになりそうなところをピックアップしてググる
- トライアンドエラーを繰り返しまくった
という感じです。
え、本? 読んでないですね…
「本を読みましょう」(母校の校長の言葉)
今考えると、基礎的なところは本当に本を読んで理解を深めるのがキホンのキの字です。
ある程度まで理解できればあとはQiitaやらZennやらに転がっている解説を読んでも、GitHubにある先駆者のコードを読んでも、AIに聞いてもわかるようになります。
改良の時の苦難
そこから色々な機能を付け足していくわけですが、そこで小さな問題にたびたび直面しました。
「この機能の場所、どこ???」
やばいですね。製作者が機能のありかを把握していません。
脳内で「この機能はここ!何行目ら辺!」とか言えるならスパゲッティコードでもいいと思うんですけど(よくない)、それがわかってないやつがスパゲッティを作るともう悲惨です。
Ctrl(Command)キーかFキーのどちらかが欠けると生活できなくなります。
一応、ある程度まとまるようにはしていたんですが、それでもこうなっているのでダメですね。
ファイル(モジュール)を分けて見やすくしましょう
解決策としては、コードを分けて見やすくしろという一点に尽きます。
単一モジュールでたくさんの機能をホイホイしてたらそりゃあこうなるに決まってます。
ちなみに私はこのモジュール分割という概念を知らずに3年間開発を続けた結果、およそ2,000行くらいのスパゲッティを生み出しました。スパモン教の人々もびっくりすると思います
自分が「空飛ぶスパゲッティ・モンスター」を生み出さないよう、十分に注意しましょう
GitHubを使っていない
GitHubは今のエンジニアには必須の知識だと思っています。
そのGitHubの使い方を、私は今日に至るまで知りませんでした。
というか今日も今日とてわかりません。頭の中はお花畑🌸🌹🏵️🌷🪻🌼です。
じゃあどうやって管理してたん?っていう感じですよね。
開発フォルダの中身を持ってきたので、ご覧ください。
なんだこれ。きったね。
多分どのエンジニアよりもひどい管理方法だと思います。
これを自宅NASにおいて、Linuxマシン上で動かしてました。非効率すぎる。
いや、NASに置いてるだけマシか・・・???
過去の履歴とか全部残せるGitHubは最強です。今後はしっかり活用していきたいと強く思います。
GitHubを崇拝しましょう。
スパゲッティコードを脱却したのか?
結論から言います。できていません。
忙しくてできませんでした(←ただの言い訳)
でもこのままではいけないとは思っているので、これからやるべきことを軽く述べて、この記事をおしまいにしたいと思います。
これからやることリスト
- 今のコードの内容を明らかにする
- 残す機能となくす機能をリスト化する
- どの機能をどのモジュールとして分割するかを考える
- コーディングする(ほぼやり直しだけど。)
- TOKENを環境変数に突っ込んで運用する方法にする←これのせいでGitHubを敬遠してた(アホ)
- GitHubに公開する
- (あわよくば)エンジニアの役に立てるコードであってほしい
以上です。初めてのQiita記事でしたが、これからも不定期にゆるくtechな記事を執筆できればいいなーと思っているので、どうぞよろしくお願いします。では。
