タグ

設計に関するjsstudyのブックマーク (244)

  • リアクティブマイクロサービス入門(2/2)- 実現編 - Qiita

    はじめに 前篇の「リアクティブマイクロサービス入門(1/2)- 概念編」では、なぜリアクティブマイクロサービスが必要なのか、リアクティブマイクロサービスとは何なのかをご紹介しました。 後編となるこの記事では、リアクティブマイクロサービスの実装するために使えるテクニック・技術を、目的別にご紹介します。 もちろん、これらすべてを盛り込まなければリアクティブマイクロサービスを実現できないわけではありませんが、引き出しとして知っておけばより柔軟な設計ができるのではないかと思います。 目的別にまとめているので、適宜リファレンス的にご参照いただければと思います。 モジュール化 リアクティブマイクロサービスに求められる性質をバランス良く満たすためには、ビジネス上の関心事を分割することが重要です。 トレードオフで同時に実現することが難しい要件でも、分割することでそれぞれの関心時に最適化した手段を選択して実

    リアクティブマイクロサービス入門(2/2)- 実現編 - Qiita
  • リアクティブマイクロサービス入門(1/2)- 概念編 - Qiita

    はじめに リアクティブシステムを構築するためのライブラリ「Akka」を開発する Lightbend社 から、リアクティブシステムやマイクロサービスについて学習できる有償のオンライントレーニング「Lightbend Academy」を提供されていますが、2020年夏の間(※)は無償で受講できるようになっています。 ※2020/07/14現在。当初は無償期間が6月末まででしたが、7月末 -> 夏いっぱいと期間が延長されています。 ※「Lightbend Academy」の受講については、こちらのスライド「Lightbend Academyオンライントレーニングを受けてみた」もご参照ください。 この記事では「Lightbend Academy」を受講して学んだ、リアクティブな性質を備えたマイクロサービスを設計・開発するために知っておきたい知識や理論 を、私なりに整理・再編してご紹介したいと思いま

    リアクティブマイクロサービス入門(1/2)- 概念編 - Qiita
  • ドメイン駆動設計による運行管理システムのアーキテクチャの最適化 - TIER IV Tech Blog

    こんにちは。ティアフォーでWebサービス開発を担当している池谷です。 世の中はコロナで自粛モードが続いていますが、ティアフォーではリモートワークを活用し日々の業務に柔軟に取り組んでいます。 さて、私の所属するWebチームでは、オープンソースの自動運転OS「Autoware」を利用した多種多様なサービスを開発しています。その中でも代表的なサービスに「FMS」という運行管理サービスがあります。今回は、当サービスを開発してきた振り返りとして、主にドメイン駆動設計によるアーキテクチャの最適化に纏わるトピックについてお話したいと思います。 What's FMS? ティアフォーのFMSの注目機能 オンデマンド配車モデル 巡回走行モデル ベストプラクティスを求めて FMS開発における試行錯誤 浮上していた課題 開発手法のアプローチ ドメイン駆動設計 モデリングの実践 設計・実装面のアプローチ クリーンア

    ドメイン駆動設計による運行管理システムのアーキテクチャの最適化 - TIER IV Tech Blog
    jsstudy
    jsstudy 2020/07/17
    DDDやクリーンアーキテクチャですが、勿論良い面ばかりではありません。変更が少なかったり寿命が短いシステムにおいて、変更容易性はあまり重要ではないという考え方もできます。
  • ご主人様、小難しいDDDやクリーンアーキテクチャはお忘れになって、”削除しやすい設計”から始められてはいかが? - Qiita

    ご主人様、小難しいDDDやクリーンアーキテクチャはお忘れになって、”削除しやすい設計”から始められてはいかが?LaravelDDD設計アーキテクチャCleanArchitecture ある日夢の中で設計に詳しい悪役令嬢が現れてこんなことを言い放ったので、考察してみましたという設定のポエムです。 問題提起 ドメイン駆動設計、オニオンアーキテクチャ、クリーンアーキテクチャといった考え方はもちろん重要なものの、僕は難しく考えずに「削除しやすいように機能を作る」のが第一歩として重要ではないかと考えています。 記事では「削除しやすい設計」について持論を展開してみます。 ※議論のスコープはWebサービスに限定し、例示としてPHPのフレームワークであるLaravelを用います 削除しやすいことがなぜ重要か 一度開発した機能は、それで終わりではなく、改修、改善を繰り返し、そして場合によっては仕様が廃止さ

    ご主人様、小難しいDDDやクリーンアーキテクチャはお忘れになって、”削除しやすい設計”から始められてはいかが? - Qiita
  • ハード技術者からみた米中日

    米中の技術競争に日はおいていかれているように、いち技術者からは見える。 どうして今のような状況になったのか、考えてみたい。 原因は1つではなく、複合的だろう。 設計ソフトが持てなかった日で半導体を開発しようとすると設計ソフト(Cadence, Synopsysなど)が必要だが、国産はもうないに等しい。 Webで働いている人からするとオープンソースで開発すれば、と思われるかもしれないが、あるにはあるが、実際の製造には使えない。 機能が全然足りていないのもそうだが、全部の設計工程用のソフトはない。 設計ソフトのライセンス料金が億単位でかかる。 製造原価やウェーハ代や人件費がかかるでしょと言われるが、ライセンス料金も開発費の中でかなりの割合を占めている。 Web業界だとOracleの値上げに苦しんでいたと思うが、あれと同じような状況だ。 中国はどうかというと、日と同様に設計ソフトは作れ

    ハード技術者からみた米中日
  • Amazon.co.jp: 作りながら学ぶRuby入門 第2版: 久保秋真: 本

    Amazon.co.jp: 作りながら学ぶRuby入門 第2版: 久保秋真: 本
    jsstudy
    jsstudy 2020/05/16
    JavaScript Primerを出版しました!/JavaScript Primerはなぜ書かれたのか? | Web Scratch https://efcl.info/2020/04/27/jsprimer/
  • オブジェクト指向にとって継承とは何か?〜ストラウストラップ「「オブジェクト指向プログラミング」とは何か」〜 - Qiita

    オブジェクト指向にとって継承とは何か?〜ストラウストラップ「「オブジェクト指向プログラミング」とは何か」〜C++Haskellオブジェクト指向 オブジェクト指向とは何か?ということを真面目に調べていくと、オブジェクト指向には二種類ある、という話に突き当たる。sumim氏のQuora回答などを参照。 Smalltalkの設計者アラン・ケイによる、メッセージング重視のオブジェクト指向 C++の設計者ストラウストラップによる、クラス重視のオブジェクト指向 今回はこの後者のオブジェクト指向について、ストラウストラップの論文「「オブジェクト指向プログラミング」とは何か?」What is "Object-Oriented Programming"?(1991)の内容を(適宜行間を補いつつ)まとめてみる。 当然サンプルコードはC++(ほぼ原論文のコードのコピペです)。 ストラウストラップのオブジェクト指

    オブジェクト指向にとって継承とは何か?〜ストラウストラップ「「オブジェクト指向プログラミング」とは何か」〜 - Qiita
    jsstudy
    jsstudy 2020/05/14
    型レベルプログラミングでは型が集合
  • パタン・ランゲージとオブジェクト指向の関係、あるいは分析と総合の動的平衡 - assertInstanceOf('Engineer', $a_suenami)

    ここ数日、こまどさん(@koma_koma_d) が Twiter でクリストファー・アレグザンダーのパタン・ランゲージやそれを参考にしたデザインパターンやアジャイルプロセスなどについて話していて、それにつられて僕もいろいろ考えてみたりしたのでブログにまとめておこうと思う。 ちなみにこまどさんもブログにまとめられており、その記事がこちら。 ky-yk-d.hatenablog.com まあ、僕はあまり大それたことを言うつもりはないのだけど、全体と部分、分析と総合、デザインの民主化、遅延結合などをキーワードに思ったことを徒然なるままに書いていく。Twitterで述べたことをまとめておくかっていう程度のゆるい動機なので、ツイートの引用が多くなること、図を書いたり出典を丁寧に引用したりはできないかもしれないんだけど、そこはあらかじめご容赦願いたい。 パタン・ランゲージとは 読者にどの程度の知識を

    パタン・ランゲージとオブジェクト指向の関係、あるいは分析と総合の動的平衡 - assertInstanceOf('Engineer', $a_suenami)
  • ソフトウェア業界におけるパターン・ランゲージの受容についての覚書:「付録C」を待ちながら - こまぶろ

    稿はあくまで覚書です。大事なことなので文にも書きました。筆者はアレグザンダーの著作を限られた範囲でしか読んでいないことを予め表明しておきます。また、XP やスクラムについても書籍で得られる知識しか持ち合わせていません。専門家によるアレグザンダーについての分析は長坂一郎『クリストファー・アレグザンダーの思考の軌跡―デザイン行為の意味を問う』を、ソフトウェア業界における受容についての分析は江渡浩一郎『パターン、Wiki、XP ―― 時を超えた創造の原則 WEB+DB PRESS plus』をそれぞれご参照することをお勧めします。 追記(最終更新:2020/05/10) 同様のテーマについての(個人的には重要な)記事を忘れていたのでリンクを記載しておきます。 上記記事で取り上げられているエヴァンスのDDDを記事で取り上げられなかったことの反省文です。 関心が違うというのは間違いで、自分の

    ソフトウェア業界におけるパターン・ランゲージの受容についての覚書:「付録C」を待ちながら - こまぶろ
  • 似たようなデータベース作ったからって、泥棒よばわりするのやめてもらえません?

    連載目次 久しぶりにソフトウェアの著作権の判例を解説する。 今回の判決は、以前「データベースをパクられたので、著作権侵害で9億円請求します!」で一度取り上げ、その考え方も説明したが、著作権の考え方を整理し直す機会として、あえて再度解説することにした。 著作権法は第二条において、コンピュータのプログラムやデータベース、通信などに関する作成物も著作物として認められると示している。しかし、こうした成果物の全てに著作権が認められるわけではない。仮に誰かが何も参考にせず、一から以下のようなプログラムを書いたとしても、これを「著作物」だと主張するのは難しい。 このプログラムを書くためには、プログラミング言語に関する最低限の知識があれば足りる。そこにプログラマーの創意や工夫、まして思想、信条などというものはない。こうしたプログラムは著作権保護の対象とはならないだろう。 だが、創意や工夫が作成したプログラ

    似たようなデータベース作ったからって、泥棒よばわりするのやめてもらえません?
  • Engadget | Technology News & Reviews

    'Extreme' geomagnetic storm may bless us with more aurora displays tonight and tomorrow

    Engadget | Technology News & Reviews
    jsstudy
    jsstudy 2020/04/21
    買収後のシャープ=ホンハイの技術力が判明。マスクの通販サイト部分だけAWSやGCPなどに移せば済むのでは?簡単に移動/スケールできない設計なんだろうね?(仮想化やマイクロサービス化がなされていない?)
  • それでもRuby、Python、JavaScript(あるいはJava)を使う方々へ.md · GitHub

    それでもRubyPythonJavaScript(あるいはJava)を使う方々へ.md 前置き この記事は静的型付け言語が理解されないことに業を煮やし……いや、ブチギレてしたためたものです。そのため多少過激な表現を伴います 性質上どうしても特定の人々に攻撃的な内容になります リーナスの下品な発言の引用は非現実的です。わたしが5人くらいいれば現実的なのですが…… Python機械学習分野は例外です。ですがここもいずれ静的型付け言語に取って代わられるべきであると考えています(そもそもFFIが得意と言うだけでPython使われてるだけだし) 「型」の概念が石器時代で止まっている方へ まずはこちらをお読みください。 私と型システムとポエム - The curse of λ https://myuon.github.io/posts/type-system-poem/ 特に「よくある誤解」のこ

    それでもRuby、Python、JavaScript(あるいはJava)を使う方々へ.md · GitHub
    jsstudy
    jsstudy 2020/04/17
    型による制約 → 設計上の規約になる。動的型付け言語のメリットは、素早いプロトタイプ作成が可能なこと(適材適所)。密結合の回避なら、型付け云々以前に、命令型言語ではなく宣言型言語を使った方が良い。
  • PHP中級者がソフトウェア開発の理解を深めるためのオススメ書籍 約30冊(2020年版) — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something

    去年末(2019/12)にオススメ書籍をまとめてみたことがあったので、それを少し更新して公開します。 上にある書籍がよりオススメというわけではないです。 対象者は「PHP中級者」です。中級者が何かは難しいですが、初心者、初級者では決してないとは言えます。 改めて一覧にしてみると、かなり偏っているかも知れません(笑 こういうのはコンテキストというのがあるため、それが合わないと「お前は何を薦めているのだ?」となるでしょうね。 キーワードは、「モデリング」「オブジェクト指向プログラミング」「TDD」「デザインパターン」「DDD」「チーム開発」「アジャイルソフトウェア開発」「スクラム」でしょうか。 PHP中級者のイメージ たぶん、PHP中級者であれば、PHPに関することはPHPマニュアルなどを調べて解決できるでしょう。PHPのオープンソースプロジェクトに貢献しており、自分でプロジェクトを持っている

  • 変化に強い仕組みを作る Pythonにおけるドメイン駆動設計の勘どころ #pyconjp #pyconjp_201

    Python におけるドメイン駆動設計(戦術面)の勘どころ Junya Hayashi @loose_agilist ウェブ開発やロボット開発でドメイン駆動設計を適用してきた体験を元に、Python でドメイン駆動設計を実践する際によくある課題や失敗、役に立つ設計やライブラリ、考え方についてお話します。

    変化に強い仕組みを作る Pythonにおけるドメイン駆動設計の勘どころ #pyconjp #pyconjp_201
  • Python におけるドメイン駆動設計(戦術面)の勘どころ

    2. 自己紹介 ● 林 淳哉 (@loose_agilist) ● GROOVE X でロボット開発 ● 「実践ドメイン駆動設計」 Reviewer ● Qiita に DDD の記事書いてます 3. 今日おはなしすること ● ドメイン駆動設計とは ● ドメイン駆動設計の悩みどころ ● Todo List を例にしたドメイン駆動設計の実践 ○ https://github.com/ledmonster/ddd-python-inject

    Python におけるドメイン駆動設計(戦術面)の勘どころ
  • Python で DDD するなら Inject がオススメ - Qiita

    概要 やや古い記事だけど、InfoQ のドメイン駆動設計・開発の実践には次のように書かれています。 ドメイン・クラスがData Access Object(DAO:データ・アクセス・オブジェクト)クラスに依存し、サービス・クラスがドメイン・クラスに依存するという設計上の依存関係がDDDによる実装に際してDIを"なくてはならない"ものにしています。 Python の場合、DI(依存性の注入)の実現には Inject が便利です。 利用例 ざっと100行程度でサンプルを書くと、このような形になります。 # -*- coding: utf-8 -*- import uuid from abc import ABCMeta, abstractmethod import inject def config(binder): binder.bind(UserRepository, UserMemory

    Python で DDD するなら Inject がオススメ - Qiita
  • PythonでボトムアップDDD 【ドメインサービス】 - Qiita

    バージョン Python 3.7.0 目次 ドメインサービスとは エンティティ自身に横断的な知識を実装 ドメインサービスに横断的な知識を実装 使う場面によっては別の案があるかも ドメインサービスとは ドメインサービスは、値オブジェクトとエンティティの横断的な知識を実装することが許されている。 エンティティ自身に横断的な知識を実装 エンティティに横断的な知識を持たせるように実装してみる。 ユーザ自身に他のユーザとの重複を判断させるのは、確かに違和感がある。 from __future__ import annotations import unittest import uuid from dataclasses import dataclass @dataclass(frozen=True) class UserId: value: str @dataclass(frozen=True)

    PythonでボトムアップDDD 【ドメインサービス】 - Qiita
  • ドメイン駆動設計に15年取り組んでわかったこと

    9. ドメインモデル ビジネスの決め事 の整理 意思疎通 ビジネスの決め事 の共通理解 設計・実装 ビジネスの決め事 の表現 促進する 駆動する ユビキタス言語 ビジネスの 決め事の表現 ドメイン エキスパート 境界づけられた コンテキスト コアドメイン コンテキストマップ 値オブジェクト 集約 エンティティ リポジトリ ビジネスの決め事に 詳しい人 ビジネスの決め事の 通用する範囲 ビジネスの決め事の体系重要なビジネスの決め事 単純な事実の表現と 計算・判断ロジック 複合的な事実の表現と 計算・判断ロジック2020/3/30 9

    ドメイン駆動設計に15年取り組んでわかったこと
  • Anders Hejlsberg氏、現代のコンパイラ構築について語る

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Anders Hejlsberg氏、現代のコンパイラ構築について語る
    jsstudy
    jsstudy 2020/03/31
    Turbo Pascal、Delphi、C#、TypeScriptで有名なAnders Hejlsberg氏は、現在のコンパイラ作成が30年前のやり方とどう違うのか説明した。
  • ママエンジニアが教える“要件定義”の時短術 | ログミーBusiness

    子持ちの時短通勤ママエンジニアであるちょうかおり氏。時間がない中で成果を出したいなら、お客さんにヒアリングし、当に必要なものは何か、その背景を知ることが大事だと言います。 そのために必要なのが、「なぜ?」を聞くこと。お客さんの真の問題を解決するには、理想を正しく把握することが必要です。例を踏まえて、具体的なアクションプランを解説します。 託児のある勉強会は助かるちょうかおり氏(以下、ちょう): LTも後半になりました。タイトル「時短勤務ママエンジニアの、要件ヒアリング力」をはじめます。みなさんも少し疲れてきていると思うので、リラックスして聞いていただければと思います。 ちょうかおりと申します。2011年にVOYAGE GROUPという会社に新卒で入り、8年ぐらい勤めて、2019年に転職しました。ずっとPHPでコードを書いていたので、Ruby on Rails歴でいうと1年目です。3年目と

    ママエンジニアが教える“要件定義”の時短術 | ログミーBusiness
    jsstudy
    jsstudy 2020/03/25
    「納期は信頼。要望は氷山の一角」→結局はソニックガーデンの「納品のない受託開発」のスタイルが良いですね。 https://www.sonicgarden.jp/32 / あとここの社長は炎上しやすい? https://b.hatena.ne.jp/entry/s/r25.jp/article/764829858466974557