並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 924件

新着順 人気順

技術ブログの検索結果41 - 80 件 / 924件

  • markdownlintで設計書の品質を高める | フューチャー技術ブログ

    はじめにフューチャー技術ブログのリレー形式の連載である、春の入門祭り2023の1日目です。TIG真野です。 ここ数年、Markdownで設計書をチームで書き、GitHub(GitLab)上でレビューするフローを採用しています。なるべくテキストベースで設計開発フローを統一するため、私の所属するチームでは以下のようなツールを採用しています。 シーケンス図、業務フロー図 Markdown中にPlantUMLで記載 参照はGitHub上からも見れるように、pegmatite を利用 システム構成図など画像系 Diagrams.net(draw.io)で作成し、.drawio.png の拡張子でMarkdownから参照 これだけは目視で差分チェックとなる Web API定義 OpenAPI SpecのYAMLファイル 参照はGitHub上からも見れるように、swagger-viewer を利用 ER

      markdownlintで設計書の品質を高める | フューチャー技術ブログ
    • 次の技術ブログを狙う「Zenn」がクラスメソッドへ 改めてエンジニアの情報発信を問う (1/3)

      クラスメソッドがエンジニアの技術情報発信サービスである「Zenn(ゼン)」を買収する。自らもエンジニア向けの技術情報発信メディア「Developers.IO」を運営するクラスメソッドが、なぜZennの運営に乗り出したのか? 数十社による争奪戦の舞台裏とは? そして今後目指す情報発信の姿とは? Zenn開発者のcatnose氏とクラスメソッドの横田聡CEOに聞いた。(以下、敬称略 インタビュアー アスキー編集部 大谷イビサ) 既存のブログサービスでは満足できなかった オオタニ:まずはcatnoseさんからZennの開発経緯を聞かせてください。エンジニアの技術情報発信って、それこそ個人ブログもあるし、最近ではQiitaがメジャーだったりして、決して真新しくはないですよね。あえて、この分野にチャレンジした背景を教えてください。 catnose:もともと私は個人でWebメディアをやっていて、十分食

        次の技術ブログを狙う「Zenn」がクラスメソッドへ 改めてエンジニアの情報発信を問う (1/3)
      • 富岳CPU A64FX用ディープラーニングライブラリの深層 -研究者が語る開発の軌跡- - fltech - 富士通研究所の技術ブログ

        はじめに こんにちは。富士通研究所プラットフォーム革新PJの川上です。理化学研究所/富士通が共同で開発した新しいスーパーコンピュータ「富岳」が神戸市沖のポートアイランドに納入され、当初の予定を前倒しして今年度から試行運用が開始されました。6月には早速、スパコンランキングで世界初の同時4冠(TOP500, HPCG, HPL-AI, Graph500)を獲得するなど、幸先のよい立ち上がりを見せています。私が所属する部署では富岳を始め、富岳と同じCPUを搭載した弊社製品PRIMEHPC FX1000/700上でディープラーニング(DL)処理を高速に実現する技術の研究開発をしています。今回は、DL処理を高速に実現するoneDNNというライブラリソフトウェアを富岳向けに移植し、開発したソースコードを本家IntelのoneDNNに寄稿し、取り込まれた話をご紹介します。 ディープラーニング処理のソフト

          富岳CPU A64FX用ディープラーニングライブラリの深層 -研究者が語る開発の軌跡- - fltech - 富士通研究所の技術ブログ
        • ソフトウェア設計のトレードオフと誤りを出版しました | フューチャー技術ブログ

          すでに多くの方々にお手に取っていただいておりますが、オライリージャパンから「ソフトウェア設計のトレードオフと誤り」の翻訳をフューチャーのメンバーと一緒に出版いたしました。好評なようで、発売一カ月ほどで増刷も決定いたしました。みなさまご購入いただき、ありがとうございます。初版をお買い求めになられたい方は今すぐ書店にダッシュ! トレードオフこそが設計である良い設計とか読みやすいコードみたいな話題はツイッターではバズりやすい話題です。 読みやすいコードの話題ではいろいろなレイヤーの話が出てくるのですが、因数分解すると、だいたいいくつかのカテゴリーに分かれるように思います。 命名規則とか書き方のルール 従うべきクラス構造、アーキテクチャ構成の導入 サービスの境界をどこに引くか、どのようなときに設計手法を選ぶか、どのアルゴリズムを選ぶか 名前や命名規則の統一とか書き方の統一とかは用語のリストを作って

            ソフトウェア設計のトレードオフと誤りを出版しました | フューチャー技術ブログ
          • 世界最大規模のディープラーニングを「富岳」で実施して世界一になりました - fltech - 富士通研究所の技術ブログ

            はじめに こんにちは。富士通株式会社ICTシステム研究所のMLPerf HPC五人衆です。先週、国際学会SC’21 において、理化学研究所/富士通が共同で開発した新しいスーパーコンピュータ(スパコン)「富岳」がスパコンランキングで4期連続の4冠(TOP500, HPCG, HPL-AI, Graph500)を獲得しましたが、同会議で発表された、実際のディープラーニング(DL)学習処理に特化したMLPerfTM HPC ベンチマークにおいても世界一を獲得しました。 本ブログでは、このMLPerf HPCの一つのアプリケーションであるCosmoFlowの学習を「富岳」で大規模に行い世界一となった、その挑戦についてお話させてもらいます。 はじめに 背景 MLPerf HPCって何?(白幡) CosmoFlowって何?(田渕) 「富岳」って何?(田渕) プロセッサ 通信ネットワーク ストレージ 準

              世界最大規模のディープラーニングを「富岳」で実施して世界一になりました - fltech - 富士通研究所の技術ブログ
            • Terraformerとしてコードを書いて思うこと | フューチャー技術ブログ

              こんにちは。TIGの伊藤です。この記事は秋のブログ週間2021の3日目です。 はじめに私は普段会社でクラウドをまたいでTerraformを日々書いたり、メンバーに教えたりしています。もはや俗に言うプログラミング言語を書かずにここまで全振りしてきたくらいなので、比較的自信を持ってコードを書いて仕事をしています。 特にここ最近はほぼ1からコード設計をして運用まで持っていくこともあり、「より腐りにくい、より息の長いコード」というものを考えるようになりました。Terraformだからこその「定期メンテを簡易にするためには」「より簡単に変更するためには」をひたすら突き詰めていった結果、アツい気持ちが生まれ、今回は筆を取っています。 そんな私のアツい気持ちをしたためた今回の記事ですが、可能な限り例も添えつつ、いくつか解説できればと思います。公式にも実は載っているような内容もあったりしますが、日本語の記

                Terraformerとしてコードを書いて思うこと | フューチャー技術ブログ
              • 仕事でPythonコンテナをデプロイする人向けのDockerfile (1): オールマイティ編 | フューチャー技術ブログ

                BusterとかStretchという名前が見慣れない方もいるかもしれませんが、これはLinuxディストリビューションとしてシェアの大きなDebianのコードネームです。 Debianバージョンが少し古いStretchの方がちょびっとサイズが小さかったりはしますが、まあ実用的にはサポートが長い方がいいですよね。slimを使ってGCCとかのコンパイラを自前でダウンロードしている記事とかもたまに見かける気がしますが、マルチステージビルドであれば、そんなにケチケチしなくていいのと、パッケージダウンロードは逐次処理なので遅く、処理系が入ったイメージのダウンロードの方が高速です。並列で処理されるし、一度イメージをダウンロードしてしまえば、なんどもビルドして試すときに効率が良いです。また、多くのケースでネイティブのライブラリも最初から入っており、ビルドでトラブルに遭遇することはかなり減るでしょう。 Py

                  仕事でPythonコンテナをデプロイする人向けのDockerfile (1): オールマイティ編 | フューチャー技術ブログ
                • 企業技術ブログを集めたページをリリースしました――企業の技術ブログのためにはてなブログができること - Hatena Developer Blog

                  こんにちは。はてなブログ 法人ブログチームでサブディレクターを担当しております、id:AirReader と申します。 本日、はてなブログで展開している企業の技術ブログの記事を一覧できるページをリリースしました。掲載対象のブログは400社以上で、多くの企業が活発にブログを更新しています。 hatena.blog 「企業が発信している良質な技術、技術組織の取り組みをより多くの読者に届ける」をミッションに開発しています。ぜひ、日々の情報収集のルーティンに組み込んでいただいたり、エンジニアの雑談のネタ帳としていただいたり、技術ブログ執筆のモチベーションの一つとして活用いただいたりできればと思います。 良い機会ですので、企業の技術ブログによる情報発信について、はてなブログのプラットフォームとしての意義について、考えたことをまとめてみたいと思います。 企業の実例が面白い 組織の話 組織の話が読めるト

                    企業技術ブログを集めたページをリリースしました――企業の技術ブログのためにはてなブログができること - Hatena Developer Blog
                  • CDN 入門とエッジでのアプリケーション実行 | フューチャー技術ブログ

                    のようなイメージです。 ※192.0.2.0/24、198.51.100.0/24、203.0.113.0/24 は例示に利用できる IP アドレスブロックです。 実在する IP アドレスではありません。 以上のように、CDN では オリジンサーバーのドメインと CDN 用ドメインの紐づけ CDN 用ドメインに対応する IP アドレスの動的な名前解決 を用いて、オリジンサーバーへのリクエストを地理的に近いエッジロケーションへのリクエストに振り替るのが一般的です。 CDN サービスの例ここでは、CDN サービスの例を各クラウドベンダーごとに簡単に紹介します。 AWS - Amazon CloudFrontAWS の提供する CDN サービスは Amazon CloudFront です。 Amazon CloudFront では、CDN のオリジンサーバーとして EC2 や S3、ELB など

                    • 技術ブログを(だいたい)1年続けた背景と成果 - ドワンゴ教育サービス開発者ブログ

                      このドワンゴ教育サービス開発者ブログを開設してから2年が経ちました。 特に2021年3月からおよそ1年の間、技術ブログの運用体制を整え、定期的に記事を投稿してきました。 この記事では、技術ブログ運用の背景と現在の運用体制、成果と課題についてまとめます。 背景:教育事業の成長のために 運用:編集部体制の構築 執筆フロー 執筆者のアサインとテーマの決定 記事構成・目次の作成 初稿の作成 完成稿の作成 社内公開と公開日の調整 公開 成果 採用での成果 副次的な効果 課題と今後の展望 We are hiring! 背景:教育事業の成長のために 私達は教育を生業とすることもあり、学習や知見の共有は大事な業務のひとつです。 そのような活動の場のひとつとして技術ブログを開設していましたが、有志の手によって不定期に更新される程度で、効果的に活用できていませんでした。 そのような中で、さらなる事業成長のため

                        技術ブログを(だいたい)1年続けた背景と成果 - ドワンゴ教育サービス開発者ブログ
                      • やさしいEPUB入門 - Tech Do | メディアドゥの技術ブログ

                        メディアドゥでは、エンジニア有志によって執筆された【Tech Do Book】という合同誌を発行しています。 本日はその中から、Tech Do Book vol.1 【2章 やさしいEPUB入門】を紹介します。 はじめに 「電子書籍業界にいるにも関わらず、EPUBについて知らないのは、本格的にやばいのでは?🤔」 そう強く感じるようになったのは、メディアドゥがW3Cに加入してからです。 W3CとEPUBのつながりについては後述しますが、国際標準規格となっているEPUBについて知ることで、 会社や、電子書籍業界の動きをより面白く感じられるのではないかと考えています。 しかし、インターネットで情報を調べても情報は少なく、欲しい情報がなかなか得られません。 今回は、メディアドゥに在籍しているというメリットを活かし、今までのEPUBの歴史や最新の情報について纏めてみました。 電子書籍とは まず初め

                          やさしいEPUB入門 - Tech Do | メディアドゥの技術ブログ 
                        • データライフサイクルとトレードオフ | フューチャー技術ブログ

                          ソフトウェアの中身を大きく2つに分解すると、プログラムとデータに分かれます。コードコンプリートやA Philosophy of Software Designなど、評判の良いソフトウェア設計の本はいくつかありますが、それらはどれもプログラムの説明がメインでデータのライフサイクルについての説明はなかったと思います。しかし、データの表現にもいくつもの方針があって、それによるトレードオフがあるな、というのはもやもやと考えていたので、その考えをまとめて文章にしてみました。 データといっても、処理中の短期間の間では変わらない、いわゆるマスターデータ的なデータです。ジャーナルというか、トランザクション的なデータはここでは触れません。 この記事では、それぞれのトレードオフについて考えていきます。 即値(リテラル) 定数 コマンドライン引数 環境変数 設定ファイル ダウンロードコンテンツ オンラインデータ

                            データライフサイクルとトレードオフ | フューチャー技術ブログ
                          • 技術ブログは『あとで困った時のためにメモる』ぐらいで丁度良いと思う

                            と個人的には思ってます。 文脈 何のために技術ブログを書くか 私は最近技術的な話でアウトプットできないのであまり大それた事は言えないのですが、 息を長く技術ブログを続ける と言うのであれば、 あとで困った時のためにこれはブログにメモっておこう と言うぐらいの心持ちで書いておくぐらいが丁度良いと思います。 私はブログを 2006年から続けて来て大分経ってますが、これはキッチリ書いて皆に伝えたい、 と言う記事が当たらずに閑古鳥が鳴くのは割と良くあった話ですし、 逆に割と雑に書いたけど何故か当たった と言う事もままある話です。 そして 技術ブログで知見を伝える と言う事を気負わずに書くコツとしては、 技術的知見をお裾分けする と言う位の気持ちで書いて行き、 自分のところではこう言う事に対してこう対処しました。何かの役に立つと良いですね! と言うぐらいの気持ちでやっていた方が楽です。 そのため、

                              技術ブログは『あとで困った時のためにメモる』ぐらいで丁度良いと思う
                            • 社内勉強会で発表したGCP資料を公開します | フューチャー技術ブログ

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

                                社内勉強会で発表したGCP資料を公開します | フューチャー技術ブログ
                              • 【React】そろそろ技術ブログで setCount(count + 1) と書くのはやめませんか

                                const [count, setCount] = useState(0); const increment = () => setCount(count + 1); const decrement = () => setCount(count - 1); const [count, setCount] = useState(0); const increment = () => setCount((prevCount) => prevCount + 1); const decrement = () => setCount((prevCount) => prevCount - 1);

                                  【React】そろそろ技術ブログで setCount(count + 1) と書くのはやめませんか
                                • Slim Framework と Docker を使って本格的にアプリを作ってみよう|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

                                  Slim Framework と Docker を使って本格的にアプリを作ってみよう はじめに Web アプリケーションの開発をするにあたっては勉強しなければならないことは多く、どう勉強すれば良いかはなかなか難しい問題です。初心者向けの解説は比較的たくさんあるのでとりあえずやってみるくらいは何とかなるものの、実戦的な開発がどうなっているかという総合的な話は実務を経験しないとわからないことが多いことでしょう。 ということで、本記事では最近流行の Docker と、そこそこ名前は見かける PHP のマイクロフレームワークの Slim Framework を使って実戦的な Web アプリの開発をしてみる(開発環境を作ってみる)こととします。実装的には、ドメイン実装としてユーザー登録、ログイン、ユーザー情報取得の3つのAPIを実装するところまでを取り扱います。また、静的解析を最大限活用してユニット

                                    Slim Framework と Docker を使って本格的にアプリを作ってみよう|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
                                  • Node.jsコンテナイメージを極限まで軽量化! サイズを1/10以下に|SHIFT Group 技術ブログ

                                    はじめにSHIFT DAAE の shinagawa です。表題の通りNode.jsで作成したコンテナのイメージサイズの軽量化に挑戦しました。 背景近年の多様化・高速化するビジネスに対応するITシステムの構築を実現する「クラウドネイティブ」の構成要素の一つとして 「コンテナ」という仮想化技術が存在し、当部門でも活用を進めております。 このコンテナイメージを作成するにはアプリケーションコードやライブラリ・モジュールなどの依存物、ランタイム等を1つのイメージとして組み立てて作成しますが、 この構成要素が増えるとイメージサイズが肥大化し保管時のストレージのコストの増加やイメージの転送、環境への展開に時間がかかることになります。 従ってイメージのサイズを削減することは、これらの点を改善することにつながります。 ここではネット上で紹介されている、あらゆる打ち手を組み合わせてコンテナイメージの軽量化に

                                      Node.jsコンテナイメージを極限まで軽量化! サイズを1/10以下に|SHIFT Group 技術ブログ
                                    • 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倍になったのか | フューチャー技術ブログ
                                      • 「実践Redis入門」所感 ~「E.G.コンバット」の観点から語る~ | フューチャー技術ブログ

                                        積読を消化しようというテーマの、読書感想文連載 の2冊目です。 導入『自分たちは、クラウドネイティブじゃなくてマネージドネイティブなんだよ…』 TIGの原木です。 最近、冒頭のような開発者の嘆きを人づてに聞く機会があり、今も脳裏に残り続けています。 昨今のITシステムにおいて、クラウドサービスは欠かせないものとなっています。しかしユーザー、そして開発者として大きな利便性を享受する裏で、クラウドサービスによって巧妙に隠蔽された裏のソフトウェアを意識する機会は減り続けているのではないでしょうか? Webサービスにおいて、RedisやMemcachedに代表されるキャッシュサーバーもそのようなソフトウェアの1つです。 キャッシュサーバーは、Webアプリケーションなどデータの読み込みや保存を効率化するために欠かせない存在ですが、同じデータストアであるRDBMSなどと比較していま一歩隠れた存在だと思

                                          「実践Redis入門」所感 ~「E.G.コンバット」の観点から語る~ | フューチャー技術ブログ
                                        • 「脱Oracle」の背景にある、Oracle Databaseの価値を改めて考える | フューチャー技術ブログ

                                          はじめに2019年10月15日、Amazonは自社サービスにおける実質的な”脱Oracle”を発表しました。75PBに及ぶデータを、傘下のAWSが提供するDatabase Service(AuroraやDynamoDB、Redshiftなど)へと移行したとの事。 この一報は、Amazonというグローバル規模のECの巨人、クラウド・プラットフォーマーのリーダーの一角が、大規模基幹システム領域におけるRDBMSのデファクト・スタンダードと決別したという点で、業界関係者に対して非常に大きなインパクトを残したものかと思います。 大人の色々な側面が垣間見えるものの、非常に難易度の移行PJであった事はを想像に難くありません。 “Oracleもいよいよ賞味期限を迎える” 果たしてそうなのか。ここで今一度、**”脱Oracle”とは何を脱する事なのか**、を考えてみます。 “脱Oracle”とは?第1は高

                                            「脱Oracle」の背景にある、Oracle Databaseの価値を改めて考える | フューチャー技術ブログ
                                          • GPT-3 API を使って AI WAF を作る - まったり技術ブログ

                                            ※ネタ記事です はじめに 検証する脆弱性 Tips. GPT-3 とは? WAFの実装 環境・必要なもの ソースコード 検証 正常リクエスト XSS GETパラメータ POSTデータ POSTデータ & ヘッダ無し SQL インジェクション GETパラメータ GETパラメータ & ヘッダ無し XXE POSTパラメータ① POSTパラメータ② POSTパラメータ & ヘッダ無し パストラバーサル GETパラメータ GETパラメータ & ヘッダ無し OS コマンドインジェクション GETパラメータ & ヘッダー無し GETパラメータ Log4Shell POSTパラメータ POSTパラメータ & ヘッダ無し POSTパラメータ & ヘッダ無し WordPress のユーザ列挙 ShellShock まとめ はじめに 最先端(?)であるGPT-3を使って 次世代WAF を作っていきます。 以下

                                              GPT-3 API を使って AI WAF を作る - まったり技術ブログ
                                            • 初めてのセキュリティ情報収集(mjckeck4) | フューチャー技術ブログ

                                              こんにちわ。Cyber Security Innovation Group(CSIG)の井上です。 部門名の通り、サイバーセキュリティに関する部署で、セキュリティコンサルティングやFutureVuls( https://vuls.biz )という脆弱性対策サービスのコンサルティングやサポートをしています。 初めに春の入門祭り2023 という事で、初めて脆弱性対応をする方に向けた記事を書いてみようと思います。 この時期になると、部門移動等で情報システム部に移動し「何をやっていいのか分からない…」という話も時々聞きます。 今回は、IPAの「mjcheck4」( https://jvndb.jvn.jp/apis/myjvn/mjcheck4.html )というツールを使った、セキュリティ情報の収集についてお話しようと思います。 セキュリティ情報収集とは世の中にはセキュリティ情報はいろいろありま

                                                初めてのセキュリティ情報収集(mjckeck4) | フューチャー技術ブログ
                                              • スキーマファースト開発のためのOpenAPI(Swagger)設計規約 | フューチャー技術ブログ

                                                はじめまして。TIG DXユニット 1の亀井です。 はじめに みなさん、Swagger使ってますか? Swaggerや周辺ツールについては 某先輩の記事 にて丁寧に解説されていますので、 本記事では実際にSwaggerのスキーマ定義を設計していく上で取り決めた規約について書いてみたいと思います。 前提私が在籍しているプロジェクトでは、REST APIは golang でフロントエンドを Vue.js + TypeScript で構築しています。 短期間・高品質での構築を実現するためにSwaggerを設計ドキュメントとしてだけではなく、コード自動生成やモックサーバーに活用させることで徹底したスキーマファーストな開発を行ってきました。 というわけで、今回は下記のツールを利用することを前提として規約を作成しています。 go-swagger: Goアプリケーションのハンドラ、リクエスト/レスポンス

                                                  スキーマファースト開発のためのOpenAPI(Swagger)設計規約 | フューチャー技術ブログ
                                                • Goのテストに入門してみよう! | フューチャー技術ブログ

                                                  2020/08/15更新: 「テストの失敗をレポートしたい」と「サブテストの一部のみ実施したい」の章を追加 はじめにTIG の辻です。今回は春の入門祭りということで Go のテストに入門してみよう!という記事です。 書いた背景ですが Go の標準ライブラリのコードリーディング会で testing パッケージにチャレンジしてみましたが、難しすぎてわからん。そもそも Go のテストって何ができるんだっけ?という話になり、基本的な内容をなるべく具体例をまじえながらまとめました。 ざっとどんなことができるんだろう、という index になれば幸いです。 TipsGo に組み込まれているテストの仕組みの中に、ベンチマークに関するテストと Example テストというサンプルコード用のテストも含まれているのですが、この 2 つは対象外にします。基礎的と思われる内容から順に並べてみました。 はじめに T

                                                    Goのテストに入門してみよう! | フューチャー技術ブログ
                                                  • gRPCのGo実装の新星、Connect | フューチャー技術ブログ

                                                    サービス間通信とIDL(インタフェース記述言語)連載の2日目のエントリーです。 本当はGraphQLネイティブなデータベースの紹介をしようとしたのですが、紹介しようとしていたものがまだベータでクライアントライブラリが公開されていない(空っぽのリポジトリしかない)みたいな感じで試せなかったので、急遽2022/6/1に公開されたばかりのgRPC関連のライブラリのConnectを紹介することにしました。 Connectの開発元が公開したブログは次のサイトにあります。 Buf | Connect: A better gRPC 公式ドキュメントはこちらです。 Introduction | Connect なお、gRPCについての詳細はこのエントリーでは紹介しません。ちょうど、H.SakiさんがgRPCの詳しい紹介の記事を書いてくれているので、ぜひ、みなさんこちらを参照ください。 作ってわかる! はじ

                                                    • SQLファイルから型安全なコードを生成するsqlc | フューチャー技術ブログ

                                                      TIGの辻です。GoのORマッパー連載8日目です。本記事では sqlc を紹介します。早速ですが、結論から行きましょう。 sqlc まとめ SQLファイルからデータベースにアクセスできる型安全なGoのコードを生成するライブラリ 構造体のモデルの手書き実装不要 複数テーブルをJOINしたときのマッパー実装不要 生成されるコードは不要なリフレクションなし SQLをがんがん書きたい、でも面倒なマッパー構造体は書きたくない、という開発者にとっては大きな味方になります。 sqlc の紹介 sqlc はSQLファイルからGoのアプリケーションコードを生成するライブラリです。2020/2に v1.0.0 をリリースし、着々とスターを伸ばしています。2021/08現在は v1.8.0 をリリースしています。本資料で生成しているコードも v1.8.0 を用いています。 https://star-histor

                                                        SQLファイルから型安全なコードを生成するsqlc | フューチャー技術ブログ
                                                      • GoのWebアプリ開発でフラットパッケージにした話 | フューチャー技術ブログ

                                                        2023.10.5追記: Goチームからプロジェクトの目的に応じたディレクトリ構造についてのドキュメントが公式に公開されています。 https://go.dev/doc/modules/layout 2020/11/13 「やってみてよかったことまとめ」、「やってみて困ったこと」、「外部モックサービスを使ったユニットテストの未来」の章を追記 2020/11/18 「やってみてよかったことまとめ」にSNSでもらったフィードバック内容を追記 はじめにこんにちは、TIG 真野です。秋のブログ週間連載の第9弾です。 1年弱ほどGo言語でWebAPIアプリケーション開発を行っていますが、かなり割り切った構成・テスト方針を採用しました。そろそろ1年弱になり機能開発も比較的落ち着き、保守運用フェーズの割合も徐々に増えてきた頃合いなので、やったこと・学び・反省といった振り返りを共有します。 Goのパッケー

                                                          GoのWebアプリ開発でフラットパッケージにした話 | フューチャー技術ブログ
                                                        • AGPLを理解する: もっとも誤解されたライセンス | フューチャー技術ブログ

                                                          このエントリーはSayanさんによるUnderstanding the AGPL: The Most Misunderstood Licenseの日本語訳になります。 オープンソースの出現は、ソフトウェア産業全体を一変させました。しかし、オープンソースのコードを使って誰が何をできるかを管理することは課題でしたし、今も解決していません。オープンソースライセンスはそこに救いの手を差し伸べました。しかし、常に次のことを忘れないでください:石のない土地はなく、骨のない肉はありません。OSI(オープンソースイニシアチブ: オープンソースを促進することを目的とする組織)が承認したライセンスは80以上あり、その数はさらに増加しています。それぞれのライセンスには利点と欠点があるため、オープンソースの開発者は自分のプロジェクトにあったライセンスを選ぶのは簡単ではありません。Affero General Pu

                                                            AGPLを理解する: もっとも誤解されたライセンス | フューチャー技術ブログ
                                                          • Gatsby + TypeScript で技術ブログを書くための知見

                                                            Blog を作りました!!!!! 会社を辞めて 5 ヶ月経とうとしており、ついに堕落しきった生活による危機感が生まれはじめました。 その危機感が結実したものがこの Blog です。 で、Blog を作ってみたものの書く内容が特にないので、まずはこのブログをどうやって作ったかについて書きます。 「こういう記法にちゃんと対応できてる?」を試す目的でもあります。 技術スタック 根幹になっているものは、 TypeScript Gatsby です。 元々は amdx + NextJS, もしくは完全自作 SSG を考えていたのですが、 ブログは完璧を目指しているといつまでも完成しない ということは知っているので、自分にとって自信があるツールとして Gatsby を選びました。 しかし、ただ使うだけなのはチャレンジ性がなかったので、TypeScript を使ってみることにしました。 昔の Gatsby

                                                              Gatsby + TypeScript で技術ブログを書くための知見
                                                            • Serverless連載3: Goでサーバーレス用の検索エンジンwatertowerを作ってみました | フューチャー技術ブログ

                                                              サーバーレス連載の3回目は検索エンジンを作ってみたお話です。 クラウドサービスが充実してくるにつれて、サーバーレスではいろいろなことができるようになっています。HTTPサーバーは動きますし、RDBやNoSQLなストレージも使えますし、PubSubみたいなサービスも利用できます。これらを駆使するとそこそこ複雑な処理も記述できます。 一方で、上から下までサーバーレスにしようとするとできないものもいくつかあります。例えば、RDBも使えるといっても制約があり、LambdaやCloud FunctionsからRDSやCloudSQLを雑に使うとコネクションを張りすぎる問題があります。LambdaにはRDS Proxyが出始めています。あと、RDBそのものは基本的に常駐型なのでサーバーレスではないです。一応サーバーレスなのもありますが、起動時間が結構かかるらしい(自分ではまだ試してないです)。それ以外

                                                                Serverless連載3: Goでサーバーレス用の検索エンジンwatertowerを作ってみました | フューチャー技術ブログ
                                                              • 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をまとめた方が良いとは限らない | フューチャー技術ブログ
                                                                • Terraformのベストなプラクティスってなんだろうか | フューチャー技術ブログ

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

                                                                    Terraformのベストなプラクティスってなんだろうか | フューチャー技術ブログ
                                                                  • 技術ブログもShortの時代になった

                                                                    はじめに 動画を主とするコンテンツプラットフォームでは、Youtubeも長尺からshortへ、tiktokやリールといったshortな動画が流行っています。 一般的に技術ブログですと、詳細な説明と深い分析がコアコンテンツになりますが、この領域でもshortなものがあってもいいんじゃないかと思い、Zennのスクラップ機能を使って社内の勉強会という形式で発信を開始しました。 1人につきなるべく1テーマ出し、関連するリンクと個人的な評価を書いてもらってます。現場の開発に関わるテーマが望ましいですが、個人開発で手を出している分野や、手は出していないけれども興味を持ったもの、他社の成功事例で面白いと思ったものもOKにしています。個人的に出してみたけれども実は他の人がもう先に知っていて、議論が大いに弾むこともあります。 長所と短所 運用を開始して数ヶ月が経ちますが、メリデメをまとめておきます。 メリッ

                                                                      技術ブログもShortの時代になった
                                                                    • 人生を豊かにする文字列diff入門 | フューチャー技術ブログ

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

                                                                        人生を豊かにする文字列diff入門 | フューチャー技術ブログ
                                                                      • ドメイン駆動設計の源流のPofEAAを読んでみる | フューチャー技術ブログ

                                                                        最近、ドメイン駆動設計(以下DDD)とかそのあたりを読みこんでいる人から、DDD本の読み方を教えてもらいました。ここではDDD本はエリック・エヴァンスのドメイン駆動設計の方を参照しました。 @katzchang さんから教わったのは「DDDはパターンランゲージの形式を意識してるよ」ということでした。ただし、きちんとしたパターンランゲージの形式になっておらず、記述が著者のものになってるので、読者は注意して読む必要があるのかもとのことです。 @ryoaitaさんから教わったのは「DDDはエンタープライズアプリケーションアーキテクチャパターン(以下PofEAA)を下敷きにしている本だよ」ということでした。 DDDももう時代的にはかなり古い本です。自分で読んだ限りは全然好きになれなくて、でもきっと何かあるはずだと3-4冊読んでみましたが感想は変わらずでした。ユビキタス言語も「当たり前のものを先頭に

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

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

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

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

                                                                              なぜ我々はユニットテストが書けないのか?|SHIFT Group 技術ブログ
                                                                            • Goの標準ライブラリのコードリーディングのすすめ | フューチャー技術ブログ

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

                                                                                Goの標準ライブラリのコードリーディングのすすめ | フューチャー技術ブログ
                                                                              • 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 勢力もあるかもしれませんが、アプリケーションから直接参照