BPStudy#178〜成長し続け、変更を楽に安全にできるソフトウェア設計とは 株式会社ビープラウドが主催するIT勉強会 2022年6月30日 設計を学ぶのは自分のため 「正しい」学び方があるわけではない 設計の学びに特定の到達点はない 何を学ぶのか 設計の学び方 上達する:練習して変化する 成長する:時間をかけて変化する ひらめき:突発的に変化する
はじめに スタンフォード大学の John Ousterhout 教授が執筆された “A Philosophy of Software Design”(以下 APoSD と略す) という書籍をご存じでしょうか? 書籍のタイトルを直訳すると、「ソフトウェア設計の哲学」となります。書籍の内容はまさに、ソフトウェア設計について扱っています。 本書籍をベースに、「A Philosophy of Software Design を30分でざっと理解する」というお題で社内ランチ勉強会が開催されました。本記事執筆者である岩瀬(@iwashi86)が発表者であり、勉強会資料は以下のとおりです。 スライド P.4 に記載したとおり、本書籍は John Ousterhout 教授の意見が強く反映されており、ソフトウェアエンジニアであれば、議論を呼ぶ箇所があります。実際、勉強会の実況Slackでは、「これはどうな
タイトル詐欺である。今回も反省せずに続きといきたい。 前回も示したが、ざっくりとした銀行の基幹系システムは「勘定系」「情報系」「チャネル系」の三つの構成になっているという図が上である。ざっくりとしたものなので、実際にはもっと複雑(特にメガバンクでは)だし、これがあるのにアレがない、とかいったものはある。細かいところを気にしすぎると禿げるぞ。 今回は、銀行の基幹系がなぜ古臭いのかという話をしたい。古臭いと言ってもいろいろあって、特にエンジニア界隈からは「メインフレームを使ってる」とか「COBOLみたいなカビの生えた古代言語を使ってる」とか、とにかくイケてないシステムの代表例のように言われることが多い。対して、預金者の側からはネットとの親和性だとかサービス面の不満からくるイケてないという話が多いと思うのだが、これはどちらかというとシステムの話ではなくて、サービス設計とかその背景になるビジネスモ
IIJ Technical NIGHTは、2020年9月11日にオンラインで開催した技術勉強会です。ここで熊坂氏が、SOC(Security Operation Center)のアナリストを支援するインシデント調査システム「CHAGE(チャゲ)」を社内で開発した理由と、その実装について紹介しました。 IIJのインシデント調査システム 熊坂駿吾氏(以下、熊坂):IIJの熊坂から、社内で作成しているインシデント調査システムに関して紹介いたします。「インシデント調査システムが内製すぎる件」というところで、IIJの中で作成しているCHAGE(チャゲ)を紹介します。 まず私は2015年にIIJに新卒入社しまして、2018年度からSOCで業務を行っています。アナリスト的なことは詳しくやっていなくて、どちらかというとアナリストたちが業務を行うための環境の整備をしています。 具体的には、Windowsのメ
キーポイント For object-oriented design we follow the SOLID principles. For microservice design we propose developers follow the “IDEALS”: interface segregation, deployability (is on you), event-driven, availability over consistency, loose-coupling, and single responsibility. Interface segregation tells us that different types of clients (e.g., mobile apps, web apps, CLI programs) should be able to inte
補足説明: MySQLには、バージョン5.7から「JSONデータ型(JSON Data Type)」と呼ばれる概念が登場しています。これにより、JSON型を直接入れられるカラムを作成できます。 便利な一方、一般的なRDBの正規化を崩すことになりますので、仕様には注意が必要です。詳しくはこちらをご覧ください。 リンク WPJ もう知ってた? MySQL 5.7でNoSQLっぽくJSONデータを扱う方法 MySQL 5.7では、JSONデータを「JSON型」としてネイティブで扱えます。サンプルを見ながら、基本的な使い方を確認しましょう。 ※本記事は2016年5月31日に掲載した記事を一部再編集して更新したものです。執筆時点の技術情報をベースにしています。 「SQL vs NoSQL: The Differences」で紹介したように、SQLとNoSQLの境界線は、両言語が他方の特徴を取り入れる
Web API: The Good Parts 作者: 水野貴明出版社/メーカー: オライリージャパン発売日: 2014/11/21メディア: 大型本この商品を含むブログ (6件) を見る 同僚から借りて読みました。 全体としては Web API の設計に少しでも携わる人間ならとりあえず読んでおいたらいいんじゃないかなーという感じです。 薄いし。 本書を読んだからと言って最高の Web API の設計ができるようになるとは思わないですが、Web API の設計をする際に知っておくべきことが一通りまとまっていて良い感じだと思いました。 学びメモ 知らなかったことや、なんとなく知ってたけど改めて調べたことなどまとめておきます。 RFC 5861 での Cache-Control ヘッダの拡張 RFC 5861 にて、Cache-Control ヘッダの 2 つの拡張が定義されています。 sta
ポリモーフィズム(サブクラスによる切り替え、抽象化) ここに分類されるのは、オブジェクト指向の第3原則、ポリモーフィズムを使用したパターンです。ポリモーフィズムを使用すると、動的に使用するクラスを切り替えることができます。<参照> 他に分類されているものでも、ポリモーフィズムが重要な位置を占めているものもありますが、ここではそれしか使われていないものを扱います。 ただデザインパターン全体を通して強調されているのは、インターフェースでプログラミングするということです。実装への依存をなくし、そうすることによって設計の骨組みを明らかにするのです。 Template 次のようなメソッドがあった場合に、処理Bのところを条件によって変えたい場合があるとします。 class Hogehoge { void doit() { ... 処理A ... ... 処理B ... ... 処理C ... } }
開発環境の準備 それでは、開発環境を入手して、ホストPC(KOHJINSHA SA5SX12A)にインストールすることからはじめましょう。ザイリンクス社の無償ISE WebPACK ソフトウェアのページにアクセスして、「ISE WebPACK ソフトウェアをダウンロード」のリンクから開発環境をダウンロードします。なお、今回使用する開発環境「ISE WebPACK」をダウンロードするにはザイリンクス社のアカウントが必要です。アカウントを持っていない場合は「ザイリンクス アカウントをお持ちでない方」の[アカウント作成]からユーザー登録をしてください。 作成したアカウントでログインし、画面の指示に従い情報を入力するとダウンロード可能なツールの一覧が表示されます。ここで、「ISE WebPACK 10.1 (Free Download)」にチェックを入れて、[Next]ボタンを押してください。する
その場限りのCSSを使うのではなく、CSSの基本からしっかりと理解を深め、運用期間が長くても安心して使えるCSS、大規模なサイトでも管理できるCSSを身につけたい人に役立つ一冊を紹介します。 単にコードを書くだけではなく、設計・管理・運用を考えた『ちゃんとしたCSS』が徹底的に解説された良書です。 GoogleエンジニアのPhilip Walton氏によると、より良いCSSのゴールとして次の4つのポイントが重要です。 予測しやすい 記述したスタイルが他のスタイルに影響されず、期待通りの見栄えになる。 再利用しやすい スタイルの定義が機能ごとに管理されており、似たUIの別のプロジェクトにも利用できる。 保守しやすい スタイルを追加・修正した際に、既存のものに影響を与えない。 拡張しやすい サイトの規模が大きく複雑になっても、対応できる。 参考:CSS Architecture(翻訳版) これ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く