タグ

goに関するcpwのブックマーク (20)

  • 強い思想: Go を Web 開発に採用する上で

    Go は Web 開発に向いているか? 最も向いている領域は「CLI ツール」「ミドルウェア」「マイクロサービス」だと思っている。なぜならそれらはコードベースを比較的小さく抑えることを前提としているからだ。 Go は大きなコードベースを抱えやすい設計の言語になっていない。 ミドルウェアとマイクロサービスに関しては小さく作ることが正義。 CLI ツールに関しては単一責務なツールであれば小さくなるが,複数を束ねるツールであっても Web サービス開発に比べれば考えることは少なくて済む。 Web 業界における「一般的な Web 開発」,すなわちモノリスを基とした中規模以上の開発にははっきりと 向いていない と言うべきだろう。 フラットパッケージは正義か? 私が SNS で何度か言及した以下の記事がある。 フラットパッケージ戦略は,確かに Go文化圏においては一定の支持を集めている。Go

    強い思想: Go を Web 開発に採用する上で
    cpw
    cpw 2023/09/10
    Webに使うのは悪くないのだけれど大域脱出がないのが辛すぎる。一生懸命エラー取り回ししても結局500返すだけなんよ。ここだけなんとかなって欲しい。
  • 業務アプリケーション開発にGoを採用する理由

    この記事は MICIN Advent Calendar 2022 の24日目の記事です。 前回は熊沢さんの2つの新規事業立ち上げで経験したタイプ別MVP検証の進め方でした。 はじめに 記事では、業務アプリケーションのバックエンドとしてGoを採用することによるメリットを、実際の業務経験を振り返りつつ考察してみます。 近年では多くの企業でGoが採用されています。その採用理由は、「並行処理をたくさん行いたいから」「学習コストが低いから」「フットプリントが小さくコンテナベースのプラットフォームに向いてるから」「Googleが使ってるから」「高速だから」といったところが挙げられるんじゃないでしょうか。 一方で、単なるモノリスなAPIとしてGoを選ぶ必要はないんじゃないのか、といった声もよく聞きます。「初期フェーズはスピード重視でRuby on Railsが最強だ」「枯れた技術であるJava + S

    業務アプリケーション開発にGoを採用する理由
    cpw
    cpw 2023/01/02
    帯域脱出だけ用意してくれれば自分の理想の言語になるのに、errをちまちま返さないといけないんだよなぁ
  • Goのポインタ渡しは値渡しよりパフォーマンスが良いという誤解 - Qiita

    この記事は MicroAd Advent Calendar 2022 の12日目の記事です。 「Goのポインタは8バイトだから、ちょっとした構造体を値渡しでコピーするよりポインタで渡した方が早くなる」 長らくそう思い込んでいたのですが、以下の記事でポインタ渡しには意外なデメリットが多いことを知り、誤解だと気づきました。 この記事では自分なりにポインタのデメリットをまとめつつ、ポインタ渡しで当に良いのかを確認すべきパターンを紹介しようと思います。 ポインタが実は高価な理由 ポインタが指す値にアクセスする際にnilかどうかのチェックが必ず入る ポインタがnilの場合、Goはpanic()をおこす必要があるため ポインタは動的メモリアロケーションの原因になりがち ポインタが指す値はヒープ領域に置かれがち(絶対ではないけど一般的に多い) ヒープ領域は確保にまとまったメモリの検索、解放にGCが必要

    Goのポインタ渡しは値渡しよりパフォーマンスが良いという誤解 - Qiita
    cpw
    cpw 2022/12/25
    まじか。知らんかった。どれくらいサイズが大きいとメリットが大きくなるの?
  • AWS App RunnerがPHP/Go/.Net/Rubyのマネージドランタイムをサポート、コードを簡単にWebアプリ化してスケーラブルに実行可能

    Amazon Web Services(AWS)は、コンテナ化したWebアプリケーションのスケーラブルな実行を簡単に行える「AWS App Runner」で、PHP/Go/.Net/Rubyのマネージドランタイムをサポートしたことを発表しました。 App Runnerはコンテナ化したWebアプリケーションを簡単にデプロイし実行できるサービスです。オートスケール、ロードバランスなどの管理は全てクラウド側に任せることができるため、ユーザーはアプリケーションの開発に集中できます。 利用するには、コンテナイメージをApp Runnerにプッシュする方法に加えて、GitHubでソースコードをプッシュするとApp Runnerがそれを検知して自動的にコンテナ化し、実行してくれる機能も備えています。 ただしこれまではPython3もしくはNode.jsで実行可能なコードにしか対応しておらず、それ以外の言

    AWS App RunnerがPHP/Go/.Net/Rubyのマネージドランタイムをサポート、コードを簡単にWebアプリ化してスケーラブルに実行可能
    cpw
    cpw 2022/10/31
    これで使われるようになるかな?
  • Goで作ったロジックにWebUIをつけてGitHubページに公開する | フューチャー技術ブログ

    ちょっとしたツールをGoで作ってみたのですが、わざわざインストールしなくてもいいようにWebのUIをつけてブラウザで使えるようにしてみました。作ってみたのは以下のツールで、Markdownのリスト形式でざっと下書きしたテーブルの設計をSQLとか、PlantUMLとかMermaid.js形式のERDの図にします。 https://shibukawa.github.io/md2sql/ ウェブフロントエンド部分はNext.jsの静的サイトで、GoWASMにしてロードして実行しています。WASMを使うのは初めてなのであえて選んでみました。 GoWASM化するもともとCLIツールは作っておりました。CLIのメインはcmd/md2sql/main.goで作っていました。この中でやっていることは kingpin.v2のオプションパース 指定されたファイルを読み込み(あるいは標準入力) パース 指定

    cpw
    cpw 2022/10/24
  • 【悲報】ワイPythonプログラマー、Go言語が難しいすぎて咽び泣く : IT速報

    Go言語ってまじでゴミだよな 少しなにかしようとすると、馬鹿みたいに長ったらしいスペルで ライブラリインポート強要されるし

    【悲報】ワイPythonプログラマー、Go言語が難しいすぎて咽び泣く : IT速報
    cpw
    cpw 2022/08/14
    やはりGoをやってる人は今のところあるレベル以上を担保できる。
  • Goで軽量なデスクトップアプリ作成

    Lorca+SvelteKitでやってみる! https://github.com/zserge/lorca https://github.com/sveltejs/kit あらかじめ必要なもの go(version 1.17.2以降) nodejs(16.9.0以降),npm(7.21.1以降) Chrome/Chromium/Edgeのいずれか プロジェクトの開始 mkdir sample-gui cd sample-gui go mod init sample-gui npm init svelte@next frontend // Choice "Svelte app template" is "Skelton Project". // Choice "Use TypeScript" is No. // Choice "ESLint" is No. // Choice "Prett

    Goで軽量なデスクトップアプリ作成
    cpw
    cpw 2021/10/25
    ちょと調べてみよう
  • Go言語を嫌う6個の理由 - さめたコーヒー

    ある仕事でそれまでRubyで書かれていたサーバーサイドをGo言語ですべて書き直すことになって、それまでRubyのコードを書いていた僕はそのままGo言語を書くことになった。その仕事そのものはお客様(僕は外部委託のエンジニアとして参画していた)との関係も良好で素晴らしい仕事をさせてもらうことができたと思っているが、Go言語だけは好きになれなかった。 はじめは流行っている言語だから何か素晴らしい魅力があるのではないかと期待していた。しかし書き始めるうちにどうも自分には合わないなと思うようになり、2年ほど書いて案件の契約が終わる頃にはGo言語でサーバーサイドを書くことは危険だとさえ思うようになった。 あれから数年がたちますますGo言語の案件は増えている。サーバーサイドを書く選択肢としてGo言語を選択する会社も増えている。しかし当にそれでいいのか?ただ流行っているからという理由だけで選択するにはあ

    Go言語を嫌う6個の理由 - さめたコーヒー
    cpw
    cpw 2021/09/17
    工夫ができる言語だと、みんな工夫して玄人っぽさを出そうする。たいてい読み解きにくい。そしてこれ以上やると読みにくいとな読みにくくないとか不毛な議論になり生産性が落ちる。エラー周りは微妙
  • 人生を豊かにする文字列diff入門 | フューチャー技術ブログ

    春の入門祭りの8日目です。 文字列の新旧の違いを表現する時によくdiffをとるとか言いますよね。そこで実行されるのが差分アルゴリズムです。差分のアルゴリズムって結構知れば知るほど難しいやつです。「より良い差分」という基準が、状況によって変わるからです。ヒューリスティックなやつです。例えば、HTMLの説明の文章を書いていたとします。タイトルをテーブルに書き換えてみたとします。 どちらも間違ってはおらず、この差分を元にパッチを当てたりも可能です。ただ、読んだ時の読みやすさが違います。 これはもちろん前者と答える人の方が多いでしょう。だって、タグという意味の塊が維持されていますからね。 これは究極的にはわかりやすいdiffというのは「意味」を理解しないと作れないということを意味します。これがdiffは簡単なようで難しいと書いた理由です。もちろん、ほどほどの工数で、ほどほどの見た目のdiffも作成

    人生を豊かにする文字列diff入門 | フューチャー技術ブログ
    cpw
    cpw 2020/06/10
    ほー。面白い。けどなかなか使う事なさそう。
  • Goを始めて1年間で最高にお世話になったGo関連ブックマークを晒します。 - Qiita

    自分は普段はChromeのブックマークを使ってよく見返す記事を保存しています。Goを一年間書いてきてブックマークを整理したのですが、せっかくなのでお世話になったブックマーク記事を晒します。 Blog & Serial The Go Blog Goの公式ブログ。深いところまでしっかり書かれているので、調べたいトピックはまずはここで調べたい。 https://blog.golang.org/ Practical Go GoのcontributorであるDave Cheneyさんのブログです。Goで開発&運用する上でのアドバイスが書かれており、入門記事だけでは得られないノウハウがふんだんにまとめられています。 https://dave.cheney.net/practical-go Goならわかるシステムプログラミング @shibukawaさんの連載です。Go低レイヤーを学んでいきます。根底の

    Goを始めて1年間で最高にお世話になったGo関連ブックマークを晒します。 - Qiita
    cpw
    cpw 2019/10/11
  • 新しいアンケートシステムをつくった(Goとシステム概要編) - エムスリーテックブログ

    エムスリーエンジニアリンググループの滝安(@juntaki)です。 私のチームでは製薬会社のマーケティング支援事業として、会員向けのアンケートを行っています。つい先日、新しいアンケートシステムのIbisをリリースしました。 この記事ではシステムをつくった背景とその概要を説明します。続きの記事でチームメンバーが技術的な詳細についても説明します! アンケートのむずかしさと、Ibisをつくったわけ アンケートシステムは、かんたんに言ってしまえばフォームジェネレーターです。 ざっくりの要件としては、設定に従いアンケートの画面が動作すること、回答が適切なフォーマットで利用できること、の2点です。 ……そして、細かくは、バリデーション、回答による条件分岐などについて考慮する必要があります。また、当然それらをWebから管理できるわけです。難しく言うと、メタWebシステムといえる複雑さがあります。 すでに

    新しいアンケートシステムをつくった(Goとシステム概要編) - エムスリーテックブログ
    cpw
    cpw 2019/09/27
  • https://acrophobic.me/post/2018-09-09-state-of-gui-dev-with-go-2018/

    cpw
    cpw 2018/09/12
    おお、タイムリー。やはりqtかElectronになるのか。Electron重いんだよなー。せめて各OSに乗ってるブラウザをアプリとして起動できればなぁ。配布コストが小さくなるんだけどhtaの通った道か。
  • AlphaGo Zeroの論文の要約 : ブログ

    AlphaGo Zeroが自己学習のみで過去最強になったというニュースが出たのでその元論文を読み、要約をしました。 まず感想を述べると、過去数千年にわたって蓄積してきた知識をAIが数時間で発見することに対する気持ち良さがありました。人間などクソらえと思っておりますので、こう言うニュースはとてもスッキリします。そして人間の発見していない打ち筋の発見にも感動しました。これこそがAIの真髄だと信じています。人間が見えていないものをAIが見つける、僕もいつかそんなことをしてみたいと思いながら生きています。 あともう一つ重要だと思ったのは、とてもネットワーク構造および学習過程が簡素化されたことです。マシンパワーも過去に比べて非常に少なく済み、個人でもすぐに再現実験ができそうなくらいです。AIが強くなることと、構造および学習のsimplerが同時に達成できていることが質的だと思います。 一応、下記

    AlphaGo Zeroの論文の要約 : ブログ
  • 『ポケモンGO』があまり社会的に叩かれていない理由はいくつかの批判層を黙らせる要素が揃っているから

    タケダ1967 @takeda1967 ポケモンGOがあまり社会的に叩かれないのは常に経済効果に例えないと気が済まない勢は株価が上がって何も言えないのと、いい大人が気持ち悪い、日の幼児性が云々言わないと気が済まない勢は海外先行ヒットなので何も言えなくて、あとゲームひきこもり助長云々勢は言うに及ばずだからだと思います 2016-07-24 06:59:34 タケダ1967 @takeda1967 これ何ヶ月か日先行でサービス開始してたら「街は異様な風景」「いい大人がスマホ画面を凝視して徘徊」「不愉快極まりない」「政治の腐敗に無関心な大人がたかがゲームに夢中。日の現状の象徴と言わざるを得ません。世界に対して恥ずかしい」とか絶対言われてたと思う(笑 2016-07-24 07:05:07 タケダ1967 @takeda1967 昔から「オトナとして恥ずかしい云々」の人たちは海外評価にから

    『ポケモンGO』があまり社会的に叩かれていない理由はいくつかの批判層を黙らせる要素が揃っているから
  • インフラエンジニアがGo言語でオペレーションツールを書くことについて - Hatena Developer Blog

    ウェブオペレーションエンジニアの id:y_uuki です。 はてなの東京オフィスで先月開催されたGo 1.6 Release Partyで、「Writing Tools in Go For Ops Engineers」というタイトルで発表しました。 発表では、最近作ったGo製ツールを紹介し、なぜGoインフラエンジニアにとって良い言語であると感じているかを話しました。 最近作ったGo言語のツールの紹介 mkr Grabeni Droot gokc インフラエンジニアGoを利用することのメリット 1. サーバへの配布が簡単 2. サーバ上で高速開発できる 3. 最終的に成果物をはやく作れる その他 発表資料 あとがき 最近作ったGo言語のツールの紹介 以下の4つのツールを作りました。いずれもはてなでのproduction利用を想定したものになります。 mkr mkrははてなで開発している

    インフラエンジニアがGo言語でオペレーションツールを書くことについて - Hatena Developer Blog
    cpw
    cpw 2016/03/24
    なにをしてるのかすぐその場でわからないので、小さい書捨てるものはGoでは書いて欲しくないなぁ。プロジェクトととして起こすレベルのものであれば良いような気がする。
  • Androidアプリが開発可能になったGo 1.4が正式リリース

    Go言語の最新版となるGo 1.4がリリースされました。Go 1.4ではAndroidがサポート対象プラットフォームとして加わり、Go言語だけでAndroidアプリケーションの開発が可能になっています。 Go言語は2009年に開発が始まった言語で、Googleがオープンソースで開発しています。シンプルにコードを記述でき、タイプセーフかつメモリセーフにできているため安全なプログラムを記述しやすく、並列処理の記述も容易、コンパイルや実行が高速などの特長があります。 現在、LinuxMac OS X、Windows XP以降、FreeBSD 8以降のOSに対応しており、Google App Engineでもサポートされるようになりました。 Go 1.4では過去のバージョンとの互換性を維持し、これまでのコードはほぼそのままコンパイルし実行できると説明されています。 Go 1.4で最大の新規機能は

    Androidアプリが開発可能になったGo 1.4が正式リリース
    cpw
    cpw 2014/12/15
    iPhoneもGoで開発できるようにならないかな。
  • チャットで学ぶ Go ネットワークプログラミング : DSAS開発者の部屋

    簡単なチャットプログラムは、ネットワークプログラミング用のフレームワークでは定番のサンプルプログラムです。 echo サーバーが Hello World とするなら、チャットは FizzBuzz といったところでしょう。 とりあえず動くだけのチャットならだれでもすぐに作れるようになりますが、まじめにチャットを作ることで、 ネットワークプログラミングで考えないといけない点やエラー処理の重要な基礎を学ぶことができます。 ということで、 Go でシンプルなチャットを実装してみました。 (ソースコード) 以降、何を考えてどういう設計を採用したのかを解説していきます。 考慮すべきポイント 特定のクライアントへの送信に長時間待たされた場合に、他のクライアントへの送信が遅れないようにする。 クライアントを切断するのは、 (1)ルーム側から kick する場合, (2)受信エラー, (3)送信エラー の3

    チャットで学ぶ Go ネットワークプログラミング : DSAS開発者の部屋
    cpw
    cpw 2014/09/04
  • WindowsでGo言語でGUIするにはWALKがいいかもしれない - Qiita

    Go言語でGUIしたいかー?! おー!! とまあ、そんなノリで始まります。 Go言語でGUIするには? Go言語でGUIするライブラリは意外と色々あります。 go-uiGo言語 GUI」でググった時に、おそらく一番情報の多いライブラリ。ただ情報はあるけど大して気合の入ったライブラリではない模様。 go-uiなんて大層な名前をしてるけど、その実態はQtバインディングだったりする。 開発はもう終わったみたいで、 GoQt というのが後継らしいけど、 GoQt の方はまだリポジトリを作っただけのような状態だった。 Windowsで導入するのがほぼ無理ゲー。(最重要事案) go-gtk mattn氏が開発の中心となっているGo言語のGtk+バインディング。多分Go言語のGUIライブラリで一番開発が活発。 Windowsでも動くらしいけれど、Win64な環境ではしったこっちゃないし、そもそもGt

    WindowsでGo言語でGUIするにはWALKがいいかもしれない - Qiita
    cpw
    cpw 2014/05/22
  • Go言語でag(The Silver Searcher)ライクな高速検索ツールをつくった。EUC-JP/Shift-JISも検索できマス。

    いまや高速パターン検索といえばag(The Silver Searcher)ですが、検索対象がUTF-8のテキストを前提としているため、EUC-JPやShift-JISといったファイルを検索するのに課題があります。 これまで、それらの日語文字セットを検索できるようにするため、色々とagの改造、公開を行っていました。 ag(The Silver Searcher)でEUC-JP/Shift-JISのファイルも検索できるようにしてみた 日語圏特化型ag -白金- の配備が完了しました しかし、特定の国の文字コードだけに特化した修正というのをmasterに取り込んでもらうわけにもいかず、派生ブランチとして追随するのも、やはり面倒… そこで年始にGo言語を触ったのをきっかけに、Go言語でパターン検索ツールをつくってみました。 せっかくなのでポストagを目指して、プラチナサーチャー(The Pl

    Go言語でag(The Silver Searcher)ライクな高速検索ツールをつくった。EUC-JP/Shift-JISも検索できマス。
    cpw
    cpw 2014/01/16
  • プログラミング言語 Go ドキュメント — プログラミング言語 Go ドキュメント v0.1 documentation

    翻訳プロジェクトについて¶ この翻訳は Sphinx を使って以下のサイトで共同で行っています。翻訳に参加ご希望の方は、 yoshiki at shibu.jp までご連絡ください。 http://bitbucket.org/shibu/golang-docjp/ 翻訳ルール¶ まずはBitbucketのアカウントを作ってご連絡ください。書き込み権限を設定します。 翻訳したいものがある方は上記のBitbucketのサイト上でチケットを発行してください。Issueタブです。大項目単位です。 翻訳は読みやすさを考えて「です・ます」調で統一します。 Sphinxディレクティブを使った相互リンクは暇なときに設定します。もしくは書き込み権限のある方は設定してもらっても構いません。 Mercurialでcloneして翻訳してからcommit、pushしてください。commit前にpull&update

    cpw
    cpw 2009/11/16
  • 1