Git のGUIツールといえばGitKrakenで決まり!

永らく、Gitの管理ツールとして、Source Treeを使っていました。
4~5年使い続けてきて、これまでは乗り換えるほどの不満を持つことなく使ってきました。

しかし、今では、GitKrakenしか使っていません。
GitKraken はこんな感じの見た目のツールです。

image

こいつ見た目だけで選んだな?と思われたかはお待ちを!
見た目だけでなく、いくつかのお気に入りポイントがあって、これを使っています。

一つ目は快適
さくさく動きます。
カーソルをドーンと上下に動かしても、もっさりすることはないです。
開くまでも、まま早い。

二つ目はマージ衝突の解消がわかりやすくて、やりやすい
マージって、ストレスかかるじゃないですか。
やってて、なかなかぴんとこなくて、、、マージコンフリクトでマージし間違ったらイライラ。

GitKrakenで、コンフリクトした時の解消画面がこちら!

image

画面上部の左右に、コンフリクトしたコードが並んでいて、下部のウィンドウがマージ結果を表しています。
この状態で、上部のハイライトされている部分のチェックボックスにチェックを入れるとしたのウィンドウに反映されます。左右のチェックボックスにチェックを入れたり消したりすると、結果ウィンドウにそれらが反映されます。

めっちゃ視覚的いい。
これならマージの衝突解消頑張れる気がする。

三番目は操作が視覚的なところ。

マージやめたいなぁと思ったら、やめるためのボタンがあります。

image

マージしたいなーと思ったら、したいほうから、するほうにD&DすればOK。

D&Dすると、以下のようなメニューが表示されます。

image

あら素敵。

とまぁこんな感じで細かい些細な操作が一度使えば覚えられるわかりやすさがあるのです。
友達に教えてもらってGitKrakenを使い始めてから、SourceTreeをインストールしなくなりました。

SSMS Tools Pack :「*」の展開

SSMS Tools Packが便利すぎたので部門で導入した。

便利な機能2つめ。
下の画像を見るとすごくないですか?「*」がぱっぱと展開されちゃうのです。

1

解説

こんなクエリを書くことありますよね。「*」でひょいひょいとやってしまうのですが、列を入れるのが

select *
from wait_stats

「*」でひょいひょいとやってしまうのですが、列を入れるのが面倒ですよね。

SSMS Tools Pack をインストールしていると、「*」の直後にカーソルを置いて、Tabキーをおすとぱっと、こんな感じで展開されます。

select measure_date_local, measure_date_utc, server_name, wait_type, waiting_tasks_count, wait_time_ms, max_wait_time_ms, signal_wait_time_ms
from wait_stats


SSMS Tools Pack :接続カラー(Connection Color)

SSMS Tools Packが便利すぎたので部門で導入した。これが最大の導入理由。
本番環境で、ジオレプリケーションを組んでることもあってDBが6つほどある。
STG環境で、6個。
この環境で運用してると、いずれうっかり間違って別の環境でクエリを実行してしまったという事故が発生しそう。
標準機能だとステータスバーしか色が変わらない。

でもSSMS Tools PackをいれるとテキストWindowとオブジェクトエクスプローラーに着色される。

image

こんな感じで色が付くので便利。
クエリエディターとオブジェクトエクスプローラーの色があっているので便利ですね。
この色、接続すると自動的に色が選ばれて区別されるのだけど、設定することでこのDBの時は赤色、この時は緑色と指定できる。

本番はやっぱり赤ですよね。

image

こんな風に、バーの上で右クリックすると、そこから色を変更できたり、バーを表示する位置を上から左側にしたりと移動させることができる。

image

JavaScriptのCPU問題箇所特定ツール:sjsp

はてなの中の人が、Mackerelのフロントエンドの性能チューニングのために作成したsjspが、サーバレスアーキテクチャによる時系列データベースの構築と監視 / Serverlessconf Tokyo 2017dで紹介されていました。

sjspにトランスパイルするだけでCPU boundな処理がわかるそうな。

sjspについては、「シンプルでかつ最高のJavaScriptプロファイラ sjsp を作りました! ― Webアプリケーションが複雑化する中でプロファイラに求められるものとは何か」で説明されています。

こんな感じの結果が出るなんて素晴らしい!

========== SORT BY TIME ==========
time: 30.20sec   count:  71      test6  test.js  (line: 31, col: 18)  function test6() {
time: 16.47sec   count:  41      test7  test.js  (line: 37, col: 18)  function test7() {
time: 15.49sec   count: 133      test4  test.js  (line: 19, col: 18)  function test4() {
time:  5.98sec   count: 216      test1  test.js  (line:  1, col: 18)  function test1() {
time:  4.37sec   count:  18      test5  test.js  (line: 25, col: 18)  function test5() {
time:  3.24sec   count: 512      test3  test.js  (line: 13, col: 18)  function test3() {
time:  0.87sec   count:  67  anonymous  test.js  (line: 49, col: 24)  setInterval(function() {
time:  0.80sec   count:   2      test2  test.js  (line:  7, col: 18)  function test2() {
time:  0.44sec   count:   2  anonymous  test.js  (line: 43, col: 23)  setTimeout(function() {
========== SORT BY COUNT ==========
time:  3.24sec   count: 512      test3  test.js  (line: 13, col: 18)  function test3() {
time:  5.98sec   count: 216      test1  test.js  (line:  1, col: 18)  function test1() {
time: 15.49sec   count: 133      test4  test.js  (line: 19, col: 18)  function test4() {
time: 30.20sec   count:  71      test6  test.js  (line: 31, col: 18)  function test6() {

APIの開発サイクルを早めるサービス:apiary

APIを使用した開発をする場合、APIのインターフェイスを定義する。

  1. その定義にそってAPI開発チームが開発。
  2. フロントアプリの開発チームも定義に沿ってアプリを開発。

と言うことで、2ライン走ることになる。
APIが完了するまでは、疑似コードを書くとか、JSONを定数で持たせるとか、そんな感じで開発をすることが多いのだけど、apiaryを使用すると少し楽にしてくれる。

続きを読む “APIの開発サイクルを早めるサービス:apiary” >