自己紹介
2020年5月 コロナで外出できなくなったのでPythonを触り始める。
2021年4月 仕事を辞めてエンジニア養成スクールに入学する。詳細は次の記事をお読みください。
2022年2月 都内のベンチャー企業でエンジニアとして働き始める。Ruby on Railsがメイン。
プログラミング学習をしていく上で多くの失敗や勘違いをしてきました。
かねてから記事としてまとめたいと思っていましたが、
怠惰によりできておりませんでした。
今回、次のキャンペーンを見ていい機会なので書いてみることにしました。
環境構築
パスを通す
(^O^)「Pythonで自然言語処理をするぞ! よくわからないけどMecabとやらを使えばいいらしいからネットの記事を元にやってみよう!」
(数時間後…)
(;д;)「できない…issueを英語で書く必要はありません ってどういう意味だろう…泣」
対応策
「パスを通す」ことを理解する。プログラムがどこを参照しているかを意識する。
環境変数も最初はよくわかっておりませんでした。
参考:Mecabについて
爆速という言葉に騙される
(^O^)「Railsでアプリを作ろう! ローカル環境を汚したくないから、Dockerで環境構築しよう! 30分で環境構築っていう記事を見つけたらサクッと環境構築して早く開発しよう!」
(数時間後…)
(;д;)「MySQLのimageのバージョンやGemの問題で全く環境が構築できない…泣」
対応策
Dockerfileで記述されている内容を理解する。
ホストマシンの環境がDockerコンテナの動作に影響を及ぼす可能性があることを認識しておく。
特にM1・M2 Macの場合、CPUがこれまでのMacと異なることを把握する。
デプロイ
ローカル環境で動くならば本番環境でも同じように動くと思い込む
(^O^)「ローカル環境で動くアプリケーションを最後まで作りきったぞ!あとはHerokuにリリースするだけだ!」
(数時間後…)
(;д;)「エラーが大量に出た…やっと画面が映ったと思ったらcssが適用されていない…」
対応策
ローカル環境と本番環境は異なることを理解する。
デプロイできるかを確かめるためにHello Worldができたらすぐにデプロイする。
本番環境での静的ファイルの扱われ方を勉強する。
Git
変更しすぎて訳がわからなくなる
(^O^)「頑張って1つ機能をいいところまで作ったぞ!もう一工夫すれば完成だ!」
(数時間後…)
(;д;)「変更しすぎて訳がわからなくなって、戻そうとしたら、できていたところも削除してしまった…」
対応策
Gitを入れてこまめにコミットする
コミットメッセージにどこまで作業したかを記録しておく
コミットはコマンドで戻せる(コマンドの内容には要注意)
コミットで載せてはいけないものを載せてしまう
(^O^)「S3にアクセスするプログラムを書こう!アクセスキーはとりあえず直書きで書いておいて、最後に削除しよう!」
(数時間後…)
(^O^)「とりあえずいいところまでできたから、コミット!」
(数時間後…)
(^O^)「最後までできたぞ!忘れずにアクセスキーを削除して、コミットしてプッシュ!」
(;д;)「Githubからメールが飛んできた…どうして…」
対応策
コミット履歴に載った瞬間にアウトです。.envを使用するなど、開発初期からコードに載せない対策をとりましょう。
AWS
EC2を止め忘れる
(^O^)「ディープラーニングしたいからEC2でサーバー立てたけどよくわからないや」
(一月後…)
(;д;)「(請求書を見ながら)こんなにAWS使った覚えないよ…」
対応策
「自分は大丈夫w」と思わずに黙って、無料利用枠を超えた場合のアラートを設定する
この他AWSを初めて使う際に設定しておいた方がいい内容の記事がたくさんあるので目を通しておく
通信関連
レンダリングを理解していない
(^O^)「APIで取得したデータでグラフを描画しよう!」
(数時間後…)
(;д;)「データを取得すると画面全体が更新される…グラフだけ更新できればいいのに…」
対応策
Ajax通信を勉強する
http通信も勉強しましょう
APIを理解していない
(^O^)「APIを使えばデータをたくさん取得できる!便利!」
(その後…)
(;д;)「え、APIって自分で作れるの!」
対応策
何もわかっていないのでAPIをゼロから学ぶ
APIを基礎からしっかりと学び、Django Rest Frameworkで天気情報を取得するアプリを作ろう!
学んだら作る際の注意点を勉強する
DB関連
適当にDB設計してやり直す
(^O^)「DBなんてデータを格納するだけだから適当でいいや、早くコード書こう!」
(一週間後…)
(;д;)「テーブルの設計を適当にしすぎて、機能追加できない…ゼロからやり直しだ…」
対応策
DB設計を疎かにしない。
フレームワークに頼っているとSQLも疎かになりがちなので、勉強する。
UPDATE・DELETEにWHEREをつけない
(^O^)「開発してたらデータを間違えた!UPDATE文で修正しよう!」
(;д;)「間違えてテーブルの内容を全て修正してしまった…ロールバックもできない…」
対応策
「気をつける」だと対応にならないので、環境設定で対応する
どうしてもSQLで書き換える場合はトランザクションを張ってロールバックできるようにする
感想
この記事を読んで
「こんな失敗するわけないだろwwwwwww馬鹿じゃねえのwwwwwwww」
「こいつアホだなwwwwwwwww」
と同じ失敗や勘違いをしてくれる方が一人でも増えれば幸いです。
記事を書いてみて思ったのですが、自分の理解・対応策はまだ不十分です。
「そうじゃない」「もっとやるべきことがある」などコメントをいただけますと幸いです。