![[システム運用] Spring Boot + ElastiCache + DynamoDBで構成されたシステムのメンテナンス -解答・知見の共有編- | DevelopersIO](https://cdn-ak-scissors.b.st-hatena.com/image/square/f462eca999e0629c1eda58d64867dd4092abac90/height=288;version=1;width=512/https%3A%2F%2Fdevio2023-media.developers.io%2Fwp-content%2Fuploads%2F2013%2F09%2Fspring.png)
Java 10が本日付で正式リリース。ローカル変数の型推論、ガベージコレクタが入れ替え可能、不揮発性メモリ対応など。Java 9は早くもサポート期間終了 昨年9月に登場したJava 9から、Javaは6カ月ごとのタイムベースによるアップデートサイクルが採用されました。そしてその最初のワンサイクルが経過し、今日3月20日付けでJava 9の次のメジャーバージョンアップとなるJava 10が登場する予定です。 おそらくJava 10の正式な発表は米国時間の3月20日、日本時間では休日となる明日の午前中あたりになると思われます。 Java 10の新機能:ローカル変数の型推論、ガベージコレクタが入れ替え可能など Java 9では、通称「Project Jigsaw」と呼ばれるJavaのモジュール化機能が入り、Javaに対する大きな変更が行われました。しかし今回のJava 10では、それほど大きな機
最近気づいたことがある。それは、僕はみんなみたいに複雑なことが理解できない、ってこと。 話をしてても「ごめんなさい。いまのわかんなかった。もう一回教えて欲しい。」とかよくあるし。ドキュメントも、ちょっと複雑なことが書いてあると、全然頭に入ってこない。 色んなルールがドキュメントに書いてあって、それをちゃんと守りながら開発してる人たちとか見てると、みんなすごいなぁって思うのであった。 なんだろうなぁ。こう・・・色んな想像が始まってしまって、考えが落ち着かないんよね。 そんな僕なのだけど、ここ数年はありがたいことに色んなコードを読む機会がある。読みやすいコードもあれば、パズルみたいに複雑なものもあって。そんな中で、たぶん、僕にとって読みやすいコード、というのは普通の人にとってはとても読みやすいコードなのかなぁって思って。書いてみる。 JavaでWebのアプリを開発してる。基盤とかフレームワーク
はじめに 驚き最小の原則(法則)という言葉があります。 Wikipediaの記事を引用すると http://ja.wikipedia.org/wiki/%E9%A9%9A%E3%81%8D%E6%9C%80%E5%B0%8F%E3%81%AE%E5%8E%9F%E5%89%87 ユーザインタフェースやプログラミング言語の設計および人間工学において、インタフェースの2つの要素が互いに矛盾あるいは不明瞭だったときに、その動作としては人間のユーザやプログラマが最も自然に思える(驚きが少ない)ものを選択すべきだとする考え方である。 要するに、使うときに「おやっ?」という驚きが少ないほうが良いプログラムであるといえます[1]。 [1]: どっちが驚きが少ないか迷う場面もかなり多いですが・・・ この記事では敢えて驚きの多いプログラムの書き方を紹介します。驚きの多いプログラムを読むとどんな気分になるか、
お仕事でそれなりにまとまったJavaのコードを書くので、ちょっと真面目に手元の環境をアップデートしようと思ったらいろいろあったので、メモを兼ねてまとめる。なお手元の環境のアップデートにともない、次のエントリを大きく参考にさせていただきました。多謝。 qiita.com なおそれまでの環境は EmacsでJavaを書く - nekop's blog を元にだいぶ前に整備したもので malabar-mode をずっと使ってたんだけど、Java8 Lambdaでインデントが崩れるとかいろいろあってちょっとストレスフルだったのが主なアップデート動機。 環境は OS X El Capitan *1 + Emacs 25.2 で、全面的に MELPA をつかってパッケージ管理やっている。 結論 最終的には ENSIME (の ENJINEモード) を使っている。これでコンパイルエラーを出すとかメソッド
今回もラムダ書きますけど、重要なのはそこではないので勘弁してください。 java8でインターフェースでデフォルト実装が書けるようになりました。 参考:http://www.ne.jp/asahi/hishidama/home/tech/java/interface.html#h_default_method いつ使うの?abstractクラスの実装と何が違うの?と言われると「うっ」ってなりますが、 個人的な意見では仕様変更(機能追加)に強くなったのかと思ってます。 (関数型インターフェースでは多用しますけど今回はその話はしません。) 例(仕様) Containerインターフェースはkeyとuserから情報を返します。 実装クラスに下記の2種類1があります。 生成時に情報をロードしてキャッシュします。要求にはキャッシュから情報を返します。 要求に対して情報をロードして返します。一度ロードした
日頃より、アレスネットをご愛顧いただきまして誠にありがとうございます。 「ホームページサービス」のサービス提供は2016年1月31日をもちまして終了させていただきました。 これまで長らくご利用いただき、誠にありがとうございました。 今後も、皆様によりよいサービスをご提供させていただけるよう、サービス品質向上に努めて参りますので、何卒、ご理解いただけますようお願 い申し上げます。 <アレスネットをご契約のお客様へ> 後継サービスとして「userwebサービス」を提供させていただいております。 詳しくは、以下のリンクをご参照ください。 ▼「userwebサービス」のご案内 http://www.ejworks.info/userhp/alles/index.html 今後ともアレスネットをご愛顧いただけますようお願い申し上げます。 株式会社イージェーワークス アレスネット カスタマーサポート
レイヤ化アーキテクチャ(LAYERED ARCHITECTURE) DDD でのレイヤ化アーキテクチャ アプリケーションの中では、ドメインのロジック以外にも様々な処理が行われる。 例えば、画面表示に関する処理・トランザクション制御・データベースアクセス・メール送信などがある。 もし、これら他の関心事の中にドメインロジックが紛れ込んでいると、コードは非常に読みづらくなり保守もしづらくなる。 この問題を回避するため、ドメインは他の感心事から分離しなければならない。 分離の手法は多々あるが、一般的に広く受け入れられている手法として、レイヤ化アーキテクチャがある。 レイヤ化アーキテクチャでは、アプリケーションが持つ関心事をいくつかの層に分離する。 各層に含まれる要素は、同じ層内の要素かもしくは下位の層にのみ依存し、上位の層には依存しないようにする。 上位の層と連携する場合は、コールバックやオブザー
これの続きです! レビューしてもろた! おぉ。メソッドわけない前提で、price<sumのほうが正常系なんだから先に異常系を抜けるべきってのと、正常系だけresultの値設定順が違うのと、最初のthrowがただのgotoになっててバグぽい。「続:僕の好きなコードの書き方」 http://t.co/6drsy6VG8I— きしだલ (@kis) May 8, 2015 そっこーでコメントくれてた!確かに確かに! @bufferings 僕ならstaticイニシャライザで、def(1, 0); def(5, 0); def(10, 10); みたいなのたくさん定義してMapで持っとく。— CEROMETAL (@cero_t) May 12, 2015 なるほどですなー。 あと、@haradakiro にも「お邪魔したいのでテストコードも晒さないかな、ちらっちらっ」ってコメント頂きました。 レ
社内のRxJava勉強会用の資料です。 軽く、ほんの軽くRxJavaのサブセットを20行ほどで実装してみました。 https://github.com/gfx/RxInTheBox 概要 RxJavaはPromise的なもので、連続した「イベントの発生 / 値の生成」を扱えるようにしたもの Observableは「イベントが発生するかもしれない状態 / 値の生成中」という状態を表すオブジェクト OnSubscribeはObservableの中身で、「イベントの発生 / 値の生成」をObservableに通知するためのオブジェクト SubscriberはObservableから「発生したイベント / 生成された値」を受け取るコールバック RxJavaの捉え方 まずRxJavaですが、いくつかの捉え方があります。 リスト処理の抽象化・ストリーム化 Optional的な何か Promise的な何
https://www.youtube.com/watch?v=RR62KqHEVfM 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Squareが主催した並行処理システムに関するパネルディスカッション。 まずは、並行処理理論で博士号を取得し、Sqaureで分析システムを担当するGian Perroneがハイレベルでの留意点を挙げています。 システム全体で起きていることを自分の頭で完璧に把握しようという姿勢は、正確な並行処理システムをつくる妨げになる。テクノロジーやツールをうまく利用すべき。 並行処理システムを漏れなくテストするというのは相当難しい。 自分で考えて、注意深く対処するというのでは不十分。うまく抽象化に頼るべき。 続いて同社のTamir Dubersteinが、以前データセンタを移行させ
Java Advent Calendar 2014 - Qiita の9日目です。9日ったら9日です。 なんか難しいエントリが多い中ですが、空気を読まずに軽めでいきます。 Javaでは色々なコードの書き方ができるけど、実際あまりやらないよなーって思うコーディングについて、やらない理由を無理矢理書いてみた。 決して「やってはいけないコーディング」と言う意味ではないです。単に「私はあまりしない」程度で、一般的な(?)業務開発でもあまり見ない、くらいの位置付け。理解した上でやる分には全く問題無いですし、そう言うもんだと思って使っても良いとは思います。 複数変数を同時に宣言する int i, j = 2, k; 同じ型の変数(フィールドでもローカル変数でも)は同じ文で宣言できます。 けど、あまり使ってるのは見ません。 同じ型でしか使えないし、フィールドだとJavaDocコメント書き辛いし、初期化式
今年はJavaOneに参加できたので、標準Java系は詳しい人に任せて、僕はアーキテクチャ関連の技術紹介や事例系のセッションを回ってきました。このサマリをJavaOne 2014 サンフランシスコ報告会 Tokyoにて発表しています。資料はこちらから。 動画はこちらから(コミュニティアップデートの途中からがアーキテクチャトレンドになります)。 発表時間が30分なのでコンパクトになっていますので、さっくりと見ていただければと思います。 もちろん「明日から案件に使えます」という話ではありません。ただ、JavaOneということもあって、話者はエンタープライズへの適用を前提にしています。よって、単純なスケーラビリティだけではなく、システム連携や信頼性についても意識はしています。意識したうえで「まだ簡単にはいかないけど、こうやっていくべきだ」という話です。 サマリとしては、アーキテクチャ設計をする上
セッション HTTPでは、WebブラウザとWebサーバが次のようにして通信します。 WebブラウザとWebサーバが接続される Webブラウザが要求を出す Webサーバが応答を返す 接続を切断する この一連の流れを「セッション」と言います。あるセッションと別のセッションとは、基本的には無関係です。 ところが、これでは困る場合があります。例えば、インターネット上のショッピングサイトで、「商品Aを購入」というボタンをクリックしたとします。これをセッションAとしましょう。続けて、「商品Bを購入」というボタンをクリックしたとします。これをセッションBとしましょう。このユーザは商品Aと商品Bを購入したいわけですね。しかし、Webサーバにとっては、セッションAとセッションBは無関係です。つまり、「商品Aを購入」ボタンを押したユーザと「商品Bを購入」ボタンを押したユーザとは無関係ということになります。これ
リーダブルコードから学べるのは嘘メソッド名と嘘コメントが最大の罪ってことだよ— 片手間以上 (@mizchi) 2014, 7月 5 コードコンプリート、個人的にそんな有益な話はなかったという記憶なんだけど単に趣味のドメインが違うだけかもしれない可能性はある— 片手間以上 (@mizchi) 2014, 7月 5 コードコンプリート、作者が一生懸命になってる主張の部分が全然共感できないのがあった— 片手間以上 (@mizchi) 2014, 7月 5 僕はGoFはむしろ初心者に絶対に読ませてはいけない本だと認識していて、グローバル変数をファサードとか言い出したり、これはシングルトンなんです!と言い出す— 片手間以上 (@mizchi) 2014, 7月 5 本読んでコード書けるようになるとか幻想だと思ってるので、基礎文法覚えたあたりでコードコンプリート読んで、その後はいろんなパラダイムのフ
本稿は2014年版の記事です。 新しい2017年版の記事がありますのでそちらをご覧ください。 本稿では Java で PDF を作成/操作するライブラリについて調査した結果をご紹介します。 2014年06月現在、Googleで「Java PDF」などのキーワードで検索をすると古い記事ばかりがヒットするので、今どきのライブラリはどれなのかを調査しました。 まずは OSS のものを調査した後に製品プロダクトについても調査しました。 Apache PDFBox 最初に紹介するのは Apache PDFBox です。 比較的新しいライブラリで、Version 1.0.0 は2010年にリリースされ、現時点で最新の 1.8.6 は2014年06月にリリースされたばかりです。 プロジェクトが停止していないのは心強いですね。名前の通り、The Apache Software Foundation のもと
デブサミやJava Day Tokyoなど、会社の許可をもらってイベントにありがたく行かせてもらっているけど、ちゃんとレポートできていなかったということで、社内勉強会で話すことにしました。 まとめ資料を作ったので、このブログにて先行して公開してしまいます*1。少し前のエントリで資料をアップロードしたのはこのための準備でした。 資料の位置づけ 古いJavaの知識で止まっている人(自分含め)やこれから本格的にJavaを学ぼうと思っている人に、最近のJava関連の新機能などをざっくりつかんでもらうための資料です。内容の深さ・広さは、聴く人のJavaスキルに合わせた一応合わせたつもりです。 Java SE 8がリリースされて、その界隈では「for文禁止」などと言われる一方で、会社の新人研修で教えるJavaでは、「ループはforやwhileを使って書きます」みたいに教えるわけで、その辺のギャップを埋
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く