並び順

ブックマーク数

期間指定

  • から
  • まで

481 - 520 件 / 4128件

新着順 人気順

golangの検索結果481 - 520 件 / 4128件

  • Open Source Insights

    • Goコンパイラを自作して93日でセルフホストを達成した(2回目) · DQNEO日記

      Goコンパイラをゼロから書いてセルフホストを達成しました。(1年ぶり2回目) https://github.com/DQNEO/babygo (ちなみに 前回の話はこちら 「Goコンパイラをゼロから作って147日でセルフホストを達成した」 ) 主な特徴 全部手書き。標準ライブラリも自作。system call 呼び出しも自作。libc非依存。 コンパイルするとアセンブリを吐きます。これをビルドすると単一静的バイナリになります。 設計は、go/parser + chibicicc + α かかった期間 2020/3/29に開始、2020/7/28にセルフホスト達成。 コミットした日 (Author date)を数えたら93日でした。 平均1日2-3時間としてざっくり240 時間 ほど。 前回は500時間かかってるので、今回は半分の期間で達成できたことになります。 なんでまたやろうと思ったの?

      • ミニマムな React Web アプリケーションの技術スタックを大公開! - inSmartBank

        はじめに こんにちは。サーバーサイドエンジニアの mokuo です。 最近、ミニマムな React アプリを実装する機会がありました。 社内のメンバーにアドバイスをもらいながら、今(2024年前半) React アプリをミニマムに作るならこんな感じかな、という構成になった気がするので、ご紹介したいと思います。 実例の1つとして参考にしていただけますと、幸いです。 はじめに 本文 📝 機能要件 ⚒️ 採用したツール (npm モジュール) 📁 ディレクトリ構成 👨‍💻 プロトタイピングの実施 🍩 おまけ コンポーネント設計について フロントエンドに DDD のエッセンスを取り入れてみたい おわりに 本文 📝 機能要件 社内の限られた CS メンバーのみが利用する、管理画面を開発しました。 バックエンドは Golang で実装される API サーバーで、認証機能以外だと、2つの機能

          ミニマムな React Web アプリケーションの技術スタックを大公開! - inSmartBank
        • Go言語で高速JSONライブラリをメモリ安全にしたらさらに速くなった話

          はじめに こんにちは。Sugawara Yuutaです。"Go言語で最速のJSONデコーダーを作った話", "それでも僕はGoで最速のJSONデコーダーを作りたかった"...以来の方はまた読んでいただきありがとうございます。まだの方は、経緯を伝えやすくなると思うので、そちらの方も読んでいただけたら幸いです。 その後 Go言語チームのメンバーが取り組んでいる新しいバージョンのJSONライブラリであるgo-json-experiment/jsonというレポジトリを発見しました。(厳密に言うと、知ってはいたのですが中身等は見ていない状態でした。) そこで学んだことが少しでも役に立てばとissueを提出したところ、そのときのJSONデコーダーに足りないものが見えてきたため、今回は僕の見つけた課題と、どのように解決しようとしたか・したかを話せればと思います。 見つけた課題 パフォーマンスも重要ですが

            Go言語で高速JSONライブラリをメモリ安全にしたらさらに速くなった話
          • tscをGoに移植 | POSTD

            筆者はTypeScript型チェッカーtscをRustではなく、Goに移植しようと思います。拡張可能なRustプラットフォームSWCの作者の発言としては、奇妙に聞こえるかもしれません。理由を説明したいと思います。 なぜtscを移植するのか TypeScriptの普及が進むにつれて、大規模プロジェクトではあるジレンマに直面しています。型チェックは、ワークフローの中で最も時間がかかるプロセスの一つになっているのです。開発者は、イテレーションのサイクルを遅らせることなく、型安全を保証することを望んでいます。 tsc(TypeScript Compiler)は、型の妥当性をチェックし、コードをJavaScriptにコンパイルします。コードの量が多いほど、コンパイルには時間がかかります。中規模から大規模のTypeScriptプロジェクトでは、このコンパイルに膨大な時間がかかります。開発者はワークフロ

              tscをGoに移植 | POSTD
            • 負荷試験とOSSツール選定の話 - KAYAC engineers' blog

              この記事は 面白法人グループ Advent Calendar 2022 の15日目の記事です。 こんにちは、カヤックボンドの松本です。 今回は弊社の技術顧問をご担当いただいている、ドレッドノート株式会社の佐々木様よりご寄稿いただいた記事となります! みなさん、はじめまして! 主にパフォーマンスチューニングや検証用のボット開発等を行っているドレッドノート株式会社の佐々木と申します。 この度、カヤックグループの皆様より Advent Calendar 2022 に寄稿する機会を頂戴しましたので、2022年12月時点の方法を元に負荷試験とモダンなOSSツールについて書いてみたいと思います。 負荷試験の重要性 突然ですが、みなさんが関わっている案件で負荷試験を行っていますか? サービス開始前・提供中、どちらであっても負荷のかけ方によって様々な情報を得ることができます。 現状の性能・台数・実装で、ど

                負荷試験とOSSツール選定の話 - KAYAC engineers' blog
              • テスト駆動開発でGO言語を学びましょう | テスト駆動開発でGO言語を学びましょう

                **テスト駆動開発(TDD)で基礎を身につけましょう。**GoはTDDを学習するのに適した言語です。なぜなら、学習するのが簡単な言語であり、テストが組み込まれているからです。

                  テスト駆動開発でGO言語を学びましょう | テスト駆動開発でGO言語を学びましょう
                • Goの良さをまとめてみた

                  よく知られる良さ ネイティブコード出力で実行効率が良い コードの可読性を重視している 開発でよく使うツールがバンドル クロスビルドが簡単にできる コンパイルが遅くない(LLライクにrunできる) 並行処理の抽象化を組み込み言語仕様にもつ メモリ安全である 上記の一部に解説を加えつつあまり言及されない良さを以下にまとめます。 依存解決が最小限で決定的 ここにも書きましたが、Goの依存解決は常に 最小限のダウンロード 最小の範囲でのみビルドを実行 だけが走ります。これを一度体験すると、従来のパッケージ依存管理が冗長で余計なものをビルドしすぎることに気づくでしょう。これらに相当の時間を奪われているのです。 また、Goモジュール機構によりそのバージョン選択は決定的に安定動作するバージョンに決められます。このことのメリットは数ヶ月後のリビルドで安定してビルドできることで実感できるでしょう。 開発環境

                    Goの良さをまとめてみた
                  • デフォルトで信頼できる Chrome 拡張機能

                    .app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads 71 Ads API 11

                      デフォルトで信頼できる Chrome 拡張機能
                    • GitHub - yuk1ty/learning-systems-programming-in-rust: 「Rustでもわかるシステムプログラミング」

                      You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                        GitHub - yuk1ty/learning-systems-programming-in-rust: 「Rustでもわかるシステムプログラミング」
                      • スマートレストランでGraphQL を採用した話

                        株式会社ウェリコで、お客さんのスマートフォンでメニューの閲覧・注文・決済ができるスマートレストランを作ったときに、gqlgenとRelay Modernを使ってGraphQLを採用した話Read less

                          スマートレストランでGraphQL を採用した話
                        • 形態素解析器 kagome v2 をリリースした - 押してダメならふて寝しろ

                          概要 ホント誰得でもないのは重々承知していますが、思い立って 形態素解析器 kagome v2 をリリースしました。とはいっても、だいたいの機能は今ある kagome でも実装済みで、今さら変更してもどうよ・・・という感じではあります。 なので、モチベーションを維持するのが非常に難しくて、だらだらと時間だけがかかってしまいました。 折角作ったのでリリースノートです。 TL;DR; v2 で実現した事 辞書の分離 / バージョン管理 辞書毎に異なる素性項目の扱いの共通化 韓国語辞書対応 辞書の分離 辞書を別リポジトリに分離しました。これにより、長年(?)懸案だった辞書のバージョン管理が可能になりました。go.mod で指定すれば、どのバージョンの辞書を利用しているかがわかります。 また、これにより、これまで kagome.ipadic のような単独辞書を利用するだけのためのライブラリを別に切

                            形態素解析器 kagome v2 をリリースした - 押してダメならふて寝しろ
                          • AWS Lambda の go 1.x サポートが終了するらしいので、カスタムランタイムに移行した話 - GS2 Blog

                            早速ですが、不穏なメールが届きました。 Amazon Linux AMI のメンテナンスサポートが 2023 年 12 月 31 日に終了するのに合わせて、AWS Lambda での Go 1.x ランタイムのサポートを終了します [1]。 Lambda は、provided.al2 ランタイムを使用して Go プログラミング言語を引き続きサポートします。 provided.al2 ランタイムを使用すると、AWS Graviton2 プロセッサのサポートや、より小さなデプロイパッケージとより高速な関数呼び出しパスによる効率的な実装など、go1.x ランタイムに比べていくつかの利点があります。 詳細については、ブログ記事 [2] を参照してください。 GS2 が実行基盤に使用している AWS Lambda の go 1.x ランタイムがサポート終了になるようです。 provided.al2

                              AWS Lambda の go 1.x サポートが終了するらしいので、カスタムランタイムに移行した話 - GS2 Blog
                            • EC2からFargateへの移行 ~shadow proxyとカナリアリリース~ | GREE Engineering

                              こんにちは、メディア事業でエンジニアをしている木村洋太です。 昨年のGREE Tech Conferenceでは「LIMIA」のフレームワーク移行プロジェクトにおけるコードの自動修正について話させていただきましたが、今回は同時に行ったインフラ移行について紹介いたします。 EC2からFargateへの移行例は多く存在しているとは思いますが、今回の移行では安全な移行のために、shadow-proxy環境での移行前のテストやEC2とFargateの同時稼働によるカナリアリリースなどさまざまな工夫を行いました。これらの中で得られた知見や失敗をまとめられたらと思っています。 インフラ移行の概要 フレームワーク移行プロジェクト フレームワーク移行プロジェクトでは、グリーが運営するメディアの一つである「LIMIA」のフレームワークをFuelPHPからLaravelへ移行することを目的としていました。 移

                                EC2からFargateへの移行 ~shadow proxyとカナリアリリース~ | GREE Engineering
                              • Golangでいい設計を実践するための6つのツール

                                概要 Golangを書くにあたり、いい設計のコードを書くための手助けとなるツールを調べたのでまとめます。 想定読者 Golangの使い方をある程度わかっている(チュートリアルはやった) いい設計をするための具体的なノウハウに興味がある 記事を書いたきっかけ 引用: https://www.amazon.co.jp/dp/B09Y1MWK9N 最近設計に関して勉強するために「良いコード/悪いコードで学ぶ設計入門」を読みました。 本の中では マジックナンバーを使うな 一つのメソッドの中で多くのことをやりすぎるな などの言われてみると基本的な注意点が書いてありました。 一方で以下のように、確かにそうなんだけど実際は守れていない注意点にも書かれていました。 単一責任の原則を守ってクラス設計しよう 高凝集なクラスを作ろう 本を読んでわかった気になって今までと同じように悪い設計のコードを書くままではい

                                  Golangでいい設計を実践するための6つのツール
                                • Go言語によるクリーンアーキテクチャの実装例紹介

                                  はじめに CastingONEでバックエンドエンジニアをやっている清水です。 この記事ではクリーンアーキテクチャについて学んだけど具体的にどのように実装すれば良いのかという悩みがあったので実装例をまとめてみた記事になります。 クリーンアーキテクチャで実装されたサンプル実装のうちGitHubのスター数が多いリポジトリをピックアップして、設計内容を紹介していきます。 具体的にどこにどんな実装をするべきなのかも含めて紹介していきます。 処理を一部省略して紹介するため実際の処理内容を確認したい場合はGitHubでご確認お願いします。 クリーンアーキテクチャとは クリーンアーキテクチャは、ソフトウェア設計の原則を適用して、依存性の方向性を逆転させ、ビジネスロジックから詳細(フレームワークやデータベース)を分離するアーキテクチャパターンです。これにより、テストしやすく、メンテナンス性が高く、柔軟性のあ

                                    Go言語によるクリーンアーキテクチャの実装例紹介
                                  • GWに技術書イッキ読み!Kindleセールで5/10まで半額の本を分野別に総まとめ - 仮想サーファーの日常

                                    Amazonで、Kindle本が最大50%OFFになるゴールデンウィーク限定キャンペーンが開催されています。 期間は、2020年5月10日(日)まで。 50%OFFは、自分の観測範囲では前回の開催が2019年12月末だったので、4ヶ月ぶりの50%OFFセール。 これだけ多くの種類の技術書が50%OFFになる機会は多くないので、この機会にほしい本がないかチェックしておきたいですね。 【Kindle技術書50%OFFセール(5/10まで)】を見てみる この記事では、ゴールデンウィークに一気に技術書を読んで技術力を伸ばしたい方向けに、学びたい分野別にKIndleセール本をまとめました。 プログラミング言語を学ぶ HTML/CSSに入門したい HTML5/CSS3モダンコーディング フロントエンドエンジニアが教える3つの本格レイアウト スタンダード・グリッド・シングルページレイアウトの作り方 吉田

                                      GWに技術書イッキ読み!Kindleセールで5/10まで半額の本を分野別に総まとめ - 仮想サーファーの日常
                                    • Go製のネットワーククライアントに対する継続的 / Fuzzing for network client in Go

                                      Go Conference 2021 Spring

                                        Go製のネットワーククライアントに対する継続的 / Fuzzing for network client in Go
                                      • Go言語でハマったことメモ(インターフェース) - Qiita

                                        Golangを始めました。 GolangはC言語のように、シンプルな文法・データ構造でできているのですが、同時に、生産性を高めるための、高度な概念も取り入られています。 そしてそのために、Golangには若干トリッキーな構文がいくつかあります。 しかし、それらを知らずに、他の言語での先入観や勝手な思い込みで判断してしまって、ハマることがちょいちょいありました。 ここでは、Golangを始めてみて、個人的にハマったことや、勘違いしたことを、トピック別に備忘録としてメモしていこうと思います。 ここでは、「インターフェース(interface)」とは何ぞやについてのメモを記載しました。 インターフェースとは? Golangの変数は、値だけを持っていて、型情報は持っていません。Golangには、変数の値とその変数の型情報をセットにして保持する、言語組み込みの特殊な構造体があり、その構造体をインター

                                          Go言語でハマったことメモ(インターフェース) - Qiita
                                        • Go/Cgoで映像・音声のリアルタイム処理をやるまでの道のり - Go Conference 2023

                                          Go Conference 2023 Room A : A7-L https://gocon.jp/2023/sessions/A7-L/

                                            Go/Cgoで映像・音声のリアルタイム処理をやるまでの道のり - Go Conference 2023
                                          • 「Go言語でつくるインタプリタ」をRustで実装しました。 - Sansan Tech Blog

                                            はじめに こんにちは。DSOC 研究開発部 Architect Group Data Direction Teamの有山です。 気温が上がってきて夏っぽくなってきましたね。毎年夏用にTシャツを集めるのが趣味なのですが、今年は個人的にブームが再燃してるGOODENOUGH*1を古着で集めようかなと考えています。 ところで皆さんは普段何の言語を書いていますか? Data Direction Groupでは主にPythonを使用していますが、ある時から四則演算の計算順序やif文の条件分岐はどうして正しく動くのだろうと疑問に思うようになり、実際に正しく動かしているシステムを理解してみたくなりました。色々検討した結果、「Go言語で作るインタプリタ」という本が内容的にも分量的にもちょうどよく、これを読み進めることにしました。 初めは読みながらコードを写経していましたが、複雑なロジックについては理解した

                                              「Go言語でつくるインタプリタ」をRustで実装しました。 - Sansan Tech Blog
                                            • Go 言語にやってくる Generics は我々に何をもたらすのか

                                              2021 年リリース予定の Go 1.17 に、多くの皆さんが待ち望んでいた Generics が導入される予定です。Go が Generics を採用したプロセス、C++ や Java の Generics とどの様に違うのか、また Go の Generics はどの様に使えるのかをご紹介します。

                                                Go 言語にやってくる Generics は我々に何をもたらすのか
                                              • WebアプリケーションにGoの並行処理アーキテクチャを導入してSLOを改善し、WebAPIを100倍速くした話 - スタディサプリ Product Team Blog

                                                こんにちは。スタディサプリの小中高プロダクト基盤開発グループでProduct Platform Engineer兼テックリードをやっている@tooooooooomyです。 今回は、WebアプリケーションにGoの並行処理機構を導入してSLOを改善し、WebAPIを100倍速くした話をしたいと思います。 前提条件 システムを0から作らない場合、アーキテクチャの改善の際には前提条件が付きものです。そこでまずは今回のシステムの前提条件をお話します。 対象となるシステムと、アーキテクチャ 今回対象とするシステムは、ここでは security-tracker と呼び、Webアプリケーション本体はGoで書かれています。 スタディサプリの各アプリケーションにおけるユーザーのログ1を、Amazon Kinesis Firehoseを通して、リクルート全体のセキュリティチームが管理するS3バケット(スタディサ

                                                  WebアプリケーションにGoの並行処理アーキテクチャを導入してSLOを改善し、WebAPIを100倍速くした話 - スタディサプリ Product Team Blog
                                                • k6 + Echo + go-sqlite3 + Litestream + Linode Object Storage 簡易負荷試験メモ

                                                  注意 とっても雑な検証なので参考などにはしないでください。ちょっとした興味で自分用に調べてるだけです。 結論 Echo を利用した秒 1 万リクエストを超えないウェブサービスで、かつ SQLite の機能で要件がみたせるのであれば、SQLite + Litestream 十分と判断出来る結果だった。 利用技術 Load testing for engineering teams | Grafana k6 Grafana に買収された Go で書かれた負荷試験ツール JS でシナリオが書ける Litestream - Streaming SQLite Replication SQLite リアルタイムバックアップツール mattn/go-sqlite3: sqlite3 driver for go using database/sql Litestream も使ってる 安心と信頼の matt

                                                    k6 + Echo + go-sqlite3 + Litestream + Linode Object Storage 簡易負荷試験メモ
                                                  • GitHub - google/yamlfmt: An extensible command line tool or library to format yaml files.

                                                    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                      GitHub - google/yamlfmt: An extensible command line tool or library to format yaml files.
                                                    • 『詳解Rustプログラミング』(Rust in Action)を読みました - Don't Repeat Yourself

                                                      先日発売になった『詳解Rustプログラミング』という本をひとまず一通り軽く読んでみました。実は原著の Rust in Action をすでに読んでしまっていたので、内容の流れは把握していたのですが、私は一応日本語ネイティブなので日本語の書籍は非常に嬉しいですね。 詳解Rustプログラミング 作者:Tim McNamara翔泳社Amazon Rust in Action 作者:McNamara, TimManning PublicationsAmazon 本書をまず読んで最初に思い出したのは、私も大好きな『低レベルプログラミング』という本でした。この本は C とアセンブラで書かれているのですが、これを Rust でやり直す感覚を覚えました。コンピュータサイエンスやコンピュータアーキテクチャの話題が豊富で、大学のコンピュータサイエンスの講義を受けているような印象を持ちました。 低レベルプログラ

                                                        『詳解Rustプログラミング』(Rust in Action)を読みました - Don't Repeat Yourself
                                                      • GolangらしいPackage構成を考える/thinking about Golang-like package architecture

                                                        DesignOneGo#6 のLT発表資料です Webアプリケーション設計からGolangらしいPackage構成を考えたものです。 CleanArchitectureを参考に考えた独自設計を元に - レイヤーでのPackage構成 - レイヤー×Re-ducks思想を織り交ぜたPackage構成 について考察しています。 P.S. 簡易的に作成したものなので、 今後この内容を詳しくした設計サンプル資料を作成したい...!

                                                          GolangらしいPackage構成を考える/thinking about Golang-like package architecture
                                                        • なぜGo言語の正規表現は遅いと言われるの? - Qiita

                                                          はじめに Goの正規表現は遅いと言われていることが以前から疑問だったので調査してみました。 こちらの記事やこちらの記事を拝見する限り ① 現実的なユースケース(例えばURLのパースなど)ではGo言語の正規表現は使うべきではなく、stringsパッケージの標準の関数を利用した方がパフォーマンスとしては良い。 ② Go言語で正規表現を利用するために必要な"正規表現オブジェクト"を並行にアクセスするにはパフォーマンスが問題になるので注意が必要。 とあります。その理由は、それぞれ以下に集約できるようです。 ① Go言語標準の正規表現ライブラリは、正規表現と検査文字列の長さに対して常に$O(n^2)$のオーダーで計算量が増加する安定したアルゴリズムを採用している。 ② "正規表現オブジェクト"を用いたマッチング処理には排他制御が行われている。 調べてみる Go言語のpkg/regexpの公式ドキュメ

                                                            なぜGo言語の正規表現は遅いと言われるの? - Qiita
                                                          • AWS GlueからAWS Batchにしたことで費用を75%削減した - Classi開発者ブログ

                                                            こんにちは、最近データエンジニア業を多くやっているデータサイエンティストの白瀧です。 これまでClassiのデータ基盤は、Reverse ETLをしたり監視システムを導入したりとさまざまな進化をしてきました。しかし、Classiプロダクトが発展するとともにデータ量が増加し、これまでのデータ基盤では耐えられない状態に近づいてきました。 そこでデータ基盤の一部(DBからのExportを担う部分)のリアーキテクチャを実施したので、この記事で紹介したいと思います。 概要 Classiのデータ基盤では、Amazon RDSからAmazon S3へJSONで出力し、その後GCS→BigQueryという流れでデータを送り、BigQueryからもBIツールやReverse ETLなどで使っています。詳細は、Classiのデータ分析基盤であるソクラテスの紹介 - Classi開発者ブログを参照してください。

                                                              AWS GlueからAWS Batchにしたことで費用を75%削減した - Classi開発者ブログ
                                                            • ISUCON 9 参加記 - kyuridenamidaのブログ

                                                              使用した言語 解析ツールの準備 本番前 一ヶ月前 一週間前 本番 開始前 00:00 開始 01:00 - 様々なツールの整備が完了 01:30 最初の気づき bcryptは遅い 03:00 平文保存のコードが一応完成 03:30 バグが取れる 03:30 ベンチ走らせまくり 04:00 第2の気づき: getNewCategoryListが遅い 04:00 第3の気づき: MySQLのチューニングが効きそう 04:20 大量に平文パスワードをかきあつめおわる + MySQLのチューニングをしたりする 04:30 getCategoryByIDをバグらせる 04:35 getCategoryByIDが直る 04:40 getSimpleUserByIDのオンメモリ化に取り組む 05:00 第4の気づき: getNewCategoryList内のクエリは非効率的 05:00 第5の気づき:

                                                                ISUCON 9 参加記 - kyuridenamidaのブログ
                                                              • 【第4回】Go言語(Golang)入門~REST API環境構築編~ – 株式会社ライトコード

                                                                (株)ライトコードの笹川(ささがわ)です 今回も、Go言語(Golang)を習得していきたいと思います。 引き続き、Firestoreを利用して色々とやってみようかと思います。 Firestoreをデータストレージ、GolangをAPIとした場合は、どこかにデプロイしてから使うことが想定されます。 そのため、今回はデプロイする前にREST APIとして使えるようにしたいと思います。 ちなみに、RESTにした理由は特にありません(笑) 入門編のゴールとしては、Androidアプリとの結合を目論んでいるので、「RESTでいいなぁ」と難しいこと考えずに思った次第です!

                                                                  【第4回】Go言語(Golang)入門~REST API環境構築編~ – 株式会社ライトコード
                                                                • 【第1回】Go言語(Golang)入門~環境構築編~ – 株式会社ライトコード

                                                                  (株)ライトコードでモバイルアプリケーション開発をしている笹川(ささがわ)です! (笹川の得意分野は、モバイルアプリケーション開発です) 今回は、重い腰を上げてGo言語(Golang)を習得するために日々ブログにて記録していこうかと思います! ググればGo言語(Golang)についての情報はたくさんありますが、今回は「公式ドキュメント」をベースに進めていきたいと思います。 第1回目(1日目)スタートです!

                                                                    【第1回】Go言語(Golang)入門~環境構築編~ – 株式会社ライトコード
                                                                  • Goの任意のLoggerをログローテート対応できるreplaceablewriter | おそらくはそれさえも平凡な日々

                                                                    https://github.com/Songmu/replaceablewriter 表題の通りですが、io.Writer をラップして io.WriteCloser として振る舞い、その内部に保持した io.Writer を差し替え可能にするライブラリを書いた。 例えば、Goの標準logをログローテートしたい場合には以下のようにします。 f, _ := os.OpenFile("20191001.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644) w := replaceablewriter.New(f) log.SetOutput(w) // 翌日になったら差し替える f2, _ := os.OpenFile("20191002.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644) w.Repl

                                                                      Goの任意のLoggerをログローテート対応できるreplaceablewriter | おそらくはそれさえも平凡な日々
                                                                    • 管理画面等でNext.jsをBetter Reactとして使う | フューチャー技術ブログ

                                                                      最近、Next.jsが複雑になりすぎて、単なるウェブ画面を作る用途にはNext.jsは重すぎるので別のものが良いとか、Vercel統合のための機能が多いんでしょ、みたいな感想を見かけることが増えた気がします。特に管理画面とか社内システムとかですね。B2Cでも設定画面系とかは当てはまるかもしれません。 ホンダ時代に、タイプRを買っても実際にサーキットとかに走らせに行く人は1/10ぐらい、という話を聞いた気がしますが、必ずしも、そのすべてのパフォーマンスを引き出さないのはダメとかなくて、単にかっこいいからとか、一部のメリットでも自分にあえば良いのです。 Next.jsも、たくさん機能がありますが、ミニマムな使い方もできます。 ほぼNext.jsの機能をオフにした使い方たぶんNext.jsを最低限で使うライン・メリットはここかな、と思います。 基本的に全部CSR(Client Side Rend

                                                                      • SQLite3 を PostgreSQL にできるコマンド postlite

                                                                        はじめに SQLite3 くらい楽に扱えて、PostgreSQL みたいにネットワーク経由で使える物ないかなーなんて思ったりする事ないですか?ありますよね、あるんです。 postlite このニーズに答えてくれるのが postlite です。postlite を使うと SQLite3 で作られたデータベースファイルを、PostgreSQL の様に扱えます。 仕組みは至って簡単で、僕が開発している go-sqlite3 に PostgreSQL の通信プロトコルのガワと、仮想テーブルを使って PostgreSQL のスキーマを疑似しています。 インストール postlite は go-sqlite3 の vtable を使います。ですので、go install ではなく postlite の README.md に書かれた手順を使わなければなりません。

                                                                          SQLite3 を PostgreSQL にできるコマンド postlite
                                                                        • Big Sky :: Go 言語の struct の実体を引数で(なるべく)渡せない様にするテクニック

                                                                          Go 言語は struct のレシーバがポインタの場合は実体であってもポインタの場合であっても呼び出せるので、もし struct が参照カウントに従い動作する様な場合は実体でコピーされてしまっては困る場合があります。例えば以下の様なインタフェースを考えます。 package main import ( "fmt" "sync/atomic" "time" ) type foo struct { n int64 q chan struct{} } func (f *foo) Add() { if atomic.AddInt64(&f.n, 1) == 1 { f.q = make(chan struct{}) } } func (f *foo) Done() { if atomic.AddInt64(&f.n, -1) == 0 { f.q <- struct{}{} } } func (f

                                                                            Big Sky :: Go 言語の struct の実体を引数で(なるべく)渡せない様にするテクニック
                                                                          • GitHub - wader/fq: jq for binary formats - tool, language and decoders for working with binary and text formats

                                                                            fq is inspired by the well known jq tool and language that allows you to work with binary formats the same way you would using jq. In addition it can present data like a hex viewer, transform, slice and concatenate binary data. It also supports nested formats and has an interactive REPL with auto-completion. It was originally designed to query, inspect and debug media codecs and containers like mp

                                                                              GitHub - wader/fq: jq for binary formats - tool, language and decoders for working with binary and text formats
                                                                            • Goで高速JSONライブラリを作るためにしたこと | メルカリエンジニアリング

                                                                              他にもまだまだあると思いますが、自分が見たことがあるのは上記になります。 それぞれ見比べてみると、やはりエンコード・デコード両方に対応しているライブラリが人気があるようです。 この中で特に人気のある easyjson , gojay , json-iterator/go でベンチマークをとってみた結果、パフォーマンスの良い順に並べると次のようになりました。 gojay > json-iterator/go > easyjson > encoding/json 設計方針の違いがそのまま速度に現れているようにも見えますが、理論上最速にできるはずの easyjson が遅かったりと実装の良し悪しも影響しているようです。 一番遅いのは encoding/json です。そもそも encoding/json が遅いから新しい JSONライブラリを作ろうとしているはずなので、一番遅いのは仕方ないのです

                                                                                Goで高速JSONライブラリを作るためにしたこと | メルカリエンジニアリング
                                                                              • Goコンパイラのお勉強(3)~配列の効率的な操作に関する最適化~ - Techtouch Developers Blog

                                                                                はじめに string と byte のキャスト最適化 1. map のキー指定のためのキャスト 2. string を byte 毎に処理するためのキャスト 3. 比較のためのキャスト memclr による配列ゼロクリア最適化 ガベージコレクションのマークスキャン回避 おわりに 参考文献 はじめに SRE の izzii (𝕏: @ahneahneahne) です。今回をもって「Go コンパイラのお勉強」と題した連載ブログが完結です!仕事の話とは直接関係がないネタだったので、書く内容に悩むということはなく気持ちよくかけました。さて、今回は「配列の効率的な利用」と題して golang/go CompilerOptimizations で扱われている残り物の紹介をしていきます笑 残り物とは言っても知ると知らないとでは Go コードの読み方が変わるかと思いますので、ぜひ! [第 1 回] G

                                                                                  Goコンパイラのお勉強(3)~配列の効率的な操作に関する最適化~ - Techtouch Developers Blog
                                                                                • ndiagでAWSのアーキテクチャドキュメントを書く

                                                                                  書き始める とりあえずチュートリアルを一周しました。 https://github.com/k1LoW/ndiag/blob/main/docs/tutorial.ja.md チュートリアルの順に、nodesを書いてみてndiag doc --rm-dist、networksを書いてndiag ...、relationsを書いて以下略、とするのが良さそうです。 アイコンのキーはndiag list iconsで表示できるので、これを見ながらndiag.ymlに書き込んでいきます。 VSCode ExtensionsでMarkdown Preview Enhancedをインストール。 Previewを見ながらndiag.ymlを書いては生成、書いては生成します。 とりあえず --- name: Sample AWS web service docPath: docs/arch views:

                                                                                    ndiagでAWSのアーキテクチャドキュメントを書く