タグ

JavaとDBに関するraimon49のブックマーク (16)

  • Rust の DI を考える — Part 1: DI とは何だったか - paild tech blog

    paild 社でお手伝いをしている yuki です。みなさんは Rust で DI をしようと思った際に困ったことはありませんか?この連載では、他のプログラミング言語で利用される DI パターンを参照しながら、Rust でそれを実装するためにはどのような工夫が必要かまでを検討します。中には Rust での実装が難しいパターンも出てくるかもしれません。その際は、なぜ難しいのかまでを検証します。 そこそこの規模のソフトウェアを実装するにあたって、ソフトウェアエンジニアが共通して利用する手法がいくつかあると思います。その中でも DI (Dependency Injection; 依存オブジェクト注入) は最もポピュラーな手法の一つであり、保守運用まできちんと耐えうるソフトウェアの設計をしたいとなったときに、まず真っ先に候補に上がる手法でしょう。 Rust ではこの DI をどのように行えばよいの

    Rust の DI を考える — Part 1: DI とは何だったか - paild tech blog
  • PayPayカード、メインフレームの基幹システムをAWSに移行--業界で前例なき規模

    2015年にソフトバンクグループとなってからビジネスが大きく変わり、「『ネット屋の金融を目指す』というトップのビジョンの基でIT戦略も大きく変化した。あまり表明していないが、ITを大手ベンダーに丸投げせず自社でコントロールできるようにし、『ネット屋の金融』らしいプロダクトファーストな新しい金融サービスを目指すようになった。社内エンジニアでもシステム内部はベンダーにしか分からない状態で、エンジニアがものづくりに取り組むためにもシステム内部を理解していることが必要だった」(信太氏)という。 上述の経緯から同社の基幹システムは長年メインフレームで運用されてきたが、ビジネスが変わったことでモダナイズ(最新化)の必要性が高まり、まず2016年頃からアプリケーションを「COBOL」から「Java」に書き換える(リライト)改修を行った。このリライト作業は容易ではなく、「当時の担当者が既におらずドキュメン

    PayPayカード、メインフレームの基幹システムをAWSに移行--業界で前例なき規模
    raimon49
    raimon49 2023/04/22
    マルチAZ構成だと決済処理が10倍近く遅延するから許容できなかったのか。楽天KCから分離されてSB系に収まってるPayPayカードって会社の流れも何だか面白い。
  • JITとコードの暖気の実体 - #chiroito ’s blog

    どうも、趣味でOpenJDKのコミッタをしてます。 とあるブログを読んでいたら気になる点があったので検証してみました。 JITと暖気 Javaプロセスはアプリケーションを動かしながら必要に応じてバックグラウンドでバイトコードをネイティブコードにコンパイルします。このコンパイル時にはCPUリソースを使用します。 コンパイルにはいくつかのレベルがありますが、コンパイルされる前やレベルの低いコンパイルのコードはCPUのリソース効率が悪かったり、アプリケーションの処理中にコンパイルが実行されるとCPUリソースを奪いあったりなどが問題になります。 そのため、Java のアプリケーションで性能を気にする要件がある場合、番に近いリクエストを投げてコードをJITコンパイルする事があります。これをよく暖気と言います。これにより番のリクエストが来る前にコードを最適化し、よりCPUリソース効率の高いコードで

    JITとコードの暖気の実体 - #chiroito ’s blog
    raimon49
    raimon49 2020/09/19
    Spring Boot + JPAでの検証例。勝手に持っていたイメージよりもアプリケーション全体のコンパイルは遅い。暖気運転してからReadiness ProbeでOKを返すって運用していなかったから気付きのある記事だった。
  • なぜRDBからCSV + COBOLに変更する事でコスト削減と高速化を同時に実現出来たかの考察 - ブログなんだよもん

    そもそも既存はどんなロジック? RDBなんだからWhere句使ったら? なぜファイルにすると速くなるのか? 並列化と分散処理による高速化の可能性 COBOL使う必要あったの? Javaとかじゃダメだったの? まとめ TLを見てると以下の記事が少し話題になってました。 tech.nikkeibp.co.jp tech.nikkeibp.co.jp 対象の記事は有料会員じゃないと見れないのだけど事例としては以下みたい。 リソース - ユーザー事例 - COBOL製品 ユーザー事例 : マイクロフォーカス さて、この記事の驚きポイントは「1億レコードくらいのDB処理をRDBからCOBOL + CSVに変更してUnixサーバからWindowsサーバに変える事で性能を維持しつつコストを1/5くらいにした」という事でしょう。 「せっかく7割もあったSQLを全部COBOLに変えるとか時代に逆行しすぎ!」

    なぜRDBからCSV + COBOLに変更する事でコスト削減と高速化を同時に実現出来たかの考察 - ブログなんだよもん
    raimon49
    raimon49 2019/06/18
    真面目な考察。ためになる。
  • 我々はいかにして技術選択を間違えたのか? 2016 - Cybozu Inside Out | サイボウズエンジニアのブログ

    どうも!アプリケーション基盤チームの横田(@yokotaso)です! kintoneなどで利用していたJavaフレームワークのSeasarのEOLに伴い、S2Daoからの脱却を試みたのですが、パフォーマンス問題や障害を発生させてしまうなど問題を多々発生させてしまいました。 同じ過ちを繰り返さないという強い決意のもと、今回の失敗をブログで公開いたします。 失敗をあえて公開する点で斬新かつ濃いブログ記事となっております! 失敗体験の公開は恥だが役に立つ! 移行先の選定の失敗 移行先として選定したプロダクトは Hibernate*1です。 Hibernateを選んだ理由としては Spring Framework を選定した Spring Frameworkで Interface + アノテーションでプログラミングするならSpring Data JPA が有力 JPAに準拠したのORMの中でも、H

    我々はいかにして技術選択を間違えたのか? 2016 - Cybozu Inside Out | サイボウズエンジニアのブログ
    raimon49
    raimon49 2018/10/17
    Entityキャッシュの罠。失敗の共有とても大事だ。
  • ID生成大全 - Qiita

    セッションIDやアクセストークン、はたまた業務上で使う一意の識別子など、いろんなところで一意のIDを生成しなきゃいけないケースが存在します。 そこで世間で使われているIDの生成方法について調べてみました。 選択基準 ID生成における要求として、以下の観点が上げられるかと思います。 生成の速度 大量にデータを短期間で処理し、それらにIDを付与する場合、ID生成そのものがボトルネックとなることがあります。 推測困難性 IDを機密情報と結びつける場合、IDを改ざんされても、機密データが見れないようにできている必要があります。 順序性 採番した順にデータをソートする必要がある場合は、IDがソートキーとして使えないといけません。 それぞれについて各生成手段を評価します。 ID生成の手段 データベースの採番テーブル 採番用のテーブルを作り、そこで番号をUPDATEしながら取得していくやりかたです。古い

    ID生成大全 - Qiita
    raimon49
    raimon49 2017/12/09
    よく調べたなぁ。すごい。
  • リクルートテクノロジーズ 新人研修特別編を公開します | リクルート テックブログ

    こんにちは。アプリエンジニアの五味です。 2017年4月にリクルートホールディングスの新卒Web採用枠で入社した新卒社員のうち、21名がリクルートテクノロジーズに配属となりました。(いらっしゃい!) リクルートテクノロジーズでは「ブートキャンプ」と呼ばれる新卒社員向けの技術研修を3か月間実施しています。 もともと高い能力を持つ彼・彼女らですが、「これからのリクルートをリードしていく存在」になって欲しいという期待を込め、プロとしての重要な立ち上がり期を支援しています。 今年からは社外講師の既存プログラムに加え、より実践的な内容を求める経験者をターゲットに、総勢12名の現場エンジニアが担当する特別講座を開催しました。 各分野のスペシャリストがこれまで現場で培ってきた「当に必要な生きた知識・技術」のインプットは、彼・彼女らの成長を加速させ、これからのエンジニア人生の礎になってくれるものと僕らは

    リクルートテクノロジーズ 新人研修特別編を公開します | リクルート テックブログ
    raimon49
    raimon49 2017/06/07
    GitやJSのスライドに、それぞれの誕生小噺が入ってて面白い。
  • Nianticの求人から推測する『Pokémon GO(ポケモンGO)』のサーバ構成 - Qiita

    1ワールドで済ますというチャレンジ Nianticの求人を見ていて、凄く驚いたのは、「Software Engineer - Server Infrastructure」での次の項目。 all on a single, coherent world-wide instance shared by millions of users. 対訳 全ての(アクション)は、数百万のユーザーに共有された単一の一貫した(サーバ群で行われる) つまり、ポケモンGOは1ワールドで構成されている。MMOのサーバを作ったことがある人なら5それがどんなに大変かピンとくるだろう。特に、ポケモンGOの様に一日に数百万人とかが遊ぶゲームで、1ワールドでゲーム世界を構築するのは、結構大変だ。6 MMOで1ワールドがなぜ大変か(データストレージとの戦い) MMOの様なオンラインゲームで、1ワールドがなぜ大変かを図示する。

    Nianticの求人から推測する『Pokémon GO(ポケモンGO)』のサーバ構成 - Qiita
    raimon49
    raimon49 2016/09/22
    1ワールド構成の考察。
  • Webシステムにおけるデータベース接続アーキテクチャ概論 - ゆううきブログ

    先月投稿した2015年Webサーバアーキテクチャ序論では、Webサーバアーキテクチャを学ぶ道のりと代表的な実装モデルの概要を紹介しました。 今回は、前回同様、主に新卒Webエンジニア向けに、Webアプリケーションサーバとデータベースサーバ間の接続管理モデルと運用事情について紹介します。 データベース接続の永続化やコネクションプーリングとは何なのか、なぜ必要なのかといったことが主な話題です。 背景 データベース接続の永続化とはなにか データベース接続のオーバヘッド データベース接続の永続化手法 コネクションプーリングとはなにか コネクションプーリング: ドライバ型 コネクションプーリング: プロキシ型 コネクションプーリング全体について PostgreSQLMySQL 参考資料 まとめ 背景 2015年Webサーバアーキテクチャ序論では、Webサーバアーキテクチャの話とWebアプリケーショ

    Webシステムにおけるデータベース接続アーキテクチャ概論 - ゆううきブログ
    raimon49
    raimon49 2015/06/30
    C/S型のRDBMSは、元々小数のクライアントとステートフルな通信を行うために設計されてきたが故の、DBコネクション永続化の必要性と分類について。
  • 次世代モバイル向けデータベースRealmを使ってみる-Realm Tech Talkに行ってみた!-

    ■ Why? セッションではまず Realm とは何か、そしてなぜ作ったのか、というところから始まった。JP氏曰く「サーバサイドのデータベースは様々なイノベーションがあったにも関わらず、モバイルデバイス環境では2000年に登場したSQLite以降何もない」とのこと。そのSQLiteを置き換えるものとして作ったのだと言う。 Realm自体は既存のデータベースエンジンを単にバインディングしたものではなく、ゼロベースで作り出された独自のエンジンを内部に持っている。RealmはそのエンジンをObjective-CやSwiftAndroid Java から容易に使用できるようにラッパーしたもの。JP氏によるとバインディング部分のほぼ全てはオープンソースで公開されておりエンジン部分も将来において公開する準備があるとのこと。 ■ ベンチマーク また、競合となるO/Rマッパーとのベンチマーク比較も公開さ

    次世代モバイル向けデータベースRealmを使ってみる-Realm Tech Talkに行ってみた!-
    raimon49
    raimon49 2015/03/26
    CoreaDataよりも速い。
  • SQLiteOpenHelper  |  API reference  |  Android Developers

    Build AI experiences Build AI-powered Android apps with Gemini APIs and more. Get started Start by creating your first app. Go deeper with our training courses or explore app development on your own.

    SQLiteOpenHelper  |  API reference  |  Android Developers
  • http://dbdeploy.com/

  • マイグレーションツール:dbdeployの使い方

    dbdeployはオープンソースで提供されているマイグレーションツール。 http://code.google.com/p/dbdeploy/ にホストされており、ライセンスはLGPLです。 doctrineやrubyのmigrationとは違ってコードではなく、SQL文で変更情報やロールバック情報を記述する点が特徴です。既にSQL文が書かれたファイルで変更情報を管理している場合は導入が比較的容易と言えます。 インストールこれは簡単です。プロジェクトのページからダウンロードして適当な場所に解凍します。また、今回はApache Ant経由で実行しますので、導入していない場合は先にインストールしておいてください。wget http://dbdeploy.googlecode.com/files/dbdeploy-dist-3.0M3-distribution.zip unzip dbdeplo

    マイグレーションツール:dbdeployの使い方
    raimon49
    raimon49 2013/07/15
    ロールフォワードとロールバックをセットで記述。
  • 銀行SEの現在 - novtan別館

    もう2007年といえば5年前のことになってしまう。時のたつのは早いものです。 当時の増田のエントリが何故か今頃盛り上がっていて、その結果それに言及した僕のエントリも盛り上がっているようなのですが、5年前の状況というのはさすがに古かろう、ということでちょっとアップデートしてみたいと思います。 参考: IT業界で無事にいたいなら銀行に関わるな 銀行SE…かわいそうです… - novtan別館 ここ最近の銀行システムの大きなトピックというのは三菱統合UFJ銀行のDAY2(システム完全統合)と、みずほ銀行の3.11後の大障害とそれに伴う銀行の統合・システム刷新でしょう。 特に後者は銀行システムの停止が社会に与える影響が如何に大きいものかということを体現してくれました。 なんどかリークもされているからここだけの話をすると、みずほ銀行はいわゆる第三次オンラインをちゃんとやらなかった建て増しシステムであ

    銀行SEの現在 - novtan別館
  • [速報] オラクル、「Oracle Cloud」正式サービス開始。PaaSとしてOracleデータベースとJavaをクラウドで提供

    Oracle Cloudは、同社のERP(統合業務アプリケーション)であるFusion Applicationsのアプリケーションを提供すると同時に、OracleデータベースとJava実行環境をPaaS型クラウドで提供します。 日時間の今日午前5時から同社CEOラリー・エリソン氏が行った発表会の、PaaSについてのハイライトを紹介します。 オラクルのPaaSを提供開始 米オラクルCEO ラリー・エリソン氏。 7年前に、私たちはすべてを新しく作り直すという決定をし、長い時間と数千人の人員と大きなコストとかけてクラウドへと対応させてきた。 そして私たちは、クラウドアプリケーションプロバイダになった。 100以上の業務アプリケーションをクラウドで提供し、FacebookやTwitterGoogle+ などのソーシャルネットワークにも対応する。 そして、業務アプリケーションのための基盤も提供す

    [速報] オラクル、「Oracle Cloud」正式サービス開始。PaaSとしてOracleデータベースとJavaをクラウドで提供
    raimon49
    raimon49 2012/06/07
    エンタープライズ向け全部入りって感じだ。
  • AndroidアプリにおけるDBファイルの正しい使い方

    はじめに Androidアプリケーションを作成する上でSQLiteを使用してデータベースを扱うことは多々あります。データの永続化や検索といった処理を容易に実装することができるので、多くのアプリケーションで使用されています。しかし、AndroidにはSQLiteを使用するための方法が以下のようにいくつか用意され、それぞれファイル作成時のパーミッションの挙動が異なっています。 SQLiteDatabase#openOrCreateDatabaseを使用して作成する Context#openOrCreateDatabaseを使用して作成する SQLiteOpenHelperクラスを使用して作成する もし、開発者がこれら方法の挙動を十分に理解していない場合、知らずのうちに脆弱性を作り込んでしまいます。 実際に、いくつかのアプリケーションではSQLiteDatabase#openOrCreateDa

    AndroidアプリにおけるDBファイルの正しい使い方
    raimon49
    raimon49 2012/04/01
    >Context#openOrCreateDatabaseを使用し、MODE_PRIVATEを指定してDBファイルを作成する
  • 1