ruby
前書き キーワード引数という概要ぐらいは知っていたのですが、具体的に「いつ使うの?」という肝心な部分の理解が浅いままでした。しかしこういうときに使うと便利なんだという発見があったので共有させていただきます。 どなたかの参考になれば幸いです。 …
前書き 今railsでrake taskを新規作成しています. そこでrails promotion_code:generateというコマンドを実行するとPromotionテーブルに10個のレコードを作成したい。1つのレコードには2つのカラム(promotion_codeとprice)があり、それぞれ8桁の英数字と数…
ぼっち演算子とは? ⇨レシーバーがnilだった場合でもメソッドをエラーにさせない仕組み 例 class User def name puts "まさです" end end user = User.new user.name object = nil object.name 出力結果 a.rb:15:in `<main>': undefined method `name' for nil:Nil</main>…
前書き Rubyに関して新たな知見を得たので忘却録として記事に残します。 以下のコードを見て introduceメソッドの出力結果が 「僕ドラえもん」か「野比のび太」どちらが出力されるかわからない方はこのまま記事を読み進めてください。 class User def name "…
前書き 友人にコードを見ていただいた際 「この辺拡張性の低いコードやな」と指摘されました。 「そもそも拡張性とは?」 「なんで拡張性の高いコードを書かないといけないの?」 上記2つに対して疑問が湧いたので忘却録かつ誰かの学びに繋がればという想い…
前書き 唐突ですがインスタンス変数とローカル変数みなさんどのように使い分けているでしょうか? もし. インスタンス変数=インスタンス変数を定義しているメソッド(initialize),以外のメソッド(accelerateなど)からでも呼び出せる変数(下記のコードのように…
カプセル化とは ⇨クラス外部から不用意にメソッドが実行されるのを防ぐこと 例 メソッドのカプセル化なし def greet puts "こんにちは" end greet 出力結果 こんにちは このようにメソッド名だけで処理を「どこからでも」呼ぶことができる このようなメソッ…
ポリモーフィズムとは? ⇨ 同じメソッドでありながら違う振る舞い ポケモンの例(ポケモンクラスという親クラスと子クラス(ゼニガメ(Squirtle)とヒトカゲ( Charmander)クラスがあるという構造になっています) # ポケモンクラスの定義 class Pokemon def initi…
前書き 継承 ポリモーフィズム カプセル化 オブジェクト指向の3つの特徴それぞれの理解が曖昧なので記事を通じて理解(どんな時に使うのなど)を深めたいと思います. ⚠️本記事は継承に焦点を合わせて作成します。 継承とは? ⇨子クラスを作成すること. 子クラ…
目次 オブジェクト指向とは? なぜオブジェクト指向が必要なのか? オブジェクト指向とは? ⇨①共通のデータやメソッドをテンプレート化(使い回し)し保守性や開発効率を上げる開発手法. 疑問1,共通のデータやメソッドとは? 疑問2テンプレート化(使い回し)と…
リファクタリングとは? ソフトウェアの外部の振る舞いを保ったまま内部の処理を短く、誰がみてもわかりやすく変更していくこと。 なんでリファクタリングが必要なのか? ⇨開発効率が上がる(バグ修正しやすい、追加開発しやすい). 追加開発=機能を追加して…
例外処理とは? ⇨エラーになった時にどういう処理をするのか事前に決めておくこと. そうすることでエラーが起きた後、エラーが起きた箇所以降の処理も実行できるようになる. 例外処理なし. ⇨エラーが起きたらプログラムが止まる. 例外処理あり. ⇨エラーが起…
前書き initializeメソッドを浅くしか理解していないので深掘りしてみます。 要は以下の2つのコード(initializeメソッドある、ない)の違いを明確に理解できるようになりたいです. initializeメソッドあり class Konan def initialize(name) @name = name en…
前書き protectとprivateの違いを理解が曖昧だったので理解を深めるために記事に残します。 結論 そもそも呼び出し制限とは? ⇨どこからでもメソッドを呼び出せないようにすること。 呼び出しを制限する方法3種類(public,private,protected) 公開レベル クラ…
結論 ⇨条件分岐のネストを深くしないための技法のひとつ。 要は下記のように条件分岐がネストしているコードをネストしないようにする技法 if 条件式A if 条件式B 条件式Bのtrue処理 end else 条件式Aのtrueの処理 end 具体例 具体例数字の1~10までの数字が…
optparseとは? ⇨Rubyでコマンドライン引数を扱うための標準ライブラリ. 通常Rubyファイルを実行する際以下のようにして行う ruby ファイル名 optparseを使用したRubyファイルを実行する際下記のようファイル名の後に引数(-a 3)を取ることができファイル内で…
前書き 私はプログラミング初学者なのですが現役エンジニアの方にコードレビューしていただいたことを記事に残します。 結論 ⇨同じ処理ならより可読性が高いメソッドを使おう。配列から要素を除外するメソッドはrejectメソッドより-(マイナス)メソッドを使用…
結論 個インスタンス毎に異なるデータを持たせたい場合はインスタンスメソッド、全てのインスタンスに共通に持たせたい場合がクラスメソッド(もしこの見分け方で例外ができた場合その時にまた学ぶとする) 給料計算のプログラムの例 前提 全従業員は同じ基本…
対象者 selfが省略できる時とできない時の違いがわからない方 attr_accessorの復習をしたい方 attr_accessorとは ⇨インスタンス変数とセッターメソッド、ゲッターメソッドのこの3つを自動作成してくれる機能(画面上には見えない)。 セッター?ゲッター?と…
この記事でわかること ゲッターやセッターの言葉の意味と使い方 ゲッターとは?セッターとは? 結論. ゲッター=インスタンス変数の中身を見る機能. セッター=インスタンス変数の中身を書き換える(更新する)機能. 前提 インスタンス変数はクラス外部から…
対象者 ruby初心者. オブジェクト指向とはなんぞやという方. この記事を読んでわかること オブジェクト指向が使われているプログラミング言語、pythonやrubyがどういうプログラミング言語であるのかをざっくり理解できます. 目次 オブジェクト指向の三代要素…
対象者 オブジェクト指向という前にオブジェクトはなんぞやという人. この記事を読んでわかること オブジェクトとクラスの概念をイメージできること、またそれぞれの概念を言語化できること 目次 オブジェクトとクラスとは?. クラスの要素 1. オブジェクト…
前書き. ハッシュのキー名は文字列の方がいいのかシンボルで描くのがいいのか新しい気づきがあったので記事に残します。 ruby学習者の参考になれば幸いです. 記事の対象者. rubyの文法少し知っている方. rails tutorial4章まで進んでいる方. rubyの文法を少…
前書き 時間の取得が苦手なので復習+私のように混乱してしまうかたのために記事にします。 現在日時の表示 Time.nowかTime.newを使うどちらも同じ意味 Time.nowの方がわかりやすいのでこちらが好まれる傾向があります。 今現在9月22日(木曜日)16:39…
前書き 初心者で勉強していると新しい用語などの理解が2〜3割しかないまま次々進む傾向にあると思いました。 私はselfについて理解が2〜3割しかなく、後から『どういう意味だったっけなぁ?』と思うことが多く結果「前ちょっとやったのに覚えていない自…
前書き 標準入力で入力された文字が大文字の場合YESと表示 小文字の場合NOと出力するというプログラムを練習で作ろうとしたところその中で失敗をしたのでそこから学んだことを共有させていただきます。 作ろうとしたもの 入力例 B ↓ 入力された文字が大文字…
日々rubyでコードを書きながら練習していると予期しないエラーに直面するので 今日は出会ったエラーの意味と原因と解決策を記事にしてみようと思う。 エラーの意味と原因 zixya.rb:8: syntax error, unexpected local variable or method, expecting `then' …
Ruby 基礎 目次 ①各種名前 ②①の機能の紹介 ①各種名前 ①各種名前 ①オブジェクト ②インスタンス ③メソッド ④クラス  ② ①の機能の紹介 オブジェクト ⇨便利機能を兼ね備えたお道具箱のイメージ お道具箱のイメージとは? お道具箱にはハサミや水のりやホッチキ…
目次 クラス変数とインスタンス変数の比較 クラスメソッドとインスタンスメソッドの比較 モジュールについて Mix-in クラス変数とは インスタンスごとにそれぞれ固有とは↓でいうインスタンスごと(masa=User.new(“masa”))によって実引数が違うから @name(イ…
目次 class文 initializeメソッド 組み込みクラスの継承の関係 アクセスメソッド 特別な変数self クラス文 class クラス名 クラスの定義 End 注意 クラス名は必ず大文字で始めないとあかん initializeメソッド Class文の中で定義されたメソッドをそのクラス…