■ Web開発 2019-12-21
こんにちは、ケバブ人です。
私の業務の半分はWeb開発だと思うのですが、今までWeb開発はSESで用意されたフレームワーク・共通部品に対してのビジネスロジック組み込みしかしたことなかったのです。しかし今年、ちょっとしたWeb開発を自社でする機会があったので今まで脳内シミュレーションしていたことを色々実際に開発してみました。
そしてどうせやるなら、と、古い開発しかしないSESでのSI案件ではなかなか経験できない、時流に合わせた開発を意識してやってみましたー。
SESではサーバーサイド言語はC#かJavaを使うことが多かったのですが、今回は初めてのPythonで。最初はこれまた初めてのサーバーサイドJavaScriptを考えていたので、JSもいずれ使ってみたいですね。
PythonのフレームワークはフルスタックのDjangoが一番シェアありそうでしたが、ちょっと勉強してみたけどWebの情報だけではやりたいことに対して情報の深さの乖離がすごくて辛そうだったので、深めの情報が豊富なflaskにしてみました。
情報量だけでいうとDjangoの方が多いのですが、凝ったことや応用なんかはflaskの方が情報が多かったのです。(まぁどちらにしろぐぐってみると外国語しか結果出ないこと多々なんですがw)
DBはNoSQL系に興味ありましたがまぁ用途的にRDBMSの方が適してたので今回は諦め。フロントエンドは理想はVue.js+WebPack+Sassだったのですが、ちょっと勉強する時間がとれなかったので、Vue.js+RequireJSにしてみました。(RequireJSは枯れすぎてて逆にめちゃ大変だったので、結果的にはWebPackにした方が良かったぽいです・・・)
また、理想はRESTのみで通信したかったですが、これまた整える時間が無かったので、HTMLのformを使いつつjsonのやりとりを並行して行うという方式にしてみました。
サーバー→(form用レスポンス+それをjsonに変換したもの)→html
「「formはflaskのテンプレートエンジン+vue.jsで構築」」
サーバー← (formのsubmit) ←html
こんな感じです。(これも逆に大変な面があったので、RESTのみにした方が結果的には早いしすっきりしてた可能性)
という感じで、色々妥協はしたものの、少しは最近の技術に追いつけたのではないかと思いますー。
もっというと環境はDockerで構築したかったのですが、以前ちょっと勉強した際にやはり細かいことをやろうとするとWebの情報では実現できなかったので、今回は諦めました。
次開発する際は、WebPackとSassを使い、純粋にjsonだけでデータをやりとりして、Dockerで環境構築をしてみたいですね。
そこまでできれば、「Web開発できます」と胸を張って言えそうです。
・・・とりあえずあれですね、flaskはサードパーティ製の拡張機能を使って色々機能を追加していくんですが、作りが甘かったりして結構カスタマイズが必要でした。フルスタックのありがたみを感じました・・・。
ちょっとした単機能のAPIサービスを作るにはflaskはとてもいいような気はしますけどね。
以上、Web開発にようやく入門できたケバブ人でした。