並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 140件

新着順 人気順

技術ブログの検索結果81 - 120 件 / 140件

  • ばんくしさんは「誰かの理解の助けになろう」として“苦労ベース”の技術ブログを書く【エンジニアのブログ探訪】 - 週刊はてなブログ

    はてなブログで技術に関するブログを書いている方に、“ブログを書き続けること”について教えていただく企画「エンジニアのブログ探訪」。第2回は河合俊典(ばんくし)さん(id:vaaaaaanquish)に登場いただきました。 河合さんは大学在学中の2013年にブログを開設し、これまでさまざまな技術や多くの技術書に関する記事を発信し続けています。 どのようにして記事の題材を考えるのか、そしてそれらの記事は河合さんにとってどんな形で役立っているのか──河合さんと技術ブログの関わり方を、テキストインタビューで伺いました。 河合さんの技術ブログ「Stimulator」 ──ブログを始めたきっかけについて教えてください。 既に技術ブログを書いていた方々とGive and Takeの関係になりたい、と感じたのがきっかけです。 今でこそさまざまな媒体で多くのソフトウェアエンジニアが技術ブログを書いていますが

      ばんくしさんは「誰かの理解の助けになろう」として“苦労ベース”の技術ブログを書く【エンジニアのブログ探訪】 - 週刊はてなブログ
    • なぜ我々はユニットテストが書けないのか?|SHIFT Group 技術ブログ

      はじめにこんにちは!Unit~E2Eのテスト自動化を生業にしている、いしいと申します。 ユニットテストに限らず、何かを始めようと思ったとき、人は様々な壁に直面しますよね。知識・経験の問題、コストの問題(金銭、時間)、メンタルの問題(納得感、不安感)、それらが複合的に結びつく社内政治的な問題などなど・・・。そして、それらの壁を乗り越えて第一歩を踏み出すことには大変な困難を伴います。 この記事では、ユニットテストを書いていくのにあたって、どのような壁・問題があるのかを確認し、それに対してどのようにアプローチをすれば乗り越えられるのかを考えていこうと思います。 ユニットテストの壁とその乗り越え方メンタルの問題根本的にモチベーションが上がらない それはユニットテストのメリットや魅力に理解、納得がいっていないからです。人間、無駄なことをやりたいとはなかなか思えません。仮に、無駄と思いながらやったとし

        なぜ我々はユニットテストが書けないのか?|SHIFT Group 技術ブログ
      • Goの構造体の使われ方の設計 | フューチャー技術ブログ

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

          Goの構造体の使われ方の設計 | フューチャー技術ブログ
        • GoとDynamoDBを用いた開発で反省していること | フューチャー技術ブログ

          はじめにTIG真野です。失敗談をテーマにした連載で、ちょうどプロダクト開発的に良い区切りのタイミングでもあるため、振り返りがてら、DynamoDB,Go,AWS Lambdaの技術要素について自分自身の理解・見込みの甘さについて反省します。 DynamoDBのシステム項目created_atとかupdated_atのタイムゾーンはJSTにすれば良かったDynamoDBは日付型を直接サポートしておらず、文字列型で保存することになります。 https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes.String データサイズや諸々の理由でUnixTime 勢力もあるかもしれませんが、アプリケーションから直接参照

          • 作って学ぶGraphQL。gqlgenを用いて鉄道データ検索API開発入門 | フューチャー技術ブログ

            春の入門祭りの7日目です。 はじめに※このエントリーはGoでGraphQLサーバアプリ開発の入門記事です。技術要素にGo, gqlgen, Docker, PosgreSQLなどが登場します。 TIG DXユニット 1の真野です。技術ブログ運営もしています。 フューチャーではOpenAPI関連の過去記事からお察しもできるように、REST-likeなWebAPIを実装することが多いです。しかし日本製HeadlessCMSのmicroCMSを触ってみたの記事で紹介されたように、HeadlessCMS界隈を初めGraphQLのAPIを提供するサービスが増えている体感もあり、GraphQLを春の入門祭りのテーマにしました。 学習する上でドキュメントを読み込むだけでは忘れがちです。手を動かしながらタイトルにあるように鉄道データ検索APIをGraphQLで実装していきましょう。実装の前に結果のみを知り

              作って学ぶGraphQL。gqlgenを用いて鉄道データ検索API開発入門 | フューチャー技術ブログ
            • OpenAPI GeneratorでPython Web API構築 | フューチャー技術ブログ

              この記事はPython Advent Calendar 2022 カレンダー2の3日目です。昨日はtttakehさんのじゃんけん画像を分類してみたでした。 はじめにこんにちは。TIG DXユニットの村上です! さて、私の所属しているプロジェクトではバックエンドシステムに主にGo言語を用いており、Go言語によるWebAPIを構築しています。 例えばLambdaとGoを使ったサーバーレスWebAPI開発実践入門など、Future Tech Blogには多くのノウハウが投稿されていますので是非ご覧になっていただければと思います。 今回はGo言語ではなくPythonでWebAPIを構築しました。その際にOpenAPI Generatorが便利だったのでご共有します。 OpenAPI GeneratorOpenAPI GeneratorはAPIリクエストやレスポンスの内容を定義し、それを元にプログラ

                OpenAPI GeneratorでPython Web API構築 | フューチャー技術ブログ
              • Next.js + Tailwind UI を使うとたった6時間で技術ブログのプロトタイプを作れる - パンダのプログラミングブログ

                Gatsby から Next.js に載せ替えた動機 本ブログを Next.js でリニューアルしました。 元々このブログは Gatsby で作っており、2019年3月にリリースしましたが(最初の投稿)、ついに Next.js に移行しました。移行のモチベーションはバージョン追従を避けたこと、デザインを一新したいこと、また記事が表示されないというバグが発生する事象があったことです。 まず Gatsby のバージョンアップについて。現在、Gatsby の最新バージョンが4系です。しかし、自分が使っていたテンプレートは3年前に1系から使い始めて、2年前に2系にバージョンアップしました。その後、自分は業務と個人開発で Next.js を使い始めたため、このブログでしか使っていなかった Gatsby の情報を追うのを止めて、記事だけ追加する運用をしていました。 その頃にはバージョンアップをするより

                  Next.js + Tailwind UI を使うとたった6時間で技術ブログのプロトタイプを作れる - パンダのプログラミングブログ
                • go-swaggerを用いたWebアプリケーション開発Tips19選 | フューチャー技術ブログ

                  はじめにTIG DXユニット 1の真野です。echo → 生net/http → gorilla/mux → go-swagger, gqlgenの経歴でGoのHTTP APIを実装してきました。本記事では最近業務でヘビーユーズしているgo-swaggerについての開発Tipsをまとめました。 背景フューチャーではGoを採用する案件が増えて来ており、その際にgo-swagger というツールを利用することが多いです。 2 理由はWebAPIのスキーマを駆動に開発することに慣れているという開発文化(DBレイヤのERDやデータフローを駆動に開発することは今も多い)や、リリース後の保守や将来のマイグレーションを考慮しなるべく特定のDSLに依存したくないというポリシーを強く持つこと、開発前にある程度固く機能数を洗い出して工数見積もりや開発スケジュールに活かしたいといった大人な事情など、色々相性が良

                    go-swaggerを用いたWebアプリケーション開発Tips19選 | フューチャー技術ブログ
                  • パスワードレスな認証を実現する認証ミドルウェアのhanko | フューチャー技術ブログ

                    名前からすると日本の古き良き(悪名高い)デバイス認証方式のあれのように見えますが、パスワードレスな認証(passkey)を実現するOSSのプロダクトです。Go製でライセンスはAGPL3です。なかなか面白そうなので動かしてみました。 https://www.hanko.io/ このhankoのメンバーが運営しているpasskeys.ioというウェブサイトもあり、パスワードレスなログインを広めていこう!という啓蒙サイトになっています。 https://www.passkeys.io/ この↑のサイトの存在を知らなかったのですが、@takuan_oshoさんからタレコミをいただきました。ありがとうございます。 動かし方READMEに書いてある通りにdocker composeで一通り必要なものを起動します。 $ docker compose -f deploy/docker-compose/qu

                      パスワードレスな認証を実現する認証ミドルウェアのhanko | フューチャー技術ブログ
                    • GitHub Copilot ChatでAzureのインフラを爆速実装しよう - APC 技術ブログ

                      はじめに 早速書いてもらうyo! さいごに 告知 ACS事業部のご紹介 はじめに 弊部のEMから、以下のGitHub Copilot ChatでTerraformコードを書いてもらう動画を、 シェアしてもらいまして、「すげーーーーー!」となりました。 どうも語彙力不足な感想しか吐けない、ACS事業部の谷合です。 Accelerate creating IaC with Terraform and GitHub Copilot Chat www.youtube.com 実は私GitHub Copilotのハンズオンセミナーの講師とかやっちゃう人間なのですが、 以前、セミナーのハンズオンでTerraformコードを書く演習を用意したことがありました。 その際、純粋なGitHub Copilotでは意図したTerraformコードを出力してくれなかったんですよね。 言語のプログラムと異なり、イン

                        GitHub Copilot ChatでAzureのインフラを爆速実装しよう - APC 技術ブログ
                      • OpenAPIにおけるundefinedとnullの設計 | フューチャー技術ブログ

                        はじめにOpenAPI仕様に則ってREST APIの設計をする際に、値が存在しないという状態をどのように表現するかというお話です。 undefinedとはまずはじめに、ここでundefinedと言っているのは、OpenAPIの仕様において、リクエスト/レスポンスのデータ型を定義するSchema Objectのプロパティの1つであるrequiredが指定されていない状態を指します。 OpenAPIにおけるrequiredの定義を確認してみましょう。 OpenAPIの仕様を参照すると、Schema ObjectはJSON Schemaの仕様に従うと記載されています。 The Schema Object allows the definition of input and output data types. These types can be objects, but also primit

                          OpenAPIにおけるundefinedとnullの設計 | フューチャー技術ブログ
                        • 仕事でPythonコンテナをデプロイする人向けのDockerfile (2): distroless編 | フューチャー技術ブログ

                          なお、distrolessのイメージは2種類(3通りの名前)がありますが、Python 3.5はバグ修正はせず、セキュリティ修正のみでサポート期限が2020/9/13というステータスなので、本エントリーでは3.7の方のみを扱います。 gcr.io/distroless/python3: Python 3.5.3 gcr.io/distroless/python3-debian9: Python 3.5.3(上のイメージと同一) gcr.io/distroless/python3-debian10: Python 3.7.3 一応サンプル等もありますが、どれも1ファイルで構成されたサンプルスクリプトばかりです。前回のsite-packagesにコピーする方法を軽く試したところうまく動かず、シェルもpipもensurepipもないため、ビルドイメージにすることもできません。いろいろ調べた結果、

                            仕事でPythonコンテナをデプロイする人向けのDockerfile (2): distroless編 | フューチャー技術ブログ
                          • 管理画面等でNext.jsをBetter Reactとして使う | フューチャー技術ブログ

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

                            • 初めてのGCPで環境構築してハマったこと | フューチャー技術ブログ

                              はじめにお仕事でGCP使って環境を構築することがあったのですが、色々とハマることが多かったので供養を兼ねて共有したいと思います。 当時の私の経験値としては「AWSの一部サービスは触ったことがある」程度でクラウド環境を下地から構築するのは初めての経験でした。一度触ってみれば常識だよねって内容が多いですが、初心者が小石につまずいてもすぐに立ち上れるようになれば幸いです。 今回構築した環境の概要 既存のオンプレ環境との共存を前提とし、使えるアドレス範囲もオンプレのNWから払い出し オンプレ環境とインターネットVPNでつなぐプロジェクトは1つ(ホストプロジェクト) 各環境(production、staging・・)は共有VPCで接続(サービスプロジェクト) なお、構築はTerraform, Ansibleで行いました。 GCPで環境構築してハマったこと本編です。 カテゴリ別に記載しています。 1.

                                初めてのGCPで環境構築してハマったこと | フューチャー技術ブログ
                              • Amazon BedrockのKnowledge BaseでRAGを構築し、RDSのデータを分析するアプリケーションを開発する | NHN テコラス Tech Blog | AWS、機械学習、IoTなどの技術ブログ

                                Amazon BedrockのKnowledge BaseでRAGを構築し、RDSのデータを分析するアプリケーションを開発する はじめに こんにちは! 第一SAチームのshikaです。 普段、あるAmazon RDS上のデータベース(MySQL)に対し、SQLを実行してデータを参照しています。 毎回SQLクエリを実行するのが手間だったので、データ検索を容易にするWebアプリケーションを開発しました。 このアプリケーションには、AWSの生成AIサービス「Amazon Bedrock」を活用しており、生成AIを用いた対話式の検索機能を実現しています。 できあがったアプリケーションの画面は以下です。 データはテストデータを使ってます。以下の通り、架空の会社の従業員情報に関するデータです。 本記事ではこのアプリケーションの構成、仕組みについて、特にAmazon Bedrockの部分を重点を置いて解

                                  Amazon BedrockのKnowledge BaseでRAGを構築し、RDSのデータを分析するアプリケーションを開発する | NHN テコラス Tech Blog | AWS、機械学習、IoTなどの技術ブログ
                                • 「リーダブルコード」を読んでTerraformの可読性について考える | フューチャー技術ブログ

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

                                    「リーダブルコード」を読んでTerraformの可読性について考える | フューチャー技術ブログ
                                  • Goのデバッグ環境 on VSCode | フューチャー技術ブログ

                                    はじめにこんにちは。TIG/DXユニットの富山です。 私の使用するテキストエディタはVim一択でしたが、最近はVSCodeに浮気気味です。(言わずもがな Vimプラグインは入れています) 今回はVSCodeでGo言語用のデバッグ環境をテーマします! 環境構築前提条件: VSCodeがインストール済であること Goがインストール済であること Step 1:プラグインのインストールGoogleが公開しているVSCode用のGoプラグインである、Go for Visual Studio Codeをインストールします。(2020年6月に開発管理がMicrosoftからGoogleのGo開発チームへ移管されました)。 インストールが終わったら、Goプラグインに必要な各種ツールをインストールしていきます。 コマンドパレットを開く(Windows: Ctrl + Shift + p / Mac: Com

                                      Goのデバッグ環境 on VSCode | フューチャー技術ブログ
                                    • Python Distilledは幅広い人にPythonの基礎を叩き込む本 | フューチャー技術ブログ

                                      秋のブログ週間2023、3週目・13本目です。 Python Distilledという本がオライリーから出版されました。作者のDave Beazleyはかなり昔からPythonを使い込んでいる人ですので、この本には信頼しかない、と思い読んでみました。Daveは大学の教授をしていて、コンピュータサイエンスで表彰もされている筋金入りです。本家PyConでも何度も発表されているようです。Python歴は27年でOSSとしてはC/C++をラップして他の言語で使えるようにコードを生成するSWIGはすでに20年以上の歴史がありますし、パーサージェネレータのPLYとSLY。curioというコルーチンのライブラリなどを作っています。僕は以前、SWIGのドキュメント翻訳をしてCマガジンに特集記事を書かせていただいたこともあり、僕の大学時代の顔写真がSWIGのウェブサイトに公開されていたりします。 そういう世

                                        Python Distilledは幅広い人にPythonの基礎を叩き込む本 | フューチャー技術ブログ
                                      • フューチャー技術ブログの運営で心がけていること | フューチャー技術ブログ

                                        はじめにTIG DXユニットの真野です。フューチャー技術ブログの運営の1人です。未来報を運営している岡田さんなどと一緒に、気持ちは草の根活動で外部発信に携わっています。 IT企業の技術ブログ運営は、ある一定の質をキープしながらも、投稿頻度を高め・それを継続することが求められ、周囲の期待値もあるので中々気を抜けない仕事だと思います。単発ならともかく、継続することは忍耐が必要なので特に大変です。運営していてこれはナレッジだなと感じたことをまとめていきます。 2020/09/08 続編を公開しました: フューチャー技術ブログで行っている連載企画が良いよって話 技術ブログの大変なところ≒記事ネタを探すところ熱心な寄稿者が複数いて、運営からの声掛け無しで記事が集まるのであれば非常に楽ですが、たいていの組織やチームはそうでないと思います。また、本業は記事を書くことではなく、自社プロダクトの開発やシステ

                                          フューチャー技術ブログの運営で心がけていること | フューチャー技術ブログ
                                        • CUEを試して見る | フューチャー技術ブログ

                                          前回のエントリー、一周回って、人間が読み書きする設定ファイルはJSONが良いと思ったの続きです。 設定ファイルをどうするか問題はいろいろ悩ましい問題であります。そんな中、設定ファイル用言語という触れ込みのCUEがリリースされました。 すでに、NSSOLの方が、Linterとして使うという紹介記事をすでに書かれています。これはユースケースの一部(これでも有用ですが)です。まだ使い込んだわけではなく、チュートリアルとドキュメントを一通り読みつつ軽く試した程度ですが、全体的な紹介をしようと思います。 yamlやJsonのチェック(Lint)ができるCUEの紹介 CUEによってできるようになること主な特徴としては次のような感じです。 人が書く設定ファイル(JSON/YAML/TOML/iniあたりがライバル)のための言語 スキーマ定義が書けて、バリデーションが可能 テンプレート機能で一部が違うデー

                                            CUEを試して見る | フューチャー技術ブログ
                                          • 資料作成のポイント(定例、課題解決用) | フューチャー技術ブログ

                                            はじめにTIG真野です。説明資料のスライドを作成するときにチームメンバーによくフィードバックしたポイントをまとめました。 以下この記事の前提です。 Google Slideなどのスライド形式が前提です わざわざスライド化しなくてMarkdownに箇条書きで良い場面も多いと思います。先輩はマインドマップでディスカッションしていて憧れました。ただ、この記事ではスライド前提とさせてください 5,6名のメンバーと気合を入れて資料作成し、数ヶ月かけてドメインエキスパートとディスカッションしました経験のまとめです 作成した資料は議論のたたき台+システム設計における要件定義のような位置づけで用いました 資料はフルリモート会議で用いたので、なるべくスライドだけで完結して伝わるような志向があります この記事の記載内容は資料作成の全てのユースケースで使えるわけじゃないです コンテキストを共有しているチームメン

                                              資料作成のポイント(定例、課題解決用) | フューチャー技術ブログ
                                            • Svelteに入門した | フューチャー技術ブログ

                                              フロントエンド連載の6記事目です。 今年のゴールデンウィーク(STAY HOME週間)に最近話題のSvelteに入門したので紹介を書きます。 Svelteとはなんですか? 公式のサイトはこちらです。有志の方々が日本語翻訳のサイトを作ってくれています。たいへんありがとうございます! Svelteは主にブラウザ上で動作するユーザーインタフェースを作るフレームワークで、ReactやVue.jsの対抗馬的な存在です。 特徴とReactやVue.jsなどほかとの違い公式サイトでも、コーディングする際のコード量が少ないという特徴があげられています。 詳しくはこちらのブログに書かれています。コードが多ければ作業時間とバグが増えてしまうため、コードが減らすことはこれらの問題を減らすことができるというようなことが書いてありました。またブログには具体的なコードで量の差について書いていますのでぜひ見てみてくださ

                                                Svelteに入門した | フューチャー技術ブログ
                                              • 急に発生した全社リモートワーク・テレワーク対応、その悩み、AWS+SoftEtherで解決できます!|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

                                                ssh でアクセスして初期設定 ec2-user で、作成したサーバーに ssh アクセスし、タイムゾーンを設定し必要なパッケージを入れます sudo timedatectl set-timezone Asia/Tokyo sudo yum -y update sudo yum -y install git gcc ncurses-devel readline-devel openssl-devel zlib-devel ec2 インスタンスを一度再起動しておきます SoftEther VPN インストール ec2-user で再度 ssh し次は SoftEther をインストールします SoftEther VPN は GitHub にプロジェクトが2つあり今回は stable 版のプロジェクトを使いました。 リリースはバイナリパッケージと、ソースパッケージの2種が置かれています。通常は

                                                  急に発生した全社リモートワーク・テレワーク対応、その悩み、AWS+SoftEtherで解決できます!|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
                                                • リアクティブプログラミングについて考える | フューチャー技術ブログ

                                                  前回のエントリーで、コンポーネント単位のステートをがちゃがちゃ更新していくという、オブジェクト指向型(オブジェクトの境界がコンポーネント)の考え方から、より小さな状態のインタラクションになっていくよ、という話を紹介しました。 ビジネスロジックのアーキテクチャとしては、DDD本には以下の2つが書かれています。 ドメインオブジェクト(オブジェクト指向) トランザクションスクリプト(手続き型) DDD本はご存知のようにドメインオブジェクト押しなのですが、現実にはトランザクションスクリプトもよく使われますね。ただ、リアクティブな設計はこの2つとも違いますね。2つの要素A, Bがあって、Aの処理の結果を受けて処理Bを走らせる場合。だれがこの関連を知っているか、というところが違います。 オブジェクト指向だと、AがBを知っていて、AからBに通知します。「オブザーバーパターン」というのはありますが、あれも

                                                  • スケーラブルデータベース ~クラウドにおける後悔しないデータベース選定~ | フューチャー技術ブログ

                                                    はじめにエンタープライズでのミッションクリティカル領域においてもクラウド利用が普通になってきています。 その過程において今までできないことを指向する試みも行われてきています。その代表的なものがクラウドの備えるリソースの高い拡張性と弾力性を利用したシステム展開です。例えば「より多くのデータを扱う」「同業他社に向けたサービス展開をする(マルチテナンシー)」といったものがあります。その際のアーキテクチャ選定では将来の利用を想定した選択を行う必要がありますが、データベースのスケールというのは非常に難しく簡単ではありません。 各種の要件に応じてデータベースを選定するということは多く行われていますが、その中で一番考え方が難しいスケーラビリティにどう立ち向かうかについて記載していきます。データベースについては全ての要件を満たせる「万能」なアーキテクチャが存在しないのが実情です。そのためスケーラビリティを

                                                      スケーラブルデータベース ~クラウドにおける後悔しないデータベース選定~ | フューチャー技術ブログ
                                                    • フィーチャーフラグを管理するためのOpenFeature | フューチャー技術ブログ

                                                      はじめにTIG DXユニット真野です。 CNCF連載の2本目はクラウドネイティブなフィーチャーフラグの標準とAPI、SDKを提供するOpenFeatureについてです。 フィーチャーフラグとはフィーチャーフラグとはコードを変更せずに、フラグを使って機能を有効/無効化する開発/デプロイ手法のことです。一般的なユースケースとしては、特定のユーザーに対して再起動とか再デプロイをせずに、新機能を有効化したいといった場合に役立ちます。信頼度が高くなったらより段階的に広範囲に対象を広げていくと安心ですね。この使い方だけであれば、カナリアリリースを想像しますが、他にも次のようなユースケースが考えられます。 初期から契約している特別な顧客(あるいはプレミアムプランに契約している顧客)に向けて開発した機能を提供する バグが見つかったので、該当機能を無効化してアプリの振る舞いをロールバックする 繁忙期にシステ

                                                        フィーチャーフラグを管理するためのOpenFeature | フューチャー技術ブログ
                                                      • OpenSLOについて | フューチャー技術ブログ

                                                        はじめにはじめまして、原木と申します。 皆さまはSRE NEXTをご覧になりましたでしょうか? SRE NEXTは 先日実施された『信頼性に関するプラクティスに深い関心を持つエンジニアのためのカンファレンス』です。国内外のエンジニアが日々SRE(サイト信頼性エンジニアリング/Site Reliability Engineering)の実践手法を共有することで、Webサービスが今後運用、成長していくための次世代の信頼性を担おうとしています。 もしもWebサービスの運用を安定的に行う手法やそのためのチームビルディングに興味がある場合、SRE NEXTの動画セッションやスライドが公開されると思うのでご覧ください1。 さて本ブログではそんなSREとも関係の深い、OpenSLOに関して取り上げたいと思います。 OpenSLOとは最近、SLOモニタリングという言葉が注目を集めつつあります。例えば、Go

                                                          OpenSLOについて | フューチャー技術ブログ
                                                        • 2021年版Pythonの型ヒントの書き方 (for Python 3.9) | フューチャー技術ブログ

                                                          Pythonに型ヒントが入ってからしばらく経ちます。型ヒントの立ち位置も、なんでもできるアノテーションとして導入されましたが、型ヒント以外の用途はあまり育たず、型ヒントが中心になり、PEPや仕様もそれに合わせて変化したり、より書きやすいように機能が追加されてきました。 本エントリーでは、Python 3.9時点での最新情報を元に、現在サポート中のPythonバージョン(3.6以上)との互換性の情報も織り交ぜながら、最新の型ヒントの書き方を紹介します。 本エントリーの執筆には、Pythonの型の有識者の@moriyoshi、@aodag、@tk0miya にアドバイスをもらいました。ありがとうございます。 環境構築Visual Studio CodeVisual Studio Codeの場合は、事前にどのインタプリタを利用するかを設定しておきます。その環境にインストールします。venvを使う

                                                            2021年版Pythonの型ヒントの書き方 (for Python 3.9) | フューチャー技術ブログ
                                                          • Testcontainersを用いてテスト実行前の docker compose up を無くし、Goで並列テストする | フューチャー技術ブログ

                                                            春の入門祭り2024の1記事目です。 はじめにTIG真野です。 Testcontainers を用いて、単体テスト実行前に docker compose up -d 無しで、PostgreSQLにアクセスする単体テストを行う、入門記事です。 恩恵は次のような開発者体感の向上が個人的にあります。 テストを実行するうえで、別プロセスのサービスを起動しておく必要があるといった前提条件を考えなくても済むため、テストを行うビジネスロジックに集中できるdocker compose up -d 打たないだけだが、テストに必要なコンテナを考慮しなくても済む停止し忘れて、別のリポジトリの開発するときに混乱しなくても済む並列テストしやすくなるので、テストの実行速度が向上するGoにおいて、複数のパッケージを同時にテストするとき、 -p 1 で絞らずに済むTestcontainers とはhttps://test

                                                              Testcontainersを用いてテスト実行前の docker compose up を無くし、Goで並列テストする | フューチャー技術ブログ
                                                            • Goで作ったロジックにWebUIをつけてGitHubページに公開する | フューチャー技術ブログ

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

                                                              • JavaのDockerイメージ何選ぶ? | フューチャー技術ブログ

                                                                Javaアドベントカレンダーにエントリーした記事になります。 Javaのイメージを作る上で、どのDockerイメージをベースに選べばいいのか、というのを軽く調べ始めたら、選択肢がたくさんでてきたので、ちょっと突っ込んで調べてみました。 以前、仕事でPythonコンテナをデプロイする人向けのDockerfile (1): オールマイティ編で書いたOS名とかは今回は紹介しませんので、busterとかalpineとかwindowsservercoreってなによ?というお話はそちらの記事を参照してください。一点アップデートがあるのは、Debian 11がリリースされて、イメージとしてbullseyeというのが追加された点ですね。あとはfocal=Ubuntu 20.04LTSというのを覚えてもらえれば。 JDK周りのニュースOracle JDKが無償配布をやめて、無償利用としてはOpenJDKを、

                                                                  JavaのDockerイメージ何選ぶ? | フューチャー技術ブログ
                                                                • MySQL のインデックスと EXPLAIN の社内講習会しました!|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

                                                                  MySQL のインデックスと EXPLAIN の社内講習会しました! みなさんMySQL使っていますか? インフラエンジニアの nobuh こと波多野です。 弊社はサーバー開発に携わることが多く、サーバー開発の言語としては PHP をはじめ C# などいろいろな言語を使っています。そのサーバーと合わせて必須となるデータベースについては MySQL ないし AWS RDS Aurora など MySQL 互換データベースを含め、ほぼ 100% MySQL を使っています。 そして、どんなサービスやプロダクトでもデータを管理し提供するデータベースは、性能でも重要な部分になります。 今回そんな MySQL の性能で重要となるインデックスについて、またクエリをチューニングする場合に必要となる EXPLAIN についての社内講習会を「新卒講義」の場を借りて実施いたしました。その内容について紹介したい

                                                                    MySQL のインデックスと EXPLAIN の社内講習会しました!|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
                                                                  • Next.jsにするか他のフレームワークにするか迷っている人はNext.jsを選べばいい | フューチャー技術ブログ

                                                                    タイトルで言いたいことは言ってしまっているのですが、2017年ぐらいからNext.jsを使ってきて、最新の情報のキャッチアップとかもそんなに苦労はなくて、こだわりがないならNext.jsでいいのでは?という記事です。 Next.jsは大きすぎる?フレームワークが大きいのはたいていそうで、提供されているすべての機能を使うわけではなく、その一部だけを使います。そのサブセット自体がシンプルであればフレームワークはどれだけ大きくても問題はないはずです。JavaとかPythonとかGoのコード書いてもごく一部のライブラリしか使わないわけで、でもそれに対して「ライブラリがでかすぎる」とは言わないですよね。 Next.jsは「より高速にする」機能がたくさんありますが、別にそんなの最初から使う必要はないですし、サービスによってはそもそもその機能が合わない、というのもあります。ユーザープロフィール画面にIS

                                                                      Next.jsにするか他のフレームワークにするか迷っている人はNext.jsを選べばいい | フューチャー技術ブログ
                                                                    • Flutter でプッシュ通知するときに知っておきたいこと | フューチャー技術ブログ

                                                                      はじめにこんにちは。TIGの越島です。 Dart/Flutter連載 の5日目のお題はFlutterでプッシュ通知です。 Flutter製のスマホアプリにプッシュ通知機能をつけるとなったときに「最初に教えてもらってたら楽だったな〜」という情報をまとめてみました。また、最後に具体例としてFlutter x Firebase Cloud Messaging x Amazon Pinpointを組み合わせた場合の実現方法も簡単にご紹介します。 プッシュ通知の基礎知識まずはプッシュ通知について、基本からおさらいをしていきましょう。 ローカル通知とリモート通知プッシュ通知には大きく分けて以下の2種類があります。 ローカル通知 リモート通知 ローカル通知は、デバイスの内部で完結するプッシュ通知で、インターネット接続を必要としないものになります。リマインダーアプリで決まった日時に通知を飛ばす等、外部のサ

                                                                        Flutter でプッシュ通知するときに知っておきたいこと | フューチャー技術ブログ
                                                                      • 今あえてTypeScriptのビルド&バンドルツールを探してみる | フューチャー技術ブログ

                                                                        ちょっとしたフロントエンドの開発で、TypeScriptに最初から対応していて、簡単に使えるものは何かないかな、と調べてみたメモです。React/Vue/Angularの場合はそれぞれの初期化コマンドで何から何まで用意してくれます。Next.js、Nuxt.js、Gatsbyなども、これらのビルドのステップを簡略化するコマンドを提供しています。基本的にこれらのウェブフロントエンドを開発するときには、小規模・中規模ぐらいならあんまり気にしなくておまかせでもいいと思います。 今回は、それらのフレームワーク固有のビルドツールとは別に環境を作りたい人で、TypeScriptの環境が欲しい、ウェブの開発がしたい、という前提でいろいろ探してみました。 今回試してみたのは次の4つです。 Parcel Fusebox ncc Rome.js JavaScriptのビルドツールとはJavaScriptでビル

                                                                          今あえてTypeScriptのビルド&バンドルツールを探してみる | フューチャー技術ブログ
                                                                        • 「リアクティブコントローラ」導入がもたらすかもしれないウェブフロントエンド設計の変化 | フューチャー技術ブログ

                                                                          フロントエンド連載2日目のエントリーです。 あまり話題になっていないような気がしますが、Web Componentsを実装するためのフレームワークのLit-Element v3がバージョンアップして、ついでにリブランディングしてLit v2.0となりました。ロゴも変わり、ウェブサイトも新しくなりました。 Introducing “Lit” for Web Components 本当はこのLitの紹介をこの連載でしようとしたのですが、上記のウェブサイトがすごく詳しいので、単に紹介するだけの記事だとあまり価値がないので、この中のコントローラ機能のみをとりあげようと思いますが、まずはWeb Componentsとは、というところを説明します。 n回目のWeb Components元年以前次のような記事を書きました。最初のPolymerというフレームワークが推進していたころよりも、ブラウザ対応も進

                                                                          • 業務システム開発でsqlcを導入して良かった点とハマった点 | フューチャー技術ブログ

                                                                            はじめにTechnogoly Innovation Group 辻です。Go には Gorm や SQLBoiler をはじめとして様々な ORM があります。2021 年には当社のブログで OR マッパーの連載を行ったこともありました。絶対的な ORM があるわけではなく、業務システムの特性やチーム構成などに合わせて ORM を選択することになるでしょう。 今回、私たちのチームでは、バッチ処理が中心的な業務システム開発において Go の ORM に sqlc を採用しました。素の SQL を書いていくチームの開発方針1とマッチし、開発体験は非常に良かったです。一方、枯れきってはいない ORM ではあります。いくつか想定外の挙動が発生し GitHub の Issue を見ながら問題を切り分けることもありました。 これから sqlc を導入してみようかな、と考えている方々の参考になればと思い

                                                                              業務システム開発でsqlcを導入して良かった点とハマった点 | フューチャー技術ブログ
                                                                            • 書籍紹介:大規模データ管理(エンタープライズアーキテクチャのベストプラクティス) | フューチャー技術ブログ

                                                                              最近読んだ書籍の中で非常に良質な内容でしたので紹介したいと思います。少しでも多くの方に興味を持ってもらえることを期待しています。 O’Reilly Japan はじめに私自身がデータ管理(データマネージメント)という観点でここ数年様々な検討を行ってきていますので前提としてその背景について簡単にまとめてみます。 かつてオンプレミスで運用を行っていた時は企業内のデータは完全に管理されていました。データウェアハウスを導入してデータの集約・加工は行われていましたが、専門チームがデータ仕様確認やデータ提供までもすべての責任を担っていました。品質は高いのですが利用者からの要望(新しいデータの提供、仕様の変更)の対応についてはスピード大きな制約がありました。また大規模なデータを扱うためには多大なコストが必要という制約もあります。 クラウド技術による「スモールスタートを可能とするインフラ」「大規模なデータ

                                                                                書籍紹介:大規模データ管理(エンタープライズアーキテクチャのベストプラクティス) | フューチャー技術ブログ
                                                                              • 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 | フューチャー技術ブログ
                                                                                • PHP の各種キャッシュ機構でメモリが枯渇した場合の挙動を調べてみた|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

                                                                                  PHP の各種キャッシュ機構でメモリが枯渇した場合の挙動を調べてみた こんにちは。やまゆです。 弊社の主軸であるソーシャルゲーム開発においては、マスターデータの存在は欠かせません。 マスターデータとは、例えば下記のようなものがあります。 武器の名称・アイコン画像名・攻撃力・スキルIDガチャでどのカードが何%の確率で排出されるのか敵を倒した時の報酬ゲーム内イベントの開始日時と終了日時 このように、全ユーザーで共有される設定データのことをマスターと呼びます。 これらのデータは膨大で、運営を続けていくとアイテムの追加やイベントの追加により、だんだんサイズが肥大化していきます。また、頻繁にアクセスされることが予測されるため、処理上のボトルネックになる可能性が高いです。 そのため、サーバサイドでマスターデータを処理する際は毎回データベースへアクセスすることはせず、別の場所にキャッシュしておいて、基本

                                                                                    PHP の各種キャッシュ機構でメモリが枯渇した場合の挙動を調べてみた|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ