[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

javaとprogrammingに関するshin1x1のブックマーク (13)

  • 軽い気持ちでLinkedListを使ったら休出する羽目になった話 - Qiita

    ざっくり言うと リスト構造のデータに対してランダムアクセスはしちゃだめだぞ。お兄さんとの約束だ! 発端 数年前に他部署の支援で作ったJavaのシステムに、ちょっとデカめのデータを突っ込んだらありえないほど遅いので助けてくれ、と連絡が入った。 まぁクエリとかインデックスをちょっと見れば直るっしょ・・・と鼻をほじりながら支援に向かった。 処理内容 遅い部分の処理は以下のようなものであった。 処理対象のデータをListで受け取る。 それをforループで1件ずつ前処理する。 処理結果をオブジェクトに格納し、ORマッパーでDBにINSERTする。 これだけ? そう、これだけだ。並列処理なんて高級なことはもちろんやってない。 インフラ調査 処理中のサーバのようすを調査する。今回のインフラは典型的な3層3サーバ構成。 WEBサーバはなにもかもが余裕。 APサーバではCPUを1つ使い切っている。 14コア

    軽い気持ちでLinkedListを使ったら休出する羽目になった話 - Qiita
  • インタフェースと型クラス、どちらでもできること・どちらかでしかできないこと - Qiita

    最近にわかに 型クラス が盛り上がっているようです。しかし、型クラスはインタフェースに似たものだという意見もあればまったく別のものだという意見もあり、混乱する人が多いのではないかと思います。 そのような混乱を招く理由は、 インタフェースと型クラスはどちらも抽象化を実現するためのもの であり、 インタフェースでも型クラスでもできること インタフェースでしかできないこと 型クラスでしかできないこと があるからです。 1 に着目した人は似ていると語り、 2 や 3 に着目した人はまったく違うものだと言います。 投稿では、 Java / Kotlin のインタフェース、 Haskell の型クラス、 Swift のプロトコルを比較し、上記の 3 点を整理します。 Swift のプロトコルを加えるのは、 Swift のプロトコルがインタフェースと型クラスの両方の性質を備えたものなので、比較対象とし

    インタフェースと型クラス、どちらでもできること・どちらかでしかできないこと - Qiita
  • ふつうのJavaコーディング #ccc_e1

    JJUG CCC 2017 Spring E1 2017-05-20 10:00-10:45

    ふつうのJavaコーディング #ccc_e1
    shin1x1
    shin1x1 2017/05/21
    Java に限らず参考になる
  • Spring 5に備えるリアクティブプログラミング入門

    2. 2Copyright©2016 NTT corp. All Rights Reserved. • 名前:岩塚 卓弥 • 所属:NTT ソフトウェアイノベーションセンタ • NTTの研究所のうちソフトウェアを専門に扱う • 自部署ではソフトウェア工学を研究 • Springベースのグループ共通フレームワークの整備を担当 • Spring関連: • Spring I/O, SpringOne それぞれ2015,2016に参加 • 改訂新版 Spring入門,Spring徹底入門 レビュアー • JSUG幹事 Introduction 3. 3Copyright©2016 NTT corp. All Rights Reserved. • 名前:堅田 淳也 • 所属:NTT ソフトウェアイノベーションセンタ • NTTの研究所のうちソフトウェアを専門に扱う • 自部署ではソフトウェア工学を研

    Spring 5に備えるリアクティブプログラミング入門
  • 作って理解するDIコンテナ - きしだのHatena

    DIコンテナ使ってるけど、アノテーションってなんなの!って聞かれて、作ってみたらわかるよと答えてみたので、自分でも作ってみました。 よくわかった。 「DIコンテナ使うと何がいいの?」ということも、作ってみるとわかります。あと「DIって何がいいの?」に関しては、「DIはちょっとコードを書くのが楽になるだけで、それだけあっても仕方ない、大事なのはコンテナ」と答えるようにしてますが、コード比率からもそれがよくわかります。 続編としてWebフレームワークも作っているので参考まで。 作って理解するWebフレームワーク - きしだのHatena まずはコンテナを作る とりあえず1ソースの状態で。 こんな感じで、管理する型を登録できるようにします。 static Map<String, Class> types = new HashMap<>(); static void register(String

    作って理解するDIコンテナ - きしだのHatena
  • Explore, Learn, and Master Industry-Standard Patterns

    Software design patterns, principles, and snippetsThe best designers will use many design patterns that dovetail and intertwine to produce a greater whole --Erich Gamma Get the book 📖Study the design patterns 💡 IntroductionDesign patterns are the best formalized practices a programmer can use to solve common problems when designing an application or system. Design patterns can speed up the devel

  • Javaのプログラムはどうやって動いているの? JVM編

    2015.04.24 JJUGナイトセミナ Javaのプログラムはどうやって動いているの? JVM編Read less

    Javaのプログラムはどうやって動いているの? JVM編
  • 2013年 最も需要のあった開発者のスキル トップ10 | readwrite.jp

    あなたがJava開発者なら、2013年はあなたにとってさぞや仕事のチャンスに恵まれた一年だったことだろう。 少なくともStack Overflowの統計によればそうだと推測できる。何千もの会社が毎年特定の開発スキルを持った求職者を見つけるためにこのサイトの「Careers 2.0」検索機能を利用している。そして2013年は、Javaが最も頻繁に検索されたキーワードだったのだ。 関連記事: 2013年に米国で最も需要の高かったジョブスキルとは? Stack Overflowは、14,000件もの全検索履歴から最も多く使われたキーワードを計測し、そこから最も需要のあった開発者スキルを割り出してそのトップ10データを提供してくれた。 Stack OverflowでCareers 2.0のプロダクト・マネージャーを務めるウィル・コールによれば、このJavaの人気は雇用者のモバイルの開発に対する関心

    2013年 最も需要のあった開発者のスキル トップ10 | readwrite.jp
    shin1x1
    shin1x1 2014/01/13
    Java / PHP / C# の順。PHP 以下は、そんなに差が無いけど。Ruby じゃなくて Rails なのか。
  • 他の言語を学んで自由になろう

    1 kazu@iij.ad.jp 2 3 Paul Graham 4 Andrew Hunt and David Thomas 5 6 Java 7 Java Java Java 3 8 Haskell Scala Scala 9 10 Java Java Dean Wampler AWT ActionListener public interface ActionListener extends EventListener { public void actionPerformed(ActionEvent e); } 11 AWT ActionListener import java.awt.*; import java.awt.event.*; class ButtonApp { private final Button button = new Button(); public Bu

  • Pythonのwith文とJava7のtry-with-resourceとC#のusingの比較 - 西尾泰和のはてなダイアリー

    http://nhiro.org/learn_language/with_statement.html Java7は名前の通りtryと抱き合わせになっている。C#とPythonは分離されている。なのでJava7でC#やPythonと同じ挙動をしたければ必要なくても空のfinallyを書くことになる。(追記: finallyやexceptを伴わないtryもOKでした。thanks id:nowokay) 体が正常終了または例外を投げて異常終了した場合のどちらでも呼ばれる「後片付けメソッド」はC#だとDispose、Java7だとclose、 Pythonだと__exit__。しかしPython以外は引数を取らない。体が正常に終了したのかどうかはどうやって知るんだろうか。知る必要はないという判断なんだろうか。追記: Pythonがどんな引数を取るのか他の言語の人には想像がつきにくいらしいの

    Pythonのwith文とJava7のtry-with-resourceとC#のusingの比較 - 西尾泰和のはてなダイアリー
    shin1x1
    shin1x1 2012/07/14
    複数言語で比較すると分かりやすい / C# はじめて触った時、using は面白いと思った。
  • Javaの例外処理で知らないと損する7つのテクニック

    【5】読み書きでfinallyを使う際の注意点 ファイルデータを読み書きをする処理では、入力ストリーム「in」と出力ストリーム「out」を用意して、データを読み込みながら書き込みをするといったことをしたいときがあります。このとき、finallyで次のように2つのリソースについてcloseするようなことをしがちなので、気を付けましょう。 この場合、せっかくfinallyでinとoutの両方のリソースを解放しようとしていますが、「in.close();」でエラーが発生すると、「out.close();」が実行されないので、out関係のリソースについては解放されずにメモリリークなどの原因となります。 対応方法は「変数へ全部のデータを一時的に保存してから、書き込みをする」とか、「リソースを確保した順と逆順に確実にfinallyでリソースを解放する」ということになります。 変数へ全部のデータを一時的

    Javaの例外処理で知らないと損する7つのテクニック
    shin1x1
    shin1x1 2011/12/24
    これの何が問題なんだろ > 「あるメソッドでjava.sql.SQLExceptionを投げるように設計すると、データベースを使っていることが分かってしまう→実装の詳細が分かってしまう」
  • Javaプロジェクト規約 - コーディング規約の一例

    前提条件 コーディング規約をどこまで細かく規定するか、については、常に論争となる点です。そこで、まず前提条件を明確化し、不要な論争を避け、有意義な議論ができる土台を定義します。 前提とするソフトウェア開発組織 理想的なソフトウェア開発組織は、同じ開発文化を共有する開発者チームが継続していろいろな仕事をこなす形態です。 しかし、ソフトウェア開発組織を継続して保有(常備)するためには、定常的にコストがかかります。そのため、中にはソフトウェア開発組織の質よりも常備コスト削減を優先し、開発案件が発生したときに臨時でソフトウェア開発組織を編成し、案件終了時にソフトウェア開発組織を解散する、というやり方を取る会社があります。 継続するソフトウェア開発組織であれば、ソフトウェア開発能力はメンバー間の暗黙知による共有により十分期待できるのですが、臨時編成するソフトウェア開発組織では、能力はまちまち、暗黙知

  • 不完全にしてかなり言葉足らずな比較プログラミング言語学 - 西尾泰和のはてなダイアリー

    プログラミング言語は人が作ったもの。人は誤るもの。なので完璧なプログラミング言語は存在しない。 「人は誤るもの、しかし誤りに固執するのは馬鹿の所業だ。」(キケロ) プログラミング言語も、間違った設計をして、馬鹿でない人がそれを修正することの繰り返しで発展してきた。 というわけで言語間での設計判断のい違いとか失敗した設計とかを収集中。一部抜粋して講義資料に入れるつもりなので他の事例をご存知でしたらぜひ情報をいただけるとありがたいです。 if(x = 0) C言語では代入が式であるためif(x == 0)のつもりでif(x = 0)と書いてしまい、常に偽になってしまう。 x = 0の値はint、条件式はboolでないといけないので型エラーだよ派: Java x = 0は式ではないので条件式に入れたら構文エラーだよ派: Python 条件式にx = 0をいれたらx == 0と解釈するよ派: H

    不完全にしてかなり言葉足らずな比較プログラミング言語学 - 西尾泰和のはてなダイアリー
  • 1