駆け出しクソ雑魚エンジニアの頃にPython×Djangoでポートフォリオを作っていたけど、技術的に今はぶっちゃけ微妙。今ならどんな構成で作るべきかという話。
まんじです〜
今回はPython×Djangoでポートフォリオを僕は昔作っていたけど、今はぶっちゃけ微妙っていうテーマで話していこうかと思います。
結論、Python×Djangoは無駄にはならないんですけど、今作るならNext.jsとかにした方がいいってか、普通にお勧めしないっすね。
一応この話をしようと思った理由なんですけど、自分が25歳駆け出しクソ雑魚エンジニアで、ママと同じ部屋実家暮らしだった頃に、Python×Djangoでポートフォリオを作ってたんですけど、ぶっちゃけ今は技術的に結構割と微妙だなみたいないうところがあったりするんで、駆け出しクソ雑魚エンジニアに向けてちょっと老害からのお話をさせてください。
ちなみに自分がPython×Djangoでポートフォリオを作ってた頃の参考画像なんですけど、こんな感じの悲惨な状態でしたね。
ということでこの動画なんですけど、3つぐらいPython×Djangoみたいな話と、今はこんな感じのがいいぜみたいっていう話をポートフォリオ関連でまとめようかなっていう風に思います。
1. Python×Djangoは無駄にはならないけど、ぶっちゃけあんまり使われてない
まず1個目の話としては、Python×Djangoは無駄にはならんけど、ぶっちゃけであんま使われてねえっていう話ですね。
最近のWebアプリの構成というか、モバイルはちょっとフレームワークが変わるんですけど、基本的に言うとAPI立てて、フロントエンドからリクエストと通信を行ってそれやってくみたいなのが主流で、一応DjangoでもAPIも立てれるんですけど、Djangoは一応フルスタックフレームワークみたいな感じでなんかそのHTMLのなんか変な記法とかもあるんですけど、現状はなんかそういうDjangoを普通に使うみたいなのはほぼほぼ現実的ではなくて、APIと、フロントエンド分けて使うっていう感じなんで、仮にDjangoを使うとしてもAPIのみみたいないうところで、しかもなんかAI系以外のところはぶっちゃけサーバーサイドに関して言うとプログラミング言語で言うとGoであったりRubyとかPHPとかJavaら辺がなんか主流だなというか主流ですね。
で、特にTypeScriptら辺が最近はめちゃくちゃ主流なんで、そこら辺の言語に寄せてそこら辺のフレームワークを使う方がいいんじゃねって風に個人的には普通に思いますね。
ただこういう風に老害な感想言ってるんですけど、ぶっちゃけPython×Django使っても全然無駄にはなんないんで、別にいいんじゃねっていう風には思うんすけど、まだできればTypeScriptとかの方がいいんじゃねみたいな風に普通に思います。
あとなんか普通に実際にWantedlyとかでモダン自社開発の求人を探してみればいいんですけど、普通にPythonとDjangoの組み合わせでサーバーサイドやってますみたいなのは割と少ないってか、ほぼほぼあんまないすね、やってるところなんで、実際チェックしてみるといいと思います。
で、ちなみになんかモダン自社開発の求人見てみようみたいなWantedlyの動画もちょっと昔のやつなんですけどあげてるんで、割と僕自身それを見てもらってますね。
2. 今はMPAじゃなくてAPIとフロントエンドを分けるのが主流
2つ目の話は、最近はなんかMPAじゃなくてAPIとフロントエンドを分けるのが主流っていう話で、さっきとちょっと話かぶってるってか、さっき話した内容と同じなんですけど、MPAっていうのはなんか適当にリンクをポチってクリックしたらなんか毎回こうリロードみたいな感じがされて、それで画面が表示されるみたいなやつで、APIとフロントエンドを分けるのは適当にリンクとか別のURLとかをクリックしても画面だけシュルって変わるみたいな。
なんかYouTubeのウェブ版とか分かりやすいんですけど、あれとかもなんかこうリロードされないでシュルって動くと思うんですよね。
っていうのが一応なんかMPAと、APIとフロントエンド分けるみたいっていう話なんですけど。
で、なんか具体的にAPIとフロントエンド分けるっていうその技術スタックっていうほどでもないんですけど、簡単な構成としては例えばフロントエンドがReactでサーバーサイドがGoみたいな、なんかフロントエンドのReactがサーバーサイドのAPIのGoをバーンって呼び出してバーンってレスポンスが返ってくるみたいな。
で、画面に表示されるみたいっていう感じですね。
で、あともう1個としてはフロント側例えばNext.jsでサーバーサイドのAPIもNext.jsとかそういう構成ですね。
ちなみにNext.jsの場合は別に構成というか、フロントエンドからAPIレイヤーまで、行けるんで、個人的には普通にNext.js使っちまえばOKっていう感じですね。
で、ちなみになんかMPAでDjangoっていう話だとなんかDjangoの変なテンプレートエンジンがあるんですよね。
PHPとか回すやつとかJavaのサーブレットとかであったり、Expressとかもなんか変なそういうテンプレートエンジンとかがあって、それでなんかHTMLに表示するっていうことは最近はめちゃくちゃ少ないんで、ぶっちゃけそのテンプレートエンジンを覚えたり勉強したりしたところで、ほぼ意味ないっていう感じですね。
AIでサクサクっと出せるんですけどね。
なんで、MPAは最近はほぼ使われないんで、APIとフロントエンドを分けるのが主流で、Djangoのフルスタックな感じじゃなくて、なんかちゃんと分けてやった方がいいっていう話ですね。
3. とりあえず今ならNext.jsをEC2かLightsailにデプロイすればOK
3つ目の話としては、とりあえず今Next.jsをEC2とかLightsailとかにデプロイすればOKみたいないう話ですね。
Python×Djangoの話から、普通になんかNext.js良くねみたいっていう話になっちまってるんですけど、普通になんかCI/CDとか入れてDockerとか入れて、それで、Next.jsをEC2とかLightsailにデプロイしてやれば、ポートフォリオ、普通にそんな感じの技術で、基本的にはオッケーですね。
で、あとなんかPythonの話に関して言うと、Pythonはぶっちゃけ型とかある程度書ければ普通に書けるようになるんで、ぶっちゃけそんなに文法もそんな変わらんので、なんでTypeScriptのがプログラミング言語的なところで言うと、いいんじゃないかっていう風に個人的にも思いますし、あとフレームワークのAPIの方ですねに関しても、Djangoじゃなくて普通にNext.jsのAPIか、それかTypeScriptで、API立てられる、Expressとか、色々他にもあるんですけど、そこら辺でいいんじゃねっていう風に普通に思いますね。
まとめ: 今ならNext.jsに切り替えるのがおすすめ
ということでまとめるとPython×Djangoっていう話だったんですけど、ぶっちゃけPython×Djangoの話大してしてねえっていうところではあるんですけど、僕自身25歳実家暮らしでママと同じ部屋、駆け出しクソ雑魚エンジニアだった頃にPython×Djangoで一応ポートフォリオを作ってたんですけど、その頃から一応Reactとか出てきたんですけど、今だともうPython×Djangoでポートフォリオ作るのはあんまりぶっちゃけお勧めしない。
ぶっちゃけあんまお勧めしないというか、普通にお勧めしないすね。
なんでポートフォリオ、Pythonジャンゴとかでやってる人がいればちょっと普通にNext.jsとかに切り替えると普通にいいと思いますね。
そんなに対して変更コストもかからないんじゃないかなとは思ったりしますし、あと仮にある程度進んじゃってるのであればDjangoの方をAPIにして、フロントサイドReactにしてあげるとかそんな感じでいいんじゃなって思います。
まんじからの感想
昔のポートフォリオ、今見るとマジで悲惨な状態だったんですけど、そういう変な黒歴史を抱えてるのは僕だけじゃないと思うんで、駆け出しクソ雑魚エンジニアの人は今作るならNext.js寄りの構成で全然いいと思います。
LVLPATHの未経験からの講座買ってもらって手順通りやってもらって自分に壁打ちやら質問してもらえれば、独学でやるより早いと思います。
ってことで終わりです。




