ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

SourceTreeで別アカウントのリポジトリにPushする方法

タイトルにあるように、SourceTreeで普段使っているのとは別のアカウントのGitにpushする方法についてです。
なお、SourceTreeのMac版での話となります。

  1. 右上の「設定」を押下し、「リモート」タブを選択する。
  2. 「追加」を押下し、「リモートの名前」「URL/パス」を入力する。「URL/パス」には「https://ユーザ名@github.com/・・・」となるようにする。ユーザ名をURLに入れると、下の「ユーザ名」欄に自動的に表示される。
  3. 「高度な設定」タブを選択する。
  4. 「グローバルユーザー設定を使う」のチェックボックスを外し、「名前」「メールアドレス」を入れる。「メールアドレス」を入れないと、使用しているマシンのユーザ名がコミット時に使用されてしまうようです。

以上です。

Visual Studio CodeでGo言語(golang)のユニットテストをデバッグする

タイトルにあるように、Visual Studio CodeGolangユニットテストを実行してデバッグする方法についてです。
とは言っても、ほとんどデバッグ時の設定手順と同じですが・・・。

デバッグ時の設定手順

  1. メニューバーの「Debug」より「Open Configurations」か「Add Configurations」を選ぶ。
  2. launch.jsonが開く。
  3. 「mode」の値を「test」に変更して保存する。
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "mode": "test",
  1. F5を押し、デバッグを実行する。

以上です。

Visual Studio CodeでGo言語(golang)のユニットテストを実行する

例によって忘れないための備忘録です。
Visual Studio CodeGo with Visual Studio Codeが入っていることが前提です。

手順

  1. ユニットテストのファイル(〜_test.go)を作成する。
  2. commnad + shift + p などでコマンドパレットを起動する。
  3. 「Go: Test File」を選択する。

これでユニットテストが実行されると思います。

Visual Studio CodeでGo言語(golang)のデバッグをするときの設定

タイトルの件について、いつも忘れるからメモ。
Visual Studio Codeのバージョンによって違うかも。

デバッグ時の設定手順

  1. メニューバーの「Debug」より「Open Configurations」か「Add Configurations」を選ぶ。
  2. launch.jsonが開く。
  3. その中に設定を記述する。例えばデバッグ時に起動引数を渡したい場合は「args」の項目に渡したい値を設定する。
  4. デバッグを実行する。

A Tour of Goをやってみた(1)

前から気になっていたA Tour of Goをやり始めました。
初日は「welcome」から「Flow control statements: for, if, else, switch and defer」をやってたのだが、その感想を月並みだが箇条書きで書いてみます。

  • 電車の中でiPadでやっていたので、ブラウザ上でコードを記述して実行できること。
  • 今の所、構文が分かりやすい。ループがforのみである事などに、構文を限定しようとする思想を感じる。
  • かなり分かりやすい英文で書かれているように思える。(有名な技術系のドキュメントは大抵そうだけど・・・)

昨今(いや、昔からか・・・?)、プログラマになるには英文が〜・・・、と言われるけど

  • 英文の分かりやすさ
  • 開発環境構築しなくても試せる
  • 構文がry

などの理由から、未経験者にプログラムとはこんなものだよー、と体験してもらうのに
ちょっとイイかもなどと思いました。

nodejs(Lambda用)の自分流の開発環境構築〜実行まで

私がAWS Lambdaで実行するnode.jsを開発する際の、実行環境・開発ツールのセットアップ〜実行までの手順のメモ。

改善点があればアップデートしていくつもり。

前提条件、開発環境方針

  • mac上で構築する。諸々のインストールにはnpmを使用。
  • node.jsはv6.10.0を使用。
  • Lintによるチェック、スクリプト実行はコマンドで行う。

プロジェクト作成

参考サイト

作成したサンプルソース

  • main.js(メイン処理)
exports.handler = (event, context, callback) => {
  // TODO implement
  console.log("main called!");
  callback(null, "Hello from Lambda");
};
    • driver.js(main.jsをローカル実行時に呼ぶドライバー)
var event = {
  "Records": [
    {
      "awsRegion": "ap-northeast-1",
      "sequenceNumber": "xxxxxx",
      "partitionKey": "xxxxxx",
      "eventSource": "aws:s3",
      "data": "xxxxxx"
    }
  ]
};

var context = {
  invokeid: "invokeid",
  done: function(err, message){
    console.log(message);
    return;
  }
};

var lambda = require("./main");
lambda.handler(event, context, function(error, result){
  console.log("main callbacked!");
  console.log(error);
  console.log(result);
});

実行環境構築手順

ESLint構築手順

  • $ npm install eslint
    • プロジェクトのローカルにESLintをインストール。
  • $ ./node_modules/.bin/eslint -v
  • $ ./node_modules/.bin/eslint —init
    • 案内に従いESLintの設定を作る。
? How would you like to configure ESLint? Answer questions about your style
? Are you using ECMAScript 6 features? Yes
? Are you using ES6 modules? No
? Where will your code run? Node
? Do you use JSX? No
? What style of indentation do you use? Spaces
? What quotes do you use for strings? Double
? What line endings do you use? Unix
? Do you require semicolons? Yes
? What format do you want your config file to be in? YAML
  • esllintにconsole.logを許可。
    • .eslintrc.ymlに以下を追加。
    • 「no-console: 0」

実行手順

  • ESLint
    • $ ./node_modules/.bin/eslint *.js

pythonの自分流の開発環境構築〜実行まで

私がpythonで開発する際の、実行環境・エディタ等の開発ツールのセットアップ〜実行までの手順のメモです。

改善点があればアップデートしていくつもり。
Windowsの手順を追加した。またアップデートするかも。

前提条件、開発環境方針

  • mac上で構築する。諸々のインストールにはbrewを使用。
  • Windowsの場合も追加。
  • pythonは3系を使用。
  • 入力補完はエディタで行う。(エディタはVisual Studio Codeを使用)
  • Lintによるチェック、スクリプト実行はコマンドで行う。デバッガーは使用しない。

実行環境構築手順

Windowsの場合はpyenvをインストールしない。

  • (mac)brewにてpyenvの最新版をインストール。(or アップデート)
  • (mac)pyenvにてpython 3.6.1をインストール。
  • virtualenvをインストール。

開発環境(エディタ)構築手順

エディタ設定

フォーマッター

実行手順

以下のコマンドを実行する。

プロジェクト作成

mac
  • $ pyenv local 3.6.1
  • $ pyenv virtualenv 3.6.1 プロジェクト名
  • $ pyenv local プロジェクト名
Windows
  • $ virtualenv ./venv
  • .\venv\Scripts\activate # 仮想環境を有効化
  • deactivate # 仮想環境を抜ける

Lintのインストール・実行

  • $ pip install pylint
  • $ pylint main.py # ファイルを指定して実行
  • $ pylint environment # environmentにはパッケージ名 or モジュール名を入れる

スクリプト実行

Lintとスクリプトを同時に実行

Lintが通ったらスクリプトを実行するようにコマンドを繋げる。

Windows
  • $ pylint environment && python main.py

作成したサンプルソース(main.py)

"""
main module
"""


class Sample:
    """Sample Class"""

    def __init__(self, message):
        """__init__"""
        self.message = message

    def print_message(self):
        """print_message"""
        print(self.message)

    def print_message2(self):
        """print_message"""
        print(self.message)


def main():
    """main"""

    int_a = 100
    int_b = 200

    print("main!")
    print(int_a)
    print(int_b)

    message = "This is a Test."
    sample = Sample(message)
    sample.print_message()


if __name__ == '__main__':
    main()

(おまけ)pylintでクラス・メソッドの説明コメントが無くてもOKとしたい

pylintの設定は実行ディレクトリの「.pylintrc」ファイルに記述する。

  • 以下のコマンドで.pylintrcを作る。
    • $ pylint --generate-rcfile > .pylintrc
  • .pylintrcの「disable=」に「missing-docstring」を追加し、docstringのエラーを出さないようにする。