Pythonを使って普段業務をしています。
エンジニアとしてのスキルアップをしたく、「フレームワークを作ってみる」ということに興味がありますが、何から手をつけていいかわかりません。
一応想定としては軽量なMVCフレームワークを作ってみて、よくあるDjangoなどのMVCフレームワークの挙動を理解する&フレームワークの作り方を身につける、ということをしたいです。
参考になるサイトや本、コードがあれば教えていただきたいです。
あまり参考になる説明はできませんが、framework構築は、実装側に「実装方法を強制」する事です。
そのため、interfaceもそうですが、そのような定義を駆使する必要があります。
ですが、「エンジニアのスキルアップ」なら、フレームワーク設計以外にもほかに手はある印象に思います…。
WPFでのWindows向けのフォームアプリケーション開発や、Unity等のゲームアプリ開発等…
プラットフォームを開発したところで「使ってくれる人がいないと無碍に終わる印象」です…。身もふたもない解答ですが…。
ありがとうございます。言葉が足りなかったです。「エンジニアとしてのスキルアップ」は「web系エンジニアとして、MVCやwebアプリ開発に関する知識を増やすスキルアップ」の意味です。windowsのフォームアプリケーションやゲームアプリはやったことがあるのですが、いまいち考えるキャリアとあわず…。
確かに使ってくれる人がいないと意味がないのはわかっておりますが、動作を理解したり、そもそも実装能力を伸ばしたいなというのが質問の意図でした。重ねて、とりとめもない質問にご解答ありがとうございます!
>動作を理解したり
フレームワークを理解するなら、実際に既存のフレームワークを使って何かを作る方が早いです。
そもそも幾多の人が関わってできたのが有名なフレームワークであり、それを1から作るのは、物量的側面から現実的ではないです。
「理解」だけなら、作るより「既存のモノを実際に使って解析」するほうが建設的だと思います。
そちらの「エンジニアとしてのスキルアップ」が目的であれば、個人で得たいの知れないフレームワークを作るより、有名なフレームワークから、携わる案件にとって適切なフレームワークを選べるよう、有名どころのフレームワークの知識を学ぶ方が何倍も有意義だと思う次第です…。
「人に選ばれるフレームワーク」というのは、それだけ理由があるのと「弱点」もあるので、自身が携わるプロジェクトで適切なフレームワークを選ぶ知恵がある人物のほうが「スキルがあるエンジニア」と判断されると思う次第です…
キャリアアップという意味ではそのほうが良いのはわかっております。キャリア面や誰かからの評価という訳ではなく、実装の練習や動作を理解してコードに落とす、という必要性を感じて質問致しました。
hermit19901127様のアドバイスの通り、フレームワーク自体の解析というのも視野に入れてみます。一方で誰かに「スキルがある」と判断されるとは別の軸で、「エンジニアとしてフレームワークの挙動をより理解できる」を目指したいのですが、その点については何かアドバイスいただけたりしますか。
現在もフレームワークの選定などはしており、フレームワークを使う側での設計はある程度理解しているつもりです。フレームワークそのもののコードをひたすら読むでも良いでしょうが、これ以上挙動を理解するには自分で手を動かしてフレームワーク側を作ってみないとダメだなと感じたのですが…。
(なので、この質問はエンジニアのスキルアップの最適解を知るのではなく、あくまでもフレームワークの自作をするに当たっての進め方についての質問でした)
>「エンジニアとしてフレームワークの挙動をより理解できる」を目指したいのですが、その点については何かアドバイスいただけたりしますか。
そのフレームワークを使って、実際に何かを作るのが早いかと存じます…。
Web系なら、ブログシステムや簡易的なツイッターのようなSNSを作る事でしょうか…。
>これ以上挙動を理解するには自分で手を動かしてフレームワーク側を作ってみないとダメだなと感じたのですが…。
難しいですし、それも「既存のフレームワークを”きちんと読み解いて理解した上”で再インプットする」工程が必要になります。
一つ、フレームワークを作る上で助言するなら、あなたが今までWeb開発で不満に思った物事に対し、完全に防御できるような仕組みを考えるのがよいかもしれません…
自由散漫な開発環境で問題が生じたから「フレームワークが生まれた」のが、自然な歴史だと思う次第です…
回答欄でやり取りされてはいかがでしょうか。情報が埋もれてしまいますし。
回答3件
あなたの回答
tips
プレビュー