プログラミング上達のために、たまに言われることが、自作のライブラリやフレームワークを作るのが良いよ、ということがありますが、みなさんは初めて作ったライブラリって、どんなのがありましたか?
言語と一緒に、どんなのを作成されたか教えてほしいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
ある有名サイトのエンハンスを請け負っていましたが、フレームワークなどを利用しておらず、その結果当初XSSなどインジェクション系の攻撃耐性が弱いため、セキュリティインシデントが度々指摘されてました。
そのため、既存の実装に影響をあまり与えず、WEBリクエストをサニタイズして取得・出力させるフレームワークを作成しました。言語はPHPです。
Javaでは当初strutsなどのWEBアプリ用フレームワークが流行っていましたが、XMLが膨大化したり、パラメタの入力チェックのほか、相関チェックも併せて凝集させるために、付属のvalidatorなども不要で、ちょっと機能が大すぎた事がありました。
そこで、もっと軽量で、XMLを利用しないでアノテーションで制御できるフレームワークを構築しました。
その他、画像加工の必要がある業務では、画像メモリの1pxずつ処理する必要があり、それをインラインで行うことは効率的に不可能なため、フェードインやフェードアウト、他の画像とブレンドしたり・・・などの機能を簡単にできるライブラリを作成したりしました。
ライブラリやフレームワークは確かに、ご指摘通り上達につながりますが、上述のとおりいずれも「利便性や安全性を向上させ、効率的にしたい」という目的のもとに作るものになります。
例えば、現在プログラムを作っていて、「不便だから改善したい!」と思うものはありますでしょうか?
賛否ありますが最初は「もっときれいに、美しくしたい!」という動機でも、かまわないと思います。
完成度がどうあれ、先ずは「こうあって欲しい」という最終形がイメージできていて、それを追究して研鑽していくうえで、結果として上達していきます。
「上達するためにライブラリ開発をする」というのは、その作業自体がノルマ化されて、つまらなくしてしまいそうなので、気を付けてくださいね。
投稿2016/02/09 01:50
編集2016/02/09 01:52総合スコア422
0
CSVを読み込むためのライブラリだったら、何度も作ってました。同じ言語でもスクラッチで何度もつくってた。
WindowsのDosでバッチジョブを管理するフレームワークを作っていました。コマンド実行時のログ出力や入出力の管理や異常終了時のリトライが実行時のコマンド引数で管理出来る仕組みになっていました。
メーンフレームの端末エミュレータを操作するAPIが使いづらかったので、オブジェクト指向で画面をVBAから操作できるようにしました。
基本的には、システム毎に作ったプログラムが、ある程度綺麗にかけていれば、自然と別システムでも使えるはずです。という考え方なので、とくにライブラリやフレームワークができたからってスキルが上がったという感じはしないです。
コードがあまりイケてないヒトに、”重複したコードを排除して、再利用可能なコードを書いて”とお願いしたら、再利用と称してひとまとめにすべきでないものまで同じルーチンに入れていたという経験があります。そこから得た教訓は、”簡潔に書いたものが再利用性し易く、高機能なものは再利用を難しい”というもので、はじめからライブラリ化を意識するのは危ないかもしれません。
投稿2016/02/09 13:02
総合スコア2883
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/11 02:44