Blog

フォーマッタ/Laravel/スコープについての研修

  • システム開発
  • Webサイト
  • Laravel
  • PHP

フォーマッタ/Laravel/スコープについての研修

さて、前回の研修内容の続きです。

やはり覚えることが多いというか、専門用語を知識として入れていくのに
精一杯な私ですが、自分なりにまとめています。

もう4度目ですが、ご容赦ください(笑)

フォーマッタ

ソースコードを 自動で整形してくれる機能 をもつもの。
インデントを揃える、言語によっては文末の;(セミコロン)の挿入などを補完してくれる。

これは非常に便利!!
決まった形に整形してくれるから、プロジェクトのフォーマットに合わせるのも楽になって見やすくなりそう!

Lint

主にC言語のソースコードに対し、コンパイラよりも詳細かつ厳密なチェックを行うプログラムのこと。

POINT

通常のフォーマッターに比べて、高度な機能がある。
プログラム上のおかしい部分を訂正したり、
if文を三項演算子に置換してくれるなどの機能がある。

高性能!
その一言に尽きますね!
まぁ、使ったことはまだないので全然実感が湧きませんが(笑)

そういえば少し聞き覚えがありますが、『三項演算子』が出てきたのでまとめてみます。

三項演算子

if文をifを用いずにまとめて書くことができる。

sample01

let hoge = ""
if (true) {
    hoge = "a"
} else {
   hoge = "b"
}

上記のコード(sample01)と下記のコード(sample02)は同一の結果となる。

sample02

const hoge = true ? "a" : "b"

行数が明らかに減りますね!
これは覚えておかなくては!!

条件が複雑になったり、内部の構造が複雑になるとif文で書いた方が読みやすくなります。
そういう場合は、行数や書きやすさよりも読みやすさを優先しましょう。

Laravel

PHPで使われているサーバーサイドの フレームワーク です。
手順に則り作成することで、比較的セキュリティホールを作りにくくすることができます。

今までフレームワークを使わずに1から構築したことしかないから、
きちんと扱えるか心配・・・。

POINT

でも、とても便利になるし、何よりセキュリティについてカバーしてくれるのはとてもありがたい。

セキュリティ

SQLインジェクション
 アプリケーションのセキュリティ上の不備を意図的に利用し、
 アプリケーションが想定しないSQL文を実行させることにより、データベースシステムを不正に操作する攻撃方法のこと。

XSS(クロスサイトスクリプティング)
 Webアプリケーションの脆弱性もしくはそれを利用した攻撃のこと。

などがある。

そして、LaravelはComposerからインストールするので、Composerの設定ファイルがあります。

composer.json

一括でインストールしたいパッケージ一覧を設定する。
おおまかなバージョンの指定などは、このファイルで行う。

composer.lock

一括でインストールが行われた後、
どこからどのバージョンをインストールしてきたかを記載されている。

何かどこかで見た並び(笑)

以下は、研修で出てきて分からない用語が出てきたので、調べてみたものです。

モノリシック

『一枚板』 という意味で、ソフトウェア的には、全体が1つのモジュールでできていて、分割されていないこと。

ユニットテスト

単体テストともいい、ソースコードの個々のユニット
すなわち、1つ以上のコンピュータプログラムモジュールが使用に適しているかどうかを決定するために、
関連する制御データ、使用手順、操作手順とともにテストする手法のこと。

テストの自動化コードを作成しておくことは非常に重要。


スコープ

宣言した変数・定数などの有効範囲のこと。

POINT

上記の例であれば、正常に値が返ってくるのはfooだけ。

ブロックスコープ

{ }(中括弧)に囲まれた中で宣言された変数・定数などは、
{ }の中がスコープとなる。

scope_how_to_01.png
ファンクションスコープ

functionの中で宣言された変数・定数などは、
functionの中がスコープとなる。

scope_how_to_02.png
グローバルスコープ

グローバルで宣言された変数・定数などは、
ファイル内すべてがスコープとなる。

scope_how_to_03.png

POINT

可能な限り、スコープを絞ることで
想定外の変数・定数などの生き死にを発生させないようにする。

以上です。

まとめることはとても大事です。
特に、『他人に伝えようとまとめている』ということがとても効率がいいですね。

まだまだ知らないこと、学ぶことがたくさんあります。
今後も少しずつではありますが、まとめて投稿していこうと思いますので、
どうぞよろしくお願いします。

最後まで読んでいただき、ありがとうございました。

MeisterGuild(マイスター・ギルド)広報

最先端技術のMEISTERを目指し、お互い切磋琢磨するGUILD、になりたい株式会社マイスター・ギルドです。Webシステム/サービス開発、スマホアプリ開発、AR/VR/MR開発など、さまざまな情報を発信します。

Related Entry