VSCodeでGoの環境を構築
Goの勉強するためにVSCodeを選択したのだが手順が?だったのでメモ ※根本的に間違えている可能性あり。
Go Extension
ファイル保存時にで自動でgo fmt
がかかったりする模様
あとコード補完とか
GoのExtensionをVSCodeからインストール
settings.jsonにgopathを設定
"go.gopath": "/Users/howdy/VscodeProjects/studygo"
エラーが出まくるのでインストール
go get -u github.com/golang/lint/golint go get -u github.com/nsf/gocode go get -u github.com/rogpeppe/godef go get -u sourcegraph.com/sqs/goreturns go get -u github.com/newhook/go-symbols
Shellのインストール
コンソールからcode
で起動できるようになる
ShellのExtensionをVSCodeからインストール
AngularJS Uncaught TypeError: module is not a function
karmaでpreprocessorsにwebpackを指定してテストやっている時にでたエラー
beforeEach(module('myApp')); // エラー beforeEach(angular.mock.module('myApp'));
参考サイト
AngularJS angular-mocks
karmaでangularが動かねぇなぁとおもってたらangular-mocksじゃなくてangular-mockになってた・・・
https://www.npmjs.com/package/angular-mock
11 downloads in the last day
142 downloads in the last week
365 downloads in the last month
なおnpmのダウンロードがそれなりにあるのでそれなりに同じ事象に陥った人はいるだろうな・・・
これ消してくれないのかなぁ
JavaScriptでArrayオブジェクトの文字列結合の速度検証
よく見るコードだとjoin使っているのが多いですがパフォーマンス的にはどうなんだ?というのを試してみる。
ggっても出てくると思うけど勉強がてらということで。
前提条件
検証パターンは以下の5つでそれぞれ100万回
- for文使って+演算子
- Array.forEachで+演算子
- Array.reduceで+演算子
- String.concat
- Array.join
順番は実装が嫌?な順
サンプルコード
結果
type | 速度 |
---|---|
for | 157.259ms |
Array.forEach | 215.781ms |
Array.reduce | 163.422ms |
String.concat | 265.373ms |
Array.join | 713.505ms |
やっぱりforが速いですね、ただこんな実装絶対したくない。
このレベルでfunctionとか作りたくないですしね。
ワンライナーで書きたいので、基本はArray.joinでちょっと処理が重なるときはString.concatぐらいがいいのかなぁ。
余談
jsfiddleと比べてChromeのデベロッパーコンソール上で実行すると異様にconcatが遅くなるのはなんででしょうかね。
Tslint classのメンバ変数はpublicを先にかく
tslintでこんなエラーが
Declaration of public static member variable not allowed to appear after declaration of private instance member variable
これはダメで
class AppCtrl { private users; public static $inject = ["$q"]; constructor(private $q) { console.log("AppCtrl"); } }
こうしろってことですな。
class AppCtrl { public static $inject = ["$q"]; private users; constructor(private $q) { console.log("AppCtrl"); } }
VSCodeでtslint
VSCode
tslintの拡張機能をインストール
tslint | Visual Studio Marketplace
設定ファイルはDefault Settingsに作られている。
ファイルが空文字になっているけどデフォルトはtslint.json使う模様。
tslint.json
プロジェクト直下にtslint.jsonを作る
内容は以下のページ参照
https://github.com/palantir/tslint/blob/master/tslint.json
結果
いろいろ怒られるようになりました。。 文字列ダブルクォートが標準なんですね。。知らんかった。
Webpack + TypeScriptのTS2304: Cannot find name 'require'エラーの解決法
Webpackでモジュール読み込むときにrequire
使いますがjsからなら問題はないですがTypeScriptからだとコンパイルエラーになります。
指定方法がTypeScript上おかしいのでimport文でもだめだと思われます。
require('jade!./app.jade')(); // ERROR in ./src/ts/components/app/app.ts // (14,25): error TS2304: Cannot find name 'require'.
その場合、declare文を記載してrequireという関数があると認識させればOKです。 requireのあるファイル全てに書くのはあれなので共通のd.ts作ってそこをreference pathで指定です。
declare function require(string): any;