タグ

goに関するteracy_junkのブックマーク (52)

  • ゲームボーイエミュレータをGo言語で書いた - undefined

    概要 Goはこれまで量を書いたことがなかったので入門にゲームボーイエミュレータを書いてみることにした。ゲームボーイである理由はたまたまよくできたゲームボーイの資料(http://marc.rawer.de/Gameboy/Docs/GBCPUman.pdf)を見つけてしまったため。 成果物 github.com まだ基的なカートリッジタイプしか実装できていないがそこそこ動き始めたので公開することにした。直近は対応カートリッジを増やしながらWebAssemblyを吐けるようにしたい。 ゲームボーイの基仕様 項目 概要 CPU LR35902 4.19MHz 8bit RAM 8kB VRAM 8KB ROM 256k~32MBit Display 4階調モノクロ、160×144ドット スプライト 8×8 最大40個表示 / 1ライン上に 最大10個表示 背景 256×256ドット ウィン

    ゲームボーイエミュレータをGo言語で書いた - undefined
    teracy_junk
    teracy_junk 2019/08/06
    『Goはこれまで量を書いたことがなかったので入門にゲームボーイエミュレータを書いてみることにした』動機からしてすごい
  • 「例外」がないからGo言語はイケてないとかって言ってるヤツが本当にイケてない件 - Qiita

    この記事は、Go3 Advent Calendar 2018 の8日目の記事です。 7日目は @codehex さんによる「Go でアプリケーションとクライアントのミドルウェアを作成する方法知ってますか?」でした。 日はネタ全開でお送りいたします。 Disclaimer(免責事項) はじめに言い訳というか、これを書いた経緯というか。 プログラミング言語をdisる人をdisる芸を見たいですね! — yet another (@Maki_Daisuke) 2018年10月11日 というツイートをいたしまして、言った手前自分でやるか、と思い立った次第です。 なので、ネタとしてお楽しみください。 なお、炎上した場合にも、それすらもネタとして楽しむ所存ですのでアシカラズ。 それでは、いってみましょう。 Go言語がイケてない…だ…と……? Go言語はイケてない言語としてよくdisられているが、その中

    「例外」がないからGo言語はイケてないとかって言ってるヤツが本当にイケてない件 - Qiita
    teracy_junk
    teracy_junk 2018/12/19
    コメント欄の面倒くささよ
  • Go言語のイケてない部分 - ぐるぐる~

    最近色々あって仕事Go言語を使っています。 色々割り切っている言語なので、こんなこと言ってもしゃーないんですが、言語設計はミスってるんじゃなかなぁ、と思わざるを得ない点が多々あります。 使い始めて1か月くらいなので間違ったことを書いているかもしれませんので、何かあれば指摘していただけるとありがたいです。 文ではネガばかり羅列していますが、ランタイムとツール周りは気に入っています。 Goのランタイムを使う、もっと洗練されたAlt Go的なものがあるといいのに(もしくはジェネリクスのったGo2を早くリリースしてほしい)、と思う日々です。 追記: なんか意図とは違った受け取られ方をしている方もいるので追記します。 この記事はあくまで、「Go言語を学ぶにあたって躓いた点」を列挙し、まとめ、理由を考えてみる(教えてもらう)ために書いたものです。 Go言語自体はDisってますが、Go言語ユーザーを

    Go言語のイケてない部分 - ぐるぐる~
  • はてなサマーインターン2018の講義資料を公開しました。今年はGo言語&新カリキュラム! - Hatena Developer Blog

    Webアプリケーションエンジニアの id:tanishiking24 です。 今年で11年目となるはてなサマーインターンを2018/08/13 〜 2018/09/07という日程で開催しました。 developer.hatenastaff.com はてなサマーインターンの期間は前半と後半に分かれています。前半課程でははてなのサービス開発・運用に必要な技術を習得するための講義パート、後半課程では実際にサービスやシステム開発チームに参加していただいています。 はてなサマーインターンの講義パートで使用している「はてな教科書」はGitHubで公開しておりますが、今年のインターンで利用した講義資料を新たに公開しました。 今年のサマーインターンではカリキュラムを一新し、前半課程で利用するプログラミング言語にはGo言語を採用し、また進化するWeb技術に対応するためにデータベース基礎、インフラ、Webの基

    はてなサマーインターン2018の講義資料を公開しました。今年はGo言語&新カリキュラム! - Hatena Developer Blog
  • Goで直感的に簡単にdockerを操作できるCUIツールを作りました

    こんにちわ 最近dockerを使っていて、 ターミナル上で直感的にdockerを簡単に操作できるツールあったら便利だなと思い、 Goの勉強も兼ねてCUIツールを作りました。 ツール名はdocui(ドックユーアイ)で、docker cuiをの略です。 特に良い名前思いつかず、適当に決めましたが、今となっては気に入っています。 まだdockerコマンドほど機能は充実していないのですが、よく使うコマンドは実装したので公開しました。 興味ある方は使って見て頂ければと思います。 今後は少しずつ改善・機能を増やしていくので、 使ってみた感想などを頂けると助かります。 2018/09/26 追記 docuiの実装について記事を書きました。 アジェンダ コンセプト 導入方法 各パネルの概要 各パネルの操作 image list container list volume list detail docui

    Goで直感的に簡単にdockerを操作できるCUIツールを作りました
  • Vue.js + Golangでタスクリスト作ってみた - ボクダイモリ

    Vue.jsとgolangを使って何か作ってみたかったので試しにタスクリストを作ってみました。 github.com Vue.jsの書き方やgolangAPI実装はmattnさんのブログを大いに参考にさせて頂きました。 mattn.kaoriya.net 見た目はこんな感じです。 WebアプリケーションフレームワークはEcho、ORMgormを利用しています。 また、Dockerの勉強も兼ねてフロントエンドとバックエンドの環境を立ち上げられるよう設定ファイルも書いてみました。 バージョン確認 $ go version go version go1.10 darwin/amd64 $ node -v v9.8.0 $ npm -v 5.8.0 なお、環境構築の手順は割愛します。 フロントエンドの実装 タスクリストの機能は次の通りです。 - タスクの一覧表示 - タスク作成 - タスクの完

    Vue.js + Golangでタスクリスト作ってみた - ボクダイモリ
  • Raspberry Piとgo言語で部屋のコンディションを記録してグラフ化した - 丁寧に手を抜く

    部屋のコンディションをRaspberry Piとセンサー使って、3分ごとに記録してグラフ化するところまで出来た! 今留守にしているので、外気とちゃんと連動してるのが分かる。 これで自分の調子がいい時・悪い時の部屋のコンディションが調べられる☺️ もうすぐ二酸化炭素濃度センサーも届くので楽しみ💪 pic.twitter.com/WIoihOcZPw— TAKUYA🐾個人開発うノウハウを書く (@craftzdog) September 3, 2018 自分のプロダクトばかり作っていると技術の幅も狭まってしまうので、定期的に趣味がてら題材を見つけて普段使わない技術に触れている。 自分にとってベストな部屋のコンディションが知りたい 今回は兼ねてからやりたかった、自分の部屋の温度や湿度などのコンディションを数分ごとに記録してグラフで可視化すること。 体調と空気の質は関連が深い。 気圧が低い

    Raspberry Piとgo言語で部屋のコンディションを記録してグラフ化した - 丁寧に手を抜く
  • チョットできるGoプログラマーになるための詳解GoDoc - Qiita

    わかりましたか?よくわかりませんよね?まあ、godocとgo docは同じドキュメントツールですが、別のツールです。家と元祖みたいなものとして、長らく平行で提供されてきました。ちょうどこの記事を書いている少し前にリリースされた1.11で、godocの方がウェブだけになるとリリースノートに書かれました。 また、godoc.orgのサーバーはローカルのgodocコマンドよりも機能が増えていたり、テンプレートが微妙に違ったりします。とはいえ、ドキュメントを書くときはこれらの違いはそこまで気にすることはありません。 2020/09/19追記: 現在はpkg.go.devが稼働を開始し、godoc.orgのページにアクセスするとこちらへのリダイレクトをするかどうかを問い合わせるバナーが出ます。将来的にはこちらに一化されると思います。開発者が行うべきこと、記述すべきことは差はありません。このドキュ

    チョットできるGoプログラマーになるための詳解GoDoc - Qiita
  • クリーンアーキテクチャの書籍を読んだのでAPIサーバを実装してみた - Qiita

    はじめに クリーンアーキテクチャの書籍を読んだので、実際にクリーンアーキテクチャの考え方を採用したREST APIGO言語で実装してみた。 ↓↓↓↓ソースコード↓↓↓↓ https://github.com/yoshinorihisakawa/sample-api-hoop/tree/develop この記事ではクリーンアーキテクチャの説明というよりかは、実装ベースの実践的な内容にしている。 対象読者 ・クリーンアーキテクチャで実装されたソースコードを理解したい人 ・クリーンアーキテクチャの右下の図がよくわからない人 ・アーキテクチャについて勉強を始めた初心者 クリーンアーキテクチャとは? クリーンアーキテクチャとは、8th Light, Inc.のブログ記事で提案されている。 一言で言うと、依存関係をコントロールし持続可能なソフトウェアを実現するための体系的な手法である。 ※ DIやD

    クリーンアーキテクチャの書籍を読んだのでAPIサーバを実装してみた - Qiita
  • Go言語で書いた Web アプリケーションの習作をサービス化して公開するところまでやってみた - えいのうにっき

    もともと数ヶ月前から、Go言語によるWebアプリケーション開発 を読みながら Go での Webアプリケーション開発の勉強をしていた。 Go言語によるWebアプリケーション開発 作者:Mat RyerオライリージャパンAmazon 「実際に動くもの」を、「手を動かして作りながら学ぶ」のが僕は好きで、今回も同様、それを楽しんでやっていたのだけど、思いの外それっぽいものができあがってしまって。これをそのままローカルで動かすだけじゃおもしろくないな、もったいないな、と思ったので、それをサービス化して公開するところまでやってみた。 かんじんのアプリケーションは↓これ。Yukizuri と書いて「ゆきずり」と読む。 https://yukizuri.moshimo.worksyukizuri.moshimo.works ログインもない、ログも残らない、そんな「ゆきずり」の会話を楽しむチャットサービス

    Go言語で書いた Web アプリケーションの習作をサービス化して公開するところまでやってみた - えいのうにっき
  • Go Fridayこぼれ話:非公開(unexported)な機能を使ったテスト #golang | メルカリエンジニアリング

    はじめに メルペイ エキスパートチームのtenntennです。 メルカリグループでは、毎週金曜日にGo Fridayという社内勉強会を開催しています。 毎週やっているとそれなりに知見が溜まってくるので、定期的に”こぼれ話”としてブログを書こうという話になりました。 今回の記事では、先日のGo Fridayで話題にあがった非公開な機能を使ったテストについて扱いたいと思います。 なお、Goにおけるテストの手法やテストしやすいコードの書き方については、GopherCon 2017でも発表があったmitchellhさんの”Advanced Testing with Go”(スライド/動画)が参考になります。テーブル駆動テストやテストヘルパーなど非常に勉強になるので、まだ見たことのない方はぜひスライドや動画をご覧ください。 TL;DR Goのテストではテスト対象とテストコードを別パッケージにできる

    Go Fridayこぼれ話:非公開(unexported)な機能を使ったテスト #golang | メルカリエンジニアリング
    teracy_junk
    teracy_junk 2018/08/08
    『(_test.goのサフィックスつけて)パッケージ名をテスト対象と同じにすることでテストの時のみにアクセスできる変数や関数を作ることができます』実際に標準パッケージでも使われている、と
  • みんなのGo言語 | 技術評論社

    概要 注目のプログラミング言語Goを習得するメリットはいくつかあります。シンプルな言語設計のため学習しやすく、整理されたコーディング規約によりチーム開発で運用しやすいこと。マルチプラットフォームに対応し、さまざまな環境へのツールをつくるときに有用であること。インフラ部門のスループットの重い作業の処理速度を並列実行により改善できること、などが挙げられます。Cなどの軽量言語やLL言語(Ruby/Perl/Pythonなど)を使っているのであれば、Go言語を利用しそのメリットを享受できるでしょう。書で紹介するTipsや利用方法を参考にすれば、Go言語を適材適所で利用するための勘所をつかむことができます。 目次 第1章Goによるチーム開発のはじめ方とコードを書く上での心得(松木雅幸) 1.1 開発環境の構築 1.2 エディタと開発環境 1.3 Goをはじめる 1.4 Goらしいコードを書く 第2

    みんなのGo言語 | 技術評論社
  • go言語初心者が図を書きながらgoroutineやgo channelを理解する(Part2) - Qiita

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

    go言語初心者が図を書きながらgoroutineやgo channelを理解する(Part2) - Qiita
  • Go by Example

    この文書は、Go by Example の日語訳となります。 Go は、オープンソースの プログラミング言語です。スケールしやすく、安全な、信頼性の高い ソフトウェアを開発できるように設計されています。詳しく知るには、 公式ドキュメント を読んでください。 Go by Example は、コメント付きの サンプルプログラムを使った、ハンズオン形式の Go 入門です。 最初のサンプル に進むか、 下のリストから読んでください。 特にことわりがない限り、ここでのサンプルは Go の最新メジャーリリース を前提としており、新しい言語機能を使っている可能性があります。うまく動作しない場合は、 最新版にアップグレードしてください。 Hello World Values Variables Constants For If/Else Switch Arrays Slices Maps Functio

    teracy_junk
    teracy_junk 2018/08/02
    Go by Exampleの日本語訳あった。捗る
  • Go の channel 処理パターン集 | Hori Blog

    Hori Blogフリーランスでバックエンドエンジニアとして活動している Ryota Hori のブログです。 最近はテック系記事より雑記ブログ気味。 この記事は Go Advent Calendar 2017 の 1 日目の記事です。 Go の長所に goroutine による非同期処理がありますが、どうしても channel の取り回しで黒魔術化しがちです。少しでも闇を減らしていきたいので、 channel らへんの取り回しについてパターンをまとめました。チートシート的に使えれば嬉しいです。 Go の channel の基礎 入門資料として使いたいので、題に入る前にざっくり基礎を。 定義のパターン channel には capacity という概念があります。 capacity は channel 内でバッファリングしておける容量のことで、 capacity に空きが無い場合は送信側

    Go の channel 処理パターン集 | Hori Blog
  • Big Sky :: golang の channel を使ったテクニックあれこれ

    golang の channel は他の言語に見ない独特のパラダイムを開発者に提供します。 単純にスレッド間でメッセージングをするだけでもC言語で書けばそこそこの量になったり、慣れていない人であればどう実装すればいいか分からないなんて事もあったと思います。しかし golanggoroutine/channel は、やっている内容の割にとても容易にスレッド間通信やキューイング、処理の受け待ち等を実装できる様になっています。尚、channel をどの様に適用したら良いかについては以下を参照下さい。 Big Sky :: Golang の channel の使い所 golang の特徴と言えば goroutine と channel ですが、その使いどころに悩む人もおられる様です。 goroutine は非同期に実行される処理、channel はその grout... http://mat

    Big Sky :: golang の channel を使ったテクニックあれこれ
  • インタフェースの実装パターン #golang - Qiita

    はじめに この記事は,以下の過去にQiitaに投稿したインタフェースの実装パターンの記事に,typeやメソッド,インタフェースの基的な説明を追加してわかりやすくしたものです. Go言語における埋め込みによるインタフェースの部分実装パターン structにinterfaceを埋め込んで,動的に入れ替えるパターン まずtypeとメソッド,基的なインタフェースの実装方法についておさらいすることで,さまざまなインタフェースの実装パターンを扱う準備をしましょう. typeで型を宣言する まずはじめに,Go言語における型の宣言方法をおさらいします.Go言語をはじめたばかりの方の中に,typeの使い方を限定的にしか理解していない方をよく見かけます.ご存知のとおり,typeは型を宣言するために使うキーワードです.以下のように,構造体型やインタフェース型の宣言の際に,使用することが多いでしょう.

    インタフェースの実装パターン #golang - Qiita
    teracy_junk
    teracy_junk 2018/08/02
    『インタフェース型の宣言時に指定したメソッドリストのメソッドをすべて実装することで,インタフェースを実装することができます.Javaなどのように,implementsなどを使って明示的に実装する必要はありません』なる
  • 最近流行っている(?)GraphQLについて書くぜ - Qiita

    この記事は go Advent Calendar 2017 の15日目の記事です。 introduction goapiを書いている皆さんは、apiのインターフェースとして何を使用していますか? json形式でレスポンスを返すのが一般的だと思いますが、grpcGraphQLなど様々な技術が最近登場しています。 今回は、GraphQLの概要とgoでの実装について解説したいと思います。 GraphQLの概要 GraphQLはFacebookが開発したクエリ言語です。2015年のReact.js Confで発表されました。 国内での流行りはそれほどではありませんがgithubが採用したりいくつかの企業が採用したことによって知名度が上がりつつあります。 GraphQLの大まかな特徴として、クライアントが欲しい情報を指定することが可能ということと、1度のリクエストで多く(任意)のリソースの取得が

    最近流行っている(?)GraphQLについて書くぜ - Qiita
  • GraphQLを勉強したのでGolangで書いてみた - 生涯未熟

    ここ最近とてもGraphQLが盛り上がってますね! イベントも続々と開催されていたりするので、勢いを感じています。 そんなGraphQLを遅まきながら勉強してみました。 GraphQLとは? 既に様々な記事で論じられている内容なので割愛します。 この記事が個人的に一番分かりやすかったです。 qiita.com 実装してみよう! それでは早速実装してみます。 今回はGolangを使い、サーバサイド側の実装を行います。 ライブラリ ライブラリとしては以下を使いました。 github.com こちらとも迷ったのですが、今回はStar数の多い方を使いました。 github.com あとは、簡単にDBを使いたかったためSQLXを使用しました。 github.com コード 実装してみたものは以下になります。 github.com 慌てて作ったものになるので、汚いですが一応動きます! コード内でキモと

    GraphQLを勉強したのでGolangで書いてみた - 生涯未熟
  • golangでGraphQLの素振りを行った - Qiita

    golangGraphQLの素振りを行ったので,詰まったところ実装周りを書いていきます. GraphQLとは 一つのエンドポイントに独自のクエリ言語を投げることで,多くのリソースを一回のリクエストで大量にゲットできるすごいもの. RESTだと一つのエンドポイントごとにリソースを取得するのが,普通だと思うのでどうしてもエンドポイントが増えていきます.他にもリソースが増えてくると,複数リクエストを送らないといけなかったりいろいろきついです. そんな問題を解決するために,GraphQLは出てきました. こちらの記事👇にすごく詳しく書かれているので,ぜひ読んでください. GraphQL入門 - 使いたくなるGraphQL golangでのGraphQL実装 ライブラリがあるので,それを使用します. 今回使用したライブラリ👇 graphql-go/graphql 書いたもの 実際に書いたコード

    golangでGraphQLの素振りを行った - Qiita