まるるん備忘録

プログラミングやインフラ等、IT技術に関して気付いた事を書いているブログです。

【まるるん備忘録】プログラムを組む時はコーディング規約にだけ気を付ければ良い?

プログラムを組む時、コーディング規約を守れば良いコードになると思っていましたが、 コーディング規約を守るのは最低条件だと気付きました。
じゃあ他にどういう事を気を付ければ良いのか、という事を3点に絞って書いていきます。

コーディング規約は必ず守る

当たり前ですがコーディング規約を守るのは最低条件です。
1人でもコーディング規約を守れていないとプログラムを最終的に評価・管理する人がとても辛いです。
必ず守りましょう。

何故その処理が必要なのか説明出来るようにしておく

結局の所、人に何をしているプログラムか説明出来ないとプログラムを使ってもらえません。
概要だけでなく、なるべく詳細についても処理を説明できるようにしましょう。

論理的に妥当だと言えるコードを書く

何故そのコードなのか?
他にもっと良い書き方があるのではないか?
これが説明出来なければプログラムのブラッシュアップが大変です。
きっちり説明できるようになりましょう。

まとめ

私的にプログラムを組む際に大事な事を3点書きました。
「コーディング規約を守っていればそれで良いんじゃないの?」と思っている方はぜひ参考にして良いプログラムを組んでいって下さい。

【まるるん備忘録】LambdaをGo言語で使ってみる

Lambdaとは

Lambdaとは、特定のイベント発生時に設定しておいたプログラムを自動的に実行してくれるコンピューティングです。
サーバー側の設定を一切する事なく、コードを書くだけでバッチ処理が行えるので、とてもオススメです。

この記事では、Lambdaの関数作成からHello [任意の文字列]を出力する所まで紹介します。
少し手順が多いですが、慣れれば楽なので頑張りましょう。

手順

  1. 関数を作成する
  2. トリガーを設定する
  3. プログラムを作成する
  4. SDKをダウンロードする
  5. プログラムをビルドする
  6. zipファイルにする
  7. zipファイルをアップロードする
  8. テストイベントを設定する

関数を作成する

f:id:Hmarurunn:20181116142544p:plain
一から作成を選択します。 f:id:Hmarurunn:20181116143418p:plain
画像外にあるパラメーターもありますが、1つ1つが重要なパラメーターなので説明していきます。
名前:この関数を管理しやすいよう、各自好きな名前を付けて下さい。
ランタイム:どの言語でプログラムを作成するかを決定します。今回はGo言語を使用したいのでGo 1.xを選択。
ロール:今回は「1つ以上のテンプレートから新しいロールを作成します」を選択。 プログラム的に言うと、この行為は変数の宣言に当たります。
ロール名:ロールの名前です。管理しやすい名前を適宜付けて下さい。
ポリシーテンプレート :ロールに対して、どんな権限を付与するか選択できます。今回は特別な権限が必要にならないので何も選択しないで進めます。

以上の設定ができたら関数の作成を実行します。

2. トリガーの設定をする

プログラムを「いつ」実行するか設定します。
今回は特定時間になるごとにプログラムを実行してみたいので、CloudWatch Eventsを選択します。
f:id:Hmarurunn:20181116145248p:plain その後新規ルールを作成し、ルール名、ルールの説明を記入していきます。
ルールタイプはスケジュール式、rate(1 hour)と記入します(これで1時間に1度実行するという設定になります)
設定を行なったらトリガーを追加し、ここまでの内容を保存します。

3. プログラムを作成する

こちらがとても参考になるので、こちらを元にプログラムを作成して下さい。
https://dev.classmethod.jp/cloud/aws/aws-lambda-supports-go/

4. SDKをダウンロードする

$ go get -u github.com/aws/aws-lambda-go/lambda

5. プログラムをビルドする

$ GOOS=linux GOARCH=amd64 go build -o hello

ファイル名はハンドラと同じにしておかなければならないので、ハンドラ名に応じて-oの後に続くファイル名の設定を変更して下さい。

6. zipファイルにする

$ zip test.zip ./hello

7. zipファイルをアップロードする

関数パッケージからzipファイルをアップロードします。
この時ハンドラ名は作成したハンドラ名と同じにして下さい。

8. テストイベントを設定する

json形式でテストデータを用意します。どのようなデータを用意すれば良いか分からなければ3. プログラムを作成するのURL先にテストデータがあるのでその通りに用意して下さい。

おわり

これでLambdaでプログラムが走ります。
とても楽しいのでぜひLambdaを使いこなしましょう。

【まるるん備忘録】Dockerfileをbuildしてイメージを作成する

Dockerfileのあるディレクトリ内で以下のコマンドを叩く。
$ sudo docker build -t repository/file_name:tag .

$ sudo docker build -t test/centos:centos7 .
これでイメージの作成が完了する。作成したイメージを確認する場合は以下のコマンドを叩く。
$ sudo docker images

【まるるん備忘録】macにvagrantを導入してCentOS7を起動するまでの流れ

開発環境

macvagrantを導入してCentOS7を起動するまでの手順は以下の通りです。
1. virtualboxを公式サイトから用意する
2. vagrantをインストールする
3. CentOS7のboxを用意する
4. 作業用のディレクトリを用意する 5. 作業用のディレクトリ内で仮想マシンの初期化を行う 6. 仮想マシンを起動する

1. virtualboxを用意する

公式サイトからvirtualbox5.2.20をダウンロード。
https://www.virtualbox.org/wiki/Downloads

2. vagrantをインストールする

最新バージョンのvagrant2.2.0をインストール。
$ brew cask install vagrant

3. CentOS7のboxを用意する

こちらから追加したいboxを選び、URLをコピーする。
http://www.vagrantbox.es/
次にboxを追加するコマンドを叩く。この時boxに名前をつけておくと便利。
$ vagrant box add [box名] [boxのURL]

$ vagrant box add centOS7 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box

4. 作業用のディレクトリを用意する

仮想マシンのデータを格納するディレクトリを用意する。
$ mkdir [作業用ディレクトリ名]

5. 作業用のディレクトリ内で仮想マシンの初期化を行う

$ cd [作業用のディレクトリ名]

6. 仮想マシンを起動する

$ vagrant up

最後に

後は$ vagrant sshなり仮想マシン内部に入って作業をするだけです。

【まるるん備忘録】エディターの拡張方法

エディターの拡張と言っても、最初は何から行えば良いか分からなかったのでメモ。

開発環境

  • macOS High Sierra バージョン 10.13.4
  • Unity 2018.1.0f2

まずはメニューバーにエディターのGUIを表示してみる

と言う事で早速本題に入ります。
まずはAssetsディレクトリの中にEditorディレクトリを作成して下さい。
その後Editorディレクトリ内にEditorManager.csというC#スクリプトを作成して下さい。

作成したEditorManager.csの中身を以下のように書き換えます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class EditorManager : EditorWindow {
    [MenuItem ("Window/自作エディター")]
    private static void ShowWindow() {
        EditorWindow.GetWindow(typeof(EditorManager));
    }

    private void OnGUI(){

    }
}

すると以下のように自作エディターが表示されることが分かります。
f:id:Hmarurunn:20180924230417p:plain ただしこのままでは「自作エディター」をクリックしても何もないボードが表示されるだけなので、このボードの上にテキストやらボタンを作るためにOnGUIメソッドに処理を書く必要があります。

ソースコードの解説

using UnityEditor;

エディターを拡張させるために必須なのでusingしておかないといけないライブラリ。

EditorWindow

UnityEditorをusingすることで継承できるようになる。
継承しなければエディターを拡張させる事が出来ないので必ずEditorWindowを継承させて下さい。

[MenuItem ("Window/自作エディター")]

メニューバーのWindow内に「自作エディター」という名前で自作したエディター機能が表示されるようになる。

最後に

エディターの拡張方法についてまとめた目次的な記事があるので、良ければそちらも参照して下さい。

hmarurunn.hatenablog.com

【まるるん備忘録】Unityのエディター拡張方法まとめ

Unityで時間のかかる単純作業を繰り返している時「もっと作業効率を上げたいなぁ」と思った事からエディター機能を拡張し始めました。

この記事にはエディター拡張に使う各種メソッドや、機能の実装方法をまとめ次第URLを貼っていくので興味のある方はどんどん調べていって下さい。

開発環境

  • MacOS High Sierra バージョン10.13.4
  • Unity 2018.1.0f2

目次

【まるるん備忘録】Laravelのディレクトリ構造について

Laravelについて勉強し始めた時、どこから手を付け始めれば良いか分からなかったのでメモ。
以下の3点が理解出来れば、最低限のコンテンツは作成出来る。

resouces/views/ディレクトリについて

作成したビューを置いておくディレクトリ。
ビューとは簡単に言うとユーザーが閲覧するWebページの事である。

routes/web.phpについて

各ビューへのルーティングを行うファイル。
ルーティングとは、ビューからビューへの遷移を行う事。
例えば「課金ページの課金ボタンを押したら課金金額表示ページへ遷移する」という処理がある場合、
課金ページから課金金額表示ページにページを切り替える処理の事をルーティングという。

public/ディレクトリについて

JavaScriptファイルやCSSファイルを置いておくディレクトリ。
基本的にpublicディレクトリ内は誰でも閲覧が可能なので、顧客情報などの重要なデータをpublicディレクトリ内に設置するのは厳禁。
publicディレクトリの使い方はとてもシンプルで、各ビューからJavaScriptCSSを呼び出すという具合である。