昨年から抜本的に組織設計と方針、チームの定義、評価制度、メンバーの権限などを見直し、制度も大体的に再設計した弊社ゆめみの社内構造は、OSS の進め方や
GitHub の運用にインスパイアされています。
社内で行われている「プロリク」、「助言プロセス」をベースにしたチーム設計、「自律」に基づいた働き方や「有給取り放題制度」、メンバーの学習を促進する「勉強し放題制度」など、色んな角度から組織設計・制度を見直し、作ってきました。
今回は世界的にもデファクトスタンダードなオブジェクト指向設計の観点からゆめみという組織を見て分析し、組織設計の考え方の例をお話できればと思います。
オブジェクト指向の論者をパネリストに迎えて、IPPON グランプリ風にパネリストの考えをお聞きします。ネタではありません!
・なぜオブジェクト指向ってなんだろう?
・UML は生きている?
・オブジェクト指向はGUI か?
・DDDってオブジェクト指向?
・ユビキタス言語の築き方、気を付けていること
などなど、議論したいと思います。
「良い設計」は「良いアプリケーション」をつくるための重要な要素であり,オブジェクト指向はそれを実現するための道具の1つです。
継承,カプセル化,多態性の三大要素を活用して,保守性や再利用性などを高めることに注力します。
しかし,我々が普段扱うOSやミドルウェアの多くは実装にC言語を使用しています。
C言語はオブジェクト指向を実現することを想定した仕組みを持っていません。
それでも,低レイヤのコードにもオブジェクト指向の考え方に基づいた設計と実装が確かに存在します。
これは,「ある機能を実現するための設計が結果としてオブジェクト指向になったもの」と捉えることができます。
このような設計や実装に注目することで,「手段」としてオブジェクト指向を用いる際の本質が見えてくるのではないでしょうか。
本セッションでは,一般に使われているOSSのコードを例に,C言語を用いたオブジェクト指向設計の実装を紹介し,設計の意図やユースケースに合わせた妥協点を探ります。
普段とは少し異なる視点からオブジェクト指向を眺める機会をつくり,低レイヤ領域に興味を持つきっかけになれば幸いです。
※C言語や周辺知識の複雑な部分は都度解説するため,コアな知識は不要です。
【このセッションでお話すること】
・設計と実装,手段と目的の再確認
・C言語でオブジェクト指向を実現する基本戦略
・一般的なOSSの設計と実装の紹介
・まとめ 他の言語に生かすために
優れたシステムは直面している課題を的確に解決し、その課題の要因へ繋がるさらなる課題提起へ導きます。ビジネス、システム、コードなど、いくつかのレイヤーをオブジェクト指向でとらえ、高い価値を提供するためのアプローチについて話します。