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

  • 個人的docker composeおすすめtips 9選 | フューチャー技術ブログ

    記事は「珠玉のアドベントカレンダー記事をリバイバル公開します」企画のために、以前Qiitaに投稿した記事を一部ブラッシュアップしたものになります。 はじめにみなさん、docker composeを利用しているでしょうか? 複数のdockerコンテナをまとめて立ち上げたり、環境変数を定義できたり便利ですよね。 この記事ではある程度docker composeを利用している方向けに私が便利、便利そうと感じたdocker composeの機能を挙げてみました。 docker compose cli v2を利用docker-composeではなく docker composeコマンドも利用可能になっています。 Docker Desktopでは v3.4.0から利用可能で、基的にはコマンドの互換性あります。 ファイル監視による自動更新docker compose 2.20.0からCompose

    個人的docker composeおすすめtips 9選 | フューチャー技術ブログ
  • 2024年Gitワークフロー再考 | フューチャー技術ブログ

    春の入門祭り2024の2記事目です。 Gitは、出自としては1週間で作られたLinuxカーネルのための分散バージョン管理システムでした。当時のワークフローに合わせてパッチをテキスト化してメールに添付できるような機能だったりが備わっています。 一方で、現代のGitは、デファクトスタンダードなバージョン管理システムになりLinuxカーネル以外のアプリケーション開発で利用されています。分散バージョン管理ではあるものの、サーバー・クライアント型の使われ方をしていて、GitHubGitLabを核にして、ローカルで作ったブランチをpushして、Pull Requestの形にして管理しています。少なくとも周りで見る限りでは、それ以外の使われ方の方が少なくなってきてます。そんなこんなで求められている使われ方が変わってきていて、それに合わせた機能がぼちぼち増えています。それを活用することで、ウェブ画面上で

    mom0tomo
    mom0tomo 2024/04/11
  • 爆速習得、初心者からRustの即戦力を備えるまで | フューチャー技術ブログ

    背景週末を利活用したく、新しい言語をゼロから学習して即戦力を備えるまでどのぐらいかかるかを実験してみました。 事前状態いくつかのプログラミング言語(C++,Python,JavaScript,Java,Go,Bash,etc.)の経験基礎的なウェブアプリ構築(フロントエンド、バックエンド)の経験Rustは未経験。事前に知っていたことコンパイル言語実行速度が速い、C/C++からGoの間ぐらいWebAssemblyにコンパイルできる、ブラウザ上で動くゲームやシミュレーターなどを作れる実績開発環境を備える (30 min, 15:30~16:30)基コンセプトを把握する (45 min, 16:00~16:30,<休憩>,19:30~19:45)Hello World Game of Lifeを実装してみる (135 min, 19:45~22:00)スタートから1個目のシンプルなデモプログラ

    爆速習得、初心者からRustの即戦力を備えるまで | フューチャー技術ブログ
  • Goリリースノートから技術ブログを書く流れ基礎 | フューチャー技術ブログ

    The Gopher character is based on the Go mascot designed by Renée French はじめにTIG真野です。 フューチャーでは2021年の2月に公開されたGo 1.16から、Goのリリースノートを読んで気になったところをブログにまとめるというブログリレーを続けています。 Go 1.16連載が始まりますGo 1.17連載が始まります: コンパイラとgo modGo 1.18集中連載 ジェネリクスGo 1.19リリース連載始まります GoDoc/ツール周りのアップデートGo 1.20リリース連載が始まります&メモリアリーナの紹介&落ち穂拾いGo 1.21連載始まります&slogをどう使うべきかGo 1.22リリース連載始まります & ループの変化とTinyGo 0.31単なる翻訳ではなく自分たちならではの付加価値を提供するための執筆の

    Goリリースノートから技術ブログを書く流れ基礎 | フューチャー技術ブログ
    mom0tomo
    mom0tomo 2024/03/07
  • Go1.22 リリース連載 HTTPルーティングの強化 | フューチャー技術ブログ

    はじめにGo1.22リリース連載 の5目です。 記事ではGoの標準ライブラリである net/http の ServeMux におけるルーティング周りの強化について取り上げます。 関連する Release Note と Issue はこちらを参照してください。 https://tip.golang.org/doc/go1.22#enhanced_routing_patterns https://github.com/golang/go/issues/61410 変更点HTTPメソッドの指定が可能にServeMux.Handle や ServeMux.HandleFunc を使用してハンドラを登録する際に GET /xxx のようにHTTPメソッド指定して、ハンドラを呼び分けることができるようになりました。 mux := http.NewServeMux() // GETを指定したハンドラ

    Go1.22 リリース連載 HTTPルーティングの強化 | フューチャー技術ブログ
    mom0tomo
    mom0tomo 2024/02/02
  • Go 1.22リリース連載始まります & ループの変化とTinyGo 0.31 | フューチャー技術ブログ

    Go 1.22のトピックとしては以下のようなものがあります。だいぶ安定版になってきたからか、言語もライブラリもこつぶなものが多くなってきたかな、という印象です。 ループ変数の挙動の変化 ツール系 GO111MODULE=offオプションの廃止 トレースツールのUI改善 net/httpのServeMuxでパス変数が扱えるように go vet強化 コンパイラでGCが1-3%高速化。PGOで2-14%改善 リンカーの生成するバイナリがよりデバッガフレンドリーに ライブラリ math/rand/v2追加 database/sql.NUllの追加 net/httpのルーターがパスパラメータをとれるように その他 個人的に注目しているHTTP/3やQUICへの対応は、準標準ライブラリのgolang.org/x/net/internal/quicの中で進行中。将来的にはinternalが外れたgola

    Go 1.22リリース連載始まります & ループの変化とTinyGo 0.31 | フューチャー技術ブログ
    mom0tomo
    mom0tomo 2024/01/30
  • Web API The Good Partsを読んだ感想 | フューチャー技術ブログ

    はじめに金融グループ所属、新人の藤戸四恩です。秋のブログ週間9日目の記事です。 今までWeb APIに関してしっかりと勉強をしたことがなかったので、Web APIの設計方法や考え方をしっかりと学びたいと思い、おすすめのを周りの人に聞いた際に「Web API The Good Parts」を薦めていただき、実際に購入して読みました。 この記事では書を読んだ感想を書いていきたいと思います。 書籍の概要Web APIの設計、開発、運用についての解説書。APIは設計次第で使いづらいものになってしまうだけでなく公開後の保守運用も難しくなってしまいます。そのためAPIを美しく設計することがとても重要です。 書では「設計の美しいAPIは、使いやすい、変更しやすい、頑強である、恥ずかしくない」という考えのもと、APIをどのように設計し運用すればより効果的なのか、ありがちな罠や落とし穴を避けるにはどう

    mom0tomo
    mom0tomo 2023/11/04
  • 実践Drawio | フューチャー技術ブログ

    はじめにもともとはMicrosof Visioなどを使って作成していた図形(ネットワーク図、各種シーケンス、ERD..etc)ですが、ファイルストレージがクラウド(Google Drive)に移ることで、 そのまま編集したい 欲求が世の中で増しているように思います。 その場合の有効なツールとしてdraw.ioを利用するケースが増えてきたと感じます。そこで当社で蓄積したナレッジを文章化します。 Draw.io Tips1.ショートカット1.1. 公式ショートカットまずはここから始めましょう。 ショートカットはプロダクトの基操作が詰まっています。 https://about.draw.io/wp-content/uploads/2016/11/draw.io_shortcuts_basic_win_EN.pdf 2. 設定2.1. 日語化 画面右上の🌏マークから選択します メニューが開く

    実践Drawio | フューチャー技術ブログ
    mom0tomo
    mom0tomo 2023/11/02
  • 腰痛と闘うプログラマー | フューチャー技術ブログ

    秋のブログ週間2023の1日目です。 はじめに※この記事やこのを読んだからと言って自身で診断を行わず、まずは整形外科などの医療機関にて診断を受けて、医師の方と治療方針を決定しましょう。また既に治療中の方は、取り組む前に一度医師や理学療法士の方と相談しましょう。 腰が痛くて仕事にならない、プログラマーこそが天職なのにこの痛みと一生付き合っていかないといけないのか…と思っている方は結構多いのではないでしょうか? かく言う自分も腰痛持ちで、20代前半で椎間板ヘルニアと診断されました。当時はヘルニアが神経を圧迫し歩くのもつらい時期もありましたが、通院によってなんとか回復しました。 しかし完全にはよくならず、残りの人生全てを腰を気にしながら生きないといけないのか、、、と絶望しておりました。 そんなこんなで腰痛人生を送ってきたわけですが、ケリー・スターレット式 「座りすぎ」ケア完全マニュアルは自分の

    腰痛と闘うプログラマー | フューチャー技術ブログ
  • Makefile覚書: Goアプリ開発に役立ちそうな基礎知識 | フューチャー技術ブログ

    はじめにTIG真野です。育休明けです。 フューチャー社内のタスクランナーはmakeやTaskなど複数の流派があり、チームによって使い分けられています。個人的にはmakeで良いんじゃないかと思っていますが、Taskも良いですよね。 makeは細かい記法をいつも忘れる+調べるとC言語向けの情報が出てきて脳内変換に手間を感じたため、makeを用いてWebバックエンドアプリをGoで開発するということをテーマに、役立ちそうな情報をまとめます。 なお、今記事におけるmakeは、GNU Makeを指します。バージョンは以下で動かしています。 MakefileのためのEditorConfigMakefileのインデントはハードタブである必要があります。誤りを防ぐためにもEditorConfigを設定しておくと良いでしょう。 makeは通常、Makefileという名称をデフォルトで認識しますが、同一フォルダ

    Makefile覚書: Goアプリ開発に役立ちそうな基礎知識 | フューチャー技術ブログ
    mom0tomo
    mom0tomo 2023/10/12
  • Go 1.21連載始まります&slogをどう使うべきか | フューチャー技術ブログ

    Go 1.21は久々の新しいライブラリが大量追加だったり、既存のパッケージへの改良の多数行われたり、あたらしい組み込み巻数が追加されたりで記事などが書きやすいリリースです。残念ながら、フューチャーで一番Goを使っているプロジェクトが山場で今回はちょっと書き手が少ないのですが、今回もお付き合いいただけるとうれしいです。 1.21の更新内容のまとめダイジェスト 1.18の時に入るといって直前にキャンセルになった、ジェネリクスのためのパッケージslices/mapsの復活 新しい組み込み巻数のmin/max/clearの追加 言語仕様の強化 パッケージの初期化順序が仕様化 型推論ちょっぴり強力に 次期バージョンで入る予定のループ変数が共有されちゃうバグ対策が実験実装 ランタイムの性能改善(いつもの) 深いスタックオーバーフロー時のトレースが見やすく(最新100ではなく、最新50と一番外側の50表

    Go 1.21連載始まります&slogをどう使うべきか | フューチャー技術ブログ
    mom0tomo
    mom0tomo 2023/08/02
  • 「リーダブルコード」を読んでTerraformの可読性について考える | フューチャー技術ブログ

    こんにちは。TIGの伊藤太斉です。 この記事は、読書感想連載の6日目です。 今回取り上げる書籍は、多くのエンジニアが通過するであろう、「リーダブルコード」についてです。 最近、「もし「リーダブルコード」を弁護士が読んだら?」という記事をたまたま見かけて読んでみました。記事としては契約書にも同じことが言える、と自分が知らない世界でも使える部分はあるのだと読んでいました。そして、ふと考えてみると、「うちにもがあったじゃないか。しかも積読している。」と思い出し、今回積読解消の機会としてこの連載に参加しました。 リーダブルコード書評や感想については既に多くの方が書いている内容があるので、今回はTerraformと絡めて書いていければと思います。私は、俗にいうプログラミング言語に対しては明るくない方なので、自分が理解できうるTerraformにおいて考えたらどうなるか、について地震の頭の整理、理

    「リーダブルコード」を読んでTerraformの可読性について考える | フューチャー技術ブログ
    mom0tomo
    mom0tomo 2023/02/28
  • Go 1.20 HTTP ResponseController | フューチャー技術ブログ

    TIGの辻です。Go 1.20 リリース連載の5目は Core library の HTTP ResponseController のアップデートを紹介します1。 何が変わるのか net/http パッケージに新しく ResponseController 型が追加されます 従来から存在する ResponseWriter インターフェースでは実現できなかったHTTPリクエストごとの制御が実現できるようになります ResponseController 型にある SetReadDeadline() や SetWriteDeadline() メソッドを利用して、リクエストごとの読み書きのデッドラインを設定できます 何が嬉しいのかGo のユーザーとして見たときの ResponseController 型の追加による具体的な嬉しいポイントはHTTPハンドラごとに読み書きのデッドラインが設定できること

    Go 1.20 HTTP ResponseController | フューチャー技術ブログ
  • パスワードレス技術の現状と未来について | フューチャー技術ブログ

    はじめにこんにちは。TIG の吉岡です。秋のブログ週間 10 目の投稿です。 2022年の 5 月に Apple, Google, Microsoft そして FIDO Alliance が マルチデバイス対応FIDO認証資格情報 を発表してから、パスワードレス技術に対する注目が高まっています。1 パスワードレスの概要について調査してまとめてみました。 目次 私たちとパスワード パスワードの抱える問題 パスワードマネージャ 公開鍵暗号の活用 パスワードレスと FIDO Alliance FIDO v1.0 FIDO2 FIDO の認証フロー Passkeys パスワードレスな未来 私たちとパスワード今日、私たちのデジタルアイデンティティはパスワードに支えられています。私たちは日々 Google で検索し、Netflix を観て、Twitter でつぶやき、Amazon で買い物をしますが

    パスワードレス技術の現状と未来について | フューチャー技術ブログ
    mom0tomo
    mom0tomo 2022/11/18
  • データベースと向き合う決意 | フューチャー技術ブログ

    秋のブログ週間の9目のエントリーになります。この企画もこんなに書く人が出てくるように育っていいですね。 「中間層を増やして柔軟性を高めるのがソフトウェアの歴史」 これは大学時代に2つ上の先輩が言っていた言葉です。例えばマシン語を直接書くのではなく、アセンブラで書けば、変換(コンパイル)の手間はかかりますが、他のCPUへの移植はしやすくなります。高級アセンブラと名高いC言語を使えばさらに移植性は上がります。C言語で書かれたVMを使う言語、例えばJavaPythonRubyなんかはさらに移植性は上がります。 ストレージもそうです。最終的にストレージはビット列を保存するものですが、それにOSのファイルシステムというレイヤーがあり、そこにスキーマで管理されたデータを入れるDBMSが乗っかり、SQLなどの問い合わせ言語でデータ取得できるようにします。DBMSを挟むことで、レプリケーションでバッ

    データベースと向き合う決意 | フューチャー技術ブログ
    mom0tomo
    mom0tomo 2022/11/12
  • Goで作ったロジックにWebUIをつけてGitHubページに公開する | フューチャー技術ブログ

    ちょっとしたツールをGoで作ってみたのですが、わざわざインストールしなくてもいいようにWebのUIをつけてブラウザで使えるようにしてみました。作ってみたのは以下のツールで、Markdownのリスト形式でざっと下書きしたテーブルの設計をSQLとか、PlantUMLとかMermaid.js形式のERDの図にします。 https://shibukawa.github.io/md2sql/ ウェブフロントエンド部分はNext.jsの静的サイトで、GoWASMにしてロードして実行しています。WASMを使うのは初めてなのであえて選んでみました。 GoWASM化するもともとCLIツールは作っておりました。CLIのメインはcmd/md2sql/main.goで作っていました。この中でやっていることは kingpin.v2のオプションパース 指定されたファイルを読み込み(あるいは標準入力) パース 指定

    mom0tomo
    mom0tomo 2022/10/26
  • gRPCがフロントエンド通信の第一の選択肢になる時代がやってきたかも? | フューチャー技術ブログ

    Go 1.19が8/2に早々にリリースされました。個人的にはGo 1.19よりも楽しみだったのが、サービス間通信とIDL(インタフェース記述言語)連載の中でご紹介したgRPCGo実装の新星、Connectのアップデートでした。そしてそれはやってきました。 詳しい内容は↑の記事を見ていただくとして、Connectがその開発元ブログの紹介記事で宣言していたのが次の2つのことでした。 Go 1.19が出たらconnect-goは1.0にして以後後方互換性を守るよ connect-webを出すよ 前者はまだ0.3だったのですが、connect-webはリリースされました。歴史のあるフロントエンドのコードジェネレータはTypeScript対応が後付けだったりするのですが、TypeScriptがファーストシチズンかつ、ネイティブというコードジェネレータなので、開発はかなりやりやすくなることが期待され

    gRPCがフロントエンド通信の第一の選択肢になる時代がやってきたかも? | フューチャー技術ブログ
    mom0tomo
    mom0tomo 2022/08/19
  • Go 1.19のメモリ周りの更新 | フューチャー技術ブログ

    Go 1.19リリース連載の6目です。 Go 1.19では、いくつかメモリ周りの更新がありました。1つはガベージコレクタ周りのお話と、あとはメモリモデルの更新です。 ライブラリではsync/atomic.Int64など、いくつか型が追加されました。 ガベージコレクタガベージコレクタの詳細と調整の仕方についてのドキュメント が追加されました。このドキュメントはスライダーで動作の変化がみられるインタラクティブなドキュメントになっているので、ぜひご覧ください。 「GoJavaと違って、GCの調整ポイントがほとんどなく、最初からトップスピード(オプションの選択の中で相対的に)だよ」みたいに説明されることもありましたが、そういうわけにも行かなくなったというか、ある程度知っておく必要はあるかもしれません。とはいえ、デフォルトでも十分うまくやってくれますし、そもそも即座に終了するユーティリティでは頑

    Go 1.19のメモリ周りの更新 | フューチャー技術ブログ
    mom0tomo
    mom0tomo 2022/08/12
  • Go 1.19リリース連載始まります GoDoc/ツール周りのアップデート | フューチャー技術ブログ

    まずは、GoDocと、その他ツール周りのアップデートの紹介です。 Docコメントの更新以前、Qiitaの方に、チョットできるGoプログラマーになるための詳解GoDocという記事を掲載しました。 https://qiita.com/shibukawa/items/8c70fdd1972fad76a5ce GoDocの書き方の詳細ですが、以前は空行をあけて段落、インデントをしてフォーマット済みテキスト、URLがあればリンク、という程度のマークアップしかなく、とてもシンプルでした。GitHub FlavorなMarkdownとまでもいかなくても、もうちょっとマークアップが高機能になってほしい、せめてリストだけでも・・・と思っていた日全国1億2000万のGoプログラマーにとって待望のアップデートが1.19で入りました。 セクションタイトル リンク リスト また、gofmtが改善され、Docコメン

    mom0tomo
    mom0tomo 2022/08/01
  • ファイルダウンロード完全マスター | フューチャー技術ブログ

    Real World HTTPでも紹介したネタですが、お仕事で受けている技術コンサル中に質問をいただいた時に、微妙にで紹介した内容では少し足りなかったので、改めて整理のためにブログ記事にしてみました。次回、が改訂されることがあればこのブログエントリーの内容も入れて加筆したいと思います。 Real World HTTPだとGoを使っていましたが、フロントとサーバーを同時にいじるので、エントリーではNext.jsをサンプルに使います。Next.jsプロジェクトを作って(npx create-next-app@latest –ts)、適当なプロジェクト名を入れてアプリケーションの雛形を作っておいてください。 Next.jsでは、1つのスクリプトファイルを作成すると、それがサーバーAPI(/pages/api以下)と、フロントの画面(/pages/以下のapi以外)になります。Next.j

    ファイルダウンロード完全マスター | フューチャー技術ブログ
    mom0tomo
    mom0tomo 2022/06/22