2024年度リクルート エンジニアコース新人研修の講義資料です
先日某所で「最近プログラミングを始めた入門者(だったかな?)に勧められるオブジェクト指向の本を教えてほしい」みたいな質問をいただいたのですが(うろ覚えなのでちょっと違っているかも)、その場で即答できず考え込んでしまいました。ですが、遅ればせながら選書してみたので、その内容をここに書いておきます。 とはいえ、改めて考えてみても、2023年に入門者向けのオブジェクト指向の本を探すのはなかなか難しいですよね…。もちろんオブジェクト指向じゃなければ簡単かと言われるとそういう訳でもないですが。とりわけオブジェクト指向に関する書籍の場合、海外のよく知られている書籍は少し前に翻訳されたものが多くて、最近はこれというのがなかなか思いつきません。また日本でも良書がばんばん出てるわけでもなさそうです。 この辺りは、オブジェクト指向に関する技術はもはや当たり前のものとなってしまっていて、今さら旬のトピックでもな
オブジェクト指向って何 難しく感じる理由、簡単解説『オブジェクト指向でなぜつくるのか 第3版』より2021 / 6 / 24 「オブジェクト指向」という言葉を知っていますか。プログラミングをする人なら、一度は目にしたり学んだりしたことがあるかもしれません。なかには、「大事そうだけど、難しそうだな」と感じている人も多いでしょう。 オブジェクト指向の考え方自体はそれほど難解ではありませんが、難しそうと思ってしまう理由もしっかりあります。その理由を知ることで、オブジェクト指向の本質により簡単に迫れることでしょう。ここでは、平澤章『オブジェクト指向でなぜつくるのか 第3版』(日経BP)から、オブジェクト指向が難しそうに思われてしまう理由を担当編集者がご紹介します。 ◇ ◇ ◇ 習い事を学ぶとき、乗り越えるのが難しそうなハードルに出合うことはよくあります。プログラミングにおける「オブジェクト
Object-Oriented Conference概要 ※イベント及びセッションの概要は公式HPから引用しました。 2020.02.16 SUN 10:00 - 17:00 お茶の水女子大学 #ooc_2020 Object-Oriented Conference はオブジェクト指向をテーマに、あれこれ共有したり、セッションを聴講することで、みなさんの知見を深めるためのイベントです。 オブジェクト指向といっても、分析設計から、現場で活かすためのプラクティスなど様々なテーマがあります。セッションやラウンドテーブルなどを通じて、参加者の皆様が新たな発見を持ち帰っていただけるようなイベントを目指しています。 オブジェクト指向についてまったく知らない方やオブジェクト指向を完全に理解した方、そして普段オブジェクト指向以外のパラダイムを利用している方もお気軽にご参加ください! 開会の挨拶 オブジェク
自己紹介 はじめまして、はると申します。完全異業種からのエンジニア転職を目指して、スクールに通いながら学習をしています。 概要 プログラミングにおける「戻り値」について、Rubyの例を用いて説明します。 注意 私は前職が完全異業種であり、英語も苦手で、スクールに入って初めてプログラミングに触れました。 そんな自分が理解しづらかった部分を、同じように初めてプログラミングの概念に触れた人に向けてまとめました。 自分の復習も兼ねて、超超噛み砕いて書いているため、周りくどい書き方になっている箇所もあるかと思います。 また、初学者のため、間違っている箇所もあるかもしれませんのでその際は教えて頂けると嬉しいです🙇 戻り値とは 戻り値とは、言語に関わらずプログラミングに共通する概念です。 この記事全体を通して説明していきます。 噛み砕いて考える 私が初めて戻り値に出会ったときは、「 あらかじめ定義して
はじめに こんにちは、事業会社で働いているデータサイエンティストです。 普段の業務ではR(とSQL)を使っていて、Rの最先端も確認していますので、今回の記事では最近CRANでリリースされた新しいオブジェクト指向システムS7について色々話そうと思います。 公式サイトはこちらです: 注意事項 公式サイトでも強調されていますが、S7はまだかなり早期の試みであって、パッケージとしては安定していません。なので、読者が本記事を数ヶ月後に確認する時、すでに一部の機能に重大な変更が入ってコードが実行できない可能性があります。 また、まだテスト段階のパッケージなので、個人的には何かしらの商用サービスに組み込むことは避けた方がいいと思います。 S7とは R言語はもともと計量経済学者、統計学者、計量政治学者、生物学者、医学者が利用する統計ソフトとして誕生しました。統計分析において、再現性は極めて重要なので、Rの
普段参加する勉強会では、幅広いテーマのなかに、たまにドメイン駆動設計について話してる人がいたら見に行ったりしていた。 Object-Oriented Conferenceはオブジェクト指向の勉強会で、5並行のセッションが丸一日あるという気前の良い勉強会だった。 普段聞かないような話題を多く聞くことができたのがよかった。機能要求由来の関心事と非機能要求由来の関心事は分けて扱うべし、という話で、全社は会計ドメインとかそういうものになるけど、後者はフレームワークを使うと言った形として現れる、ということ(だと理解した)で、そういうふうに区別したことは言われてみるとなかったのでなるほどとなったり、聞いたこと無いワードがどんどん出てきたので、出たワードをメモしたりしていた。読んでないけどとりあえず控えておこう、というときに「読んでない」というタグをつければあとで読むこともできるし読まなくてもいい、とい
はじめに オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方 を読みました。 この本は、オブジェクト指向の設計について、Rubyのプログラムをサンプルに、分かりやすく解説されています。 設計について学びたいRubyエンジニアにおすすめできます。 これを学ぶことで、変更しやすい、メンテナンス性の高いコードを書くための考え方が身につけられます。 メンテナンス性の高いコードを書きたいと思っているRubyエンジニアは、個人的には、リーダブルコードの次に読むべき本だなと感じました。 (リーダブルなコードについては前提として知っておいたほうがいいです) どうしてこの本を読んだのか クラスの設計、インターフェースの設計に苦手意識を持っており、元々社内でも多くの人がおすすめしている本だったので、読んでみようと思いました。 今まで、インターフェースを使ったオブジ
はじめに この記事は「【マイスター・ギルド】本物のAdvent Calendar 2022」10日目の記事です。 最近、IT業界のトレンドや動向把握のため、面白そうなエンジニア雑誌があれば読むようになりました! その雑誌の中で、12月24日に発売されるWEB+DB PRESS Vol.132が目に止まりました。その表紙には、「オブジェクト指向神話からの脱却」という文字が大きく掲載されています。 オブジェクト指向信者の私にとっては、脱却する必要はないだろうと思いながら、とても気になる内容で今から楽しみにしてます! 本を読む前に現時点での私のオブジェクト指向に対する考えについて整理しておきたいなと考え、本記事では個人的なオブジェクト指向のメリット・デメリットを書いていこうと思います。 オブジェクト指向歴 簡単に自身のオブジェクト指向歴を書いておきます。 オブジェクト指向の言語に触れたのはC#が
チームメンバーみんなで協働してハイレベルの設計をすることができるテクニックがあります。CRCカードを使った設計モデリング。UMLモデリング推進協議会(UMTP)主催のセミナーで開かれたCRCカードのワークショップで学んできました。講師はオブジェクトの広場の編集員でもある藤井拓です。本記事では、セミナーで行われたワークショップの様子をお伝えしつつ、CRCカードを使った設計の概要を紹介します。 UMTPのCRCカードワークショップ 2018年2月に、UMLモデリング推進協議会(UMTP)主催の技術セミナーがありました。今回は「CRCカード ワークショップ~賢いクラスとそれらのコラボレーションをモデリングしよう」という内容で、オブジェクトの広場の編集員でもある藤井拓が講師をしました。 ワークで配られたもの:CRCカードの進め方と、ユースケース、講義スライドを印刷したもの。 CRCカードは、198
はじめに 本記事では、初学者向けにオブジェクト指向について簡単に解説します。 細かい文法部分については省略していますが、イメージを掴んでもらえたら嬉しいです。 また、本記事ではGoFのデザインパターンについても簡単に紹介します。 今回は、Singleton、Factory、Strategy、Observer、Adaptorパターンについて取り上げます。 初学者の方は、今回紹介するデザインパターンをなんとなくでも理解できたらバッチリです。 前提知識 デザインパターンを学ぶにあたって、オブジェクト指向についての理解は必須になります。 ここでは前提知識として、クラスとインスタンスの関係、オブジェクト指向の3大要素について簡単に解説をしておきます。 不要な方はそもそもデザインパターンとは?から読み進めてください。 クラス と インスタンス クラス クラスのイメージは"設計図"です。 例として、家を
こんにちは、Javaおじさんのシキムです。 40才目前で、プログラム工学に興味を持ったので本や記事で読んだ難しい話を 咀嚼して簡単な言葉で語りたいと思います。 今回は、単一責任の原則(Single Responsibility Principleというものについてです。 ざっくりと、、、 1つのクラスとかメソッドにいろいろなことをさせるといろいろ大変だから、 1つのクラスとかメソッドにひとつのことをさせると楽ですということ。 詳しくは偉い人の話を読んでください。 ここでは、この原則をカレー作成装置に見立てて解説したいと思います。 では、さっそくカレー作成装置を作りましょう。 カレー作成装置 入れるもの: 人参、ジャガイモ、玉ねぎ、肉 作業: ①人参の皮を剥く ②ジャガイモの皮を剥く ③玉ねぎの皮を剥く ④人参を切る ⑤ジャガイモを切る ⑦玉ねぎを切る ⑧肉を切る ⑨具材を鍋に入れて煮込む
本題に入る前に、値オブジェクトの表明を使って検証を実装する方法に、必要な検証(バリデーション)と表明(アサーション)の違いについて以下にまとめる。 検証(バリデーション) 以下のブログ記事によると、3種類のバリデーションがあるようです バリデーションには3種類のバリデーションがある 〜 セキュアなアプリケーションの構造 〜 が、日常的にはこのあたりは区別せずに「入力値の確認」と認識していると思います。厳密に表現すると「入力値が要件を満たしているか妥当性を確認すること」になります。Error, Defect, Fault, Failureの定義と解釈のエラー(Error)のカテゴリ。 以下は、バリデーションロジックの一例。値が満たすべき要件を確認するロジックを記述しますが、場合によっては複数の検証を組み合わせて一つの検証を行うことがあります。 object Validators { type
はじめに みなさんオブジェクト指向開発してますか? 大規模な開発であれば実装前にきっちりとクラス設計を行っていることでしょう。 また、大規模でなくても機能を跨いだり、複数の担当者で利用するクラスなどは、事前に慎重に設計すべきです。 開発現場にきちんとクラスの設計ルールがある場合は、この記事は読まなくて大丈夫です。 しかし、小規模の機能追加なんかの場合、クラス設計も実装も個人に任されることがあると思います。何ならオブジェクト指向で作らなくても全然構わない状況かもしれません。 でも、オブジェクト指向で作りたいですよね? この記事では、オブジェクト指向について基本的な知識がある人向けに、実装の最初の取っ掛かりや、リファクタリングする際の観点とか、そういったヒントを紹介したいと思います。 (注意)チームの開発・設計・コーディング等、各種ルール・規約を遵守してくださいね。 サンプルケース ここではカ
オブジェクト指向における継承の問題点を、合成とインターフェースで回避するのは なぜかという概念的な話を、抽象度という考え方を使って解説しました 動画内では触れていませんが結果的に、データ指向とプロトコル指向の考え方が発展しました 私見なので異論歓迎、感想をいただけるとありがたいです 一週間くらい頭を捻っていたので投稿が遅くなり申し訳ないです ○関連動画 ・オブジェクト指向の本質(プレイリスト) https://www.youtube.com/playlist?list=PLf4I2oE5Pn_NE7o7KpTO8AqOZ1tWMVs0H ○おすすめ ■環境構築 ・Windows11 + WSL + Ubuntu + VSCode の環境構築:https://youtu.be/odDJ3QvlF2g ・Windows11 + Docker + VSCode で開発環境を構築:htt
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く