HOKKEによるぐだぐだのなんか

これは今すぐにでも社会に出たい大学1回生が綴るものです。



20190110









20190110


1 内容



Scaffolding機能について


2 Scaffoldingとは



Railsでは基本、コントローラークラス(Controller)、テンプレート(View)、モデルクラス(Model)を個別に作成します。
 しかし、Railsにはもう一つ、より手軽に定格的なCRUD(Create-Read-Update-Delete)機能を持ったアプリを構築するための機能があり、これをScaffolding(スキャフォールディング)機能と呼びます。
 一見便利な機能ですが、自動生成したコードは修正がほぼ必要らしいので毛嫌いする人も多いらしい。


3 CRUDとは



はい。偉そうにCRUDとか書いてますが自分は読み方すら知りません。なんで勉強してきました。
 クラッド(CRUD)とは、システムに必要不可欠な"生成"(Create)"読み取り"(Read)"更新"(Update)"削除"(Delete)の頭文字を並べた用語のことを言います。何をするために作られた用語かというと"確認"です。
 システムというものは、かなり複雑な機能で構成されています。そうするといずれ"あ!この機能が無い!"みたいなうっかりミスが出て来るものです。(しょうがないね、にんげんだもの)このようなミスをできるだけなくすためにCRUD機能を用いて確認をするのです。
 世の中には様々なシステムがありますが、それらにはまず間違いなくこの機能が組み込まれています。


4 愚痴



なんで授業中にIpadでノート取ったらだめなんだ!俺は紙は絵を描くためにしか使いたくないんだ!


Author: hokke

Created: 2019-01-10 木 20:04

Emacs 25.2.2 (Org mode 8.2.10)

Validate

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 20190109

20190109

1 内容

今回はRails命名規則について

2 コントローラ関連の命名規則

種類 概要 名前(例)
コントローラークラス 先頭は大文字で、接尾辞に"Controller" HelloController
コントローラークラス(ファイル名) コントローラークラスを小文字にしたもの、単語の区切りはアンダースコア hellocontroller.rb
ヘルパーファイル名 コントローラー名に接尾辞"helper.rb" hellohelper.rb
テストスクリプト コントローラ名に接尾辞"controlletest.rb" hellocontrollertest.rb

3 モデル関連の命名規則

種類 概要 名前(例)
モデルクラス 先頭は大文字で単数形 Book
モデルクラス(ファイル名) 先頭は小文字で単数形 book.rb
テーブル 先頭は小文字で複数形 books
テストスクリプト xxxxxtest.rb(先頭は小文字で複数形) booktest.tb

4 雑談

金がほしいなぁ。Macを買う用の貯金がどんどん少なくなっていく。て、何だこれ表が表示されてない!!??

Author: hokke

Created: 2019-01-10 木 16:39

Emacs 25.2.2 (Org mode 8.2.10)

Validate



<a class="keyword" href="http://d.hatena.ne.jp/keyword/ruby%20on%20rails">ruby on rails</a> の memo 20190108









ruby on rails の memo 20190108


1 内容



これはRailsを勉強する上での備忘録みたいなものです。


2 Controller classの基本



Railsでの開発を行う上でController classは基点みたいなものです。

Modelを呼び出すのも、それをViewに引き渡すのもController classの役割です。


3 ルーティングの基礎



ルーティングとは、リクエストURLに応じて処理の受け渡し先を決定すること、または、その仕組みのことをいいます。

(よくわからなかったので”「分かりそう」で「分からない」でも「わかった気」になれるIT用語辞典”さんを参照させていただきました)(ルーターのお仕事で車のナビみたいなものと解釈した)


4 ビューの基本



railsにおいて最終的な出力はERBテンプレートを使用するのが基本です。これはHTMLにRubyスクリプトを埋め込むための仕組みです。

以下のような特徴があります。

  • 1.任意のRubyスクリプトを埋め込めるので、条件分岐や繰り返し構文などの処理も自由に記述できる

  • 2.ビューヘルパーを利用することで、データベースから取得した値に基づいたリンクやフォーム要素などをシンプルなコードで生成できる


テンプレートファイルは/app/viewディレクトリ配下に「コントローラー名/アクション名.html.erb」という名前で保存する必要があります。(例:helloコントローラのviewアクションに対応するテンプレートであれば/hello/view/heml.erbとする)


5 Modelの基礎



モデルとはデータベースや外部サービスへのアクセスを始め、ビジネスクロック全般を担当するコンポーネントのことです。アプリケーションの心臓と言えるでしょう。


6 O/Rマッパーとは



O/R(Object/Relational)マッパーとは、リレーションデータベースとオブジェクト指向言語との橋渡しを受け持つライブラリのことです。

本来データベースが用いているリレーショナルモデルとアプリ側のオブジェクトモデルでは構造が決定的に異なっています。

以前はそれらを手作業で割り当てたりしていました。

しかし、この構造差によって開発生産性を大きく減少させていました。(この構造差のことをインピーダンスミスマッチという)

そこで、この構造差を解消するためにO/Rマッパーというツールが使用されています。これはデータベースのリレーションモデルをオブジェクトモデルに変換することができます。これによりアプリとデータベースの両方をオブジェクト同士でやり取りできるようになり、ギャップを少なくすることができます。


Author: hokke

Created: 2019-01-08 火 19:49

Emacs 25.2.2 (Org mode 8.2.10)

Validate

Ruby on Rails 5アプリケーションプログラミング

 

 

 

 

ruby on rails の memo 20190107

1 内容

これはRuby on Rails アプリケーションプログラミング(技術評論社出版)(以下"参考書"として表記)の備忘録みたいなものです。
(Ruby on Rails とはアプリケーションフレームワークの一種であり、その名の通りアプリを作るためのフレームワークのことです。)

2 フレームワークとは

何か問題や課題に直面したとき、解決に向けて1から取り組むよりは、先人の知識や経験などを活用することでよりスムーズに解決することができます。
そして、このような先人の知識や経験をまとめたものをフレームワークといいます。
(自分はunreal engineやUnityといったゲームエンジンフレームワークの一種であると解釈)
参考書には、自作PCを例にしており、フレームワークとはマザボ、アプリの開発者がメモリやCPU、電源などのパーツに近いと書かれていました。(分かりやすい)

フレームワークを導入することによる利点は(参考書内で)次のように述べられています。

  • 1.開発生産性の向上
    • アプリの根幹である設計方針や基盤のコードをフレームワークに委ねられることによる、生産性の向上
    • 機能単位で役割分担ができるので大人数のプロジェクト開発に適している
  • 2.メンテナンスのしやすさ
    • コードに一貫性があるので読みやすく、保守/開発がしやすくなる
  • 3.最先端の技術に対応できる
  • 4.一定の品質が期待できる
    • 多くの人間の目に晒され、チェックされているので高い信頼性が期待できる

3 MVCパターンとは

Railsは、MVCパターンというアーキテクチャを採用しています。MVCパターンとはModel-View-Controllerパターンの略であり、
アプリをModel(ビジネスロジック)、View(ユーザインタフェース)、Controller(ModelとViewの制御)の3つの役割に分離しよう、という設計モデルのことをいいます。

一番最初はこの辺で終わりにしておきます。
余談ですけど、この備忘録はemacsのorg-modeで書いてるんですけど一種の設定が動かないんですよねぇ(例:C-k 現在行をまるごと消すようにカスタマイズしている)
困った、困った

Author: hokke

Created: 2019-01-07 月 11:03

Emacs 25.2.2 (Org mode 8.2.10)

Validate

unreal engine c++ tutorial 2018/11/28

SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) : Pawnで定義されている入力値を処理するためにセットアップメソッド

PlayerInputComponent : アクタコンポーネントの入力にかかわる情報を格納するオブジェクト(?)コンストラクタはUInputcomponent()

BindAxis関数
PlayerInputComponentに含まれる関数


FInputAxisBinding & BindAxis
(
const FName AxisName,
UserClass * Object,
typename FInputAxisHandlerSignature::TUObjectMethodDelegate< UserClass >::FMethodPtr Func
)

直訳だけど軸を割り当てるということでいいのかな?
例:PlayerInputComponent->BindAxis("MoveRight", this, &AMyPawn::MoveForward);

AddMovementInput関数
virtual void AddMovementInput
(
FVector WorldDirection,
float ScaleValue,
bool bForce
)

要するにScaleValueだけ移動させる。
bForceはわからん。
例:AddMovementInput(GetActorForwardVector()//アクタのルートコンポーネントのZを取得する関数,Value//引数);


なんだこれ難。情報がないとは聞いていたが予想以上やったわ。

unreal engine c++ tutorial 2018/11/28

SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) : Pawnで定義されている入力値を処理するためにセットアップメソッド

PlayerInputComponent : アクタコンポーネントの入力にかかわる情報を格納するオブジェクト(?)コンストラクタはUInputcomponent()

BindAxis関数
PlayerInputComponentに含まれる関数


FInputAxisBinding & BindAxis
(
const FName AxisName,
UserClass * Object,
typename FInputAxisHandlerSignature::TUObjectMethodDelegate< UserClass >::FMethodPtr Func
)

直訳だけど軸を割り当てるということでいいのかな?
例:PlayerInputComponent->BindAxis("MoveRight", this, &AMyPawn::MoveForward);

AddMovementInput関数
virtual void AddMovementInput
(
FVector WorldDirection,
float ScaleValue,
bool bForce
)

要するにScaleValueだけ移動させる。
bForceはわからん。
例:AddMovementInput(GetActorForwardVector()//アクタのルートコンポーネントのZを取得する関数,Value//引数);


なんだこれ難。情報がないとは聞いていたが予想以上やったわ。

Unreal Engine 4 c++ tutorial 11月27日

Unreal Engine 難しすぎる。
いろんなサイトだったり、図書館の本だったり漁ってみたけれどYouTubeのtutorialシリーズが一番わかりやすいと考えた。ただ英語なので少し時間がかかるなぁ。
BeginPley() : ゲーム開始時に呼び出される。返却値なし。
Tick() : 通常1フレームに1回という一定の間隔で呼び出される。60frame/1secondのゲームなら一秒に60回呼び出される。

FVector型  : 3次元を表す。すでに定義されている構造体みたいなもの X,Y,Z(float)の3つの要素。


GetActorLocation() : 現在のアクタの位置を返す。FVector型。


SetActorLocation(const FVector &NewLocation) : NewLocationの位置にアクタを移動する。bool型(成功すれば1、失敗すれば0)他にも受け取る引数が存在する。ここでは省略。


UPROPERTY() : どうやら権限に関する設定をする文法らしい。例えば、UPROPERY(EditAnywhere)なら、レベルエディタ、ブループリントエディタでの、閲覧、編集が可能になる。


UStaticMeshComponent型 : UStaticMeshのインスタンスを作るために使われる。UStaticMeshについてはよくわかってないが、移動等の編集を可能にするためのものと解釈した。


CreateDefaultSubobject : コンポーネントの生成に使われる。(コンポーネントとは部品みたいなものAI component,Audio componentとかがある)例えば、上のUStaticMeshComponent型で"MyMesh"という名前で生成したければ、CreateDefaultSubobject("MyMesh")とする。もちろん左辺値=の形にする。アドレスを返す。

近日にインターンの面接があるから対策しなくちゃ。

The Ultimate Unreal C++ Tutorial Series - #1

The Ultimate Unreal C++ Tutorial Series - #1