タグ

golangに関するsupermomongaのブックマーク (189)

  • Go 言語の値レシーバとポインタレシーバ

    「レシーバ」とはGo 言語はある種のオブジェクト指向プログラミング (OOP) 言語であり、 OOP 言語の慣例通り、メソッドを呼び出される対象のことを「レシーバ」と呼びます。 ちなみになぜ「レシーバ」と呼ぶのかというと、昔の OOP 言語の文脈ではメソッド呼び出しのことを「メッセージの送信」と言い、メソッドを呼び出される側は「メッセージの受信側」だからです。 「値レシーバ」と「ポインタレシーバ」Go 言語では「値」と「ポインタ」が明示的に区別されているため、たとえばある構造体に対してメソッドを定義する場合でも、「値型」に対する定義なのか「ポインタ型」に対する定義なのかはっきりと区別しなければなりません。それぞれについて簡単に説明します。 値レシーバ「値型」に対してメソッド定義されたものが「値レシーバ」です。 Go 言語では構造体は値なので、以下の例では Person という値型に対して

  • GitHub - apex/apex: Old apex/apex

    This software is no longer being maintainted and should not be chosen for new projects. See this issue for more information Apex lets you build, deploy, and manage AWS Lambda functions with ease. With Apex you can use languages that are not natively supported by AWS Lambda through the use of a Node.js shim injected into the build. A variety of workflow related tooling is provided for testing funct

    GitHub - apex/apex: Old apex/apex
  • 6年間におけるGoのベストプラクティス | POSTD

    稿は、QCon London 2016で行った講演の内容に基づいています。スライドとビデオは近日中に掲載予定です) 2014年に開催された最初のGopherConで、私は「 Best Practices in Production Environments(番環境でのベストプラクティス) 」と題した講演を行いました。 SoundCloud の私たちはGoのアーリーアダプターで、その時点までに既に2年近く、番環境向けの様々なGoコードを書き、実行し、メンテナンスしていました。そして私たちはいくつかのことを学んだので、その教訓をまとめ、多くの人に伝えたいと思ったのです。 それ以来、私はフルタイムでGoを使う仕事を続けています。SoundCloudではその後の活動やインフラチームで、そして現在は Weaveworks で Weave Scope や Weave Mesh の開発に使ってい

    6年間におけるGoのベストプラクティス | POSTD
  • GitHub - mattn/mulder-you-are-tired: モルダー、あなた疲れてるのよ

    supermomonga
    supermomonga 2016/03/31
    便利
  • GoによるWebアプリ開発のキホン

    Webアプリケーションにおいて、マルチテナント型、つまり複数のユーザー組織がアプリケーションとデータベースを共有する構成にすることがあります。この構成の持つリスクとして、万が一バグにより他テナントの情報が見えてしまうとそれは情報漏洩となり、重大なインシデントとなってしまうことがあります。この重要性を考えると、「気を付けて実装する」だけではなく、仕組みで漏洩を防ぐような対策には価値があります。 そこで、今回はPostgresSQLの行レベルセキュリティと、SpringAOPによる処理を組み合わせて、ログインしているテナントのデータにしかアクセスできなくする仕組みを実現しました。 導入にあたり考慮した複数の選択肢、乗り越えたいくつかの壁についてご紹介します。 同様の課題を抱えている方の参考にしていただけるような情報をお伝えしたいと思います。

    GoによるWebアプリ開発のキホン
  • GitHub - micro/micro: An API first development platform

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - micro/micro: An API first development platform
  • Goでデーモンを作るにはどうするのが良い? - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Goでデーモンを作るにはどうするのが良い? - Qiita
  • Goで小さなScheme、Gigueを実装しました - Qiita

    $ gigue > (+ 1 2) 3 > (define (mul x y) (* x y)) > (mul 2 3) 6 > (define a (mul 1 2)) > (- 10 a) 8 > (define (square x) (* x x)) > (print (square 3)) 9 > (define x 'kuke) > (print x) kuke > (load "./examples/sum.scm") > (print (sum 1 2)) 3 > (define x (lambda () (print 'hoge))) > x {[] [print hoge] 0xc820014300} > (x) hoge > (define p (list 1 2 3)) > (car p) 1 > (cadr p) 2 > (caddr p) 3 機能 +, -, *

    Goで小さなScheme、Gigueを実装しました - Qiita
  • Vim で引き籠る - Qiita

    2015年総括 今年も沢山、良い Vim プラグインが誕生しました。 また皆さんからも幾度か vim-jp に vim の不具合報告を頂き、vim-dev にパッチとして還元する事が出来ました。当にありがとうございました。さらに個人的には技術評論社出版の「Software Design」で連載記事「Vim の細道」を執筆させて頂く事になり1、自他共にビムビムしい1年だったと思います。 しかし今後も皆さんが使うテキストエディタは皆さん自身が考えて良くしていく、そういう気持ちを持ちながら引き続き Vim 活動を続けて行きたいと思います。 さて 2015年は如何だったでしょうか。Vimmer になりたいと思っている人たちは Vimmer になれたでしょうか。Vimmer の世間一般のイメージと言えば vimrc ばかり弄っている プラグインばかり作っている 現代でも vim が最強だと思ってる

    Vim で引き籠る - Qiita
  • GoのChannelを使いこなせるようになるための手引 - Qiita

    Go使いたくなる理由の一つに、マルチスレッドプログラミング的なものを高速な言語で安全に実装したいというのがある。Goにおいてそれを支えるのが、自前で実装した軽量スレッドといえるgoルーチンと、mutexなどのロックの代わりに使えるChannelという概念だ。 実際に実装するときに、Goルーチンは難しくないが、Channelを使うのは割と知識と経験が必要なのでここでは、Channelについてすこし詳しく書いてみる。 Message Passing まずは理論から。 Goのチャネルなどのロックを使わない方法の並行処理はMessage Passingと呼ばれている。 以下の英語Wikipediaにあるように数学的な理論にもなっているしっかりした枠組み。 ErlangのActor Modelなどもこの仲間。GoのチャネルとActor Modelは、実は、同等の概念で表現方法が違うだけらしい。 (

    GoのChannelを使いこなせるようになるための手引 - Qiita
  • なぜGo言語は設計が悪いのか – Go愛好者の見地から | POSTD

    さて、このタイトル、かなり挑発的ですよね。それは認めます。もう少し説明すると、私は大胆なタイトルが好きなのです。人の注意を引くことができますからね。とにかく、この記事では、Goがひどい設計の言語(実際、当に全て台無しになります)だということを証明していこうと思います。私は既に数カ月間Goで遊んでいますし、たしか6月のいつだったかに初めてHello, Worldを走らせてもみました。私は数学がそんなに得意ではありませんが、あれから既に4カ月経っていますし、 Github 上のパッケージもいくつか手に入れました。言うまでもありませんが、私は仕事Goを使ったことは全くないので、”コードサポート”や”デプロイ”やそのあたりに関する私の意見は話半分で読んでくださいね。 私はGoが大好きです。使ってみて大好きになりました。慣用表現を理解したり、ジェネリクスがないことや、おかしなエラーハンドリングや

    なぜGo言語は設計が悪いのか – Go愛好者の見地から | POSTD
  • oden-lang.org - このウェブサイトは販売用です! - oden lang リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

    supermomonga
    supermomonga 2015/11/17
    おでん
  • How We Use Go To Do Web Development

    GDG DevFest 2015 @ HangZhou

    How We Use Go To Do Web Development
  • Peter Bourgon · Go kit: Go in the modern enterprise

    This was originally a talk in February 2015 at FOSDEM and the Google Campus London meetup. You can watch the video here. This page is also a bit out-of-date by now. For the latest updates on Go kit, see gokit.io. The modern service-oriented enterprise What Go needs: a Go kit Let’s collaborate The modern enterprise ∞ When we read the word enterprise we probably think of older, slow-moving bureaucra

  • Goのデプロイを「もっと」簡単にする。ビルドプロキシCargo。改めTorokko。

    Goアプリのデプロイはバイナリをひとつ配布して完了なのでとても楽なのですが、バイナリ自体をどこで管理するかについては意外と頭を悩ませることになります。 Goを使うにあたって、コードさえあればあとはバイナリも簡単に配布できる状態というのが望ましいと思い、仕組みを作ってみました。 2015/08/16追記: CargoRustのパッケージマネージャーと名前がかぶってたのでTorokko(トロッコ)に改名しました! TorokkoはGoアプリのビルドと成果物ダウンロード用のAPIを提供するビルドプロキシです。 リクエストのURLで対象リポジトリ、GOOS、GOARCH、バージョンを指定します。 ビルドはDockerコンテナを用いて行い、バックエンドストレージに成果物が保存され、ビルドリクエストと同じURLでダウンロードを行うことができます。 Docker Hub の Automated Bui

    Goのデプロイを「もっと」簡単にする。ビルドプロキシCargo。改めTorokko。
  • Goでプロンプト簡単に出すやつ書いた | おそらくはそれさえも平凡な日々

    コマンドラインツールを書くときに、プロンプトを出したくなることありますよね?ただ、ちゃんとプロンプトを出すのは案外難しかったりもします。例えば以下の様な要求があるわけです。 自動化の妨げになるからターミナルじゃない時はスキップして欲しい とにかく簡単にプロンプトを表示させたい パスワード入力では入力を隠したい 複数の選択肢から上手いこと選択させたい 単に(y/n)だけ入力させたい ということで書いたのがこちら。 https://github.com/Songmu/prompter 以下のように、それぞれの要求を簡単に解決できます。 var twitterID string = prompter.Prompt("Enter your twitter ID", "default") var passwd string = prompter.Password("Enter your passwo

    Goでプロンプト簡単に出すやつ書いた | おそらくはそれさえも平凡な日々
  • Goで使える10のテクニック | POSTD

    ここでは、私がたどりついた最善のやり方を紹介しましょう。個人的に過去数年にわたって大量のGoコードと付き合ってきた経験から集めたものです。これらは全て非常にスケーラビリティがあると思っています。私が、スケールする、と言うときは次のような意味があります。 アプリケーションが求める環境は、アジャイル環境の中で変化していきます。開発の3、4か月後に、全てをリファクタリングする必要が出てくるなど、考えたくもないはずです。新しい機能は簡単に追加できなくては意味がありません。 あなたのアプリケーションは多くの人々によって開発されます。可読性が高く、維持しやすいものでなくてはなりません。 あなたのアプリケーションは大勢の人々に使われます。バグは容易に特定でき、修正できなくてはなりません。 長期的にみるとこれらのことが重要になる、ということを私は今までに学んできました。小さなことであっても、多数に影響しま

    Goで使える10のテクニック | POSTD
  • Mattermost - Go製のSlack代替サーバ MOONGIFT

    MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました Slackが急成長しています。多くの企業でSlackが使われており、遠隔地(または社内であっても)のコミュニケーションに役立てられています。しかし企業によってはセキュリティ上の理由などで導入できないこともあります。 そんな企業が使ってみたいのはSlackクローンになるでしょう。今回はDockerを使って簡単に導入できるMattermostを紹介します。 Mattermostの使い方 既にDockerが入っているならば、以下のコマンドを実行するだけです。 docker run --name mattermost-dev -d --publish 8065:80 mattermost/platform:helium 後はサーバにアクセスするだけですが、サブドメインを使うのでhostsな

    Mattermost - Go製のSlack代替サーバ MOONGIFT
  • Goops! (WIP) — KaoriYa

    皆さん golang 書いてますか? 良い言語ですよね。あまりに良すぎるから別の言語を書いている時に、気を抜くと golang で書いちゃってることってありませんか? 私は Java で良くやっちゃいますね。こんな風に。 package net.kaoriya.goops; public class GoopsExample { public static int sumInt(int n) { sum := 0 for i := 1; i < n; i++ { sum += i } return sum } } あ、やべぇ! (OOPS!) ってことで、書いた分を消して入力し直すわけですが…あれ、だったらもう変換できちゃっても良いんじゃないの? ということでやってみました。 Goops を使えば、間違えて golang で書いちゃった時にコマンド1つでその言語に書き換えられます。上のスク

    Goops! (WIP) — KaoriYa
  • Go support now official on Heroku | Heroku

    Products Discover Heroku’s AI PaaS (Platform as a Service), designed for effortless app deployment and scaling. Explore our cloud application platform features, reliable managed data services, and a robust ecosystem to power your modern applications.

    Go support now official on Heroku | Heroku