cassetteスマートフォン用の表示で見るcassette2017-09-16プログラミングが苦手だった私が、苦手を克服した分割統治法という考え方プログラミングcassetteの延澤です!前回、PHPの掲示板をフルスクラッチで3カ月かかった内容を書きました。(参照:プログラムを書くことに絶望したら、環境構築をやればいいよ)しかし、この経験からある重要な概念を学ぶことが出来ました。それは、エンジニアとして重要な考え方である、「分割統治法」を学ぶことができました。今回の記事では、分割統治法とは何か?どんなメリット・デメリットがあるのかということを書いていきたいと思います。分割統治法とは?wikipediaでは以下のように説明されてます。そのままでは解決できない大きな問題を小さな問題に分割し、その全てを解決することで、最終的に最初の問題全体を解決する、という問題解決の手法である。先ほどの掲示板の機能を分割してみましょう。投稿したコメントを削除するためDBから削除する機能つまり、掲示板の複数の機能に対して一度に機能を作るのではなく、機能をバラバラにしてプログラミングをすれば良いのです。沢山の小さな機能が集まったものが掲示板であり、大きな問題にはまず小分けにしてみるというアプローチになります。例の機能はさらに細かく分割できるので、実装するときの単位はもっと細かくシンプルになります。分割統治法を使うメリットなぜ、細かくするのでしょうか?それは、以下が理由になります。プログラミングとはシンプルで分かりやすい実装が一番いいという共通の認識があるからです。プログラムの全体把握が容易プログラムがシンプルになる問題の原因箇所の把握がしやすいプログラムの再利用がしやすい修正した際の影響度が少ない実際、熟練したエンジニアほどシンプルで読みやすい美しいコードを書きます。上記の技術を理解する際には、ぜひ分割統治法を理解しておくと理解しやすくなります。分割統治法のデメリット汎用性がある分割統治法ですが、全ての問題を解くわけではありません。個人的に問題を分解して解くことは出来ますが、そもそも問題の再定義については向かないと考えてます。ある仕事の期限が迫っておりその中でどう問題を分割して解決していくよりも、そもそもスケジュールを伸ばすためにはどうすればいいのかについて切り替えて考えた方が良い結果に繋がる場合もあります。既存の問題に対して正攻法で解決に対してアプローチするのであれば分割統治法は上手く作用しますが、まったく別視点からの解決は向かないです。まとめ分割統治法の考えはエンジニアで仕事する際や、他にも人生で困難に遭遇した際に有用に効果を発揮します。私は学生時代からこの考えを知っておけば良かったなとつくづく感じます。文系で育った私はこのような考えで物事を解決したことはありませんでした。そのため、問題が起きた際によく先輩に「どこまで分かって、どこから分からないのか説明して」と口酸っぱく言われた経験があります。新卒や未経験でエンジニアを目指す場合にはこのことを意識して質問するとよいでしょう。最後に一点付け加えると、人との会話で共感よりも先に、話の内容を分解し整理して考えるようになる癖がつくケースがあります。(私自身、プライベートで知らず知らずそのようになっていました)最近では、そうならないように考えるよりも先に相手の言葉に耳を傾けるように心掛けてます。テスト管理ツールをリニューアルした今年に入ってからずっと開発していたKururuのリニューアルを昨...2018-11-18サーバサイドの人間がiPhoneアプリ開発に入門した今回は普段Web側で開発している私がiPhoneアプリ開発を経験した...2018-09-08金額計算の設計に挑むcassetteの延澤です。今回はみんなが大好きなお金、、の設計に...2018-08-26プログラムの効率的な読み方casstteの延澤です。月別アーカイブはてなブログをはじめよう!developer-cassetteさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。