18
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

"オブジェクト指向"と"良い会社"って似てると思いません?

想像してください

  • あなたは会社で働くエンジニア
  • 役員や営業、総務や開発などいろんな人が働いている会社で働いています

世界観を感じてください

  • インタフェース: 人対人のコミュニケーション
  • プロパティ: 仕事のメモとか道具
  • インスタンスメソッド: 仕事道具を使う
  • クラス名: その人の役職や業種
  • インスタンス: あなたと置き換えられる人材

イケてない会社だと

  • ある人に仕事を依頼したくても、その人とのコミュニケーションには難がある
  • 仕事の頼み方が雑で何度も質問する
  • 仕事が全然終わらなくて苛々する
  • 出来た仕事が想像してた内容と違ってた
  • 仲介業者なのに、下請け先の不備をお客さんにそのままありのまま伝える
    • ex. あなたは家を建てたいと思い仲介業者に注文をしたら、「ネジが足りないから作れませんでした」という返答が返ってくる。

イケてないコードに置き換えられる

  • あるクラスに処理を委譲したくても、委譲するために渡すパラメータ等の用意がメッチャ大変
  • 渡したパラメータに不備があってちょくちょく、呼び出し元に戻る
  • あるサービスに仕事を依頼したが、レスポンスが遅くてボトルネックになってる
  • 返ってきた値がTrueだったり、nilだったり[]だったりする
  • 一番下のレイヤーの処理で落ちて、一気にControllerまで戻る

イケている会社とは

  • 失敗したら上司に報告し、改善方法を提示、新たにチャレンジ...
  • 仕事の役割が明確かつ、インプットとアウトプットも明確だと、働きやすい
  • 仕事の役割が明確なので、人材の置き換えが可能

イケているコードとは

  • エラーを吐いても、上のレイヤーにあるクラスに投げ、その後の処理を任せられる
  • コードの役割が明確なので、自分の仕事の修正で他の仕事に影響が出ることが少ない
  • 急な仕様変更があっても、そこだけコードを書けばいい。

ちなみにベンチャー企業だと?

  • 規模の小さいコードとして見てみると...
  • 社長が買い出しに行く -> rootにあるクラスが何でもやってる
  • 誰が何をやっているかわからん -> どこでなんの処理してるかわからん
  • 規模が小さいコードなら、それでも対応できますね。

お客さんとしても

  • ミスの多い会社に仕事は任せられない -> バグの多いサービスは利用されない
  • 時間がかかる会社に仕事は任せられない -> 処理の遅いプログラムは使われない

恐怖

  • つまり、オブジェクト思考っぽくコードを書けない人がオブジェクト指向を勉強すると、仕事も効率的になるかもしれない
  • 一番下のレイヤーにいる人は、往々にして仕事のしわ寄せが来る
    • 新入社員は、花見の準備をしたり、呑み会のセッティグをしたりする。
  • なので、オブジェクト"思考"になることは大事ですね。
  • "オブジェクト指向で学ぶ現代社会の縮図"

ありがとうございました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
18
Help us understand the problem. What are the problem?