ブックマーク / future-architect.github.io (184)

  • Software Design 2024年9月号 Goのエラーハンドリングと向き合う ベストな設計戦略を徹底解剖を寄稿しました | フューチャー技術ブログ

    はじめに2024年8月17日に発売された、Software Design 2024年9月号の第二特集である、「Goのエラーハンドリングと向き合う ベストな設計戦略を徹底解剖」 の2章を後藤、3章を渋川で執筆し寄稿させていただきました。 このような貴重な機会をいただいた栗木さんをはじめ技術評論社の方々には、心からお礼申し上げます。 みどころGo言語初心者から熟練者まで楽しんでいただける内容になっていると思います。 Go言語を利用する上でエラーハンドリングは必須の知識になるので、ぜひご一読ください。Goに馴染みのない方でもGo特有のエラー処理の方法を知ることで、普段触れている言語の理解を深めることができると思います。他言語と比較した、Go言語のエラーの特徴もみどころの一つです。 【第2特集】Goのエラーハンドリングと向き合う 第1章 Goのエラー処理を理解する/mattnさん 第2章 失敗しな

    Software Design 2024年9月号 Goのエラーハンドリングと向き合う ベストな設計戦略を徹底解剖を寄稿しました | フューチャー技術ブログ
    yug1224
    yug1224 2024/08/28
  • 夏の自由研究連載2024をはじめます | フューチャー技術ブログ

    こんにちは。技術ブログ運営の伊藤です。 夏の自由研究連載 2024のインデックス記事です。 夏の自由研究連載とは皆さんも一度は通ったことのある小学生の自由研究。時にはやってみたいことをテーマにして前のめりにやり続けていたり、反対に面倒なことを題材にしてしまったこともあったり、楽しかったり苦かったりする思い出のひとつかもしれません。 夏の自由研究連載とは、そんな気持ちを思い出しつつ、寄稿者の普段の興味をベースとして、 普段手をつけられなかったけど、連載を機に何か手をつけてみる童心を思い出して、何かをじっくり研究、工作してみるなどなど、「あの頃の無邪気なココロ」をブログにする連載です。 投稿スケジュール今年の投稿スケジュールです。 今年は、夏ならではのネタよりは個人の研究に近い記事の方が多くなりました。 DateAuthorTitle&Theme8/19澁川喜規パーサコンビネータをもっと身近に

    夏の自由研究連載2024をはじめます | フューチャー技術ブログ
    yug1224
    yug1224 2024/08/20
  • Go 1.23リリース連載 Go Telemetry | フューチャー技術ブログ

    はじめにこんにちは。CSIGの棚井です。 Go 1.23 Release Notes の内容を紹介する「フューチャー技術ブログ Go 1.23 リリース連載」の記事です。 Go toolchain に追加された Go Telemetry を取り上げます。 TL;DRGo 開発チームに「Go ツールチェーン(go, gopls, govulncheck)の利用状況、動作状況」をフィードバックするために追加されましたGo Telemetry のデフォルトは local mode のため、意図的にステータスを変更しない限りリモートアップロードは行われませんopt-in により有効化した場合、自動アップロード後に telemetry.go.dev で集計結果が公開されますユーザ環境固有の情報は、Telemetry には含まれません現時点(2024/07/25)ではアップロード数が少ない状況ですが、

    Go 1.23リリース連載 Go Telemetry | フューチャー技術ブログ
    yug1224
    yug1224 2024/07/27
  • Go 1.23リリース連載 keep-alive,Cookieのアップデート | フューチャー技術ブログ

    はじめにTIG所属の大江です。Go 1.23リリース連載の7目です。 記事では以下の内容を取り上げます。 netでKeep-Aliveの詳細な設定が可能になりましたnet/httpにおけるCookieの扱いのアップデート1. netでKeep-Aliveの詳細な設定が可能になりましたKeep-Aliveに関してより細かい設定が出来るようになりました。 新しく導入されたtype、KeepAliveConfigによって指定できます。 KeepAliveConfigは以下のように定義されています。 type KeepAliveConfig struct { // If Enable is true, keep-alive probes are enabled. Enable bool // Idle is the time that the connection must be idle b

    yug1224
    yug1224 2024/07/27
  • Go 1.23リリース連載 os.CopyFS & path/filepath | フューチャー技術ブログ

    はじめにGo1.23連載の6目です。 Go1.23のos.CopyFSの追加、path/filepath パッケージの更新について解説します。 更新内容os.CopyFS の追加プロポーサルは#62484です。 io.fs/FSをローカルにコピーできるようになりました。 バージョン1.22まではディレクトリのコピーなどは、filepath.Walkなどを使い再帰的にコピーを行うか、外部ライブラリなどを利用する必要がありました。 1.23では標準パッケージを利用しつつ簡単な実装でディレクトリコピーをできるようになりました。 main.gopackage main import ( "fmt" "os" ) func main() { err := os.CopyFS("to_dir", os.DirFS("from_dir")) if err != nil { panic(err) //

    Go 1.23リリース連載 os.CopyFS & path/filepath | フューチャー技術ブログ
    yug1224
    yug1224 2024/07/27
  • 2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ

    最近はお客さんとの勉強会でDockerのドキュメントをつまみいして読むというのをやっていますが、改めて最新版を読んでみて、いろいろ思考が整理されました。2020年の20.10のマルチステージビルドの導入で大きく変わったのですが、それ以前の資料もweb上には多数あり「マルチステージビルドがよくわからない」という人も見かけるので過去の情報のアンラーニングに使っていただけるように改めて整理していきます。 仕事Pythonコンテナをデプロイする人向けのDockerfile (1): オールマイティ編で触れた内容もありますが改めてそちらに含む内容も含めて書き直しています。 エントリーの執筆には@tk0miya氏から多大なフィードバックをいただきました。ありがとうございます。 基的なメンタルモデル現代的な使い方を見ていくために「Dockerを使ってビルドする」というのはどのようなものか考えを整

    2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ
    yug1224
    yug1224 2024/07/27
  • Go 1.23リリース連載 text/template | フューチャー技術ブログ

    はじめにTIGの辻です。Go1.23連載の5目です。 この記事では、マイナーアップデートから text/template パッケージを取り上げて紹介します。 text/template のアップデート内容テンプレートが新しいアクション “else with” をサポートするようになりました(#57646)テンプレートが新しいアクション “else with” をサポートするようになりました(#57646)text/template はテンプレートを用意し、データをテンプレートの値として当てはめて、テキスト出力できる便利なパッケージです。 FutureのいくつかのOSSでも、この text/template パッケージを利用しています。たとえば future-architect/vuls があります。 text/template パッケージで利用できる以下のようなテンプレートを用意し、この

    Go 1.23リリース連載 text/template | フューチャー技術ブログ
    yug1224
    yug1224 2024/07/26
  • Go1.23 リリース連載 slices/maps(+ unique) | フューチャー技術ブログ

    はじめにGo 1.23リリース連載 の4目です。 Go 1.23の目玉機能でもあるイテレータの導入に合わせて、slices パッケージと maps パッケージにも新たな関数が追加されました。 記事では新たに追加された関数をサンプルコードとともに紹介します。 イテレータの詳細については、連載3目の記事「Go 1.23リリース連載 range over funcとiterパッケージ」を参照してください。 関連する Issues今回のアップデートは、range over function(#61405)の追加に伴うものとなります。iter パッケージの追加(#61897)をはじめとする標準ライブラリの一連のアップデートの内の1つとして位置付けられています。 slices と maps に関する Issue は次の2つです。 slices: add iterator-related func

    Go1.23 リリース連載 slices/maps(+ unique) | フューチャー技術ブログ
    yug1224
    yug1224 2024/07/19
  • Go 1.23リリース連載 range over funcとiterパッケージ | フューチャー技術ブログ

    はじめにこんにちは。CSIG 所属の棚井です。 Go 1.23 Release Notes の内容を紹介する「フューチャー技術ブログ Go 1.23 リリース連載」の記事です。 今回は2つの反復(Iterator、イテレーション)処理を取り上げます。 range over funciter パッケージRelease Note, Discussion, Proposal, Issuerange over func と iter パッケージ のリリース内容を確認していきます。 range over func がデフォルトで有効にGo1.22 では GOEXPERIMENT とされた range over func が、Go1.23 からはオプション指定なしで利用可能となりました。 Go 1.23 makes the (Go 1.22) “range-over-func” experiment

    Go 1.23リリース連載 range over funcとiterパッケージ | フューチャー技術ブログ
    yug1224
    yug1224 2024/07/19
  • Go 1.23リリース連載 archive/tar | フューチャー技術ブログ

    はじめにTIG 真野です。Go1.23連載の2目です。 Go 1.22のマイナーアップデートarchive/tar を取り上げます。 アップデートサマリ新しく追加された FileInfoNames インターフェースを利用することで、FileInforHeader() がUname/Gnameの値をシステム依存から、アプリケーション側で制御可能になった #50102私のようにGoDBから値を取って来てJSONを返す典型的なWebAPIを実装する生活を送っていると、tarの文脈におけるUname, Gnameといった用語に触れることが少ないかなと思います(そうじゃない人はごめんなさい!)。そのため、基礎的な部分から説明していきます。 tarとはtape archivesの略で、複数のファイルやディレクトリを1つにまとめる(アーカイブする)ことです。アーカイブしたファイルはTarball

    Go 1.23リリース連載 archive/tar | フューチャー技術ブログ
    yug1224
    yug1224 2024/07/19
  • Go 1.23リリース連載始まります&timeパッケージ | フューチャー技術ブログ

    Future Tech Blog恒例のGoリリース連載が始まります。エントリーはインデックス記事&timeパッケージを散り上げます。 DateTitleAuthor7/16インデックス & time澁川7/17archive/tar真野隼記7/18range over funcとiterパッケージ棚井龍之介7/19unique, slices, maps武田大輝7/22text/template辻大志郎7/23os.CopyFS & path/filepath市川燿7/24keep-alive,Cookie大江聖太郎7/25Go Telemetry棚井龍之介1.23の更新内容の概要Go 1.23のアップデートとしては以下のようなものがあります。多いので、Win/mac/LinuxAMD/ARM関連以外は省略しています。リリースノートはこちらです。RC1の時点で書いているため、まだギリギ

    Go 1.23リリース連載始まります&timeパッケージ | フューチャー技術ブログ
    yug1224
    yug1224 2024/07/19
  • go-smtp-mockをSMTPのモックサーバにして単体テストする | フューチャー技術ブログ

    はじめにTIG真野です。 バックエンドのアプリケーションの上で、メール送信するコードがある場合の単体テストをどう実現するか悩みました。 メールには、タイトル・文・From・TO・CC・BCCなど複数の設定値がありますし、SMTPサーバの接続情報もあります。これらを表現する構造体のモデルだけに絞った検証に留めることは、気が進みませんでした。時代はインフラレベルでダミーサーバを動かしモックする方向で動いています。SMTPでメール送信し、その送信結果をテストコード上で取得&検証する一連の流れを行って動作を確かめたいと思いました。 方法として、澁川さんのMailSlurperを使って6桁のコードの送信コードのテストをするで紹介されたMailSlurperを使うか迷いましたが、以下の点で牛刀だなと感じました。 メール送信するのはごく一部の機能(私の場合は1機能。今後増える見込みは現時点で見えなかっ

    go-smtp-mockをSMTPのモックサーバにして単体テストする | フューチャー技術ブログ
    yug1224
    yug1224 2024/07/10
  • Mockoonで簡単モックサーバー | フューチャー技術ブログ

    ちょっとしたウェブアクセスクライアントのコードを書いていて、サーバー側に正しくリクエストが送られているかの確認をする場合、モックサーバーを建てることが多いと思います。ウェブフロントエンド開発とかだとMock Service Workerが便利ですし、Playwrightのネットワークフック機能も便利です。GETだけならPythonでいつもやってしまうのですが、今回はPowerShellで作ったちょっとした自動化ツールかつエラーレスポンスを返したい、という状況だったので、Goあたりで適当なサーバーでも書くかな、と思っていたところ、ふと思い立ってぐぐってみたところでMockoonという良さげなツールを見つけて、使ってみたら便利だったので紹介します。 Mockoonとは僕は知らなかったのですが、2017年ごろからあるモックを作成するツールのようです。 GUIが提供されており、APIの定義やログ閲

    Mockoonで簡単モックサーバー | フューチャー技術ブログ
    yug1224
    yug1224 2024/07/09
  • 署名付きURLを利用したファイルアップロードWeb API設計の勘所 | フューチャー技術ブログ

    はじめに現代のWebアプリケーションにおいて、ユーザが写真や動画などのファイルをアップロードする機能は、しばしば求められます。 記事では、ファイルアップロードを実現するための一手段として、「署名付きURL」を利用した方式を取り上げ、その設計について詳しく解説します。 今回は、Amazon Web Services(AWS)を利用する前提のもと、このアプローチを探求していきます。 前半部分は署名付きURLをそもそもよく知らない方向けの導入部となっていますので、要点だけ抑えたい方は設計上のポイントから読まれることをお勧めします。 ファイルアップロードの実現方式パターン署名付きURLの話をする前に、ファイルアップロード機能をWeb APIとして実現する方式について、いくつか代表的なものを紹介します。 Pattern 1. multipart/form-datamultipart/form-da

    署名付きURLを利用したファイルアップロードWeb API設計の勘所 | フューチャー技術ブログ
    yug1224
    yug1224 2024/07/07
  • [入門]Webフロントエンド E2E テスト を出版しました | フューチャー技術ブログ

    先日(2024年6月19日)、技術評論社さまから「[入門]Webフロントエンド E2E テスト ──PlaywrightによるWebアプリの自動テストから良いテストの書き方まで」をフューチャーの有志と共に出版いたしました。 書はエンジニア選書と言われるシリーズの1つとなります。 既にご購入いただいた方、誠にありがとうございます。 購入を検討されている方、詳しくはこちらをご覧ください。 https://gihyo.jp/book/2024/978-4-297-14220-9 書籍の概要E2Eテストをこれから導入しようとしている方を主な対象とし、必要なノウハウを詰め込んだ書籍となっています。書では、E2Eテストを学ぶ際の実装手段(ツール)として、近年人気が急上昇しているPlaywrightを中心に据えました。 章の構成は次のようになっています。 第1章 Playwrightハンズオン第2章

    [入門]Webフロントエンド E2E テスト を出版しました | フューチャー技術ブログ
    yug1224
    yug1224 2024/07/02
  • 社会人からはじめる競技プログラミング | フューチャー技術ブログ

    記事は「珠玉のアドベントカレンダー記事をリバイバル公開します」企画のために、以前Qiitaに投稿した記事を一部ブラッシュアップしたものになります。 はじめに記事は フューチャー Advent Calendar 2018 の13日目の記事として書かれました。私は弊社に入ってから競技プログラミングなるものを知り、実際に初めてみて約1年が経ちました。競プロって何? 競プロって聞いたことはあるけれどなんだかよくわからない…という方に、競技プログラミングの面白みを少しでも伝えられたらと思い、記事を書きました。 競技プログラミングって何?決められた条件のもとで与えられた問題、課題をプログラミングを用いて解決し、その過程や結果を競うものを競技プログラミングといいます1。 コンテストの種類競技プログラミングといっても様々な分野のコンテストが開催されており、大きく以下の5つの分類のコンテストがあります。

    社会人からはじめる競技プログラミング | フューチャー技術ブログ
    yug1224
    yug1224 2024/06/28
  • package.json dependencies メンテの仕方 最短ルート | フューチャー技術ブログ

    記事は「珠玉のアドベントカレンダー記事をリバイバル公開します」企画のために、以前Qiitaに投稿した記事をブラッシュアップし、フューチャー技術ブログに転載したものになります。Qiita側の元記事もアップデートしています。 はじめにpackage.json の dependencies をメンテナンスするにはどこから手を付ければいいか、を解説します。 Node.js を使っている人にはおなじみ package.json。 package.json の中で一番よく更新されるのが dependencies(個人の感想、次点で scripts)。 そして、依存パッケージが着々とバージョンアップしていくにも関わらず放置されてしまって後々問題になりがちなのも dependencies 。 「npm install で追加したっきり。パッケージのアップデートなんて考えたことなかった」という人や「Git

    package.json dependencies メンテの仕方 最短ルート | フューチャー技術ブログ
    yug1224
    yug1224 2024/06/26
  • はじめてチームリーダーをやってみて気にしていたこと。(Qiitaリバイバル記事) | フューチャー技術ブログ

    この記事はQiitaのアドベントカレンダー記事のリバイバル公開です。 はじめに新人研修推進チームの永井です。 この記事はフューチャーAdvent Calendar 2022の9日目に書かれたQiitaアドベントカレンダーのリバイバル記事です。 このアドカレ記事を書いた2022年は、いままでの流通小売の事業部からHealthCare Innovation Group(HIG)へ転籍したり、初のチームリーダーを担ったりと6年目にして変化の多い1年でした。 いままではメンバーとして目の前のタスクやソースコードに集中していればよかったですし、それに甘んずる形でリーダーになることを避けてきたのが正直なところです。半数以上が自分より若いメンバーという中で、チームやプロジェクトをより良い状態にするにはどうしたらいいのか、を模索する1年でもありました。 記事は、ベストプラクティス、というよりも自分自身の

    はじめてチームリーダーをやってみて気にしていたこと。(Qiitaリバイバル記事) | フューチャー技術ブログ
    yug1224
    yug1224 2024/06/21
  • Gitのブランチの役割を考える | フューチャー技術ブログ

    Gitのブランチ戦略にはいくつかあります。 Gitフロー GitHubフロー GitLabフロー チームの戦略を考えるときにどれかを参考にしつつカスタマイズするときにいろいろ不都合が生じてしてきて複雑になってしまうことってありますよね? 社内でブランチの管理の議論をする中で、ブランチの役割を明確にした上で、どのブランチがどのような役割を持っているのかを明確にした方が混乱が少なくなるのではないか? というのを考えていました。 特に、プロジェクトごとに同じ名前でも役割が違うなー、というのとかもあり、ブランチ名=役割ではなく、ブランチの上位概念として役割を考えて、それを実際のブランチとの対応づけを行う必要があるのではないかな、と。 CI/CDと組み合わされることで、releaseブランチ==ステージング環境となってしまい、ステージング環境を使いたいリリース前のブランチと、ホットフィックスの検証の

    Gitのブランチの役割を考える | フューチャー技術ブログ
    yug1224
    yug1224 2024/06/12
  • 内製化におけるアジャイルチーム作りの問題点 | フューチャー技術ブログ

    yug1224
    yug1224 2024/05/16