How to Lead? Testimonial of a Lead Android Engineer
![最速のJSONライブラリを求めて](https://cdn-ak-scissors.b.st-hatena.com/image/square/6fee3054b2dedd52842b9081399e46f6b9b3a941/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F19f31e051e6a471c99862fdf734d699a%2Fslide_0.jpg%3F15992500)
How to Lead? Testimonial of a Lead Android Engineer
Time 型のフィールドを含む構造体を JSON にエンコード、JSON からデコードすると特定条件下で Time 型オブジェクトの time.Location の情報が失われることがあります。 以下のプログラムを見てください。 package main import ( "fmt" "time" "encoding/json" ) type Hoge struct { Name string CreatedAt time.Time } func main() { time.Local = time.UTC // Hoge構造体を生成する h1 := Hoge{ Name: "aaa", CreatedAt: time.Unix(1593077427, 0), } // Jsonsに変換 j, _ := json.Marshal(h1) // Jsonから復元する h2 := Hoge{}
Go プログラミング言語仕様 本文書は,The Go Programming Language Specification version 2021/02/10 のなんちゃって日本語訳である. 原文ソース:https://github.com/golang/go/blob/master/doc/go_spec.html 訳文ソース:https://github.com/hiwane/gospec-ja.誤訳・誤字脱字などは issue かプルリクで https://hiwane.github.io/gospec-ja/ 訳注 valid/invalid は有効/無効, legal/illegal は正当/不当と訳す. letter と character を区別するため,letter は英字,character は文字と訳す. signed/unsigned 符号付き,符号なし sourc
144labの入江田です。 今回TinyGoという素敵なプロダクトを試してみました。 TinyGoとは TinyGoは本家Go言語の組み込み向けのサブセット版。 本家Go言語はPOSIX-OSに対する機能依存が大きく、リッチなランタイムを持っています。その為、本来はOSを持たない組み込み用途には不向きでした。 TinyGoはPOSIX-OSに依存する機能を簡易的な実装で代用しつつLLVM(コンパイラを作る為のフレームワーク)を使って組み込み向けアーキテクチャをサポートするGo言語のコンパイラです。 つまりサポートするCPUアーキテクチャはLLVMがサポートするものを前提にしています。 リポジトリ https://github.com/tinygo-org/tinygo ドキュメント https://tinygo.org/ サポートアーキテクチャ ARMのCortex-M0系 WebAsse
プログラミング学習のProgate、Go言語*の学習コンテンツをリリースGo言語の第一人者として著名なメルカリ現役エンジニアと初の共同開発 株式会社Progate(所在地:東京都渋谷区、代表取締役:加藤將倫、以下当社)は、7月2日(月)、世界的に需要が高まっているプログラミング言語「Go」のレッスンコンテンツをリリースします。本レッスンは、株式会社メルカリ/株式会社メルペイの現役エンジニアであり、Go言語の第一人者として著名な上田拓也氏との共同開発によるものです。これまでコンテンツを完全内製化してきた当社にとり、外部エキスパートとの協働は初の取り組みです。当社は、今後も世界市場のニーズに応えながら海外展開を強化するため、コンテンツの拡充に一層注力してまいります。 *Go言語とは:Googleが開発したサーバーサイド開発に用いられることの多いプログラミング言語です。実用性の高さから世界中で利
西田@大阪です。 クラスメソッドの開発を知る!大阪勉強会 第4回 Go&Elixirでつくる分散アプリケーションで スピーカーとして登壇しました。多くの方にご参加いただきありがとうございました! Go & Elixirに興味のある方が、関西にこれほどおられると思っておらず嬉しい誤算でした。 発表資料 発表内に収まり切らなかった部分もございます(申し訳ありません><)ので、参加された方も資料を読んでいただけると幸いです。 感想 冒頭でも触れましたが、Go & Elixirに興味を持っておられる方が多いのが印象的でした。 懇談会では実際にGoを業務で使われている方などのお話が聞けてよかったです。 少しづつGoが広がっていってるなと感じました。 今後も関西でGo & Elixirを少しでも盛り上げていければと思います。
General-purpose Programming Language implemented with Go and LLVM. Presentation at Go Con Spring 2017
Goで始める、すこし低レイヤのプログラミング入門。入出力、ネットワーク、メモリなど、現実の世界でプログラムが動くために必要な機能をプログラム言語Goを通して覗いてみよう。OSの機能とは何か、それをプログラミングでどう利用するのか、システムプログラミングの世界をプログラマの視点から眺めていく連載企画。 2017年06月21日 17時00分 プログラミング+ Go言語によるプログラマー視点のシステムプログラミング 第20回 Go言語とコンテナ 本連載の最終回。この連載ではプログラムがコンピュータ上で動くときに何が起きているのかをGo言語のコードを通して覗いてきました。今回はその締めくくりとしてコンテナについて紹介します。 2017年06月07日 21時30分 プログラミング+ Go言語によるプログラマー視点のシステムプログラミング 第19回 Go言語のメモリ管理 ソフトウェアにとってメモリは不
Go言語はシンプルさを念頭にデザインされた言語です。仕様は単純明瞭さのために小さく収められていますが、そのため表現力に欠けているとか、コードが冗長になるという印象を持つ人も多いでしょう。有名なところでは、ジェネリクスや例外といった機能が(今のところ)存在しないことが問題にされることが多いようです。 一般に、ソフトウェアエンジニアリングというものは書かれる言語だけに依るものではありません。視点を拡げてGoを取りまくツール群を含めて見てみると、go fmt や goimports といったツールが広く使われていること、また go generate コマンドの存在などを見ても、Goという言語には、人間のプログラミングを機械によってさまざまな面から補助しようという態度があります。
思いつきでツールを作ってはリスのように忘れ、再発見しては新鮮な気持ちで便利に使う日々です。 一般にプログラミングにおいては、ソースコードを読むことに意外とばかにならない時間を使うもの。特に Go ではデフォルトで標準ライブラリのソースコードが手元にあり、コードを書く際よい教科書になるので、これを読むことも多いはず。 Go は静的に型付けされる言語なのでその点コードは読みやすいけれど、データ構造が不変ではないので、ある構造体のフィールドがどこで書き換わるのかを知るには、処理を追っていくしかない。名前で grep するのもひとつの手ではあるけど、精度はあまり期待できない。 そこで gofind。簡単に言うと、型やパッケージを含めた名前でもって Go のソースコードを検索するツールです。 go get github.com/motemen/gofind/cmd/gofind 使い方は以下の通り。
Goの制御構文 今回は関数やポインタ、条件分岐、ループなどを使ってみます。 動作環境 今回使用した動作環境は以下のとおりです。 OS : MacOS X 10.9.4 Go : 1.4.1 IDE : IntelliJ IDEA 14 CE ここを参考に、GOPATHとGOROOTは設定しておいてください。 Goの関数 関数定義 Goで関数はfuncを使って定義します。funcに続いて関数名、引数があれば引数を記述します。戻り値があればそれも記述します。 // func functionName ( arg1 arg1Type, ・・・) (result1 resultType・・・) func add(x int, y int) int { return x + y } z:= add(2,3) //z = 5 可変長引数 引数に...を指定すれば可変長引数をとることも可能です。 fun
幅広い開発者にGoによるコーディングを試してもらえるよう、前半はWindows環境+Eclipseを前提とした開発環境の作り方と、Goアプリケーションのビルド方法について説明します。後半は、「Goji」を利用した簡易的なWebアプリケーションの作り方について説明しますが、Goの構文や書き方といった基礎的なことの説明は割愛します。もし、Goプログラミングの基本を学習したい場合は、Webブラウザを使ってGoのコードの入力や実行を試すことができる「A Tour of Go」を試してみてください。 本稿を通して、1人でも多くの方にGoで開発を行うメリットや楽しさを実感していただけると幸いです。 Goの利点 世の中に様々な実績あるプログラミング言語が存在する中で、改めてGoを採用することにどのような利点があるのでしょうか? 私は次のような利点を感じています。 ビルドした結果が「環境依存のない単一の実
この記事ははてなエンジニアアドベントカレンダー2014の8日目です。 今回は、Go言語でサーバ管理ツール Mackerel のコマンドラインツールmkr を作るときに調べたこと、考えたこと、やったことについて紹介します。(mkr は現時点では開発版での提供になります。) コマンドラインツールについて コマンドラインツールを作るにあたって、@deeeet さんの YAPC Asia 2014 での発表資料が非常に参考になります。 書籍 UNIXという考え方ーその思想と哲学 の内容をベースに、コマンドラインツールはどうあるべきかということが丁寧に説明されています。 上記資料から引用させていただくと、コマンドラインツールにおいて重要なポイントは以下の7つであるとされています。 1つのことに集中している 直感的に使える 他のツールと連携できる 利用を助けてくれる 適切なデフォルト値を持ち設定もでき
Goに入ってはGoに従え Go Conference 2014 autumn 30 November 2014 鵜飼文敏 Fumitoshi Ukai Google Software Engineer - Chrome Infra team Go Readability Approver Go言語のReadabilityをレビューするチーム コードレビューを通じてGo言語のよいコードの書きかたを教える メインのプロジェクトとは別のコードをレビュー 一年前くらい前に参加して 20% timeで 200くらいのCLをレビューしました 今は一日3CLくらい、週に12CLほどのペースでやっています Gopher by Renée French 2 Readabilityスキルとは? プログラミング言語のリテラシー 作法にかなったやりかた で、読んだり書いたりできる能力 言語ごとに作法が違う C++
私はGo言語が気に入っていますし、多くの場面で使用します。現にこのブログもGoで書いています。Goは便利な言語ですが、優れた言語とは言えません。つまり、悪くはないけれど、十分ではないということです。 満足できない言語を使用する際は注意が必要です。注意を怠ると、その言語を次の20年間使い続ける羽目になるかもしれないからです。 私のGoに対する主な不満を本文にまとめました。既に何度も指摘されていることも含まれていますが、中にはこれまでほとんど話題になっていない指摘もあります。 これから列挙する全ての課題には既に解決策があることを示すため、私が優良な言語と考えるRustやHaskellと比較して説明します。 汎用プログラミング 課題 誰でもさまざまな事柄に幅広く対応できるコードを記述したいと考えます。例えば数のリストの合計を求めるために定義した関数が、小数、整数、またその他の合計を求められるもの
port 80を開くためにはroot権限が必要だが、開いたあとはセキュリティーリスクを最小限にするために一般ユーザ権限に降格したい、というWebサーバをGoで書く例です。 【追記3】 下記の例ではLinuxで動作させた場合に不十分です。 Linuxではsetuidを呼び出したスレッドにしか効かないので、以下の例をそのままLinuxで動かすとsyscall.Setuid()は成功しますが、HTTPのHandlerでは別スレッドで動くことがあるため、rootのままで動作することになります。 methaneさんのコメントを参照ください rootで起動した状態で":80"をlistenして syscall.Setuid() で一般ユーザになり http.Serve()する package main import ( "net" "net/http" "syscall" "log" ) func m
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く