アジャイル開発とは

こんにちは

 

本日はアジャイル開発について調べました。

 

アジャイル開発とは、反復 (イテレーション) と呼ばれる短い開発期間単位を採用する開発手法のことを言います。

 

アジャイルagile)とは『すばやい』『俊敏な』という意味を持っています。

 

この開発手法の利点は、変更に強いことや、優先度の高い重要な機能から着手できることが挙げられ、設計からテストまでを1〜2週間単位で繰り返すことによって、顧客の要望にいち早く応えたり、仕様の間違いに気づくことができます。

 

 

もう一つ、ウォーターフォール開発という手法がありました。

こちらは工程をしっかり分割して一つ一つ進めていくという手法です。

大型システムの開発のように多くのエンジニアが関わるプロジェクトにおいて、明確に役割分担を行う必要がある際に有効であるとされています。

 

こちらの利点は、開発の計画や予算の見積もりが容易になることが挙げられます。

 

デメリットとしては、開発後に初期段階のトラブルに気づいた時に、修正をすることが困難であることが挙げられ、綿密な計画が必要です。

 

今回は以上となります。

 

 

参考文献

アジャイル開発 ~顧客を巻き込みチーム一丸となってプロジェクトを推進する~ (前編): コラム | NECソリューションイノベータ

アジャイル開発とウォーターフォール開発の違いは何?アジャイル開発の手法や意味も要チェック | Backlogブログ

 

参照渡し、値渡しについて

こんにちは

 

今回は参照渡し、値渡しについて調べたことをまとめます。

 

これらは、関数やメソッドにおける引数の渡し方の種類を表す用語とのことです。

どちらも変数(実引数)を引数(仮引数)に渡すことを指していますが、渡し方が違うそうです。

 

値渡しは、変数をコピーして渡すことを言います。

def withdraw(price)

 price += 10

end

amount = 100
withdraw(amount)

この場合100と言う値をコピーして渡しています。

amountの100に変更はありません。

 

 

参照渡しの場合は

amount = 100そのものを渡しているので、withdrawによる値の変更がamountにも影響します。

 

まとめると

  • 値渡し:変数の中身を書き換えても呼び出し元には影響しない
  • 参照渡し:変数の中身を書き換えると呼び出し元の変数の中身も書き変わる

こんな感じです。

 

Ruby に限らず多くのプログラミング言語では値渡しが基本の様です。

参照渡しに見えるのは値に変数が指すオブジェクトもコピーされている為です。

このことを参照の値渡しと言います。

 

今回は以上です。

参考文献

値渡しと参照渡しの違いを理解する

https://wa3.i-3-i.info/diff345programming.html

オブジェクト指向とは何か

こんにちは

今回はオブジェクト指向について調べたことをまとめます。

 

一般的にオブジェクト指向とは現実世界を正しく捉えることです。

 

例えばオーブンで考えると、プログラミングで「オーブンでパンを焼く」という動作をいきなり指示することはできません。

PCではオーブンて何?パンて何?焼くって何?となってしまうんですね。

 

以下はオブジェクト指向を飲食店に例えた自分なりの解釈です。

 

自分を店長とした時、指示したことは確実に行ってくれるアルバイトがコンピューターとなります。しかしそのアルバイトは作業の一つ一つを非常に細かく説明しないと動いてくれないのです。

店長「生地を叩いてください」

アルバイト「生地ってなんですか?叩くってどうやって?」

みたいな感じです。

その分、一度教えたことはミスなく確実にやってくれます。

 

考え方はこの程度で良いと思います。

 

オブジェクト指向の利点として、何度も同じ指示を書かなくて済む、というのがあります。上記の例に戻ると、一度アルバイトに生地の作り方を教えれば「生地を叩いてください」だけの指示で動いてくれます。

もう一つの例でいうと、パンを窯で焼くとなった際に、オーブンで焼く時に使ったパンの情報を持って来れます。また1からパンの情報を書かなくて済みます。

 

オブジェクト指向の考え方にはいろいろ意見があるそうなので、ざっくり把握することも理解する一つの手段かと思われます。

 

参考文献

オブジェクト指向が5000%理解できる記事 - Qiita

初心者向けに徹底解説!オブジェクト指向とは?

自分なりのエラーの解決方法

こんにちは

今回はエラーが出た場合の、自分なりの解決方法についてです。

ArgumentError、TypeError、NameErrorなどよく出るエラーに関しては、エラー文を読んで、自分なりの仮説を立てます。

そこで解決できれば吉ですが見慣れないエラーや、「ここが間違っている!」という原因がわかっても、どの様に修正すれば良いのかわからない場合もあります。これは単に勉強不足が主たる要因だと思っています。

この様な時は解決策を検索していくことになります。

同様なエラーに遭遇している記事を確認して見たり、似た様なアプリケーションのGitHubを見てどの様なコードにしているかを確認します。

この工程にどれだけ思考回数を重ねたかが重要で、同じ様なエラーを時間をかけずに解決するかの鍵になると思っています。

とは言え、仕事上では延々エラー解決に時間をかける訳には行かないので、

  • どの作業中にエラーが発生しているか
  • 自分はその原因を何と捉えているか
  • 上記を踏まえてどう修正してみたか

これらをしっかり伝えた上で、同僚や上司に質問していこうを思っています。

本日は以上です。

Rubyのincludeとは

こんにちは

今日はincludeメソッドについてです。

rubyにはinclude?メソッドやincludesメソッドもありますが、意味は異なります。

 

【include?()】

配列に引数で指定した要素が == で等しい要素を持つ時に真を返します。

 

【includes】

N+1問題を解消する為のメソッド。引数に指定された関連モデルを1度のアクセスでまとめて取得できます。書き方→includes(:紐付くモデル名)

*N+1問題とは、アソシエーションを利用した場合に限り、データベースへのアクセス回数が多くなってしまう問題。アプリケーションのパフォーマンス低下につながります。

【include】

moduleをクラスに含めるメソッド。moduleAをclassBにincludeすると、moduleAに含まれているメソッドをclassBのインスタンスが使えるようになります。

 

フォームオブジェクトパターンを使う時に【include】を使いました。一つのフォームから複数テーブルに保存する時ですね。

 

今回は以上となります。

 

AWSについて調べてみました

こんにちは

今回はAWSについて学んだ事を書きます。

AWSとは、Amazon Web Servicesの略のことをいいます。これはAmazonが提供するクラウドWebサービスの総称です。世界で最も多く採用されているクラウドプラットフォームです。

AWSができることはサーバーの構築やデータの保存など多岐に渡ります。また、従来のオンプレミスの運用とは異なり、インターネットに接続さえしていれば、すぐにでも必要なサーバーなどのリソース使用できます。

メリットとしてはオンプレミスをよりもコストを抑えられたり、セキュアな環境を利用できるといったことが挙げられます。

最も有名なサービスとしてEC2があります。仮想サーバーのレンタルサービスでサーバーの規模を変更できる機能があります。アクセスの集中によるサーバーダウンを防止することができるといったことがあります。

 

本日は以上です。

 

参考文献:

https://tech-camp.in/note/technology/14003/

https://www.skyarch.net/proactive/cloud/aws/aboutaws_01.html

MVCとは

こんにちは

本日はMVCの仕組みについてです。

MVCとは、プログラミング手法のアプローチのことです。
アプリケーションを動かすために必要な処理を分類して分けることで、保守性、可読性の高いコードを維持できるそうです。


「V」はViewの略。クライアント側に表示される見た目の部分のこと。


「M」はModelの略。データベースから取得してきた値を加工するメソッドや、レコード検索のメソッド、データを保存する前に加工するメソッドなどを定義(ビジネスロジックを記述)。


「C」はControllerの略。クライアントからのリクエストに対して適切なレスポンスを返すことや、そのレスポンスに必要なデータの用意を行う。modelに命令する役割やどんなviewを表示するかの役割。

 

自分は質問されても、パッと答えられないのでしっかり理解しておくことが大切だと思いました。

本日は以上です。