タグ

2018年3月9日のブックマーク (10件)

  • 特定のテストのみを走らせる - Qiita

    のように実行すると、 そのディレクトリにあるテストファイルがすべて読み込まれて実行される。 テストを書きながら実装しているときは、 特定のテストのみを走らせたい。 go test -runあたりでできそうだったが、うまく行かなかったので、 以下のようなスクリプトを書いた。 #!/bin/bash SRC=$(go list -f '{{range .GoFiles}}{{.}} {{end}}') TESTS=$(go list -f '{{range .TestGoFiles}}{{.}} {{end}}') if [ $# -gt 0 ]; then TESTS=$1 fi go test $SRC $TESTS

    特定のテストのみを走らせる - Qiita
    akatakun
    akatakun 2018/03/09
    特定のテストの実行は-runオプション
  • golang で string を []byte にキャストするとメモリコピーが走ります - Qiita

    いまはもっと賢くなってる。最適化バンザイ https://medium.com/a-journey-with-go/go-string-conversion-optimization-767b019b75ef 概要 string を byte スライスにしたり,またその逆だったりをおこなうのに, なんてコードをよく書きます.string は読み込み専用のスライスみたいな物だという認識だったので,キャストしても,ポインタがコピーされるだけで,必要になったらコピーされるだろうぐらいに思ってたんですが,調べてみたらメモリがまるっとコピーされるのでパフォーマンスに影響しそうなときは要注意です. 詳細 string を byte スライスにキャストするプログラムを書いて,アセンブリコードを吐かせてみました.

    golang で string を []byte にキャストするとメモリコピーが走ります - Qiita
    akatakun
    akatakun 2018/03/09
    なるべくstring<=>[]byteの変換を減らして アロケーションやメモリコピーを減らす ,とりあえず[]byte使う
  • Go言語の可変長配列(slice)を使う上での注意 - Qiita

    どのようなプログラミング言語を利用していても、可変長配列はよく使います。 Go 言語においては、 slice という可変長配列が用意されています。 slice を用意するためには make 関数を利用します。 make 関数の第 1 引数([]int)が型、第 2 引数(length)が 長さ 、第 3 引数(capacity)が 容量 を意味しています。 今回は、 長さ と 容量 のそれぞれが、どのような役割なのかを、サンプルコードをつかって確認しました。 準備 slice の長さと容量を求める関数 slice の 長さ は len 関数、 容量 は cap 関数で求めることが出来ます。 サンプルコード1: package main import "fmt" func main() { lenght := 5 capacity := 10 array := make([]int, len

    Go言語の可変長配列(slice)を使う上での注意 - Qiita
    akatakun
    akatakun 2018/03/09
    make(type, len, cap): lenを省略するとすべてが、しないと長さ分がゼロ化される,appendするとゼロ化されている要素は存在するものと見なされる,容量を超えると元の容量分追加され(つまり倍になる)、アドレスも変わる
  • Goの文字列結合のパフォーマンス - Qiita

    Goで文字列結合をする時、通常の+=は遅いから[]byteをappendした方が高速という話があったので、実際にどの程度の差が出るのか検証してみた。 Goでは文字列連結はコストの高い操作 - Qiita テストケース 以下のような9文字*10要素の文字列の配列要素を","で結合し、最後に","を追記するコードを実装した。得たい出力はstringなので、[]byteやbytes.Bufferを使う場合、最後にstringへのキャストを実行した。 var m = [...]string{ "AAAAAAAAA", "AAAAAAAAA", "AAAAAAAAA", "AAAAAAAAA", "AAAAAAAAA", "AAAAAAAAA", "AAAAAAAAA", } func BenchmarkAppendOperator_(b *testing.B) { for i := 0; i <

    Goの文字列結合のパフォーマンス - Qiita
    akatakun
    akatakun 2018/03/09
    ループ内で+演算子使うと毎回アロケーション走るけど、ループ使わずにハードコーディングすれば1回なんだ
  • エンジニアとして成功するための大事なことトップ3 - Qiita

    Youtubeの要約です。 先日すごく感銘を受けた動画を見ましたので、シェアさせてください。 もっと短く要約しようと思ったのですが、ほとんど和訳になってました。ところどころ省略しているところもありますので、全文訳で無いことは注意です。 3 top qualities for a Software Engineer to be successful Techlead Google Youtube Patrick Shyu 【導入部分】 手を早く動かす事はとても大事。何も意味がなくても、キーボードを早く叩いたり、マウスを動かしたり、「早く動く真似事」をするだけでも体が早く動く事に慣れるので、普段からやっておくと良い。 1 【インパクト】 エンジニアにとって重要なのは、単にとても多くのバグを無くすだけでも、リファクタリングするだけでも、フレームワークを作るだけではないです。 重要なのはポジティブ

    エンジニアとして成功するための大事なことトップ3 - Qiita
    akatakun
    akatakun 2018/03/09
    バグの改修やリファクタリングを行ったのであれば、その効果が明示出来なければ会社からあなたの功績は見えない,技術的、組織的、不明確 な難しさへの対応力を付ける
  • 無料でサイトを大幅に高速化! CDNを知らない人のためのCloudFlare入門 | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

    こんにちは。フロントエンドエンジニアのほりでーです。 CDN(シー・ディー・エヌ)という種類のWebのサービスをご存知でしょうか? インフラの知識がある方にとってはお馴染ですが、デザインやフロントエンド中心の方にはあまり馴染みのないサービスかもしれません。実は、これから紹介するCloudFlare(クラウド・フレア)というCDNサービスを導入すると…… Webサイトにほとんど手を加えることなく大幅に高速化 無料でSSLに対応 DDoS攻撃のような有害なアクセスをブロック させることが可能なのです。今回は私が運用している静的なブログサイトを例に、CDNやリバースプロキシの仕組み、CloudFlareの導入方法などについてご紹介します。 CDNとは CDNとはコンテンツ・デリバリー・ネットワーク(Content Delivery Network)の略称です。 「コンテンツを届けるネットワーク」

    無料でサイトを大幅に高速化! CDNを知らない人のためのCloudFlare入門 | 株式会社LIG(リグ)|DX支援・システム開発・Web制作
    akatakun
    akatakun 2018/03/09
    リバースプロキシタイプのCDNであるが故に、自前のDNS→CF→自鯖になる, ユーザを区別しないため、ユーザごとに内容が違うページは対象から外す,障害時の補填がなくてもいいならアリ
  • 漫画村のDDoS攻撃対策が予想以上にしっかりしていた

    一昔前のインターネットなら、ある人々から気にわないと思われるサイトは攻撃を受けてダウンさせられるような事がよくあった。終戦記念日に2ch韓国の右翼集団から攻撃されてダウンさせられていたといった話も聞いたことがある人が多いと思う。ここ最近のネット上で最も嫌われているサイトの1つである漫画村もダウンさせられていておかしくないと思うのだが、不思議な事に全くそういう話を聞かない。 気になったので検証のために踏んできた。検証と言ってもChromeでF12キーを押すと出てくるDeveloper Toolsを使っただけなので中学生でも出来るようなものである。 「漫画村」の名前を出すと宣伝になってしまう恐れはあるようだが、このエントリごときでアクセスは増えないと思うのでそのまま書かせていただく。 以下、説明を長ったらしく書くが、Web業界の人向けには「動的ページを極力排除した上でほぼ全てのコンテンツに

    漫画村のDDoS攻撃対策が予想以上にしっかりしていた
    akatakun
    akatakun 2018/03/09
    なるほど! ogawa0071ビューワーページではWebSocketが使われているけど、これもCloudflareをCDNにしてた。WebSocketまでCDNを通すのは明らかにDDoS対策だと思う。
  • なぜ日本のおじさんは「世界一孤独」なのか?(文春オンライン) - Yahoo!ニュース

    こうした流れと逆行するように、日では、「孤独のすすめ」「おひとりさま」「ぼっち」などと、「孤独」を美化し、奨励する考え方が人気を集めているが、実はその裏で、日は世界に冠たる孤独大国になりつつある。国際機関OECD(経済協力開発機構)の調査(2005年)によれば、友人、同僚、その他コミュニティの人と「ほとんど付き合わない人」の比率は15.3%と平均(6.7%)の2倍以上、加盟国中トップだった。オランダの2.0%、アメリカの3.1%、ドイツの3.5%などに比べると差は歴然だ。未婚率や一人暮らしの家庭も増加している。 「孤独」とはそもそも、「頼りになる人や心の通じ合う人がなく、ひとりぼっちで、さびしいこと(さま)」を指す。「孤」は「みなしご」を意味し、誰にも頼れず、精神的に「孤立」し、苦痛を覚えるというネガティブな主観だ。一方で、日では、「独りで独自」の時間を過ごし、楽しむことをも「孤独」

    なぜ日本のおじさんは「世界一孤独」なのか?(文春オンライン) - Yahoo!ニュース
    akatakun
    akatakun 2018/03/09
    英語では、ポジティブな意味合いの「Solitude」(個人が能動的・自発的に一人を楽しむこと)と、ネガティブな「Loneliness」(自らの意思に反して、疎外感や孤立感を味わうこと)とに分かれている
  • リモートワークのストレス | POSTD

    リモートワークのストレス ソフトウェアエンジニアリング業界では、リモートワークは大いに理にかなった働き方です。大抵はPCとインターネット接続さえあれば仕事ができるからです。よって、決まったオフィスに毎日通って働く理由は比較的少ないため、リモートワークIT職の重要な要素になっています。最も先見的な求人市場とは決して言えないベルギーにおいてさえもです。とはいっても多くの場合、リモートワークが認められるのは週の一部のみ(おそらく週に1日か2日ぐらいが一般的)にすぎません。それにもかかわらず、リモートワークは大部分の企業で導入されるようになってきたのです。 リモートワークには多くの利点があると言われており、この働き方を過激なまでに擁護する声もよく耳にします。その多くには同意するものの、リモートワークを5年以上してきた経験から言えるのは、リモートワークにはストレスが付き物だということです。そう聞く

    リモートワークのストレス | POSTD
    akatakun
    akatakun 2018/03/09
    対複数人な文字の形式の対話は世間話に適していない ,一員としての感覚が乏しくなる,反応が早い人は信頼できる,割り込まれていいのか伝わりにくい, 結果を出すために仕事をし過ぎる
  • ユーザのブラウザで起きた JavaScript のエラーを収集する - Qiita

    なぜエラーを収集するのか バグ探し バグを見つけて潰していくため ユーザからのバグ報告の補助 ユーザに報告の負担をかけないため エラーを取得する 取得タイミング window.onerror Promise のエラー フレームワーク毎の特定のタイミング window.onerror window.onerror にメソッドを登録しておくことでエラー発生時にそのメソッドが呼ばれる。try-catch でハンドリングしていないエラーが流れてくる。

    ユーザのブラウザで起きた JavaScript のエラーを収集する - Qiita