技術メモ

技術メモ

ラフなメモ

2019-01-01から1年間の記事一覧

Javaのリフレクションでメソッドを試す

リフレクションの勉強をします。今回はメソッドに関するリフレクションについて勉強します。

Javaのリフレクションを使ってインスタンス生成を試す

リフレクションの勉強をします。リフレクションといってもカバーする領域が広い(応用範囲が広い)ので、今回はインスタンスの生成に関するリフレクションについて勉強します。

java.util.concurrentを試す

いくつか java.lang.Thread の使い方を見てきました。今回は java.util.concurrent にあるいくつかの仕組みを試してみようと思います。

JavaのThreadGroupを試してみる

EffectiveJavaの「項目73 スレッドグループを避ける」にあるようにThreadGroupを自前で実装することは少なそうです。しかしその概念を知っておくのは有用と思われるので試してみました。

Javaのinterruptを試す

スレッドのキャンセルについて勉強します。

Javaのwait,notify,notifyAll,yieldを試す

スレッド間で通信するための仕組みに wait(), notifiAll(), notify() があります。またスレッドのCPUリソースの委譲に yield() があります。各メソッドを試してみようと思います。

Javaでsyncronizedを試す

スレッドまわりの勉強のために以下の本を読んでいます。(第14章:スレッド) プログラミング言語 Java 第4版作者: ケンアーノルド,デビッドホームズ,ジェームズゴスリン,Ken Arnold,David Holmes,James Gosling,柴田芳樹出版社/メーカー: 東京電機大学出版局…

Codeforces Rating Comparison を支える技術

http://rate-comparition.cf/ 何をつくったの? Codeforces上の複数のユーザのレートをグラフ+表で可視化するWebアプリです。以下の図を見たほうが早いです。基本的な仕様は AtCoder Rating Comparison を参考にしています。

分散システムを読んだ

分散システムについて勉強しています。以下の書籍を読みました。

Amazon ECSを試して入門する

AWS

コンテナ楽しいですよね! 本記事ではAmazonECSの概要を確認して実際にアプリケーションをECSにデプロイして動作を確認することをゴールとします。参考にしている資料が最新ではないものも含まれているので、少し古い内容かもしれません。

Groovyに入門した

Gradleに入門するにあたって予めGroovyの記述方法について理解しているほうがGradleのbuild.gradleの記述方法がわかりやすくなると考えています。この記事では、groovyに関する一通りの文法を抑えることをゴールとします。

SpringJDBCを試す

SpringJDBCを試してみました。

org.springframework.beans.factory.NoSuchBeanDefinitionException が出たときの対処

TL;DR どういうときに起こるかというと、端的に言えばコンポーネントを注入しているけれども、コンポーネントがDIコンテナに存在しない/参照できていない場合に発生します。具体的な例を見てみます。

リファクタリングを読んだ【仕掛り】

点検読書 全体として何に関する本か?何がどのように詳しく書かれているか? 対象の読者 著者はどのような構成で概念や知識を展開しているか? 第1, 2章 第3章 第6章:メソッドの構成 メソッドの抽出 メソッドのインライン化 一時変数のインライン化 問い合…

「現場で役立つシステム設計の原則」の感想

書籍 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法作者: 増田亨出版社/メーカー: 技術評論社発売日: 2017/07/05メディア: Kindle版この商品を含むブログ (4件) を見る 感想 かなりさらっと読めてしまった。プログラム…

Gitのhook scriptを使ってみる

やりたいこと 業務上gitでcommitするときにユーザ名のprefixが特定のprefixから始まっていないといけない そうでないユーザ名でcommitできないようにする リポジトリごとに設定するのは大変なので、すべてのリポジトリに対してチェックできるようにする 方法…

VagrantのproviderにHyper-Vを使う

やりたいこと いままでVagrantはOracle Virtual Box上で起動させていたが、DockerをWindows上で動かしたい。併用はできないので、VagrantをHyper-Vで起動させるように変更します。 TL;DR VirtualBoxはそのまま残しておいて、Boxのイメージと vagrant up する…

Docker swarmモードを使ってみる

概要 主な機能 Docker Engineのクラスタ管理機能 分散化の設計 宣言型サービスモデル スケーリング 調整(reconciliation) マルチホスト・ネットワーク サービス・ディスカバリ 負荷分散 デフォルトでTLSをサポート ローリングアップデート やってみた 構成 …

docker-composeを使ってみる

docker-composeの概要 複数のDockerコンテナをサービスとして定義/実行するためのコマンドラインツール Docker EngineのAPIにアクセス 環境 項目 バージョン OS Windows 10 Pro Docker Docker version 18.09.2 docker-compose docker-compose version 1.23.2…

Dockerをなぜ使うか

コンテナオーケストレーション(1章)読んだ内容をまとめます。1.4, 1.5 はたいぶサマリました。書籍に詳細が記載されていない(リンクは記載あり)が重要そうな用語(ペット対家畜など)については別途調べて補足しています。 1.1 ソフトウェアの所有からサービス…

サイトリライアビリティエンジニアリング:第1章

第1章:イントロダクション SREとは何か。SREがIT業界における従来型の実践方法とは異なるのか? Googleのプロダクション環境の紹介 1.1 サービス管理へのシステム管理者のアプローチ シスアドのシステム管理のアプローチ devとopsが分離 メリット デメリッ…

SREサイトリライアビリティエンジニアリングを読み始めた

点検読書 全体として何に関する本か?何がどのように詳しく述べられているか? 世界最大規模のソフトウェアシステムを支えるシステム管理とサービス運用について述べられている Googleのサイトリライアビリティエンジニアリング部門のメンバーによる小論文集…

点検読書

2.「点検読書」 点検読書とは、系統立てて拾い読みする技術である。点検読書の目的は、与えられた時間内にできるだけ内容を把握することである。 点検読書には二つのタイプがある。 一つは、組織的な拾い読みまたは下読みである。下読みでは以下の内容を実践…

SpringMVC

Spring MVC とは Spring MVCとはJava言語を用いてWebアプリケーションを開発する際に使用するフレームワークの一つ。フレームワークのアーキテクチャとしてMVCを採用している。 コンポーネント名 説明 Model アプリケーションの状態やビジネスロジックを提供…

SpringCore

DI DI はソフトウェアデザインパターンの一つで「制御の反転の原則」を実現する。DI を利用するとクラスのインスタンス生成と依存関係の構築をアプリケーションのコードから分離することができる。 DI とは 結合度が高い実装 ユーザ登録を行うインターフェー…

Spring 実践入門を読み始めた

はじめに SpringFramework の機能を v1.0 のころから利用しており、商用システムに導入するときの知見やノウハウがある TERASOLUNA フレームワーク NTT 独自の機能拡張を展開していた SpringFramework が Java 開発のデファクトスタンダードになっている TER…

Docker入門

Dockerとは コンテナ(Container) コンテナは物を世界的に輸送するために標準が定義されています。Docker はソフトウェアを送るための標準を定義しています。コンテナは Docker イメージを実行するときの実体です。 コンテナとは Linux カーネルの機能 Namesp…

JavaO/RマッパーであるDomaを試してみる

Doma の Tutorial をやってみる 公式のチュートリアルが丁寧なので、それを見るのがよいです。 http://doma.seasar.org/setup.html 概要 重要っぽいところだけ抜粋(主に利用するユーザとしても視点で) O/R マッパー*1 Dao パターンを使っている 命名規則 …

Javaの基本事項を復習(例外処理)

6 章: 例外処理 例外の基本 例外には大きく 3 つの種類があります。 検査例外(Exception) 実行時例外(Runtime Exception) エラー(Error) 検査例外(Exception) プログラム作成時に想定できる異常を通知するために使用します。検査例外を使用すると想定される…

Javaの基本事項を復習(StreamAPI・ラムダ式)

5 章: ストリーム処理 Stream API Stream API は大量データを逐次処理する「ストレーム処理」を効率的に記述するための手段 大量データではなくとも、コレクションの処理を効率的にできる Stream API は「作成」「中間操作」「終端操作」を 3 つの操作から…