ブラックボックスを撲滅したい

2017年1月よりフリーランスに転向したシステムエンジニアのブログ。プログラミングスクールではRubyの勉強をしていたが、現在はJavaによる開発がメイン。当ブログは筆者の学習メモを投稿していく予定。

2018/01/14 【Scala】学習メモ

Scalaの環境構築

OS: macOS

Scalaのインストール

ターミナルにて

brew install scala

 を実行

 

scala -versionを実行し、インストールできた確認

 

2sbtのインストール

sbtとは

scalaのビルドツール。

ーバージョン管理などもするらしい。

brew install sbt

 

REPL(リプル)

ーRead-eval-print-loop

scalaの実行環境

 

REPLから抜け出す方法

exitで抜け出せると思ったからできなかったため、やり方を調べる

 

:q

で抜けられるらしい。

f:id:yuki-kato:20180114153150p:plain

 

PlayFrameworkのインストール

brew install typesafe-activator

ーactivator new [プロジェクト名]

ーactivator run

 ー作成したプロジェクト配下に移動し実行

 ー初回は時間がかかる模様

 

2018/01/13 【IT総合】学習メモ

GPL

GNU General Public License

 ーグニュージーピーエル

ーソフトウェアの自由な実行、改変、再配布等を認める利用許諾(ライセンス)

 ー上記を認めるが、損害の保証はしない。

ーバイナリ形式のみでの配布は認めず、ソースコードを明示する必要がある

2018/01/13 【Java】学習メモ

JVM(Java Virtual Machine)

Javaの仮想環境

 ー

ーOSに依存せずにJavaプログラムを実行することを可能にする機能。

 ーOSごとに違うJVMを持つが、仮にWindowsコンパイルして作成したクラスファイル(バイトコード)でも、Linuxで実行することが可能。

  ーJavaはOSに依存せず実行可能な言語。

 ーOSごとのネイティブコードに変換する。

Permanent領域

ー非ヒープ領域

 ーヒープとはシステムが利用するメモリ領域

ークラスやメソッドなどの情報が格納される領域

New領域

ーヒープ領域

ーEden領域

 ーオブジェクトがインスタンス化された時に利用する領域

ーFrom領域、To領域

 ーEden領域のメモリが満たされた際、オブジェクトの退避に利用する領域

Old領域

ーヒープ領域

ーNew領域に格納されているオブジェクトで使用期間が長いものが格納される領域

ーOld領域がいっぱいになるとFull GCが起こる

 

ガーベジコレクション

ープログラムが確保したメモリ領域のうち、不要になった箇所を解放する機能

ガーベジコレクションにシステムの動作が停止することがある

 ーFull GC

 

メモリリーク

ー使用可能なメモリが不足し、プログラムが動作しなくなる状態

 

Scavenge GC

ーNew領域のみに対し働くガーベジコレクション

 

Full GC

ーOld領域を含む全領域で働くガーベジコレクション

ー処理に時間がかかる

ーOld領域が多く使用されるほど、Full GCが起こる可能性が上がる。

 ーオブジェクトの使い回しを増やさないようにすると回避できる?

 ー新しいオブジェクトを大量に使う場合は、New領域を大きくする?

  ーOld領域の使用を減らす狙い

2018/01/08 【Spring Boot】学習メモ5

CRUD(クラッド)
ーデータベースの基本的な操作
ーCreate(保存)
ーRead(読み込み)
ーUpdate(更新)
ーDelete(削除)
 
ープログラムに関するいろいろな情報(メタデータ)を、プログラムの本体に付与する機能。
ー注釈、注記
 
@ModelAttribute()
ーエンティティクラスのインスタンスを自動的に用意する。
ー引数にインスタンス名を指定
 
@PostConstruct
ーコンストラクタによりインスタンスが生成された後に呼び出されるメソッドを指す
 
saveAndFlush()
ー引数のエンティティを保存
 
repository.delete(id);
ー引数のIDのエンティティを削除する。
 
リポジトリ(repository)
ソースコードや設計、データ仕様といった情報が保管されるデータベース
ー容器、貯蔵庫、倉庫
 
 
ーデータベースを利用する一連の処理を一括して実行するための仕組み
 
ACID特性
ー原子性(Atomicity)
 ー一連の処理が全体として実行されるか・されないか、どちらかであることを保証
ー一貫性(Consistency)
 ー処理結果の整合性を保つこと
ー独立性(Isolation)
 ー一連の処理が他の処理に影響を与えないこと
ー永続性(Durability)
 ー処理終了後、永続的にデータベースに記録されること
 
ー特定の処理を持った枠組み
ー開発速度の向上
ーコードの書き方の統一
ーバグを未然に防ぐ