This is talk about Starting with building web application with GolangRead less
『銀の弾などない— ソフトウェアエンジニアリングの本質と偶有的事項』 を書いたFred Brooksはその論文の中で、 偶有的な複雑性と本質的な複雑性 について重要な区別をしています。 本質的な複雑性 とは、問題特有の領域から生じる複雑性のことを指します。例えば、SMTPクライアントを作成しているディベロッパは、 RFC 5321 の核心の細かいところ全てに取り組む必要がありますが、これはSMTPクライアントの作業をする上で避けては通れないものです。これに対して 偶有的な複雑性 とは、私たちが自ら作り上げた問題から生じる複雑性のことを指します。 技術者としては、自らの選択で生じる偶有的な複雑性によって、余計な負担が増えないようにとても注意しなければなりませんよね。その意味では、言語の選択は偶有的な複雑性を軽減できる完璧な例と言えます。Webアプリケーションを書くのにアセンブリ言語を選びます
Goを覚えてみたいと思いつつも開発環境を整備するのが億劫で手が出せていないという方も多いのではないでしょうか。そんな方にお勧めなのがWeb IDEです。実行環境も備えたIDEであれば、開発と実行がWeb上で簡単に実現します。 WideはGo向けのWeb IDEになります。実行バイナリも配布されていますので、とても簡単にGoの世界を試せるでしょう。 Wideの使い方 ログイン画面。admin/adminでログインします。 ログインしました。左側がフォルダ、ファイルブラウザ。右側がエディタになります。 ハイライト付きのエディタ画面。 ビルドや実行もWide上でできます。 Wideを一人が立てれば、他の人はWebブラウザからアクセスしてすぐにGo開発ができるようになります。ハイライトや対応する括弧の表示など簡易的ながら専用のエディタ機能も備わっています。実行は複数のプロセスで同時に流せるようです
Golangで簡単なwebアプリを作るためにどうしたらいいか調べていたので、試しにGojiというフレームワークと、go-xslateを使ってHello Worldをしてみた。 GitHub - shibayu36/goji-and-go-xslate-sample http://localhost:8000/hello/world にアクセスすると、以下の様なものが出るだけのアプリケーション。 これを作った手順にしたがって簡単に紹介。 作成手順 まずはルーティングを作成 https://goji.io/によると、main関数の中にルーティングを作成してServeすれば良いだけっぽいのでまずはそれを作ってみる。 func main() { goji.Get("/hello/:name", hello) goji.Serve() } これで/hello/{name}でhello関数が使われるよ
ここ1年ぐらい収集した便利 Go 言語情報を並べただけです。 http://b.hatena.ne.jp/y_uuki/golang/ https://github.com/stars?language=go オフィシャル 言語機能解説を中心にピックアップ。 Effective Go - The Go Programming Language Go's Declaration Syntax - The Go Blog Share Memory By Communicating - The Go Blog Defer, Panic, and Recover - The Go Blog Go Concurrency Patterns: Timing out, moving on - The Go Blog Go Slices: usage and internals - The Go Blog
執筆時に使用した go version は、go1.3 です。 golang で外部コマンドを実行して、 標準出力の結果を受け取る方法です。 Go Playground では試すことができませんのでご注意ください。 ※追記1 id:mattn さんにご指摘いただいた、Cmd.Output の例を追記しました。 標準出力だけ取れれば良いなら、非常に簡潔に書くことができます。 ありがとうございました。 ※追記2 ドキュメントを読みなおしたところ、 Cmd.CombinedOutput という、 標準出力と標準エラー出力両方とれるものがありましたので、 追記しました。 ※追記3 最初に書いた標準出力一括取得は、それほど使わなさそうだと思いましたので、 削除して、末尾にStdinPipe の例を記載しました。 ※追記4 id:id:hnakamur3 さんに教えていただきました記事へのリンクを追加
go toolにはyaccというものがある。 これはunixの言語処理系で広く使われるyaccというパーサジェネレータのGoバージョンである。 本稿はその使い方を説明するチュートリアルである。 対象読者 goyaccを使う - Qiitaという記事があって、これはgoのyaccを使って簡単な言語の構文解析をして使い方を説明している。 しかし、yaccについての基本的な説明が完全ではなく(例えば%%とか)、yaccを触ったことがない人には若干難しい。 従って、私のようなGoの文法は理解しているがyaccを使ったことがない人向けにごく簡単な使い方を説明する。 参考資料 yacc - The Go Programming Languageが公式のドキュメントっぽいが、これもyaccの文法自体は他に任せている。 RHGの速習yaccがとても参考になると思う。 本稿はあくまで取っ付き易いチュートリア
一切go触ってなくて全く何も分からなかったので、goのprojectの始め方すらも分からないのでググったのメモっておく。 私のプログラミングの始め方 : Go | Yakst 基本的にはmkdirをしてprojectを開始するようだ。とりあえずこの記事を見ればgoのprojectを開始できる。 さあGoを始めよう!環境構築,”Hello World”から簡単なバックエンドサーバーまで | POSTD この記事もとりあえずの入門に参考になる。 これからGoを始める人のためのTips集 | The Wacul Blog Tips集もあった。gofmtの-rオプションとか便利そう。 http://r7kamura.github.io/2014/06/21/ghq.html あとはこの一番下に書いてあるとおり、ghqのpathとgoのpathは合わせた。 これでとりあえずは作れそう。
goreの説明を追記。 LLから、Goに移るときの不満の一つに「標準のREPL(インタラクティブシェル)が無い」があります。 「ポインタはmapのキーになるんだっけ?」のような、つまらない(けど、ありがちな)疑問を解消するには、ドキュメントを漁るより、コードを書いてしまう方が、手っ取り早いですよね? goplayを作った! goplayは、書捨てGoコードを書くためのシンプルなツールです。 やっているのは、 1. 一時ディレクトリを/tmp/goplay/以下に作る 2. main.goを一時ディレクトリに作る 3. 一時ディレクトリで新しいシェルを起動 4. 環境変数GOPATHに一時ディレクトリを追加。 これだけです。 インストールはgo getするだけです。 go get github.com/doloopwhile/goplay 他の方法との比較 ちゃんとしたREPL(gore)を
SeleniumラッパーなテストフレームワークをGoで書いてみた。初Go。 https://github.com/hokaccha/sprinkler GoのコードでE2Eテストのコード書けてもあんまり嬉しくないのでYAMLで書けるようにした。 scenarios: - name: Hello sprinkler! actions: - visit: http://www.google.com - assert_title: Google - wait_for: input[type="text"] - input: element: input[type="text"] value: Hello - submit: form[name="f"] - wait: 1000 - assert_text: element: "#main" contain: Hello こんな感じのYAMLを以
CI-as-a-ServiceでGo言語プロジェクトの最新ビルドを継続的に提供する Go言語で作成したツールのリリース方法について,最近実践していることを書く. リリースは,ローカルから人手で行っている.具体的には,自分のローカル環境でクロスコンパイルし,セマンティック バージョニングによるタグをつけ,CHANGELOG.mdを丁寧に書いた上でリリースをしている.クロスコンパイルにはmitchellh/gox,リリースには自分で作成したtcnksm/ghrを使っている(ghrについては,“高速に自作パッケージをGithubにリリースするghrというツールをつくった”を参考). その一方で,開発中の最新のビルドも提供するようにしている.例えば,こんな感じで,Pre-Releaseとして提供している.Go言語での開発なので,go getしてくださいと言える.しかし,環境によってビルドが失敗する
原文:http://npf.io/2014/10/why-everyone-hates-go/ 酔っぱらった勢いで訳出してるので、違ってたら修正リクエストください。 訳者の1行でわかるサマリ それって、Goのシンプルな言語哲学が、ML系言語好きのアイデンティティを挑発しちゃってるからじゃないの? いや、実際みんなって訳じゃないんだろうけど。最近、なんてGoをみんなそんなに批判的なのかって言うquoraの質問が出たもんで。(わるい、普段はquoraへのリンクを張らないんだけど、それがこの記事のきっかけだからね。)この質問への回答を見るまえにもう、僕には、次みたいなことが書かれていることがわかってた: Goは70年代に立ち往生した言語だ Goは40年間に及ぶプログラミング言語研究の成果を無視してる Goはブルーカラーの凡夫のための言語だ Go使いはJava1.0で仕事しても大丈夫なんだろう。
Help us understand the problem. What is going on with this article? 仕事で Golang を使ってウェブアプリを作ることになりそうなので、どんな構成がいいのか考えてみる。あくまで前提ありきの選択なので、何でもかんでも適用できるわけではない。 JS や静的ファイル部分は今のところ考慮していない。単によく知らないので。 突っ込み大歓迎です。これいいよ!とか教えてください 前提 多機能なフレームワークよりシンプルなフレームワークに色々組み合わせる方法をとりたい。 開発者は数名程度。Golang に精通している開発者が 1 名いる。残りはこれから。 開発者は Django での開発経験が豊富な人が多い 全員ウェブ開発経験はそれなりに積んでいる。 HTML と JSON 両方のパターンが存在するのでテンプレートエンジンは重要。 JS
2014年でも html を解析してゴニョゴニョするなんて要件はまだまだある訳で、そんな時に便利なのが pup というコマンドです。 EricChiang/pup - GitHub README.md pup pup is a command line tool for processing HTML. It reads from stdin, prints to stdout,... https://github.com/EricChiang/pup 通常、こういったツールは perl や ruby、python 等で提供されランタイムがインストールされていない環境で動かすのはちょっとした手間が発生していました。しかし pup ならば golang で出来ているのでバイナリ1つあれば動かせます。 使い方は、例えばこのサイトのパーマリンクのHTMLを得たいならば curl -s http:
Author: syohex Published: 2013-09-26 Last Modified: 2020-07-01 GitHub Source: md 概要 Emacsでの Go言語をプログラミングする際の環境構築について示す. 事前準備 コード補完のために gocode, 定義元へのジャンプのために godefをインストールしておく 推奨パッケージ go-mode go-autocomplete or company-go go-eldoc これらのパッケージはすべて MELPAからインストールできる go-modeの各種コマンド(利用頻度が高いもの) go-import-add (Default: C-c C-a) 指定したパッケージの import文を追加する. godef-jump (Default: C-c C-j) 関数, インタフェース, 変数等の定義元にジャンプす
golintはGo言語用のlintプログラムです。 プロジェクトはこちら: https://github.com/golang/lint 導入は: $ go get -u github.com/golang/lint/golint で、基本的な使い方は: $ golint main.go などとすれば解析結果がでてきます。 vimはmattnさん(@mattn_jp)が追加したプラグインを使えば大丈夫です(導入方法はREADMEを参照のこと)。ですがemacs版はなかったので、先日追加しました。 golintをemacsで使う 既にgolintを使っている人はgo getに-uを付けてアップデートしてください: $ go get -u github.com/golang/lint/golint emacsの設定ファイルには以下を追加すればOKです: (add-to-list 'load-p
1ヶ月くらいGoの勉強をしたときにたどり着いたリンク集。 (適時追加中) ページ A Tour of Go - 最初にここ。ただし、量と途中のエクササイズの問題の分かりにくさで、最初から全てを理解するのは大変。 go-wiki tips的な Golang JP - Google+のコミュニティ build web application with golang - Goでウェブサービスを開発する場合の説明。 Go言語での構造体実装パターン - 構造体の使い方 Go Language Patterns - 『You should have already read the Go Tutorial and Effective Go. This site is the next step.』 スライド Go For Perl Mongers - YAPC::Asia TOKYO 2014のプレゼ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く