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

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

【Ruby】モジュールとは?

モジュールとは?

特定の機能を定義した部品(機能)のこと

以下のように定義する

module モジュール名

end

モジュールの特徴は?

インスタンスを生成できないこと。
・ ほかのモジュールやクラスを継承できない。

クラスでも同じようなことができるのに、モジュールはどのようなときに使うのか?

・「ホンダ車は車である」のような関係(is-a関係)が成り立たないけど、共通の機能を追加したいとき 。
無理にクラスの継承を使うと、オブジェクト指向による設計が崩れて、コードが分かりにくいものになるから。
例えば、ログ出力するなどの色々な場面で使いたい機能などで使う。

・一つの機能として完結しているとき。
継承やミックスインして機能を拡張することがないときに使う。上記で述べたとおり、モジュールはクラスと違い継承ができないから

モジュールとクラスの違いは?

・モジュールは1つのクラスに複数のモジュールをミックスインできるが、クラスは1つのクラスに複数を継承できない。
・クラスはインスタンス化できるが、モジュールはできない。

【Java】マルチプロセス、マルチスレッドとは?

マルチプロセスとは、平行処理の一種で アプリケーションを複数実行すること。

マルチスレッドとは、平行処理の一種で 1つのアプリで複数の処理を交互に切り替えて実行すること。

 

以下、詳細説明です。

【理解する上で必要な前提知識3つ】

・平行処理

・プロセス

・スレッド

 

そもそも平行処理とは何かというと、 複数の処理を同時に実行すること。

平行処理によってソフトウェアの処理性能が向上します。

平行処理の実現方法2つはあって、それがマルチプロセスとマルチスレッドのこと。

 

 

プロセスとは、アプリケーションを起動させるとき、OSから割り振られるメモリ空間のこと。

例えるなら、ファンタジー・ゲームのMPのようなもの。

コンピュータが、限られたMP(メモリ空間)を割り振って、魔法(アプリ)を起動させるイメージです。

 

スレッドとは、プロセス内で実行される一連の処理の流れのこと。

スレッド(thread)とは、糸のことです。

マルチスレッドでは、プロセス内を複数に分割することで平行処理を実現します。

マルチスレッドは例えるなら、一本の糸(スレッド)が絡み合って、より大きな糸(アプリ)が出来上がるイメージです。

 

【マルチプロセスとマルチスレッドの違いは?】

マルチプロセスの問題点は、マルチスレッドに比べて起動に時間がかかること。

プロセス起動時にOSからメモリ空間を割り当てる必要があるからです。

逆に、プログラム異常時に他の処理に影響が出にくいというメリットはあります。

 

マルチスレッドは、すでにOSから割り振られたメモリ空間を分割して使います。

そのため、マルチプロセスに比べてパフォーマスに優れています。

しかし、複数処理を並列して走らせるため、プログラム異常時に他の処理に影響が出やすいです。

 

Javaはどのように平行処理を実現しているか?】

Javaはシングルプロセス、マルチスレッドです。

どのスレッドを実行するかはJVMが判断しています。

そのため、プログラムからは、部分的にしか平行処理を制御できません。

 

まとめ

・マルチプロセスとは、平行処理の一種で、アプリケーションを複数実行すること。

・マルチスレッドとは、平行処理の一種で、1つのアプリで複数の処理を交互に切り替えて実行すること。

Javaはシングルプロセス、マルチスレッド

【iPhoneアプリ】Xcodeとは?

Xcodeとは、 Apple公式の統合開発環境(IDE)で、iPhone/iPadアプリ開発を行えるツールのこと。

Xcodeで作れるものは、

MacOSアプリ

iPhone/iPadアプリ

 

などがあります。

 

XcodeApple Developerサイトのダウンロードページから無料でダウンロードできます。

 

ちなみに、統合開発環境とは、 英語ではIDE(Integrated Development Environment)といい、システム開発をより簡単にする機能がまとまったツールのことです。

 

まとめ

 

【Unity】木、草・岩の3Dモデルのインポート方法

まず、

Assets > Import Package > Envieronmentをクリック。

Import Unity Packageウィンドウが開く。

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

Import Unity Packageウィンドウでインポートしたい素材にチェックを入れる。

木の3Dモデルは、

Standard Assets > Environment > Speed Tree > Broadleafチェック。

草・岩の3Dモデルは、

Standard Assets > Environment > TerrainAsseets > SurfaceTexturesにチェック。

チェック入れたら「Import」ボタンを押下する。

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

 

終わり。

【Unity】Mesh Rendererとは?

Mesh Rendererとは、Inspectorにある、画面上にオブジェクトを描画するコンポーネントのこと。

Mesh Rendererにチェックが付いているとオブジェクトがSceneに表示される。下の画像では白い壁が描画されている。

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

 

チェックを外すとそのオブジェクトがSceneから見えなくなる。見えなくなるだけで存在はしているので、当たり判定はしたいけれど見えない状態にしたい時にチェックを外す。

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