emahiro/b.log

Drastically Repeat Yourself !!!!

2019-01-01から1年間の記事一覧

CircleCIの高速化ログ

Overview circleci でのビルド時間の高速化をやったので、その備忘録です。 方針 circleci の高速化 = ビルド時間の短縮になるんですが、そんなことしたことなかったのでまず何をするかを考えました。 circleci の中でやってることは基本的には、手動で叩い…

ビルドタグで appengine.Main() の向き先が変わる話

Overview AppEngine の Go1.11 対応において gin の version を最新の 1.3 系にあげたときに以下の問題にはまったのでその調査メモです。 gin の version を現時点(201904)での最新の 1.3 にあげ、appengine.Main() を使うコードに変更すると、AppEngine / G…

intellij で go module の設定を行う

intellij で go module を設定して開発を行う設定を行います。 手順 Preference > Languages & Frameworks > Go > Go Modules(vgo) を選択。 Enable Go Modules(vgo) integration を ON にする。 Vgo Executable は 使っている go の version(SDK) を指定す…

app.yamlでmainを指定して静的ファイルをサーブする

GAE

Overview Google App Engine 2ndGenにてapp.yamlの設定でmain property を指定して、mainで指定した path をプロジェクトの root として静的ファイル( static や template 配下のファイル)が正常に読み込めるかどうか調べました。 以前も静的ファイルのサー…

自前でUnmarshalを実装したときの panic を回避する

go

カスタム Struct に自前で Unmarshal を実装して json -> object に decode するときに無限ループを引き起こして panic しないようにするTipsです。 サンプルケースですが、以下のコードは json を decodeす るときに panic を引き起こします。 type Person …

テストの中で使うダミーデータを作成する

前提 Google Cloud Datastore Google App Engine Standard Edition 1st Generation appengine package を使うこと を使ったケースにおいてデータベースのアクセスする実装のテストを書くときにダミーデータをセットアップする方法を記載します。 今回は追加…

CookPad TechConf 2019に参加してきた

CookPad TechConf 2019に参加してきたのでさらっとまとめておきます。 概要 https://techconf.cookpad.com/2019 スライドは後日上記公式サイトで公開されるとのことなのでここでは省きます。 感想 箇条書きでまとめます。 前半はTechConfというよりProductCo…

App Engineでマルチテナントなアプリを作る

Google App Engine上でマルチテナントなアプリを作る方法について調査したのでブログにまとめてみます。 マルチテナントとは? IT用語辞典には以下のように記載されています。 マルチテナントとは、SaaSやクラウドコンピューティングなどで、機材やソフトウ…

初めて技術発表をした話

社内向けではありましたが、エンジニアキャリアの中で初めて大勢の前で技術発表をするという機会を貰い、本日発表をしてきたので、そこで感じた内容をまとめます。 発表する前の自分 キャリアの中で規模の大小に関わらず発表経験なし。もっぱら聞く専。 自分…

Intellij IDEA をCLIから起動する

Intellij IDEAをコマンドラインから起動する設定について記載します。 手順 メニューバーのTools > Create Command-line Launcher ... を選択 コマンドの作成先を指定する(必要に応じてpathを通す。) コマンド確認 $ which idea /usr/local/bin/idea 使い方…

『静的解析をはじめよう - Gopherをさがせ!』をやった

go

golang.tokyoが公開しているCodeLabをやってみました。 golangtokyo.github.io 普段からあまりコードの静的解析をやっているわけではありませんが、Goで静的解析をする場合にはどうするのか、というのを学ぶにはとてもいい教材でした。 特に「構文解析」の章…

Intellij で goappコマンドを動かす

※ 作業ログです。自分の環境で動作させたので再現性があるかは不明です。 事前準備 使用しているshell(bash, zsh, fish..etc)でgoappコマンドにpathが通ってる状態であること。 Intellij上の設定 $ which goapp # ここでpathが通っていれば問題ない。 pathが…

TypeScript の Optional Property

TypeScriptにはObjectのもつpropertyに Optional Property という機能があります。 propertyに ? をつけることでそのpropertyがない場合もあるよということを表現することができます。 公式のドキュメントには以下のように記載されています。 Not all proper…

VSCodeでUMLを書く

VSCodeでUMLを書くための設定記録です。 Macの設定 $ brew cask install java $ brew install graphviz $ brew install plantuml VSCodeの設定 PlantUMLのプラグインを入れます。 おしまい

『ファクトフルネス』を読んだ

『ファクトフルネス』を読んでとても面白い書籍だったので、学んだことの整理もかねて備忘録として書録を記載します。 ファクトフルネスに世界を捉えること 分断本能 ファクトフルネスに考える ネガティブ本能 ファクトフルネスに考える 直線本能 ファクトフ…

Intellijでlspを使う

lsp(Language Server Protocol) とは? The Language Server protocol is used between a tool (the client) and a language smartness provider (the server) to integrate features like auto complete, go to definition, find all references and alike …

NuxtでTodoアプリを作成する

はじめに 気になっていたNuxtを触ってみました。 軽く触れて、ドキュメントを読んだだけでしたが今回は簡単なtodoアプリの作成をしてみます。 Nuxtは日本語のドキュメントがとても充実していて インストール - Nuxt.js を見ればほぼ誰でもNuxtを簡単に始める…

VuexにおけるGettersのメソッドスタイルアクセス

gettersでstateから任意の値を取り出すときにVuexではGettersのプロパティの返り値にfunctionを指定することで、Gettersのプロパティに関数の引数という形で直接値を渡す(アクセスできる)手法があります。これを メソッドスタイルアクセス と言います。 メソ…

fishで &&、||、! がようやく使えるようになった

やっとか!という思いが強くてエントリを書いてしまいました。 表題の通りですが fishが2018年末に3.0.0にメジャーバージョンアップされていました。 github.com その中で特に嬉しかったのがこれ fish now supports && (like and), || (like or), and ! (lik…

2019年 ~抱負~

エンジニアとして あれこれ目標立てても達成できなくて振り返りで凹むので最低限これは続けたいことをピックアップしました。 現在使ってる技術のベースの知識を深化 今の自分のベースとなる技術スタックが Go/GAE Vue/JavaScript/TypeScript なので今年一年…