タグ

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

  • Gitのブランチの役割を考える | フューチャー技術ブログ

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

    Gitのブランチの役割を考える | フューチャー技術ブログ
    yohane00
    yohane00 2024/06/12
  • ローカルプロキシで認証プロキシの煩わしさを解消! | フューチャー技術ブログ

    はじめに多くの企業では、セキュリティ対策の一環として認証プロキシを導入しています。これは、社内ネットワークからインターネットへのアクセスを制御し、不正なアクセスや情報漏洩を防ぐための重要な手段です。しかし、この認証プロキシを利用する際には、ユーザ名とパスワードの入力が必要であり、ソフトウェアごとにプロキシ設定する必要があります。これが、日々の業務において非常に煩わしい作業となっています。 今回は、この問題を解決するために、自分専用のローカルプロキシをセットアップし、認証プロキシの設定を一元管理する方法についてご紹介します。 認証プロキシの課題認証プロキシを利用する際の主な課題は以下の通りです。 設定の煩雑さ:各ソフトウェアごとにプロキシ設定する必要があり、設定漏れや誤設定が発生しやすい。認証プロキシ非対応ソフトウェアの存在:使用したいソフトウェアによっては、プロキシには対応しているものの認

    ローカルプロキシで認証プロキシの煩わしさを解消! | フューチャー技術ブログ
  • Go 1.17連載が始まります: コンパイラとgo mod | フューチャー技術ブログ

    また毎回恒例のGo 1.17リリースパーティも開催予定です。ぜひご参加ください。 コンパイラ関数呼び出しが5%高速化1.16の時に予告されていたレジスタベースの関数呼び出しが入りました。呼び出し速度が5%、バイナリサイズが2%改善されました。特にコードの変更なく恩恵に授かれます。 あとはpanic時のスタックトレースの表示が改善され、今まで16進数で表示されていたのが改善されたらしいのですが、よくわかりませんでした。16進数は出なくなりましたが、試したが、…となるだけでした。 クロージャを含む関数がインライン展開されるようにもなりました。これもコード修正必要なく、パフォーマンスアップにつながる可能性があります。 なお、unsafeで怪しく引数を触ったりするとトラブルが発生する可能性がありますが、通常のGoの使用方法では問題になることはなさそうです。 build constraintのコメン

    Go 1.17連載が始まります: コンパイラとgo mod | フューチャー技術ブログ
  • VPC内のAmazon API Gatewayをインターネットオーバーで疎通確認する | フューチャー技術ブログ

    はじめにTIG DXユニットの真野です。AWSAPI Gateway+Lambda という構成でWebAPI開発を行う際、ちょっと便利に使える疎通方法をまとめます。 背景API GatewayですがPublicなエンドポイントがあれば curlコマンドやPostmanを用いての動作検証も容易だと思います。 一方でVPCエンドポイントを利用してプライベート APIとして構築されている場合は少し厄介です。そのセグメントにVPCなどで属することができればよいのですが、そのためだけに接続するのは煩わしい場面があります。踏み台サーバを作ってAWS Systems Manager(ssmコマンド)でログインするのも、開発環境でそこまでするのかという感覚がありました。また、AWS WAFなどで接続が絞られている時にはその条件を思い出す必要があり(覚えておけよって感じですが)、疎通確認すらちょっと面倒な

    VPC内のAmazon API Gatewayをインターネットオーバーで疎通確認する | フューチャー技術ブログ
  • Goのおすすめのフレームワークはnet/http | フューチャー技術ブログ

    僕としてはGoのおすすめのフレームワークを聞かれたら、標準ライブラリのnet/httpと答えるようにしています。というよりも、Goの他のフレームワークと呼ばれているものは、このnet/httpのラッパーでしかないからです。 Goでアプリケーションを作成する場合のイメージは次の通り。battery includedなアプローチは他の言語でもたまにありますが、ついてくる機能が今時のものが多くて、標準ライブラリで済むことが多いです。ウェブ開発についてもそんな感じです。 PythonとかRubyとかもそうですが、言語組み込みのウェブサーバー機能はテスト用で番運用には機能が足りない、性能が足りない、ということから「プロダクションに耐えうるフレームワークを別に入れないと」と思う人も多いんじゃないかな、と思いますが、Goの場合は組み込みのサーバーで問題なかったりします。Node.jsに近いかも? 世間

    Goのおすすめのフレームワークはnet/http | フューチャー技術ブログ
  • どうしてHTML5が廃止されたのか | フューチャー技術ブログ

    フロントエンド連載の5記事目です。 HTML5が2021年の1月に廃止されました。 Webエンジニアとしてバリバリ活躍されてる方やエグゼクティブテックリードのような肩書きを持つ方にとっては「何をいまさら」という話題かと思います。 しかしながら、今年も新人さん入ってきてくださったので、プログラミングを学習中にHTML5という文字列に悩まされないように、そもそもHTML5とは何かや、廃止された経緯をまとめてみます。 HTML5とはWebサイトを作るときに必ず書くことになるHTML。Webサイトのコンテンツ、つまり中身や構造を作るために使うマークアップ言語です。 そして、その最近版として10年ほど前に登場したHTML5。当時は Webニュースなどで盛んに特集が組まれていましたが、このHTML5がついこないだ、2021年1月28日に廃止されました。 広義のHTML5 / 狭義のHTML5HTML5

    どうしてHTML5が廃止されたのか | フューチャー技術ブログ
  • DockerでRUNをまとめた方が良いとは限らない | フューチャー技術ブログ

    TIG/DXの渋川です。 ソフトウェアの世界では、ツールや言語の進歩があって、もはや古い知識になっているにも関わらず、古い知識がベストプラクティスと呼ばれて蔓延し続けている例があります。Dockerだと「RUNをまとめよう」というのがそうです。かつてはこれは常に行うべきプラクティスでしたが、現代だとそうじゃないケースもあり、デメリットもあります。 https://www.docker.com/company/newsroom/media-resources 1. ただファイルが増えるだけのケースであれば気にしなくていい次の2つのファイルで実験してみます。ベースイメージに、10MBのファイルを作成するコマンドをふたつ並べたものです。 FROM debian:bullseye-slim RUN dd if=/dev/zero of=dummy1 bs=1M count=10 RUN dd if

    DockerでRUNをまとめた方が良いとは限らない | フューチャー技術ブログ
  • Go の Open API 3.0 のジェネレータ oapi-codegen を試してみた | フューチャー技術ブログ

    The Gopher character is based on the Go mascot designed by Renée French. 概要TIG DXチーム所属の多賀です。最近はフロントのコードを書いたりすることも増えましたが、引き続き Go も触っています。 GoOpenAPI(Swagger) からコード生成する際には、 go-swagger をよく利用しています。 go-swagger については他記事でもまとめられています。 go-swaggerを用いたWebアプリケーション開発Tips19選 WAFとして go-swagger を選択してみた ただ、 go-swagger は Swagger 2.0 にのみ対応しており、OpenAPI 3.0 系が使えない問題がありました。最新に追従していく上でも Open API 3.0 系に寄せていきたいと考えていたので、な

    Go の Open API 3.0 のジェネレータ oapi-codegen を試してみた | フューチャー技術ブログ
  • エンジニアが最低限理解しておくべきOSSライセンスの基礎知識 | フューチャー技術ブログ

    フューチャー夏休み自由研究連載15目の記事です。 はじめにシステム開発にてオープンソースのライブラリやフレームワークを利用することは、もはや当たり前となっています。 みなさんはOSSのライセンスについてどの程度理解していますでしょうか。 OSSだから無条件に利用可能だと思っていませんか? 記事では、OSSのライセンスについて最低限エンジニアとして理解しておくべき内容を整理します。 なお、筆者は法学の専門家ではないことを事前にご了承ください。 記事の内容は筆者個人の調査によるものであり、正確であるよう可能な限り努力しておりますが、間違いが含まれている可能性があります。あくまで参考資料としてご活用いただければ幸いです。 前提としてOSSとはオープンソースソフトウェア(OSS)とは、利用者の目的を問わずソースコードを使用、調査、再利用、修正、拡張、再配布が可能なソフトウェアの総称となります

    エンジニアが最低限理解しておくべきOSSライセンスの基礎知識 | フューチャー技術ブログ
  • 人生を豊かにする文字列diff入門 | フューチャー技術ブログ

    春の入門祭りの8日目です。 文字列の新旧の違いを表現する時によくdiffをとるとか言いますよね。そこで実行されるのが差分アルゴリズムです。差分のアルゴリズムって結構知れば知るほど難しいやつです。「より良い差分」という基準が、状況によって変わるからです。ヒューリスティックなやつです。例えば、HTMLの説明の文章を書いていたとします。タイトルをテーブルに書き換えてみたとします。 どちらも間違ってはおらず、この差分を元にパッチを当てたりも可能です。ただ、読んだ時の読みやすさが違います。 これはもちろん前者と答える人の方が多いでしょう。だって、タグという意味の塊が維持されていますからね。 これは究極的にはわかりやすいdiffというのは「意味」を理解しないと作れないということを意味します。これがdiffは簡単なようで難しいと書いた理由です。もちろん、ほどほどの工数で、ほどほどの見た目のdiffも作成

    人生を豊かにする文字列diff入門 | フューチャー技術ブログ
  • Goの標準ライブラリのコードリーディングのすすめ | フューチャー技術ブログ

    パッケージの選定そもそも、どのパッケージを読んだらいいんだろう?という疑問があると思います。上記のパッケージを選定した方法を紹介したいと思います。 読むパッケージの選定は有志のメンバ数名で一緒に決めました。 まずパッケージのステップ数を見てスクリーニングしています。gocloc というツールを使うと以下のフォーマットで簡単にステップ数を確認することができます。 $ gocloc archive ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- Go 21 7

    Goの標準ライブラリのコードリーディングのすすめ | フューチャー技術ブログ
  • 本当に使ってよかったOpenAPI (Swagger) ツール | フューチャー技術ブログ

    サードパーティ製のツール家からは上述のツールが提供されていますが、サードバーティ製の様々なツールが世の中には存在します。 エコシステムが成熟しているのもSwaggerを利用するメリットの一つですね。 https://openapi.tools/ 冒頭のとおり、このサードパーティ製のツールの中で実際に利用して良かったツールを3つご紹介したいと思います。 Stoplight Studiohttps://stoplight.io/studio/ 1つ目のツールは「Stoplight Studio」というAPI仕様を記載するためのGUIエディタとなります。 今までSwagger Editorを利用してYAMLを書いていたそこのみなさん、YAML筋力はもう必要ありません。 Design APIs 10x faster の謳い文句どおり、Stoplight Studioを使えばGUIで直感的に、高速

    本当に使ってよかったOpenAPI (Swagger) ツール | フューチャー技術ブログ
  • 一周回って、人間が読み書きする設定ファイルはJSONが良いと思った | フューチャー技術ブログ

    最近GoでCLIツールを作っていますが、JSONが良いとなんとなく思っています。 続編も公開しました(追記:2019年10月2日)。 CUEを試して見る 設定ファイルフォーマット近年、設定ファイルを書くプレーンテキストのフォーマットとしては次のようなものが多いかと思われます。 XML 多くのプログラミング言語において標準ライブラリで扱える(ただしNode.jsにはない) XMLスキーマ、XSLTなどの周辺ツールも揃っているが、記述が冗長になりがちで、敬遠されがち。 ini QtやPythonの標準ライブラリで扱える 深い階層や配列を扱うのが苦手 JSON ほとんどのプログラミング言語で標準ライブラリに入っている 特にフロントエンドJavaScriptでは追加のライブラリを利用する必要がなく、速度も早く、gzipすればファイルサイズもかなり小さくなる。T 閉じかっこが必要、コメントがつけら

    一周回って、人間が読み書きする設定ファイルはJSONが良いと思った | フューチャー技術ブログ
  • Terraformのベストなプラクティスってなんだろうか | フューチャー技術ブログ

    はじめにこんにちは、TIG DXユニット 1の木村です。 入社以降ずっと触ってきたTerraformですが、巷ではWorkspace派だったり、module派だったり、ディレクトリ完全分離派だったり、様々な流派(プラクティス)が乱立しているのを目にします。私自身ベストな構成を模索していく中で辿り着いた結論は、ケースバイケースで全てのデザインパターンに対応できる万能なものは存在しないのかな (当たり障りないですね..)ということです。 そんなわけで、様々なTerraformの流派を紹介し、各流派がどのようなパターンに向いているのか(はたまた不向きなのか)の個人的見解をまとめてみました。 ※記事中のサンプルコードはすべて Terraform 0.12、 provider google cloud で解説してます Terraformとは?当社過去記事に解説があります。Terraformの概要や

    Terraformのベストなプラクティスってなんだろうか | フューチャー技術ブログ
  • Goを学ぶときにつまずきやすいポイントFAQ | フューチャー技術ブログ

    他の言語になれた人が、初めてGoを書いた時にわかりにくいな、と思った部分はどういうところがあるのか、難しいポイントはどこか、という情報を自分の経験や、会社の内外の人に聞いたりしてまとめてみました。まだまだたくさんあるのですが、多すぎるのでまずはこんなところで。コンテナで開発することがこれからますます増えていくと思われますし、その時にコンテナとの相性が抜群なGoをこれから使い始める人もどんどん増えていくと思います。 Goは特に言語のコアをシンプルに、何かを実現するときはそのシンプルな機能を組み合わせて実現しよう、というコンセプトです。つまり、他の言語で実現したいこと・できていることに比べて、Goは組み合わせ(イディオム)でカバーする領域が広くなります。そのあたりのとっかかりになる情報を提供することが、これからGoを触る人にとってつまずきを減らすことになると思います。 Go Conferenc

    Goを学ぶときにつまずきやすいポイントFAQ | フューチャー技術ブログ
  • 1