Golang Tokyo #41 参加メモ
golang.tokyo #41 Goコミュニティの技術談義 今回はGMOベパポ主催 イベントURL LT1 Go Embedでwasm埋め込み Go Embedでwasm埋め込み by @7328957 竹田さん 株式会社ラクス ...
Hugoの改善
Hugoの改善 Hugo単体のバージョンアップ aptでインストールできるバージョンが古いので手動でインストール 参考→ https://gkzz.dev/posts/hugo-installation-on-ubuntu/ wget https://github.com/gohugoio/hugo/releases/download/v0.140.2/hugo_0.140.2_linux-amd64.deb sudo dpkg -i hugo_0.140.2_linux-amd64.deb hugo version tagページとsearchページの追加 config.ymlに以下を追記 - identifier: search name: search url: /search - identifier: tags name: tags url: /tags/ iframeの表示 config.ymlに以下を追記 markup: goldmark: renderer: unsafe: true グラフ goat記法が使える https://github.com/bep/goat 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
t_wadaさんが後世に残したい実録レガシーコード改善
2024/01/15 youtube 録画 イベント情報 実録レガシーコード改善 twadaさん(和田卓人さん) チャット実況してほしい スクショOK 講演の背景 以前実施した講演の改訂版 前回の講演が映像に残っていないので残したい 2018年に実際に行った受託開発 プロダクトオーナー許可済み コードは本物を使用 技術が2018のものなので若干古い シナリオ スマートスピーカーの開発(都道府県クイズ) ...
Go_prog_forkwell_27
Go言語プログラミングエッセンス - Forkwell Library#27 イベント内容 動画アーカイブ モデレーター 渋川さん Go 言語で楽しくなるシステム開発 自己紹介 mattnさん Go言語プログラミングエッセンス著者 Google open source expert Go歴 13年 Software Design nostrの連載 概要 簡単な説明 特徴 Explicit is better than implicit 非同期プログラミング 最新のGo Goについて C言語の構文を意識しつつ、簡単な文法でコーディングできる すでにいろんな会社で利用 プログラミング環境を改善する目的 C言語を設計した世界的エンジニアで知られる人が関わっている Unixらしさ 使用例 CLI Webサーバー バックエンド 広告配信 ハードウェア制御 機械学習 特徴 静的型付けコンパイル言語 スタティックバイナリ C言語風でありながら、GC 非同期を簡単に扱えるランタイム Explicit is better than implicit 曖昧より明確のほうがいいよね RobPike氏が良く言うこと ex) error ハンドリング Goは例外を扱わない result typeを扱わない errorが返ってきたら処理する Goでバグを生み出さないコツ すべてのerrorを明示的に対処し暗黙をなくす deferをうまく使うことでエラーを減らす errorを受け取ったら、処理を中断し、呼び出し元へ返す →必然的にearly return Goが優先したもの 読みやすさ 声に出して読めるくらい 学びやすさ 開発者が明示的に処理を中断させる 予約語を増やさない 複雑さを減らす 開発者が意思決定するプログラミング 非同期プログラミングの良さ ハードウェアが高性能化 非同期は難しい Goの仕組み goroutine channel リレーのバトンのようなもの 気をつけること 並列と並行は違う スレッドを増やすプログラミング言語 CPUコアに固定されない。空いたコアが次を担当する CPUコアを有効に活用する C言語でやると難しい コンテキストスイッチのコストが発生してしまう Goのスレッドは軽量なので、多く使っても大丈夫 スケールに対応しやすいのでクラウド向き go 1.21でくるもの min/max 数値、文字列など 実装するとinterface{}をつかうとコンパイルで気づけない clear mapやスライスを空にできる スライスの長さが変わらない 配列はできない loopvar まだ仮 検証中 並列で動かすときに、ループ変数が回り終わった状態で参照していしまうのの対処 pgo コンパイラによるプロファイルベースの最適化 pprofの結果からホットパスをインライン化する pprofの結果を読み込んでbuildすると最適化 slog 構造化ログを出力できるように ログレベルも設定 スレッドセーフ 出力先変更可能 グルーピング maps 型パラメータを使ったmap操作関数 genericsができたので key一覧、value一覧をとることができる Slices slice処理をかける delete, insert, reverse, binarySearch, contains wasi wasmの実行環境がブラウザ依存だった wasmを読み込んでgoで直感的にできるように 標準ライブラリにほぼ対応 利用できない/システムコールが必要なおの net/http os エッジコンピューティングがしやすくなる (youtubeアンケート、職務内容) ...
エンジニアの処方箋 #1 〜エンジニアのメンタルヘルスを考える〜 視聴メモ
エンジニアの処方箋 #1 〜エンジニアのメンタルヘルスを考える〜 イベントURL 3/7に実施されたイベントの録画を視聴した 動画URL エンジニアのメンタル不調対策 榎本 純也氏 https://twitter.com/ej_appdate メンタルヘルスはエンジニアにも必要となる知識 ...
AWS Tech talk Night#5
AWS Tech talk Night#5 クラウドネイティブ時代のエンジニアが押さえておきたい ソフトウェアの構築・運用で考慮すべき5つのポイント AWSプリンシパルエンジニアの技術記事をソリューションアーキテクトが解説 1/25にZoomウェビナーで実施された、AWSのイベント イベントURL 概要 AWS Japan 千葉さん ...
実用Go言語 Forkwell Library #7
実用Go言語 Forkwell Library #7 基調講演 #Forkwell_Library 3人の著者による発表 渋川さん Honda DeNA FutureArchitect 趣味 インラインスケート 辻さん 渋谷区の公務員からフューチャー 趣味 競技プログラミング、筋トレ 真野さん 新卒でフューチャーで13年くらい フューチャーのかるい紹介 ...
Docker×Goのマルチステージビルドで必要になるcgoのオプションについて
Docker×Goのマルチステージビルドで必要になるcgoのオプションについて 背景 Dockerfileでマルチステージビルドの構築をしていたが、DockerImageのビルドに成功するも、docker runでエラーが出て動かなかった FROM golang:1.18 as builder WORKDIR /go/src/ COPY . ./ RUN go mod download RUN go build -v -o server ./cmd FROM alpine:latest RUN apk --no-cache add ca-certificates WORKDIR /root/ COPY --from=builder /go/src/server ./ EXPOSE 8080 CMD ["./server"] エラーメッセージ ...
Fabric_subprocess
Python2で使うfabricとsubprocessはエラーハンドリングに気をつける Fabricは、アプリケーションのデプロイやシステム管理のタスクのためにSSHの利用を簡素化するためのPython2系のライブラリとコマンドラインのツール fab {method}でコマンドラインスクリプトで呼び出しができる Pythonのsubprocessはサブプロセスを起動するためのモジュール。python内からコマンド実行するのに使う この2つの組み合わせでのエラーハンドリングには気をつける fab_test.py from fabric.api import local def hello(): local("exit 1") cmd.py ...
Grpc
grpcチュートリアルメモ https://github.com/ymmt2005/grpc-tutorial Remote Procedure Call リモートで呼び出しする手順 gRPC Googleで開発された多言語間のRPCを実現するプロトコル 多言語対応であることが特徴 IDL(interface definition language) ...