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

  • Go 1.17のtesting新機能 | フューチャー技術ブログ

    TIGの伊藤真彦です。 この記事はGo1.17連載の3記事目です。 Go1.17からのtestingにおける新機能Go1.17のリリースノートにこのような記載があります。 testing Added a new testing flag -shuffle which controls the execution order of tests and benchmarks. The new T.Setenv and B.Setenv methods support setting an environment variable for the duration of the test or benchmark. テストとベンチマークの実行順序を制御する新しいテストフラグ-shuffleを追加しました。 新しいT.SetenvおよびB.Setenvメソッドは、テストまたはベンチマークの期間中の

    Go 1.17のtesting新機能 | フューチャー技術ブログ
    civitaspo
    civitaspo 2021/08/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 | フューチャー技術ブログ
    civitaspo
    civitaspo 2021/08/11
  • Goのおすすめのフレームワークはnet/http | フューチャー技術ブログ

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

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

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

    どうしてHTML5が廃止されたのか | フューチャー技術ブログ
    civitaspo
    civitaspo 2021/06/21
  • サーバーアプリ開発環境(Python/FastAPI) | フューチャー技術ブログ

    Pythonでお仕事する前提で、現在のところで自分が最適と考えるチーム開発のための環境整備についてまとめてみました。今までももろもろ散発的に記事に書いたりしていたのですが、Poetryで環境を作ってみたのと、過去のもろもろの情報がまとまったものが個人的にも欲しかったのでまとめました。前提としては次の通りです。 パッケージ管理や開発環境整備でPoetryを使う 今時はコードフォーマッター、静的チェックは当たり前ですよね? コマンドでテスト実行、コードチェックとか実行とかができる(CI/CD等を考えて) VSCodeでもコマンドで実行しているのと同じコードチェックが可能(ここコンフリクトすると困る) デプロイはDockerイメージ コンテナのデプロイ環境でコンテナに割り当てられたCPU能力を比較的引き出せて、スケールさせたら線形にパフォーマンスアップできるようなasyncioを前提とした環境構

    サーバーアプリ開発環境(Python/FastAPI) | フューチャー技術ブログ
    civitaspo
    civitaspo 2021/06/12
  • Goの構造体の使われ方の設計 | フューチャー技術ブログ

    Goで構造体を設計する場合、オブジェクト指向的な「型ごとの責務の分担」以外に、「どのように使われるものか」を考える必要があります。 ポインタで扱うのか?値として扱うのか?両方許可するのか? 値として扱える場合にimmutable(変更不可能)なオブジェクトとするのか、mutable(変更可能)なオブジェクトとするのか 値として扱える場合にゼロ値での動作を補償するかどうか 他の言語で言うと、C#の構造体とクラスの違い、C++のデフォルトコンストラクタあたりに頭を悩ませたことがある人にはおなじみかもしれませんが、Goでもいくつか考慮が必要になります。 ポインタ型として扱う必要があるケースまず最初に決断できる方針としては、ポインタ型でのみ扱うかどうかです。 内部にスライスやmap、ポインタなどの参照型な要素を持っていれば、基的にポインタ型でのみ扱う構造体になります。これらの要素を持っていた場合

    Goの構造体の使われ方の設計 | フューチャー技術ブログ
    civitaspo
    civitaspo 2021/05/26
  • 本番データが急に欲しくなったアナタに贈る、CloudSQLのサーバレスエクスポートを試してみた | フューチャー技術ブログ

    はじめにこんにちは。TIG 市川です。GCP連載2021の2日目です。 番運用しているデータをサクッと引っこ抜いてCSV錬金したり、DWHなどに連携していないデータを元にDataStudioでコネコネしたり・・・(負荷を気にせず)気軽にやりたいなぁ・・・というアナタに贈る記事になります。 おことわり 実際のシステムにおける番データは正しく取り扱いましょう。運用ポリシー・セキュリティポリシーに従い、機密情報などを気軽に引っこ抜いてはいけません サーバレスエクスポートとは? https://cloud.google.com/blog/products/databases/introducing-cloud-sql-serverless-exports より引用 データベースからデータをエクスポートすることは運用上起こりえるタスクではありますが、その実、エクスポートの仕方を誤ると番のワーク

    本番データが急に欲しくなったアナタに贈る、CloudSQLのサーバレスエクスポートを試してみた | フューチャー技術ブログ
    civitaspo
    civitaspo 2021/03/10
  • GCP連載2021を始めます | フューチャー技術ブログ

    こんにちは。TIGの伊藤太斉です。 タイトル通り、GCP連載をテーマに連載を行います。 GCP連載について 今年は昨年の連載に引き続き2度目の開催です。 GCPはフューチャー社内でも利用を始めたり、検討を行っている案件も増えてきました。また世間でもパブリッククラウドの選択肢として、GCPを入れるという企業が昨年より増えているかと思います。 連載スケジュール今年も参加者が取り扱いたいテーマを取り扱っています。

    GCP連載2021を始めます | フューチャー技術ブログ
    civitaspo
    civitaspo 2021/03/09
  • 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をまとめた方が良いとは限らない | フューチャー技術ブログ
    civitaspo
    civitaspo 2021/01/22
  • GKEクラスタに割り当てるCIDRを設計する | フューチャー技術ブログ

    はじめに前回投稿したGCP記事で紹介したGKEクラスタのCIDR設計について、深堀りした記事になります。 1-5. 共有VPC上のGKEクラスタのセカンダリCIDR設計 事象: オンプレ環境と接続する1つの共有VPC上にproduction, stagingなど複数プロジェクトを相乗りさせる場合、各プロジェクトで利用するセカンダリCIDRの設計が必要。 対応: GKEで必要なセカンダリCIDRを腰入れて設計しました。スタンダードなこれと言った解はなく、必要な環境数、オンプレ環境から割り当てられたIP範囲から適宜設計する必要があります。 記載通りですが、GKEクラスタを構築する際に、実際に設計した内容を元に制約や設計のポイントを紹介したいと思います。 GKEとは コンテナ化されたアプリケーションをデプロイするための、番稼働に対応したマネージド型環境です。 https://cloud.go

    GKEクラスタに割り当てるCIDRを設計する | フューチャー技術ブログ
    civitaspo
    civitaspo 2020/11/27
  • LocalStackに向けてTerraformを実行する | フューチャー技術ブログ

    はじめにフューチャーの棚井龍之介です。TIGグループのDXユニットに所属しています。 TerraformはLocalstackに対してもapplyできます。便利な方法なのに日語のサイトが見当たらないので、技術ブログ化しました。 この記事を読むとできるようになること ローカル環境に立ち上げた localstack に向けて、terraform plan/apply/destroy を実行できる LocalStackとTerraformみなさんは、Localstack や Terraform を使っていますか? アプリのローカル環境テストとしてLocalstackを、インフラ構築にTerraformを用いる開発スタイルは、今やそう珍しいものではないと思います。 しかしながら、「ローカル環境のLocalStackに向けて、Terraformを打ち込むことができる」というのは、あまり知られていな

    LocalStackに向けてTerraformを実行する | フューチャー技術ブログ
    civitaspo
    civitaspo 2020/11/14
  • 「2020年代のコンテナ時代のPythonアーキテクチャ&デプロイ」というテーマでPyCon.jp 2020で発表してきました | フューチャー技術ブログ

    「2020年代のコンテナ時代のPythonアーキテクチャ&デプロイ」というテーマでPyCon.jp 2020で発表してきました 初のオンライン&Python 2サポートが終了したあとのPyCon.jpという節目のイベントで発表してきました。 発表資料はこちらになります。 日英表記にした関係で表現をだいぶシンプルに削ることになったりしたので、口頭での説明のみ行ったこととか、その後のTwitterの感想を見て思ったことなどを軽く補足します。 コンテナの時代コンテナのカバレッジが広がっている事例としてはDensoのMisakiとか戦闘機にKubernetesを載せてみました、とかもあります。 https://www.publickey1.jp/blog/20/kubernetesmisaki.html https://www.publickey1.jp/blog/20/kubernetesf-1

    「2020年代のコンテナ時代のPythonアーキテクチャ&デプロイ」というテーマでPyCon.jp 2020で発表してきました | フューチャー技術ブログ
    civitaspo
    civitaspo 2020/09/11
  • PythonユーザーのためのGraalVM | フューチャー技術ブログ

    ちょうど一年ぐらい前にGraalVMが商用利用可能な安定版に達し、Enterprise版もリリースされたというニュースがあります。 publickey: GraalVM、ついに番利用可能なバージョン「GraalVM 19.0」登場、JavaJavaScriptなど多言語対応ランタイム。商用版のGraalVM Enterprise Editionもリリース GraalVMにはPython機能もあると宣伝されているものの、詳しい説明が行われることがなく、それが何者で、どのようなステータスで、どこを目指しているのか、きちんと答えられる人は(日どころか世界でも)ほぼいないでしょう。GraalVMそのものの説明はちょくちょく出てくるようになってきたと思いますが、そのPythonの機能についてはあまり説明されていないため、Python部分にフォーカスして紹介します。 Graal.Pythonのイ

    PythonユーザーのためのGraalVM | フューチャー技術ブログ
    civitaspo
    civitaspo 2020/07/22
  • あなたのGoアプリ/ライブラリのパッケージ構成もっとシンプルでよくない? | フューチャー技術ブログ

    2023.10.5追記: Goチームからプロジェクトの目的に応じたディレクトリ構造についてのドキュメントが公式に公開されています。 https://go.dev/doc/modules/layout Goプロジェクトのフォルダ構成どうしよう、とググると見つかるStandard Go Project Layout。とはいえ、これはかなりコード量を増やしてしまう恐れがありますので、導入する場合のデメリットも考えておく方が良いです。 特に、プログラマーは、最初にみたプログラミング言語のフォルダ構成を親だと思う特性があり、Javaや.NETに影響されるとかなり細かくフォルダを切りたくなったり、package privateなど細かく可視性を制御しようとしたりして、なおかつ「privateのテストってどうすべきなんですか?」とか議論を始めたりもしますが、Go先生によればこれぐらいは1パッケージにフ

    あなたのGoアプリ/ライブラリのパッケージ構成もっとシンプルでよくない? | フューチャー技術ブログ
    civitaspo
    civitaspo 2020/05/28
  • TypeScriptでReactをやるときは、小さいアプリでもReduxを最初から使ってもいいかもねというお話 | フューチャー技術ブログ

    TypeScriptReactをやるときは、小さいアプリでもReduxを最初から使ってもいいかもねというお話 前日の丸野さんがReduxを分かりやすく解説してみたというReduxの基的な紹介を行いました。Reduxはコンパクトなライブラリながらよく考えられた仕組みです。Jetpack ComposeやらFlutterやら、ReactインスパイアなGUIフレームワークも増えているので、JavaScriptTypeScriptではなく) + Reduxをやってみるのは、ウェブに限らず、今後のユーザーインタフェース関連のコードを触るための理解力向上には良いと思います。 エントリーは、プロダクションコードでたくさんRedux周りにもreducerなどを実装しなくてはいけなくなったときの次のステップとして、Redux Toolkitの紹介をします。 たいてい、Reduxは導入コストが大きく、

    TypeScriptでReactをやるときは、小さいアプリでもReduxを最初から使ってもいいかもねというお話 | フューチャー技術ブログ
    civitaspo
    civitaspo 2020/05/01
  • 社内勉強会で発表したGCP資料を公開します | フューチャー技術ブログ

    はじめにこんにちは。TIG/DXチームの伊藤です。この技術ブログでGCPネタをよく発信していますが、今回もGCPネタです。好きです、GCP。フューチャーの社内では定期的に勉強会を開催している部門があり、全社的に登壇者を募って発表しています。今回は私自身社内にGCPを広めたいという思いがあり登壇の機会をいただきました。今回はその時のまとめや一部改善した内容になります。また、リモートでの勉強会ということもあり、個人的に気をつけた点も簡単にまとめたので、その辺も参考になればと思います。 話す前の準備今回は社内で広く利用しているGoogle Meetを使ってオンラインで勉強を行いました。勉強会としても私としてもリモート開催がそもそも初めてなので、質問を受けやすいように区切りのいいとこで質問タイムを設けました。また、オンラインだと反応が見にくいというのがあり、sli.doで質問を募ったり、単純な感想

    社内勉強会で発表したGCP資料を公開します | フューチャー技術ブログ
    civitaspo
    civitaspo 2020/04/26
  • Real World HTTP 第2版はなぜ1.5倍になったのか | フューチャー技術ブログ

    Real World HTTP 第2版が2020/04/20出版されました。第2版が出版されるというのは、初版をみなさまが買ってくださったおかげです。どうもありがとうございます。紙媒体は先行入荷する書店さんではすでに入っているようです。オライリーのウェブサイトから電子版を購入することもできます。 4/17新刊『Real World HTTP 第2版 歴史とコードに学ぶインターネットとウェブ技術』オライリー(978-4-87311-903-8)渋川よしき 著◆「オライリー」棚にて展開中!Webテクノロジーの基礎となるHTTPの仕様を網羅的に学べる学習書が内容を充実させて改訂! pic.twitter.com/k86zXGaHe9 — 書泉ブックタワーコンピュータ書 (@shosen_bt_pc) April 17, 2020 Real World HTTPの初版の執筆時にも、ネットで見かける

    Real World HTTP 第2版はなぜ1.5倍になったのか | フューチャー技術ブログ
    civitaspo
    civitaspo 2020/04/21
  • JavaプログラマーのためのGo言語入門 | フューチャー技術ブログ

    JavaプログラマーのためのGo言語入門こちらはJava to Go in-depth tutorialの日語訳です 原文の著者に許諾を得て翻訳・公開いたします。 このチュートリアルは、JavaプログラマーがすばやくGo言語にキャッチアップできるようにすることを目的としています。 目次 Hello stack 主な違い シンタックス(文法) 定数 構造体 ポインタ スライス 値の作成 メソッドとインターフェース エラー PanicとRecover ゴルーチンとチャネル Hello server Hello stack 1まずはじめに簡単な例を見ていきましょう。この例ではシンプルな抽象データ型をGoで実装しています。 // collectionパッケージはstring型を格納できるスタックを実装している package collection // Stackのゼロ値はすぐに使用できる空のス

    JavaプログラマーのためのGo言語入門 | フューチャー技術ブログ
    civitaspo
    civitaspo 2020/03/11
  • GCP連載#6 Terraform Validatorを使って、GCPのセキュリティポリシーの自動チェックを行う | フューチャー技術ブログ

    GCP連載#6 Terraform Validatorを使って、GCPセキュリティポリシーの自動チェックを行う GCP連載の6回目です。今回はTerraform Validatorを使って、組織のセキュリティポリシーの自動チェックを継続的に行う方法を紹介します。併せて、ポリシーをコードとして管理する方法も紹介します。Policy as code です。もちろんセキュリティポリシーのみだけではなく、命名規則やリージョン制限なども扱えます。 Infrastructure as code 理想と現実Infrastructure as code (以下 IaC)、ここ最近大分一般的になってきました。弊社でも大半のプロジェクトは導入しています。3年前とかに導入するために一苦労していた時代が懐かしい.. IaCが当たり前になった今、インフラの構成管理はもう問題ないかというとそうではありません。特にプ

    GCP連載#6 Terraform Validatorを使って、GCPのセキュリティポリシーの自動チェックを行う | フューチャー技術ブログ
    civitaspo
    civitaspo 2020/02/13
  • 5TB/日 のデータをAWS Glueでさばくためにやったこと(概要編 | Future Tech Blog - フューチャーアーキテクト

    みなさん、初めまして、お久しぶりです、こんにちは。 フューチャーアーキテクト2018年新卒入社、1年目エンジニアのTIG(Technology Innovation Group)所属の澤田周吾です。大学では機械航空工学を専攻しており、学生時代のインターンなどがキッカケで入社を決意しました。 実は、記事でフューチャーテックブログの2記事目となります。インターン時代も ジャガイモARの記事 を書かせて頂きました。入社してからもこうして業務で学んだIT技術を記事に書くという機会を貰え、なんだか懐かしいやら感慨深いやらの思いで一杯です。 さて、3ヶ月の新人研修後にすぐに配属されたプロジェクトで、AWSを使ったビックデータ分析のための基盤構築をお手伝いしています。わたしは分析のための前処理であるETL(Extract、Transform、Load)処理部分をちょっと変わった性格の先輩方と一緒に開発

    5TB/日 のデータをAWS Glueでさばくためにやったこと(概要編 | Future Tech Blog - フューチャーアーキテクト
    civitaspo
    civitaspo 2019/03/25