タグ

Goに関するniku4iのブックマーク (35)

  • Go+Rails+SQS+S3で社内のオペレーターチェック入稿システムを刷新した話 - RAKSUL TechBlog

    こんにちは。サーバーサイドエンジニアの荒井です。 ラクスルでデータ入稿〜印刷用データ作成に関わる開発チームに所属しています。 以前、GoのおすすめDIツールについての話がありましたが、今回は、Goを使ってラクスルのオペレーターチェック入稿システムを刷新した話について書きたいと思います。 オペレーターチェック入稿とは ラクスルは、印刷物を扱うECサイトです。したがって、お客様に印刷用のデータを入稿していただく必要があります。 ラクスルでは現在、2つのデータ入稿方法をご提供しています。 1つは、システムが全自動で印刷用データを作成するスピードチェック入稿です。 (過去にスピードチェック入稿リリース秘話やそうだ スピードチェック入稿のテストを自動化しよう でも紹介しています) もう1つは、DTPオペレーターがデータを1つ1つチェックして印刷用データを作成するオペレーターチェック入稿です。来はす

    Go+Rails+SQS+S3で社内のオペレーターチェック入稿システムを刷新した話 - RAKSUL TechBlog
  • GoのおすすめDIツール | Raksul ENGINEERING

    はじめに これまでラクスルではRubyを開発言語として採用することが多かったのですが、最近はコマンドラインツールやバッチ処理などでGoによる開発も増えています。 私が最近取り組んでいる印刷発注基盤の刷新プロジェクトでもGoを使ってWEBアプリケーションを開発しており、社内では先例がないこともあって色々と苦労しながらも楽しく開発を進めています。 GoによるWEBアプリケーション開発では、RubyにおけるRailsのようなデファクトスタンダードは存在しないため考慮すべき点がたくさんあります。 例えば、「パッケージ構成をどうするか」、「WEBアプリケーションフレームワークを使うべきか」などですが今回はちょっと軽めのテーマとしてDIツールについて紹介します。 DIとは DIとはDependency Injectionの略で「依存性の注入」と訳されます。 Goではインタフェース型の値をコンスタラクタ

    GoのおすすめDIツール | Raksul ENGINEERING
    niku4i
    niku4i 2019/06/21
    golang の DI の話し
  • Clean Architecture using Golang

    UpdateI published an updated version of this post. Check it out at: Clean Architecture, 2 years later What is Clean Architecture? In his book “Clean Architecture: A Craftsman’s Guide to Software Structure and Design” famous author Robert “Uncle Bob” Martin presents an architecture with some important points like testability and independence of frameworks, databases and interfaces. The constraints

  • 「Vue.js + Go言語 + Firebase 」で始める! Frontend & Backend API 両方で認証するセキュアなSPA開発ハンズオン! - Qiita

    Vue.js + Go言語 + Firebase 」で始める! Frontend & Backend API 両方で認証するセキュアなSPA開発ハンズオン!JavaScriptGoVue.jsFirebaseGoogleCloud こんにちは。僕です。最近は Vue.js で SPA、Go言語で APIサーバーを実装しています。ここで意識するのはフロントエンドとバックエンドの分離です。分離させたい理由は二つ。 アプリ化の際や、今後、他のサービスと連携させるためにも、バックエンドはAPIサーバーに徹したい。 Vue.jsで開発中にオートリロードしたい(Vue.jsをビルドして出来たファイルをGo言語でserveする形にすると、毎回ビルドするのが面倒) しかし、これをやろうとすると認証どうするの問題が付いてきます。APIサーバ、フロントの両方をセキュアにしようとするとそれだけで時間取られます

    「Vue.js + Go言語 + Firebase 」で始める! Frontend & Backend API 両方で認証するセキュアなSPA開発ハンズオン! - Qiita
  • Big Sky :: Go 言語の非同期パターン

    Gogoroutine という非同期の仕組みを提供していますが、使い方次第では色々なパターンが実装できる為、初めて goroutine を見た人はどの様な物が正解なのか分からない事があります。以前、このブログでも紹介した事がありますが Go の非同期の仕組みは一見単純な様に見えて実はとても奥深いのです。 Big Sky :: golang の channel を使ったテクニックあれこれ golang の channel は他の言語に見ない独特のパラダイムを開発者に提供します。 単純にスレッド間でメッセージングをするだけでもC言語で書けばそこそこの量になったり、慣れていない人であればど... https://mattn.kaoriya.net/software/lang/go/20160706165757.htm 2012 年に Rob Pike 氏が Google I/O で「Go

    Big Sky :: Go 言語の非同期パターン
  • Golang を使うなら Makefile を恐れるな - Frasco

    最近 Golang を使っています。開発中、私は go buildgo test を繰り返し手入力で実行するのに慣れてしまいました。これはついついやってしまう、私の悪い癖でした。引数がないようなシンプルなコマンドであれば、それほど辛くありません。しかし、タスクが複雑になってくれば、当然苦痛になってきます。逃げ道となりえる選択肢はほとんどありません。bash スクリプトは、あなたの仕事の役に立つでしょう。しかし、私としては makefile が役に立つと言いたいです。make ツールはこういった理由から生まれたものであり、 makefile には普段行う作業をまとめておくことができるからです。私は make の教祖になって、うまい書き方を教えたりすることはできませんが、今回の記事では、私のプロジェクトでよく使っている makefile をまとめておきました。では、やってみましょう。 #

    Golang を使うなら Makefile を恐れるな - Frasco
  • GoバイナリのGitHubリリース: gobump + ghch + goxz + ghr - ゆううきメモ

    最近は、GoバイナリのGitHubリリースにgobump、ghch、goxz、ghrを利用している。これらのツールを組み合わせることで、repairableな形でリリース作業を自動化できる。 GoバイナリのGitHubリリースに一般的に必要な一連のプロセスを分解すると、下記のようになる。 バージョニング CHANGELOGの生成 クロスコンパイル: LinuxOSXWindows用バイナリの作成など パッケージング: tar.gzの作成など GitHub Releaseへのアーカイブアップロード 各ステップを担当するミニマムなツールを組み合わせ、一連のプロセスを実行できる。*1 gobump: https://github.com/motemen/gobump バージョニング ghch: https://github.com/Songmu/ghch CHANGELOGの生成 goxz:

    GoバイナリのGitHubリリース: gobump + ghch + goxz + ghr - ゆううきメモ
  • Go + App Engine で作る API Gateway - Yuichi Murata's Engineering Blog

    こんにちは、むらたです。Advent Calender 初めてのチャレンジです。 自分は職務でよく、App Engine で Microservices 構成をとった開発をやります。例えばこんな感じの構成です。 DeNAでのGCP活用事例とGCP NEXTでの事例紹介 — Mobage Developers Blog この時困るのが、各サービスのゲートウェイの設計です。App Engine の場合、各サービスにそれぞれ appspot.com ドメインが振られるので、例えば example-dot-project-id.appspot.com のようなドメインが振られます。このサービス用のドメインで直接アクセスすれば良いという話もありますが、そうも行かない場合もあります。同一のドメインで API をさばいたり、コンポーネントとパスの構成を柔軟に行いたい場合などです。 dispatcher.

    Go + App Engine で作る API Gateway - Yuichi Murata's Engineering Blog
    niku4i
    niku4i 2016/12/05
    gatewayの設計
  • Goで覗くシステムプログラミングの世界

    プログラミングの勉強にあたってよく言われるのは、「流行に左右されるような技術の尻を追いかけるよりも、土台となる技術を身につけることが大切」ということです。 例えば、ウェブブラウザで動くJavaScriptを書くときは、流行しているライブラリの書き方を暗記するよりも、 ブラウザがどのようにCSSHTMLを解釈してスクリーンに文字や絵を描き出していく(レンダリングしていく)のかを理解することが大切です。 さもないと、ライブラリの流行が変わるだけで勉強したスキルが失われてしまいかねません。 データベースでも同じことがいえます。SQLの文法を学ぶことよりも、データベースがどのようにスケジューリングを行い、 どのようにデータを探索していくのかを学ぶほうが、パフォーマンス・チューニングのコツなどもひらめきやすくなるでしょう 1 。 「土台となる技術を身につける」を、もう少しちゃんと言い換えれば、「今

    Goで覗くシステムプログラミングの世界
    niku4i
    niku4i 2016/09/26
  • Engadget | Technology News & Reviews

    Parrots in captivity seem to enjoy video-chatting with their friends on Messenger

    Engadget | Technology News & Reviews
    niku4i
    niku4i 2016/07/08
  • 『プログラミング言語Go』翻訳作業が終了しました: 柴田 芳樹 (Yoshiki Shibata)

    プログラミング言語Go 作者: Alan A.A. Donovan出版社/メーカー: 丸善出版発売日: 2016/06/15メディア: 単行(ソフトカバー) 2015年4月20日から原著の原稿のレビューを始めて、レビューが終わったのが2015年9月5日でした。その間に、二回読み返しています。翻訳は2015年9月13日に着手し始めて、私のすべての作業が昨日(2016年5月8日)終了しました。今日、入稿となり印刷所での印刷の準備が始まりますので、予定通り6月15日刊行となります。 今回は、原著のレビューに98時間、翻訳に473時間を費やしたことになります。ちなみに『APIデザインの極意』は、翻訳だけでしたが500時間を費やしています。これは、私が私的時間に費やした時間であり、出版社の担当者やレビューアによるレビューを加えると多くの時間が費やされたことになります。また、社内のGo言語研修では翻

    『プログラミング言語Go』翻訳作業が終了しました: 柴田 芳樹 (Yoshiki Shibata)
    niku4i
    niku4i 2016/05/09
  • Go言語によるWebアプリケーション開発

    Goプログラミングについて一歩踏み込んだプロユースの解説書。読者はシンプルなコードを書きながら、実運用アプリケーションの開発で使うスキルとテクニックを学ぶことができます。書のサンプルプログラムはどれもシンプルですがとても実践的です。拡張性、並行処理、高可用性といったエンタープライズアプリケーションの開発で直面する現実的な問題に対するソリューションが含まれています。書を読めば、実際の業務に必要な技能――Goによる開発手法および関連技術の使い方――をマスターし、ツールやプログラムの開発スキルを迅速かつ簡単に向上できます。日語版では、監訳者の鵜飼文敏氏による巻末付録「Goらしいコードの書き方」を収録しました。 サポートページ(サンプルコードや正誤表) 監訳者まえがき まえがき 1章 WebSocketを使ったチャットアプリケーション 1.1 シンプルなWebサーバー 1.1.1 テンプレー

    Go言語によるWebアプリケーション開発
    niku4i
    niku4i 2016/01/05
    読みたい
  • horensoというcronやコマンドラッパー用のツールを書いた | おそらくはそれさえも平凡な日々

    リリースしました https://github.com/Songmu/horenso cron等、バッチジョブを走らせた場合にその結果通知やエラーレポートをどうするかは悩ましい問題です。ラッパースクリプトを統一的に噛ますのが常套手段ですが、そのためのツールとして、horenso というものをGoで作りました。報・連・相。その名の通り、実行ジョブの報告をつかさどってくれる君です。以下のようにして使います。 % horenso -r reporter.pl -- /path/to/job args... -- 以降に指定したコマンドが実行され、その結果がJSONとして標準入力経由でreporterに渡されます。reporterは実行可能なファイル、もしくはコマンドライン文字列であり、記述言語は任意です。reporterに渡されるJSONは以下の様なものです。 { "command": "per

    horensoというcronやコマンドラッパー用のツールを書いた | おそらくはそれさえも平凡な日々
  • Go最後の秘宝「GUI」を探しに行く - Qiita

    Golangができること、むしろ「得意」と言われるものはすでにたくさんあります。 クロスコンパイルが得意だし依存が少ないバイナリができるから、いろんな環境で使えるコマンドラインツールを書くにはGoがいいよ パフォーマンスが高いし文字列処理もやりやすいので、高速なAPIサーバが得意。gRPCでもHTTP/2でも Webアプリケーション・フレームワークも増えてきていてウェブサービス作れるよ ビルドシステムとパッケージマネージャ内蔵なので、gitから簡単にパッケージをダウンロードしてきたり、◯makeコマンドとか◯runtとか◯owerで消耗しなくて済む gopher.jsでJavaScriptにもなる 逆に今まであまり良い解がなくて、「Goにはちょっと不向きだね」と言われ続けていたのがGUIです。鳴り物入りで出てきたGXUIが開発が止まってしまい、それと同じぐらいにshinyというものが開発が

    Go最後の秘宝「GUI」を探しに行く - Qiita
  • RubyからGoの関数をつかう → はやい - Qiita

    この記事ではRuby2.2.3とGo1.5.1を使用しています。 すごい要約 Go and Ruby-FFI - Code7 Interactiveを読むといい。 Go、はやい 最初にRubyGoの計算速度を比べるため、フィボナッチ数を単純に計算するやつをそれぞれ書きました。

    RubyからGoの関数をつかう → はやい - Qiita
  • Big Sky :: golang で UNIX コマンドパイプラインを扱う

    golang - Goで外部コマンドをパイプして実行する - Qiita もっとうまいやり方誰か教えてください( ꒪⌓꒪) http://qiita.com/yuroyoro/items/9358cd25b5f7fe9dd37f 当はプロセスの生死と共にパイプが閉じられないといけないので io.Pipe ではなく Cmd.StdoutPipe を使った方がよい。ただしコード量はもう少し多くなる。確かに毎回書くのはダルいのでパッケージを作った。 mattn/go-pipeline - GitHub https://github.com/mattn/go-pipeline これを使うと簡単にコマンドパイプラインが扱える。 package pipeline import ( "fmt" "log" ) func ExampleCommandPipeLine() { out, err := Ou

    Big Sky :: golang で UNIX コマンドパイプラインを扱う
  • gocheck - Rich testing for the Go language

    Introduction The Go language provides an internal testing library, named testing, which is relatively slim due to the fact that the standard library correctness by itself is verified using it. The check package, on the other hand, expects the standard library from Go to be working correctly, and builds on it to offer a richer testing framework for libraries and applications to use. gocheck include

    niku4i
    niku4i 2015/10/27
  • Dotan Nahum - Ruby and Go Sitting in a Tree

    @jondot | CTO at Como. Hacker. Fullstacker. Big data. Open sourcer. In this post, we'll see how to build a Ruby gem with Go based native extension I called scatter, which is enabled by the latest Go 1.5 release and its c-shared build mode. Feel free to drop me a line or tweet if you have questions or comments. C Shared Libraries and Go, Ruby, Node.js, Python. With Go 1.5, we've got a sparkling new

  • 400 days of Go | Vallified

    It’s been 418 days since my first Github commit of Go code. In that time I’ve written a Syslog-to-Kafka producer, a Raft-based distributed SQLite database, a near real-time log search system, and become a core developer of InfluxDB. So if there is one word to summarize Go, it’s productive. I haven’t had the same burst in productivity since I first started building web services in Python, so what h

    400 days of Go | Vallified
    niku4i
    niku4i 2015/09/16
    “So if there is one word to summarize Go, it’s productive.”
  • イベントループなしでのハイパフォーマンス – C10K問題へのGoの回答 | POSTD

    この投稿は、私が去年OSCONで行ったプレゼンテーションを基に作成しています。プレゼンよりは簡潔に編集し直し、プレゼン後にいただいたいくつかのフィードバックに応える形で記事を書いています。 Go言語に関してよく言われるのは、Go言語はサーバでうまく機能し、静的なバイナリや強力な並行処理、高いパフォーマンスを見せくれるということです。 この投稿では、その後半の2つの項目に関して焦点を当てます。プログラマとってGo言語とそのランタイムは、スケーラブルなネットワークサーバをスレッド管理やブロッキングI/Oを気にせずに書くのにどんなに有効かを説明していきます。 効率的なプログラミング言語に関しての議論 技術的な話に入る前に、Go言語をターゲットにしたマーケットを説明する2つの議論に関してお話したいと思います。 ムーアの法則 画像は以下より引用; 2005年5月にHerb Sutter氏が書いたDr

    イベントループなしでのハイパフォーマンス – C10K問題へのGoの回答 | POSTD
    niku4i
    niku4i 2015/09/15