∑考=人

そして今日も考える。

フレームワーク開発は規約を理解するのが一番辛い

規則なんて糞食らえと思っている私が、今日ほど規約に苦しんだ1日はないだろう。

 

今日はほぼ一日中アプリのコーディングをしていた。といっても普通に作るだけでは対した勉強にならないので、フレームワークを使うことにした。というのも、実際の開発の現場でもこのフレームワークなる物が使われることが多い(らしい)からである。

 

そもそもフレームワークとは何なのかということについて私自身あんまり理解していなかったのだが、勉強してみるとなるほど確かにフレームワークという名称が相応しいと思う。概念としては文章のフォーマットのようなものである。

 

例えば、卒業論文を書いたことのある人ならわかると思うが、ストーリーや構成を決める作業は極めて重要であり、論文全体の出来栄えを決めるものである。当然難しい。逆に言えば、ストーリーさえ決まっていれば、細かい部分を埋めていくだけでも論文は出来上がる。

 

開発に用いられるフレームワークも、論文におけるストーリーや構成と同じである。フレームワークが決まっていれば、後は細かいパーツを自分でコーディングするだけでシステム全体が完成するのである。

 

ただし、文章とは違ってプログラムというのは全てが完璧な依存関係の基に成り立っている。そのため、最大限に曖昧さを排除するために、フレームワークを使うためのコーディング規約が存在するのである。

 

もちろん、個人的な開発でも自分なりのコーディング規約に則った開発をする人はいると思う。組織での開発でも当然コーディング規約は存在する。規約がない方がスムーズに開発していくことはできるのだが、後になればなるほど、どこでどんな処理が実行されているかを把握することが難しくなっていくため、規約というものはあった方が良い。

 

ただし、組織や個人のコーディング規約はこれは保守フェーズを見越して開発のうちから注意しましょうぐらいのものである。要するに、別にコーディング規約に乗っ取らなくともシステム開発を進めることは出来るのである。

 

しかし、フレームワークには様々な規約が存在している。その規約通りに開発(プログラミング)しないことには動作すらしないのである。そして、その規約の量がまた結構膨大なものである上、規約に違反しているかどうかを検証するためには規約を理解していないとわからないものもある。今日の印象では、正直別の言語を理解するよりも習得に時間がかかるのではないかと思う。

 

今日はCakePHPを使って、簡単なアプリを作ろうとしていたんだがほとんど進まなかた。データベース名、テーブル名、クラス名など実に名前の付け方に制約があって、これを理解するだけで日が暮れてしまった気がする。ただ、コード量は圧倒的に効率化されている実感はあったのでもう少し頑張ってみようと思う。

 

しかしなんというか、ここまで方法論が確立されていると、プログラムを書くことなんて勉強さえすれば誰にでもできるよなーとか思ったり。