タグ

ブックマーク / golang.rdy.jp (4)

  • Goへの誤解について

    よくGoで誤解されるポイントについて個人的な見解を書いておきます。 今回の記事はGoアドベントカレンダー2017 その3の20日目の記事です。 使ってないパッケージがコンパイルエラーって面倒じゃね? さっさとgoimportsかgoreturnsを保存時に自動実行するエディタ環境を使いましょう。 gofmtも一緒に実行されていいことずくめですよ! インターフェースがnil判定出来ないパターンがあるのダメじゃん? 最初は私もそう思いました。しかし、typed-nilがnilリテラルと比較できなくなったのは 「nil判定サボったままinterface型に変換した」からでサボらなければ全く問題にならないのです。 map,sliceが不便? map,sliceはメソッドが一切ありません。 極論をいうとGoのプリミティブ型みたいなものなのです。 ユーザーが欲しいものはmapやsliceを駆使して各自

  • Goのアンチパターン

    Go書いててなんとなく見えてきた Goでやっちゃいけないパターン WAF導入してらくらくWebアプリ WAF自体が現在群雄割拠状態。 WAF毎にハンドラインターフェースが違うので既存コードつなぐにはラッパーが必要。 どのWAFもLL言語に比べるとまだまだフィーチャーの網羅範囲が狭い。 なのでもちろんLL言語ほど楽には書けないことが多い。 リフレクション使いまくりでトータル性能はLL言語並みに遅いのもある。 Go1.7のcontextパッケージの導入で標準のHTTPハンドラが復権する可能性があり更に荒れる予想。 追記: 楽できるのを期待してWAFを導入するの「やっちゃいけない」とまでは言い過ぎだったかもしれないけれど例のsqlでPrepareを正しく使えていないで性能出なかった件とか、当面WAFを使うなら自分で概ね中身を理解して使う覚悟が必要。 構造体メソッドにロジックを詰め込む Goの思想

  • GopherJSの紹介

    Javascriptを書きたくないでござる!な人向け。 GopherJSってなに? Goの記述を100%Javascriptに変換してくれるツール。 サイト: http://www.gopherjs.org GopherJSの特徴 pure-GoなコードをJSの世界で動くように変換する。 goroutineやchanも論理的に動作するように変換。 外部バイナリ(.soなど)への依存のある実装の変換はできません。 CGOももちろんNG。 オンメモリ操作のパッケージなどは100%動く。 jsアーキテクチャとしてビルドされ、GOPATHを既存のものと共存可能。 GoGopherJS両対応のパッケージも増えてきた。 GopherJS対応ライブラリ honnef.co/go/js/dom github.com/goxjs/gl github.com/goxjs/glfw github.com/go

    GopherJSの紹介
  • Goで読み上げチャットボットを作ってみた。。

    Goで読み上げチャットボットを作ってみた。。 By nobonobo December 8, 2013 mattnさんのgo-xmpp使ったらあっさり作れた。 スピーチエンジンはOSX内蔵のものかGoogleのものを選べるようにしてみた。 ユーザー名やパスワードを指定して起動するとチャットメッセージを受け取るとそれをしゃべります。 動作に必要なもの go get github.com/mattn/go-xmpp soxのインストールまたはOS-Xのスピーチボイスにkyokoを追加。 ソースコード package main import ( "bufio" "flag" "fmt" "github.com/mattn/go-xmpp" "io" "log" "net/http" "net/url" "os" "os/exec" "strings" ) type Speaker interfa

  • 1