タグ

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

  • 2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ

    最近はお客さんとの勉強会でDockerのドキュメントをつまみいして読むというのをやっていますが、改めて最新版を読んでみて、いろいろ思考が整理されました。2020年の20.10のマルチステージビルドの導入で大きく変わったのですが、それ以前の資料もweb上には多数あり「マルチステージビルドがよくわからない」という人も見かけるので過去の情報のアンラーニングに使っていただけるように改めて整理していきます。 仕事Pythonコンテナをデプロイする人向けのDockerfile (1): オールマイティ編で触れた内容もありますが改めてそちらに含む内容も含めて書き直しています。 エントリーの執筆には@tk0miya氏から多大なフィードバックをいただきました。ありがとうございます。 基的なメンタルモデル現代的な使い方を見ていくために「Dockerを使ってビルドする」というのはどのようなものか考えを整

    2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ
  • 龍が如く7のすごいテストをなぜ我々は採用できないのか | フューチャー技術ブログ

    僕自身は龍が如くシリーズは、クロヒョウ2、極1、極2、0、3、4、5、6、0とやって、7はRPGだし主人公違うしなぁと思って、買うだけ買って後でやろうと積んでいたところ、CEDECのすごいテストの話を聞いて、(オリジナル版を積んでいたのに)インターナショナル版を買って始めてしまうぐらいインパクトがあり(そして積んでたのを後悔したぐらいよかった)ました。それ以降、維新極、7外伝、8は発売日に買ってプレイしてます。 こちらにその講演の詳細なレポートがこちらにあります。 https://www.famitsu.com/news/202009/11205564.html その8の発売前に龍が如くスタジオの技術責任者の方がXのアカウントを開設して、C++のコードを投稿されていたのですが、それに対してエンプラ開発目線で意見しているようなツイートを見かけて、「いや、システムの特性全然違うから」と思い筆を

    龍が如く7のすごいテストをなぜ我々は採用できないのか | フューチャー技術ブログ
  • Makefile覚書: Goアプリ開発に役立ちそうな基礎知識 | フューチャー技術ブログ

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

    Makefile覚書: Goアプリ開発に役立ちそうな基礎知識 | フューチャー技術ブログ
    tokg
    tokg 2023/10/12
  • ソフトウェア設計のトレードオフと誤りを出版しました | フューチャー技術ブログ

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

    ソフトウェア設計のトレードオフと誤りを出版しました | フューチャー技術ブログ
    tokg
    tokg 2023/06/17
  • markdownlintで設計書の品質を高める | フューチャー技術ブログ

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

    markdownlintで設計書の品質を高める | フューチャー技術ブログ
    tokg
    tokg 2023/04/18
  • AGPLが適する場所、適さない場所 | フューチャー技術ブログ

    前回翻訳したAGPLを理解する: もっとも誤解されたライセンスでは、実体以上に強いライセンスであると思われているケースについての紹介がありました。 もちろん、使い方次第ではアプリケーションコードの開示が必要になってしまうケースもあるかと思います。前回のエントリーはわかりやすい切り口で書いてくれていますが、いくつか、やはりプロダクトコード側へ制約が出るケースが考えられるので、その点についてまとめてみます。 AGPLの特徴を2行でまとめると以下の通りかと思います ネットワーク越しに利用することも配布とみなし、AGPLで書かれたアプリケーションのソースにアクセスする権利が伝わる ネットワーク越しの利用することはリンクではないため、ネットワークで通信するアプリケーションのライセンスをAGPLにする必要はない 配布とリンクがごっちゃにされるのが、よくされる誤解の原因かと思います。もしネットワークアク

    AGPLが適する場所、適さない場所 | フューチャー技術ブログ
    tokg
    tokg 2022/09/30
  • AGPLを理解する: もっとも誤解されたライセンス | フューチャー技術ブログ

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

    AGPLを理解する: もっとも誤解されたライセンス | フューチャー技術ブログ
    tokg
    tokg 2022/09/23
  • Raspberry Piをかき集めてKubernetesを体感する | フューチャー技術ブログ

    夏の自由研究ブログ連載2022 の10目です。 はじめにTIG 岸下です。業務でGKE(Google Kubernetes Engine)を利用することがあるのですが、Kubernetesの挙動や仕組みなど如何せん理解が難しいです。 そこで今回は、自分の手でイチからKubernetesを構築することで勉強しようと思ったのが記事のモチベーションです。 ちょうど自宅にRaspberry Piが3台あったのでRaspberry Piでクラスタを構築していこうと思います。基的には以下の記事を参考に設定を行っていき、自分の理解を深めるために解説を挟みながら書いていこうと思います。 参考:RaspberryPi 4 にUbuntu20.04 をインストールして、Kubernetes を構築してコンテナを動かす 今回Kubernetes構築するにあたって用意したもの Raspberry Pi3 M

    Raspberry Piをかき集めてKubernetesを体感する | フューチャー技術ブログ
    tokg
    tokg 2022/09/10
  • SpringBootで動的な条件をもとにDIしたい | フューチャー技術ブログ

    SpringBootのDependency Injection(DI)は便利ですよね?利用する側にコンストラクタインジェクションやら、フィールドインジェクションやらセッターインジェクションやらの形式で書いておくと、DIコンテナが勝手に実行時に対象となるクラスをもってきてインスタンスの生成をしてくれますし、インスタンスのライフサイクルをインジェクションされるクラス側に書けます。 @Component public class UseDI { private final MyService myService; @Autowired public UseDI(MyService myService) { this.myService = myService; } } @Service public class MyService { public MyService() { System.ou

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

    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

    ファイルダウンロード完全マスター | フューチャー技術ブログ
  • Java17対応版!Javaコーディング規約の紹介 | フューチャー技術ブログ

    フューチャーのGitHubリポジトリで公開しているJavaコーディング規約をJava 17に対応させたのでその宣伝記事です。 Future Enterprise Coding Standards | Javaコーディング規約 Java 17先日の2021年9月14日にJava 17がリリースされました。 Java 17は長期サポートされる(LTS)バージョンです。前回のLTSのJava 11からすると、3年ぶりのLTS版のリリースとなります。 Java 12からJava 17の新機能前回のLTS版から追加されたみてJava 17まででどんな機能が追加されたのかを簡単にまとめると以下です(これら以外にもあります)。 switch式とswitch新構文 テキストブロック レコード パターンマッチング シールクラス 次のページが大変参考になります。 Oracle Help Center | Ja

    Java17対応版!Javaコーディング規約の紹介 | フューチャー技術ブログ
    tokg
    tokg 2021/11/25
  • Reactの環境構築 — 仕事ですぐに使えるTypeScript ドキュメント

    TypeScriptの世界を知る 前書き Node.jsエコシステムを体験しよう TypeScriptの書き方 変数 プリミティブ型 複合型 基的な構文 基的な型付け 関数 その他の組み込み型・関数 クラス 非同期処理 例外処理 モジュール console.logによるログ出力 中級のテクニック ジェネリクス 関数型指向のプログラミング クラス上級編 リアクティブ 高度なテクニック 環境ごとのTips(共通環境・ブラウザ以外) ソフトウェア開発の環境を考える 基の環境構築 ライブラリ開発のための環境設定 CLIツール・ウェブサーバー作成のための環境設定 CI(継続的インテグレーション)環境の構築 成果物のデプロイ 使用ライブラリのバージョン管理 環境ごとのTips(ブラウザ環境) ブラウザ環境 ブラウザ関連の組み込み型 Reactの環境構築 create-react-appによる環境

    tokg
    tokg 2020/09/05
  • チームで機能設計するためのPlantUML標準化 | フューチャー技術ブログ

    はじめに現在所属しているプロジェクトではWeb APIやバッチ処理の設計の一環としてPlantUMLを利用しています。効率よく品質高くアウトプットを出すためには、プログラミング言語に対してコーディング規約があるように、UMLに対してもチームで設計するにあたり一定のルールを決める必要があります。 そこでプロジェクト内のPlantUMLを使用するうえでのガイドラインやルールをまとめる機会があり、せっかくなのでそれを記事化します。 記事のゴール シーケンス図設計におけるPlantUMLの標準化 必要最低限のルールだけに絞ってチーム設計の生産性と品質を上げる 記事の前提 ルールの想定の利用シーン: チームで大量生産する業務機能の処理フローを表現するために使う場合を想定。 また、この記事に記載されているルールはRDBを中心的に使用したAPI処理やバッチ処理等を念頭に置き決められたものです。 ルールの

    チームで機能設計するためのPlantUML標準化 | フューチャー技術ブログ
    tokg
    tokg 2020/06/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言語入門 | フューチャー技術ブログ
    tokg
    tokg 2020/03/11
  • TypeScript教育用コンテンツ公開のお知らせ | フューチャー技術ブログ

    2019年頭より少しずつ書いていたTypeScript教育コンテンツをクリエイティブ・コモンズ4.0の表示 - 継承 (CC BY-SA 4.0)で公開します。といっても完成版ではなく、アーリーアクセス版のような品質であることをご了承ください。 仕事ですぐに使えるTypeScript Web版に加えてPDF版もダウンロード可能です。 そもそもこの資料を書き始めたきっかけですが、フューチャーのようなB2Bな会社であっても、最近はフロントエンドの比重が高まっているところから出発しています。僕もフューチャーに転職後からReactでがっつり1年以上の案件をやったり、半年ぐらいのAngular案件をやったりしています。会社としてはVue.jsを推しています。グループ会社の東京カレンダーはReactを使っていたりもします。要件に合わせていろいろですね。B2B2Cな案件も多いですし、お客様の求めるUX

    TypeScript教育用コンテンツ公開のお知らせ | フューチャー技術ブログ
  • これさえあればシステム構成図がだいたい描けるアイコンセットを公開します! | フューチャー技術ブログ

    🚧新しいVersionが公開されています🚧 こちらの記事もどうぞ確認ください。 これさえあればサービス構成図がだいたい描けるアイコンセットを公開します! こんにちは。@chanomaruです。 みなさん、スライドを作ってますか? 最近はビジネスパーソンだけでなく、学生さんもプレゼンテーションをする機会が多くなってきていますよね。 エンジニアがよく作るスライドの一つにシステム構成図があります。 わたしもシステムがどのような構造になっているかを説明する際によく作成しています。 システム構成図では各技術要素をアイコンで表現することが多いです。 しかし「ロードバランサー」や「キュー」など、よく使うわりにアイコンを探しにくいモチーフも多いですよね? ・・・ということで、社内で利用されている 「これさえあればシステム構成図がだいたい描けるアイコンセット」を公開します! アイコンセット含まれているア

    これさえあればシステム構成図がだいたい描けるアイコンセットを公開します! | フューチャー技術ブログ
    tokg
    tokg 2016/07/22
  • 1