CodeZineで多数執筆!小林氏が語るフレームワークについての考え
CodeZineで多数記事を執筆してきた小林氏がTechpitに参画。
フレームワークの技術・使い方だけに着目するのではなく、その背景にある設計を学んだほうが良いかについて聞いてみました。
■ 執筆者の紹介
大学からJavaを使って多変量解析などを使った統計認識技術を学習。就職後、COBOLを使った金融システムに携わったが、2001年からはJavaのServletアプリケーケーションサーバ開発やその経験を用いた大規模Javaシステムを経験。
その後、Webとネットワーク層におけるミドルウェアを連携したサービス開発を中心に、ベンチャー企業を中心にWebクラウドサービスの立ち上げや、CMSソフトウェアプロダクトの開発等を行ってきた。
2019年からはITプロジェクトの問題点「シンプルに解決しよう」をモットーに設計、開発チームという視点から見た技術やルール設計という点でITプロジェクトを支援するエンバインド社を立ち上げました。
CodeZineでの執筆紹介
https://codezine.jp/author/1372
先日の打ち合わせでお話しされていた「フレームワークの使い方だけ学んでもだめ」について詳しく教えてください。
フレームワークの使い方を学ぶ必要がないという訳ではありません。しかし、多くのエンジニアがフレームワークの機能や、はやっている技術用語、または、どういう使い方をするのかという事を最も重視しがちです。
もちろん、それらを知る事は必要な事ですが、それを知って他のフレームワークと比べてどちらがよいのか判断がつかないという相談をよく受けます。
これは、多くの方が「フレームワーク」とは実現技術の選択だと捉えているためです。しかし、フレームワークの大きな目的は「管理」です。特にWebフレームワークにおいてはその傾向はより強くなります。
従って、どういう「管理」 をしたいのかという視点で見ると、自分達のチーム構成や、技術熟練度に応じてフレームワークを別の視点でも判断できるようになるはずです。
それを学ぶことでどういうことが得られるのでしょうか?
一人の技術者としては、なぜそのようなルールになっているのか?または、なぜ、そのような制約がわざわざつけられているのかという事が分かるはずです。
また、チームという点で見た時には、フレームワークをチームの役割分担で機能をどう使うかという事も考えられるようになるはずです。
フレームワークの使い方以外を学ぶときはどんなとき?最適なレベルはあるのでしょうか?
内容が重複してしまう部分もありますが、フレームワークのルールや制約によって、むしろ自分が開発しづらいなと思ったときや、チーム内の作業内容等でトラブル が生じたときなど、フレームワークを使っていなければ、こんな面倒な事はないのにと思ったときは良いタイミングだと思います。
必ずしも、その面倒が解決されるわけではありませんが、しかし、その面倒が実はどこでどのように役立っているかが分かれば、気持ちも変わってくるはずです。
また、技術を勉強する方であれば、フレームワークを使ってなんとなく作れるようになったが、その後、どうすれば自分はステップアップできるのだろうかと思ったときにも最適です。
フレームワークは「管理」とも言いましたが、その管理の中には、技術的に難しい部分や、議論が生まれやすい部分をどう解決しているかという経験と知識も詰まっています。それらを学ぶ事で、フレームワークで隠された技術もわかるので、技術者としてもより広い視野で物事を見ることができるようになるはずです。
執筆中の企画について教えてください。
どういったことが学べる内容を執筆予定でしょうか?
『PHPで自作Webフレームワークを作ってみよう』というテーマで、自分で作ってみることでWebアプリケーションの基礎技術とその役割を学ぶ内容になっております。
学習内容としては下記のようになります。
o Webフレームワークで必須となる技術とそれを実現する仕組み
o Web技術そのもの
o 技術的にどう実現する為の設計ではなく、どういう役割の人がどうやって実現するかまでの役割を考えた設計
o PHP8で実現するリフレクションを使った設計(おまけ)
またユニークネス・特徴として、以下を考えております。
o Webフレームワークを作る人が何を、またはどのように考えているか
o 流行に依存しない基礎的な技術からの応用
o フレームワークやミドルウェアなどを開発する疑似体験
(一般的にはフレームワークやミドルウェアなどを開発する場合にしか使わないような実装ノウハウ等)
自作Webフレームワークのテーマを学ぶことで、受講後どのような姿になるイメージでしょうか?
PHPフレームワークを見た時に、フレームワークがどのような処理をしているのかが想像できるようになるはずです。
そのため、何か問題が生じたときに、似た事例や同じ問題を持つ事例を探して解決するというスタイルから、仕組みから考えて、問題の個所を見つけるという助けになるはずです。
また、チームリーダーという立場であれば、それぞれの技術者が上げてくる問題提起・課題などに対して、一緒に考えながらフレームワークの使い方を自分達なりにアレンジしていくといった事ができるようになるはずです。
企画の中身をチラっとお見せください。
フレームワークの目的やフレームワークの役割、Webフレームワークについてなどを概要を説明しつつ、ライブラリやモジュールやプラグインなど用語について解説しています。
最後に執筆の意気込みを教えてください。
技術的な教材や執筆と言えば、HowTo系が多いと思います。一方で、基礎技術に焦点を当ててしまえば、初心者にとっては何の為のものなかわからない内容になりがちです。本教材のターゲットが目指すものは「基礎技術」が学べるHowToを目指して記述しています。
また、筆者自身で約20年前に学んでもなお、技術として色あせないどころか、これらの技術は今なお、中心とも言える技術を選んでいます。
---
ありがとうございました。
Techpitでは数百名を超える執筆者の方たちがいます。皆さん、素晴らしい執筆経験、エンジニアリング経験をお持ちの方々です。今後もインタビューを通じて執筆、アウトプットの重要さを発信し ていきます!
Techpitでは新しい執筆者を常時募集中です。ぜひこちらからお問い合わせください。