サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
namihira.hatenablog.com
背景 新しいWebアプリ(今回はREST API層だけ)を作るにあたって、これまでJava+SpringFrameworkばかりだったので、他の言語で作ってみることにしました。 (ちょうど仕事上もJava+SpringFrameworkから離れているので) 言語候補として、近くで使っている人が多いのが「Ruby」か「Go」という感じで、ちょうど以下の記事をみて、 employment.en-japan.com 「Webサービス+Ruby(Rails)」が多かったので、「Go言語」を選択した(?) やったこと golangをインストールする 自PC(Mac)にGo実行環境がなかったので整備。 以下参照。 Getting Started - The Go Programming Language Webフレームワークを調べる golang界隈だと現状「とりあえずこれ」なフレームワークがないらし
背景 Springプロジェクトが提供する認証の機構「Spring Security」を適用したときのメモです。 今回はログイン・ログアウト・ロールに合わせた画面表示切り替えあたり処理を書いてみます。 環境 前提として以下を利用して書いています。 maven JSP メモ 必要なライブラリを取り込む ビルドファイルに定義を記載する 最低限必要なライブラリは「spring-security-web」「spring-security-config」で、「spring-security-taglibs」は画面側で画面切り替えのときに使う「sec:authorize」とかを使うときに必要。 Springとは別のバージョン管理されている spring 4.2.4.RELEASE vs spring-security 4.1.2.RELEASE(2016/08/16時点最新) pom.xml バージョン
背景SpringBoot Acuatorについて動作確認したので、そのあたりのことをメモっときます。 概要 » Spring Boot Actuator でサーバの状態を確認する TECHSCORE BLOG 簡単にいうと、Spring BootアプリケーションにAcuatorを適用すると、アプリケーションの設定や状態を取得できるWebAPI(JSON)が自動で追加され、それらの情報がWebAPI経由で取得できるようになります。 適用するビルドスクリプトに依存を追加する Spring Boot Actuatorプロジェクト 設定は必須 https://github.com/spring-projects/spring-boot/tree/master/spring-boot-actuator Spring Boot Actuatorドキュメント 設定は任意。追加するとActuatorについ
背景 2017/03/23リリース予定(今のところ)のJava9の機能一覧をたまたま見かけたので、ちょっと確認してメモっときます。 ※Java9はリリースが一回遅れていて、これ以上遅れないように幾つか削られるかも(;´Д`) 現状の機能一覧(予定) http://openjdk.java.net/projects/jdk9/ 機能 気になったものを幾つか抜粋。順不同(;´Д`) JEP 261: Module System 「Project Jigsaw」として開発されていたモジュール機構。 JEP的には他の番号も含めて、このモジュール機構を成している。コアの部分はこのJEP。 Java9の目玉機能。 世の中的に結構情報があるので詳細は割愛(;´Д`)←まだよく分かっていない。 自分の理解としては、 [これまで]全てのクラスをクラスパスでひとまとめで管理。 依存モジュールが多くなってくる。
下記の本で紹介されていた本のリストです。20冊ぐらいの読みたい本で出会えました。 100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊 作者: デブサミ運営事務局,SEshop.com編集部出版社/メーカー: 翔泳社発売日: 2012/02/22メディア: 単行本(ソフトカバー)購入: 18人 クリック: 537回この商品を含むブログ (38件) を見る あんざいゆきがアウトプットが求められる時代にいきる開発者さんへ贈りたい1冊 ノンデザイナーズ・デザインブック [フルカラー新装増補版] Amazonで詳細を見る 西脇資哲がコンピューターと真剣に向き合うエンジニアに最初に学んでほしい1冊 改訂第5版 ANSI C対応 はじめてのC Amazonで詳細を見る naokirodionがシリコンバレーで仕事をすることを考えているソフトウェアエンジニアに贈りたい1冊 The Expa
背景以下の本を読んで、利用しそうな「Java実行時のオプション」をメモっときます。Javaパフォーマンス 作者: Scott Oaks,アクロクエストテクノロジー株式会社,寺田佳央,牧野聡出版社/メーカー: オライリージャパン発売日: 2015/04/11メディア: 大型本この商品を含むブログ (12件) を見る JITコンパイラのオプション オプション 内容 -client - クライアントコンパイルを適用する - Java実行後すぐにJITコンパイルを実施する。 - 起動後すぐにJITコンパイルされるコードがあるため起動直後が"-server"指定時よりも動作が早くなる。 - 起動時間を短くしたいアプリの場合はこっちを選択する(例:NetBeansなどのデスクトップGUIアプリなど)。 -server - サーバコンパイルを適用する - Java実行後コードの振る舞いを学習して最適なJ
この記事はJava Advent Calendar 2015 - Qiitaの9日目の記事です。 8日目の記事:JavaでHttpのGETとかPOSTをさくっと実装したい - Qiita 10日目の記事:JavaFXのUIをJUnit形式でテストする - Katsumi Kokuzawa's Blog 背景以下の本を社内の読書会で読んで、「結局パフォーマンスを意識したコードはどう書くんだっけ?( ゚д゚ )ガタッ」となったので、ちょっとメモっときます。Javaパフォーマンス 作者: Scott Oaks,アクロクエストテクノロジー株式会社,寺田佳央,牧野聡出版社/メーカー: オライリージャパン発売日: 2015/04/11メディア: 大型本この商品を含むブログ (11件) を見る 注).以下の(p.x)は書籍内のページ番号。 注).自分の解釈(間違っている可能性あり)も書いているので、正し
背景AngularJSでの$locationを使うときに自分の理解が間違っていていろいろハマったのでメモっときます。 前提 今回はログイン画面(/login)を表示して、ログインできたらホーム画面(/home)を表示するという例。 ログイン処理自体は、サーバサイドのAPIにAjaxでPOST(JSON)して認証処理をします。 APIを叩くサービスは以下の通り。 ajaxでリクエストを投げて、結果をブロードキャストする app.service('authService', [ '$rootScope', function($rootScope) { this.login = function(user) { $.ajax({ type : 'POST', url : '/app/api/login', contentType : 'application/json', data : JSON
背景Java8でCollectionインターフェースに追加されたremoveIf()を試そうと思ったら、別件でエラーが発生したのでメモっときます。 修飾子と型 メソッドと説明 default boolean removeIf(Predicate filter) 指定された述語を満たすこのコレクションの要素をすべて削除します。 内容 テスト書く。 @Test public void test_removeIf(){ // setup final List<String> words = Arrays.asList("a", "b", "b", "c"); System.out.println("before : " + words); // action words.removeIf(w -> w.equals("b")); // check System.out.println("afte
背景SpringFrameworkでAPIを実装するときにリクエスト内容の妥当性確認(Validation)をよく行うので、その実装パターン/挙動をメモっときます。 今回は、ユーザ情報をPOSTする際に妥当性を検証するAPIを題材にしています。 事前準備必要なライブラリを入れる必要なライブラリは以下の通り Maven Repository: javax.validation » validation-api(API) Maven Repository: org.hibernate » hibernate-validator(参照実装) 実装パターンリクエストを表すクラスを作る UserDto.java 特記事項 必要そうなパラメータを用意した単純なPOJO。 "userId"については、「nullがダメ」「最大文字数16文字」という条件を付与する。(深い意味はありません(;´Д`)) ※@
以下の本に、レプリケーション遅延についての調査について書いてあったので、メモっときます。 Mobageを支える技術 ~ソーシャルゲームの舞台裏~ (WEB+DB PRESS plus) 作者: DeNA出版社/メーカー: 技術評論社発売日: 2012/06/13メディア: 単行本(ソフトカバー)購入: 31人 クリック: 737回この商品を含むブログを見る レプリケーション遅延とは? 一般的に、データベースはその可用性の確保のため、レプリケーションを行います。それにより「マスター」と「スレーブ」が存在することになります。その状態で、アプリケーションにて「マスター」 にデータを書き込む(または更新)と、その変更は「スレーブ」への非同期で通知され「スレーブ」でもその変更が取り込まれます。 以下、抜粋 レプリケーション遅延の原因は? そのレプリケーション(データ同期)が、ある原因により遅延が発生
以下の書籍に、「チームのムダ」について記載があったので、メモっときます。 リーン開発の本質 作者: メアリー・ポッペンディーク,トム・ポッペンディーク,高嶋優子,天野勝,平鍋健児出版社/メーカー: 日経BP社発売日: 2008/02/07メディア: 単行本購入: 6人 クリック: 141回この商品を含むブログ (67件) を見るこれだけ! KPT 作者: 天野勝出版社/メーカー: すばる舎発売日: 2013/08/23メディア: 単行本この商品を含むブログ (11件) を見る チームの7つのムダ ムダ 一言メモ 未完成の作業のムダ ・目的を達しない作業には意味が無い。 ・99%完成していても、それは未完成である。 再学習のムダ ・何度も学習し直す必要はない。 ・学習したことはプロセスに組み込め。 余分な機能のムダ ・その作業(成果物)は、いま必要なのか。 ・誰にも必要とされない作業を行って
背景WebAPIを設計してきて、最近ある程度考え方・注意点がまとまってきたので整理も兼ねてメモっときます。 観点 同じ事柄を表すリソース構造には一貫性があること例えば「人」を表す際に、叩くAPIによってリソース構造を変えてはいけない(単体での情報取得APIと一覧取得のAPI、検索APIなど)。クライアント*1が扱うリソース構造を共通化させてあげる。 それを実現するには、WebAPI(HTTPメソッドとかパス)を考える前にリソース自体の構造をまず整理したほうがよい。 リソースには何かしらの標準があったりするので参考にできるならしたほうがいい。IANA — Protocol Registriesなど。 例:"人リソース"で構造が違うダメな例 叩くAPIによって { "id" : 123, "name" : "なみひら" } と { "id" : "123", "familyName" : "な
「Jenkins ユーザ・カンファレンス 2015 東京」に行ってきました。 » Jenkins ユーザ・カンファレンス 2015 東京 日本Jenkinsユーザ会 開催概要 2015/01/11(日)12:30-18:00 法政大学@市ヶ谷 主催 日本Jenkinsユーザ会 参加者数 約700人 togetter Jenkins ユーザ・カンファレンス2015 - Togetterまとめ 会場雰囲気 学んだことと所感 dockerという単語が多く出てきて、テスト時の環境をコンテナとして作成するのが流行りらしい。 例 ソースコード取得(git clone) dockerでテスト環境作成 そのテスト環境でテスト テストが完了したら、リポジトリ登録または破棄 dockerは触っとかないといけない雰囲気( ´・ω・`;) 各ジョブの整理ができていなかったので、さっそくworkflow-plugi
Tomcat 7.xまでは、JDBC Driverは{webapp}/WEB-INF/libなどに置いていましたが、Tomcat 8.xだとTOMCAT_HOME/libに置かないといけなくなった。 理由としては、そもそもJDBC DriverはDriverManagerで管理されていて、そもそもそれは全アプリで共有される資源だかららしい。 Tomcat 7.x以前でもその仕組みだったけど(ログにWARNING出力されていた。)、Tomcat 8.xでその扱いを厳密にした形。 参考Apache Tomcat 8 (8.0.8) - Changelog spring - Tomcat 8 can't see MySQL Driver - Stack Overflow tomcat - Why jdbc driver must been put in TOMCAT_HOME/lib folde
背景Java8で新仕様として「ラムダ式」が追加されました。 そのラムダ式がどのように実現されているか、確認してみました。 簡単な確認 Java7以前比較のために、まずJava7以前のコードを以下のように書いてみます。 Java7まではメソッドの引数として、無名クラスを作って渡してあげます。 (他にもRunnableとかListenerとかにも多い記法。) [ec2-user@xx java]$ cat jp/namihira/util/SortClass.java /** * Copyright 2014 Kosuke Namihira All Rights Reserved. */ package jp.namihira.util; import java.util.Arrays; import java.util.Comparator; public class SortClass {
背景Java8にて、インターフェースにdefaultメソッド(メソッド定義と実装)を定義できるようになりました。 しかし、その実装においてObjectクラスが持っているメソッド(toString()とかequals()とか)は、インターフェース内でdefault実装として定義できないようになっています。(コンパイルエラー「A default method cannot override a method from java.lang.Object」) 「なんでかなぁ~」と思ってちょっと調べてみたら、以下の記事を見つけました。 ちょっと要約ちょっと要約してみます。 #自分の解釈を一部入れています。 #英語に不自由のない方は上記を見てもらえればいいかと思います。 (質問者) defaultメソッドは、Javaの中で新しい良いツールだ。 しかし、私がインターフェースにtoString()のdef
Botツール「Hubot」をwindowsで動かしたときのメモ。 自PCのOSはwindows 7です。以下の操作は全てコマンドプロンプトで実行します。 #本当はLinux系マシンでセットアップしたほうが楽ですが、手持ちのLinux系マシンがないもので。。。 Node.jsのインストールHubotを動かすにはNode.jsが必要なので、先にNode.jsでインストールする必要があります。 以下を参考にしました。特にトラブルはありませんでした。 [7]「Node.js」のインストール Hubotのインストールここまでできたら、Hubotのインストールします。 引き続き、以下を参照しました。 [10] npmを用いたHubotのインストール ハマったポイント プロシキ経由でインターネットにつないでいる場合「npm」コマンドにてプロシキ設定をする必要があります。 npm config set p
サーバ情報 OS Cent OS 6.4(64bit) スペック 4vCPU 8GBメモリ 100GBディスク 基本作業 ログインできることを確認する login as: root root@xx.xx.xx.xx's password: Last login: Fri Dec 20 10:02:11 2013 from zz.zz.zz.zzできた。 OSのバージョンを確認する [root@xx.xx.xx.xx ~]# cat /etc/redhat-release CentOS release 6.4 (Final)ふむふむ(´・~・`) プロキシの設定を行う [root@xx.xx.xx.xx ~]# vi /etc/yum.conf ・・・ proxy=http://(サーバ):(ポート) proxy_username=(ユーザ名) proxy_password=(パスワード)
Hubot構築@CentOS 6.5【その1】 - なみひらブログのつづき。 Redisの依存を削除するHUbotはデフォルトでDB「Redis」を使うように設定されているので、その依存を解除しておきます。(あとで戻すけど。) [namihira@xx.xx.xx.xx]~/hubot/hubot/src/templates% cat hubot-scripts.json ["redis-brain.coffee", "shipit.coffee"] [namihira@xx.xx.xx.xx]~/hubot/hubot/src/templates% vi hubot-scripts.json [namihira@xx.xx.xx.xx]~/hubot/hubot/src/templates% cat hubot-scripts.json ["shipit.coffee"] ポートを設定す
プロキシ内の環境からcurlを使用する場合に以下の2通りの設定方法があります。 コマンドラインで設定する curl -U (ユーザ名):(パスワード) -x proxy.xxx.co.jp:(ポート) -L https://www.google.com 設定ファイルで設定する~/.curlrcに以下のように設定します。 [namihira@xx.xx.xx.xx]~% cat ~/.curlrc proxy-user = "(ユーザ名):(パスワード)" proxy = "http://proxy.xxx.co.jp:(ポート)"
このページを最初にブックマークしてみませんか?
『namihira.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く