#author("2023-04-03T07:54:35+00:00","default:admin","admin") #author("2023-04-14T08:36:30+00:00","default:admin","admin") -[[Gophers Japan:https://gocon.connpass.com/]] -[[Go Conference:https://gocon.jp/]] --[[Go Conference 2022 sessions:https://gocon.jp/2022spring/ja/sessions/]] -[[Go タグの記事 - フューチャー技術ブログ:https://future-architect.github.io/tags/Go/]] -[[GoとTypeScriptはいいぞおじさん:https://developers.gmo.jp/30750/]] -[[とほほのGo言語入門:https://www.tohoho-web.com/ex/golang.html]] -[[Golangでいい設計を実践するための6つのツール:https://zenn.dev/uma002/articles/18b8eb7854745b]] -[[Go Secure Coding Practice の日本語翻訳を公開します:https://tech.techtouch.jp/entry/gosecurecoding-jajp]] --[[日本語翻訳:https://github.com/techtouch-inc/Go-SCP-jaJP/blob/main/dist/go-webapp-scp.pdf]] -[[Go言語とVue.jsで作るユーザー認証アプリ~まとめ~:https://selfnote.work/20210202/programming/golang-and-vue3-authapp/]] --[[Go言語とVue.jsで作るユーザー認証アプリ~バックエンド開発編Vol1~:https://selfnote.work/20210202/programming/create-authentication-app-with-golang-and-vue3-2/]] --[[Go言語とVue.jsで作るユーザー認証アプリ~バックエンド開発編Vol2~:https://selfnote.work/20210203/programming/create-authentication-app-with-golang-and-vue3-3/]] --[[Go言語とVue.jsで作るユーザー認証アプリ~バックエンド開発編Vol3~:https://selfnote.work/20210204/programming/create-authentication-app-with-golang-and-vue3-4/]] --[[Go言語とVue.jsで作るユーザー認証アプリ~バックエンド開発編Vol4~:https://selfnote.work/20210205/programming/create-authentication-app-with-golang-and-vue3-5/]] -[[Goのなぜ問答:https://zenn.dev/nobonobo/articles/9a9f12b27bfde9]] -[[Go言語(golang)とは? 特徴・できること・将来性を徹底解説:https://tech-stock.com/magazine/what_is_golang/]] -[[「泥臭さ」や「隙」があるからこそできるGoの運用と魅力 開発上の責任を持つ立場が感じるGo採用のメリット:https://logmi.jp/tech/articles/326290]] -[[Rust なのか Go なのか:https://python.ms/rust-or-go/]] -[[とってもやさしいGo言語入門:https://zenn.dev/ak/articles/1fb628d82ed79b]] -[[【連載】 ゼロからはじめるGo言語:https://news.mynavi.jp/techplus/series/gogogo/]] -[[【Go言語入門】Go言語の特徴を徹底解説!Go言語でできることや作れるもの・C言語との違いは?メリット・デメリットも紹介:https://agency-star.co.jp/column/go-programing-language]] -[[プログラミング言語「Go」とは?特徴と習得のメリット・デメリットを解説:https://meister-kentei.jp/magazine/programming/2524/]] -[[Go言語(golang)とは? 特徴・できること・人気の理由について徹底解説:https://type.jp/et/feature/9445/]] -[[Goの苦手な領域:https://zenn.dev/nobonobo/articles/3f5310248567a1]] -[[グーグル、C/C++に代わる新言語「Go」をOSSで公開:http://www.atmarkit.co.jp/news/200911/11/go.html]] -[[Google の新プログラミング言語 Go をMac OSX にインストール - おっとおれは骨付き肉!:http://d.hatena.ne.jp/masibonge/20091111/1257919052]] -[[新世代の並列処理言語Google Goをひもとく:http://www.atmarkit.co.jp/fcoding/index/go.html]] -[[仕事の言語に飽きてきた人はGoを使ってみてほしい――『スターティングGo言語』著者が語るGoのパワー:https://codezine.jp/article/detail/9359]] -[[Goならわかるシステムプログラミング:http://ascii.jp/elem/000/001/235/1235262/]] -[[GoでAPIサーバを開発する:https://qiita.com/zakiry/items/728872598c546eefb4df]] -[[GoでとあるAPIサーバを実装し直した話:https://tech.mercari.com/entry/2016/12/19/180000]] -[[Go で API サーバーを開発してきて1年が過ぎました:http://aial.shiroyagi.co.jp/2016/07/golang-api-server-developing/]] -[[グーグルのプログラミング言語「Go」--開発者が明かした好む理由と好まない理由:https://japan.techrepublic.com/article/35135644.htm]] -[[[golang]goaを使ってAPIの設計・開発し、OpenAPIドキュメントを自動生成する:https://kuroeveryday.blogspot.com/2018/05/goa-design-first-api-generation.html]] -[[Scala で書いたマイクロサービスを Go で書き直した話:https://tech.jxpress.net/entry/2019/12/02/071352]] -[[「Goの父」ロブ・パイクの「プログラミング5カ条」、ネット上で話題に:https://gigazine.net/news/20200817-rob-pike-5-rules-programming/]] -[[満足度は高いプログラミング言語「Go」--一部機能の不足に不満も:https://japan.zdnet.com/article/35170398/]] -[[GoでDBを使ったアプリを書くときみんなどうしてる? Tonamelはどうしているか晒してみます:https://techblog.kayac.com/tonamel-db]] *概要 [#ga33e462] -言語機能や文法などの要素を極限まで削ったコンパクトなプログラミング言語 -改良されたC --厳密に定義された多数の基本型 --パッケージによる名前空間の導入 --ガベージコレクタによるメモリ管理 -コンパイル言語 -コンパイル速度が速い ... コードの修正→テスト実行のサイクルを快適に回すことに貢献 -マルチプラットフォームで動作 -OSへの非依存 --OSの標準的なライブラリに依存しない実行ファイルを生成 --OSが提供する共有ライブラリを使わない代わりに、自前で相当する機能をすべて保持する必要があるため、実行ファイルサイズは大きくなる -ガーベジコレクタ機能を備える -並行処理に強い --goroutine --channel -ポインタ型はあるが、ポインタ演算機能はない -簡潔性を目指して、以下の機能を外した --オブジェクト指向 --例外機構 --ジェネリクス ... v1.18 で導入 -[[なぜGo言語はエラー返却に例外機構を使わないのか:https://tmrtmhr.info/tech/why-does-golang-not-have-exceptions/]] -[[Go にジェネリクスがなくても構わない人たちに対する批判について:https://methane.hatenablog.jp/entry/2017/09/19/Go_%E3%81%AB%E3%82%B8%E3%82%A7%E3%83%8D%E3%83%AA%E3%82%AF%E3%82%B9%E3%81%8C%E3%81%AA%E3%81%8F%E3%81%A6%E3%82%82%E6%A7%8B%E3%82%8F%E3%81%AA%E3%81%84%E4%BA%BA%E3%81%9F%E3%81%A1%E3%81%AB%E5%AF%BE%E3%81%99]] -[[Re: Go にジェネリクスがなくても構わない人たちに対する批判について:http://kmizu.hatenablog.com/entry/2017/09/21/221433]] *導入事例 [#l960e288] -[[海外の導入事例:https://go.dev/solutions/#case-studies]] -[[日本の導入事例:https://github.com/golang/go/wiki/GoUsers#Japan]] -[[Ubie は Go と Node.js の会社になります:https://zenn.dev/ubie_dev/articles/4437cde02a672b]] -[[少人数での爆速開発を目指してgolang×GCPの技術選定をした話:https://zenn.dev/sh_komine/articles/35527f84a2be3a]] ... 大変参考になる -[[ReactとGo言語の実務を2日経験して感じたことをまとめてみた:https://kashiblog.net/react-go-project-1]] -[[業務アプリケーション開発にGoを採用する理由:https://zenn.dev/micin/articles/c5d12be524c675]] *学習 [#u72af74d] -[[Go入門の軌跡:https://future-architect.github.io/articles/20221101a/]] -[[フロントエンドエンジニアが3ヶ月で Go を覚えてバックエンド開発に参画するまで:https://zenn.dev/magicmoment/articles/how-to-become-a-gopher-202302]] *Goにないもの、どうする? [#a2cb935c] -[[Goのなぜ問答:https://zenn.dev/nobonobo/articles/9a9f12b27bfde9]] **クラス [#y915b909] -[[Go言語でハマったことメモ(クラス・継承):https://www.kwbtblog.com/entry/2020/04/07/055735]] -[[golangでクラスを使うには??(別ファイルで定義したクラスの利用も載せてみた):https://elsammit-beginnerblg.hatenablog.com/entry/2021/03/09/210613]] -[[Goはオブジェクト指向言語だろうか?:https://postd.cc/is-go-object-oriented/]] -[[Go言語でオブジェクト指向プログラミングの基本(型編):https://tech.uzabase.com/entry/2019/12/02/190000]] -クラスという概念は存在しない -クラス・オブジェクトが全く使えない。というわけではなく、構造体・インターフェースに置き換えることが出来、疑似的にクラスのように利用することが可能になる -Go言語は継承の使用を避け、 継承ではなくコンポジションを選択するという原則 に厳密に従っている -Goは、これを達成するのに、構造体とインターフェース間の部分型(is-a)とオブジェクトコンポジション(has-a)の関係を利用している **例外処理 [#r0c64609] -[[[Golang] エラーハンドリング:https://dev-yakuza.posstree.com/golang/error-handling/]] -[[「例外」がないからGo言語はイケてないとかって言ってるヤツが本当にイケてない件:https://qiita.com/Maki-Daisuke/items/80cbc26ca43cca3de4e4]] -[[Goのエラーハンドリングの考え方が良く分からない:https://zenn.dev/koduki/articles/2840dab22efc68]] -[[Go言語におけるエラーハンドリングを今一度振り返る:https://medium.com/eureka-engineering/go%E8%A8%80%E8%AA%9E%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%82%A8%E3%83%A9%E3%83%BC%E3%83%8F%E3%83%B3%E3%83%89%E3%83%AA%E3%83%B3%E3%82%B0%E3%82%92%E4%BB%8A%E4%B8%80%E5%BA%A6%E6%8C%AF%E3%82%8A%E8%BF%94%E3%82%8B-abe06c31daa4]] *他言語からの乗り換え [#p68b5ca3] **from PHP [#v40aff99] -[[Go Conference 2022 SpringでPHPからGoへの移行について発表しました:https://tech.yappli.io/entry/go_conference_2022_s_after]] -[[サーバーサイドの開発をPHPからGoにリプレイスすることでどのようなデメリットが考えられますか?:https://jp.quora.com/%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%B5%E3%82%A4%E3%83%89%E3%81%AE%E9%96%8B%E7%99%BA%E3%82%92PHP%E3%81%8B%E3%82%89Go%E3%81%AB%E3%83%AA%E3%83%97%E3%83%AC%E3%82%A4%E3%82%B9%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8]] **from JavaScript [#u89eacbe] -[[JavaScriptからGo言語に乗り換えた感想:https://www.kwbtblog.com/entry/2020/08/19/052224]] *トレンド [#p9fe8252] -[[これまでとこれからのGo:https://gihyo.jp/article/2022/08/tukinami-go-01]] -[[IT業界で最先端のGo案件が増加中[2022年]:https://geechs-job.com/tips/details/63]] *バージョン [#ddb060c7] -Goは年に2回、2月と8月に新しいバージョンをリリースする **[[1.20:https://tip.golang.org/doc/go1.20]] [#ed0504c7] -[[「Go 1.20.1」「Go 1.19.6」が公開、4件の脆弱性を修正:https://forest.watch.impress.co.jp/docs/news/1479118.html]] -[[Googleがプログラミング言語「Go 1.20」を公開、ランタイムが収集した情報を利用して次回のコンパイルで最適化:https://codezine.jp/article/detail/17314]] -[[Go1.20 New Features:https://zenn.dev/koya_iwamura/articles/bb9b590b57d825]] **[[1.19 (2022/8):https://tip.golang.org/doc/go1.19]] [#c3a87856] -[[プログラミング言語「Go 1.19」が公開 ~ドキュメントコメントがセクションタイトル・リンク・リストをサポート:https://forest.watch.impress.co.jp/docs/news/1429940.html]] **1.18 (2022/3) [#sd771224] -[[ジェネリクスを導入した「Go 1.18」が公開 ~「Go」言語の仕様変更としては過去最大級:https://forest.watch.impress.co.jp/docs/news/1395812.html]] -[[Go 1.18集中連載 ジェネリクス:https://future-architect.github.io/articles/20220209a/]] **1.19 [#b56b05e1] -[[プログラミング言語「Go 1.19」が公開 ~ドキュメントコメントがセクションタイトル・リンク・リストをサポート:https://forest.watch.impress.co.jp/docs/news/1429940.html]] -[[Go 1.19リリース連載始まります GoDoc/ツール周りのアップデート:https://future-architect.github.io/articles/20220801a/]] *主な機能追加 [#kbf2822b] **go get [#r213dd88] **モジュール [#xed66b06] **コンテキスト [#q75d8b1c] -[[よくわかるcontextの使い方:https://zenn.dev/hsaki/books/golang-context]] **ジェネリクス [#xc8c92b0] *DDD [#p7bc67ea] -[[今すぐ「レイヤードアーキテクチャ+DDD」を理解しよう。(golang):https://qiita.com/tono-maron/items/345c433b86f74d314c8d]] -[[DDDを意識したgolangでの実装:https://qiita.com/goshushunsuke/items/179d77c323bdd4e31bc6]] *ORM [#m5eb5b82] ***[[sqlx:https://github.com/jmoiron/sqlx]] [#aff42707] ***[[pop:https://github.com/gobuffalo/pop]] [#d11822b5] ***[[gorm:https://gorm.io/ja_JP/]] [#o8fa0379] *ライブラリ [#r7181ac8] **ロギング [#nef94ab4] ***[[log:https://pkg.go.dev/log]] [#n731fab3] ***[[zap:https://github.com/uber-go/zap]] [#k2d736d0] **Excel [#n28870fb] ***[[Excelize:https://xuri.me/excelize/]] [#u190b2dd] -[[Go 言語スプレッドシートライブラリ:Excelize 2.7.0 がリリースされました:https://zenn.dev/xuri/articles/e30a078a27db42]] -[[Goのexcelizeを使ってエクセル操作を行う方法:https://tokitsubaki.com/go-excel-excelize/582/]] **PDF [#d8b5c895] ***gopdf [#n914fe1f] -[[Go 1.12でgopdf使ってテンプレートのPDFに色々埋め込み:https://qiita.com/tao_s/items/be145dc85169689a2a4f]] *モバイル開発 [#e98149e9] -[[“Flutter”単体で完結できないモバイルアプリ開発 「Go」のエコシステムでiOS・Androidコードの肥大化は防げる:https://logmi.jp/tech/articles/324503]] **Go mobile [#zec6f225] **[[Go Cloud:https://github.com/google/go-cloud]] [#d04850b9] *GoDoc [#v337ce85] -[[チョットできるGoプログラマーになるための詳解GoDoc:https://qiita.com/shibukawa/items/8c70fdd1972fad76a5ce]] *ツール [#t1465101] **gore, gocode, pp [#r006cdf9] $ go get github.com/motemen/gore/cmd/gore $ go get github.com/mdempsky/gocode $ go get github.com/k0kubun/pp **ghq [#j7614917] -[[Ubuntuのgoのバージョンを上げて、ghqをインストールする:https://reetok99709.github.io/Ubuntu-In-ghq/]] -[[GO言語 1.12をインストール@Ubuntu 18.04:https://www.mazn.net/blog/2019/02/03/1704.html]] **goimports [#c0048ec2] $ go get golang.org/x/tools/cmd/goimports **golint [#lbbd74db] -静的解析ツール $ go get golang.org/x/lint/golint **gox [#n9cc66f0] -[[goxでGoをクロスコンパイルする:https://qiita.com/ono_matope/items/6cc759da440ef768006f]] -クロスコンパイルツール $ go get github.com/mitchellh/gox *クロスコンパイル [#ed4f795e] *常駐システム [#v1663396] -[[Go言語でWindows,Linuxの常駐システムを開発する:https://tech-blog.optim.co.jp/entry/2022/04/28/100000]] *マイクロサービス [#pa365513] -[[ZOZOTOWNのGo言語におけるマイクロサービス開発の共通規約を守るための取り組み:https://techblog.zozo.com/entry/zozo-microservice-conventions-in-golang]] *開発会社 [#lb6308fc] -[[Go言語を使ったシステム開発でおすすめの開発会社7社【2023年版】:https://hnavi.co.jp/knowledge/blog/golang_companies/]] *トラブルシューティング [#v4d99379] **no required module provides package [#dba57b84] -[[go build で missing go.sum entry for module providing package ビルドが失敗したときの原因と対応:https://dev.classmethod.jp/articles/go-build-failed-with-missing-go-sum-entry-for-module-providing-package/]] **go mod [#oa16fc93] -[[go.modについての陥りやすい誤解:https://poyo.hatenablog.jp/entry/2021/12/11/123810]] -[[[Go言語]Go Modulesのimportで手こずった話をしたいと思います:https://selfnote.work/20220520/programming/golang-go-modules/]] **go mod tidy [#h5f0fccd] -[[go mod tidyをもっと詳しく調べてみた:https://developer.so-tech.co.jp/entry/2022/08/16/110108]] ***but does not contain package [#j49dd664] -[[go mod tidyするとmodule ... found, but does not contain package ...エラーで失敗する:https://budougumi0617.github.io/2019/09/20/fix-go-mod-tidy-does-not-contain-package/]]