タグ

2019年3月8日のブックマーク (8件)

  • ajitofmのTDD回を聞いてTDDに入門した話 - sgyatto's blog

    入門しましたので忘れないよう書き残しておきます。 きっかけ 新入社員の方にユニットテストの書き方を説明していく中で、自分自身に対して色々と思うことが出てきたのが始まりだったと思います。 例えば以下のようなことを考えていました。 ユニットテストの目的って「バグの早期発見」てことでいいのだろうか テストコードって、実装したあとの義務や責任で書くものなのか 実装工程からテスト工程までのタイムラグ(当はみんな実装しながらテスト書いたりするよね?) それから、ajitofmの第13回を見つけて聞いみて、通勤時の電車の中で何度も「いい話だなあ。」と相槌を打ったのを覚えています。 ajitofm 13: Test Driven Developmentajito.fm 結局はそれらがきっかけとなって、TDDを学んでみることにしました。 入門方法 使用した書籍はオーム社の「テスト駆動開発」です。 まずは一

    ajitofmのTDD回を聞いてTDDに入門した話 - sgyatto's blog
    clavier
    clavier 2019/03/08
  • 【Linux】Load Averageに関するいろは - Qiita

    システム全体の実行待ちプロセス数の平均値 背景 CPU使用率だったりAverageLoadだったりを見てサーバの負荷度だったりを調査する必要があってそれについていろいろ疑問だった点をまとめました。 間違い等あればご指摘お願いします。 ボトルネック調査の順で言うととりあえず最初にやるかなって所を書いてます 1.CPU使用率 ★対象 2.メモリ使用量 3.ディスクI/O 4.TCPコネクション数 Load Averageって? ロードアベレージはシステム全体の負荷状況を表す指標。 「1CPUにおける単位時間あたりの実行待ちとディスクI/O待ちのプロセスの数」で表される。 Linuxカーネルはプロセス1つごとにプロセスディスクリプタを持っている。 Linuxでのプロセスディスクリプタはtask_struct構造体という名前になっていて、プロセスに関する全ての情報が入っています。 以下はtask_

    【Linux】Load Averageに関するいろは - Qiita
  • オブジェクト指向設計帖 巻之二

    一、はじめに 今日のソフトウェアで扱う問題は非常に複雑であり、近年では、さらに複雑化かつ多様化する方向にあります。しかし困ったことに、われわれ生身の人間は、一度に考える範囲が限られている為、全ての問題を一度に取り掛かることは、現実問題として不可能です。そのため設計では、実現手段を考える上で、複雑な問題を分割する作業も必要になります。オブジェクト指向設計では、問題を構成する責務を意識して、クラスとして分割します。そして、そのクラスのインスタンスであるオブジェクトが協調作業することによって、提示された問題を解決するのです。 ここで、クラスをどうやって導出する、あるいは既存のクラスに何を実行させるか、ということを考える際に「責務(Responsibility)」という視点が非常に重要になってきます。もちろん、責務だけを考えればで優れた設計ができるわけではありません。しかしながら、責務を意識するこ

  • ドメイン駆動設計を理解する3つのキーワード - ソフトウェア設計を考える

    ドメイン駆動設計との出会い 10年前に、エヴァンスのドメイン駆動設計を初めて読んだ時は、書いてある内容がほとんど理解できなかった。 あまり、面白いとも思わなかった。 当時は、現場でバグだらけのコードと格闘していた。障害が報告されるたびに、リファクタリングを参考に、該当個所の長いメソッドや大きなクラスを片端からリファクタリング。その結果、コードがわかりやすくなり、やっかいなバグが単純な修正で解消できてしまうことの効果に驚き、設計の重要性を再認識していた。 それ以前は、UNIXとC言語、OracleとPL/SQLという、オブジェクト指向ではない世界で技術を身に着けてきた。 どちらかというとオブジェクト指向には、ネガティブな印象を持っていた。現場では役に立たんだろうと。 バグとの格闘の中で、リファクタリング(設計改善)の威力を肌で感じ、その考え方とやり方がオブジェクト指向に由来するということを

    ドメイン駆動設計を理解する3つのキーワード - ソフトウェア設計を考える
  • サーバーレス失敗談 - DynamoDB編 / Serverless Fails

    Serverless Meetup Tokyo #11 での発表で使用したスライドです。 外部リンク: Serverless Meetup Tokyo #11 https://serverless.connpass.com/event/119559/ HiCustomer https://hicustomer.jp ServerlessなサービスのBlue/Greenデプロイメントの現実 | HiCustomer Tech Blog https://tech.hicustomer.jp/posts/blue-green-deployment-in-serverless/ サーバーレス失敗談 - テーブル設計編 | HiCustomer Tech Blog https://tech.hicustomer.jp/posts/serverless-fails/

    サーバーレス失敗談 - DynamoDB編 / Serverless Fails
  • 2019年版・Kubernetesクラスタ構築入門 | さくらのナレッジ

    Kubernetesが標準で提供するリソースの一覧はAPIドキュメントで確認できる。また、独自のリソースを定義して利用することもできる。 Kubernetesでは、「マニフェスト(manifest)」と呼ばれる形式で各種リソースを定義する。マニフェストは木(ツリー)構造で表現できるデータであり、たとえばコマンドラインツール「kubectl」ではYAML形式で記述されたマニフェストを元にリソースの作成や削除、変更といった操作を行える。 kubectlの使い方についてはドキュメントを参照して欲しいが、たとえば、DockerHubで公開されている「httpd」コンテナイメージを利用してApache HTTP Serverを実行させるには、まず次のようなマニフェストファイルを用意する。 apiVersion: v1 kind: Pod metadata: name: httpd labels: a

    2019年版・Kubernetesクラスタ構築入門 | さくらのナレッジ
  • code-server で実現する Windows 上で Linux 向けの快適な Go 開発環境 - 誰かの役に立てばいいブログ

    業務で Linux 向けの Go プログラムを多数開発しています。 しかしながら、開発している機材の OS は好きこのんで Windows です。 在宅から勤務するときに、Windows のリモートデスクトップが最強すぎるので手放せないのが大きな理由です。 そんなわけで、Windows の Hyper-V という機能で Ubuntu を仮想マシンとして動作させ、Emacs で長年開発していました。 しかし近年、モニタも 4K 32 インチと大きくなりましたしメモリも 32 GB 搭載されていますし、なにより Visual Studio Code のような高機能 IDE が手軽に利用できる状況でありながら、ろくにカスタマイズをしない Emacs で開発を続けるのも怠慢かなと考え、「WSL で快適な Go 開発環境を作る」という記事に書いたように Windows + WSL + Visual

    code-server で実現する Windows 上で Linux 向けの快適な Go 開発環境 - 誰かの役に立てばいいブログ
  • Build Your Own Container Using Less than 100 Lines of Go

    InfoQ Software Architects' Newsletter A monthly overview of things you need to know as an architect or aspiring architect. View an example

    Build Your Own Container Using Less than 100 Lines of Go