タグ

javaとprogrammingに関するmanabouのブックマーク (48)

  • 技術の中心でJavaを叫ぶ -2017年のJavaエンジニアが追うべきテーマと要素技術- - Qiita

    かつてJava技術の中心だった 私はSIerでシステム開発のアーキテクトやPMを担当しています。SIではまだまだJavaが主流ですが、文法を理解してコーディングできるだけでは活躍できない時代がすでにきていることを実感します。 私の上司が「技術の渦」という独特の表現を使って説明してくれたのですが、2000年から2006年ぐらいまではJavaを書くということは、いろいろな最新技術の実装を学べる時代でした。アプリケーションサーバー、XML、SOAP、MQ、CORBA、マルチスレッドなど、現代の評価としては芳しくないものも多いですが、そういった技術的チャレンジが多かったため、Javaエンジニアはあえて外に出ることもなく、ITの主要技術を学ぶことができていました。 時代の変化とそれへの追随 ただ、Web2.0やiPhone/Android登場以降、技術の渦はフロントエンドを経てアプリへと移ってきま

    技術の中心でJavaを叫ぶ -2017年のJavaエンジニアが追うべきテーマと要素技術- - Qiita
  • JVMはそんなに重くない | POSTD

    Clojureに反対する大きな理由がJVMです。この役立たずは重いですからね。 これは、数週間前に ZA TechSlackで見た投稿です。休暇中にClojureの話題を何件か見たのですが、投稿者はJVMについても繰り返し言及していました。 私はこの投稿について Slack上で少しつぶやいていました が、もっと広く理解され議論されるように、稿を書くことを決めました。 背景 以前は、私もJVMは重いと思っていました。2000年代の初めにJVMとPHPと比べていた頃の話です。当時は、.NETやColdFusionなど、別の重い製品が他にもありました。また、PerlPythonという軽めの製品もありましたが、私はWindowsを使っていたのでActivePerlやActivePythonはやはり少し重めでした。 私が初めてJVMに対する“恐れ”を克服したのは、小規模な製品アプリを、JRu

    JVMはそんなに重くない | POSTD
  • Spring 5に備えるリアクティブプログラミング入門

    XRミーティング 2022/04/20【AR/CR/MR/SR/VR】(https://osaka-driven-dev.connpass.com/event/244101/)登壇資料。 XRコンテンツ開発を容易にするための標準規格について調べてみた話。OpenVRを使いたいときにそれ自体のSDKがあるのかわからなくて基的なことを調査した。

    Spring 5に備えるリアクティブプログラミング入門
  • 実行時におけるJVMバイトコード最適化手法

    補足: http://techlog.mvrck.co.jp/entry/todesking-runtime-jvm-bytecode-optimization/

    実行時におけるJVMバイトコード最適化手法
  • 最新Java情報局

    JavaOne 2017レポート、要注目のProject JigsawとVector APIをコードで理解 JavaOne 2017レポートの2回目は、筆者が聴講したセッションのうち興味深かったものを2つレポートします。Java SE 9の注目機能である「Project Jigsaw」と、今後の「Project Panama」で提供される「Vector API」です。 2017.11.02 JavaOne 2017レポート、ここ数年で最も充実していたキーノート 10月1日から5日間、世界最大のJava開発者会議「JavaOne」が開催されました。キーノートや500近くのセッションなどを通じて、Javaの最新情報に触れることのできる5日間となりました。このJavaOneの模様を2回にわたってお伝えします。今回はキーノートセッションを中心にレポートします。 2017.10.19 Java SE

  • 最近のプログラミング言語にgetter/setterがないのはなぜ?

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基的にいかなるプラットフォームでも作動します。 Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

    最近のプログラミング言語にgetter/setterがないのはなぜ?
  • デザインパターンを読み解く

    ポリモーフィズム(サブクラスによる切り替え、抽象化) ここに分類されるのは、オブジェクト指向の第3原則、ポリモーフィズムを使用したパターンです。ポリモーフィズムを使用すると、動的に使用するクラスを切り替えることができます。<参照> 他に分類されているものでも、ポリモーフィズムが重要な位置を占めているものもありますが、ここではそれしか使われていないものを扱います。 ただデザインパターン全体を通して強調されているのは、インターフェースでプログラミングするということです。実装への依存をなくし、そうすることによって設計の骨組みを明らかにするのです。 Template 次のようなメソッドがあった場合に、処理Bのところを条件によって変えたい場合があるとします。 class Hogehoge { void doit() { ... 処理A ... ... 処理B ... ... 処理C ... } }

  • DDD の Java EE 実装サンプル - Cargo Tracker を読み解く - Qiita

    Cargo Tracker とは エリック・エヴァンスのドメイン駆動設計 で紹介されている様々なパターンを実際に使用して、有志が作成したサンプル Web アプリのこと。 DDD Sample Application - Introduction オリジナルは Spring Framework を使用している。 一方、この実装を Java EE 7 で置き換えたサンプルが公開されている。 Cargo Tracker この実装を読みながら、 DDD で紹介されている以下のパターンがどのように実装されているのかを確かめてみる。 レイヤ化アーキテクチャ エンティティ 値オブジェクト 集約 リポジトリ サンプルアプリを動かす ソースのダウンロード このページ の一番下に zip のリンクがあるので、そこからダウンロードする。 環境準備 以下のソフトウェアをインストールする。 JDK 7 以上 Mav

    DDD の Java EE 実装サンプル - Cargo Tracker を読み解く - Qiita
  • Go 実践4日間 | POSTD

    私の仕事の一つに、簡単なバイナリファイルフォーマットのリバースエンジニアリングがあります。”簡単な”というのは、通常は他の人たちが実際の作業全てを行うからです。私はただ、1つか2つの特別なフラグの意味を理解し、できるだけ多くの発見をして自分のブログに公開するだけです。 バイナリファイルの心臓部をのぞくときは、バイナリエディタを利用しています。ただ、 私の気に入っているSynalyze It! でさえ、使うのは手間がかかります。ファイルフォーマットを解明しようとする時、それぞれのバイトの持つ意味を私自身の仮定に基づいてマークアップしたいのですが、今のところ、そのようなことができるバイナリエディタはありません。現状では、バイナリファイルのバイナリ情報を紙に印刷して、去年のテクノロジー関連のカンファレンスでもらったボールペンでマークアップするのが私のワークフローです。 木々を守り、カンファレンス

    Go 実践4日間 | POSTD
  • Effective Scala

    Effective Scala Marius Eriksen, Twitter Inc. marius@twitter.com (@marius) [translated by Yuta Okamoto (@okapies) and Satoshi Kobayashi (@scova0731)] Table of Contents 序章 書式: ホワイトスペース, 命名, インポート, 中カッコ, パターンマッチ, コメント 型とジェネリクス: 戻り型アノテーション, 変位, 型エイリアス, 暗黙 コレクション: 階層, 使う, スタイル, 性能, Java コレクション 並行性: Future, コレクション 制御構造: 再帰, Return, forループと内包, require と assert 関数型プログラミング: 代数的データ型としてのケースクラス, Option, パターンマ

    Effective Scala
  • JJUG CCC 2014 Fall で「Java で1から10まで書いた話」を発表してきました - tokuhirom's blog

    tokuhirom's Blog Search JJUG CCC 2014 Fall で「Java で1から10まで書いた話」を発表してきました Javaで1から10まで書いた話(sanitized) from Tokuhiro Matsuno コード書いた話が少ない中でわりと異色な感じでしたが、思ったより反応もあってよかったです。 Created: 2014-11-28T08:09:37 Updated: 2014-11-28T08:09:37

  • オブジェクトはストックで、関数はフロー - きしだのHatena

    的にオブジェクトと関数はおんなじもので、Javaのラムダ式では記述は関数だけど扱いはオブジェクトになってたりします。逆に、関数でオブジェクトを実現することもできます。 なので、オブジェクトと関数が、モノとしてどう違うかっていう話にはあまり意味がなくて、問題は表現としてどう違うかってことになると思います。 表現として、オブジェクトはフィールドとかプロパティとかで状態をもって、その状態をもとにいろいろ動いて、状態を変えます。 関数は引数をとって、その引数をもとにいろいろ動いて、戻り値を返します。 オブジェクトは状態が大事、関数はデータの流れが大事、って感じになります。 アプリケーションの中では、ユーザーインタフェースとデータ構造・ストレージは状態が大事です。処理に関してはデータの流れが大事です。 ここで、ユーザーインタフェースやデータ構造はプラットフォームごとに一揃えあれば充分です。ストレ

    オブジェクトはストックで、関数はフロー - きしだのHatena
  • コードの最低品質を底上げする為のルール的なアレ。 - 設計と実装の狭間で。

    何となくまぁ、話題になったので、とりあえず書いておくます。 ルールなのだけど、常に例外的状況は存在しるます。 その例外的状況を適切に把握しているのであれば、どの様にコード書いても良いです。 自分の中で一定のルールを持ってコーディングすると、 そもそも自分がミスをし易いパターンを把握し易いのと、 自分のコードの最低品質がある程度担保されるので、良いかな…と思うマス。 要は、みんな俺様ルールを作って、 それをある程度意識しながらコーディングすれば良いと思うよ、って話。 考え方の基。 自分の能力が最も発揮されない状況を想定する事。 疲れている、やる気ない、気になる事が他にある、等々… 頭を使う時間は計測するのが難しいが、タイピングしている時間は、ある程度簡単に計測可能である事。 「考えている時間」は、貴重なリソースだけど、見積もりが難しいのだよねぇ…。すごく。 この位の時間考えれば答えが出る筈

    コードの最低品質を底上げする為のルール的なアレ。 - 設計と実装の狭間で。
  • Python for the Busy Java Developer

    Are you a seasoned Java developer that wishes to learn Python? Perhaps you’ve just joined a project where a chunk of system integration code is written in Python. Or perhaps you need to implement a report generation module in the next sprint and your colleague mentioned that Python would be the perfect tool for the job. In any case, are you in a situation where you have to pick up the Python progr

    Python for the Busy Java Developer
  • SE的声かけ変換表 - Qiita

    効果的にコミュニケーションする 会話は相手と共感するところから始めます。言いたいことは同じでも、言い方を工夫することで相手とより良いコミュニケーションをとることができます。 うまく物事が伝わらないと思ったら、言い方を変えてみましょう。 だめだと分かりながらついついやってしまった自分の過去を反省しつつ、参考にしていただければと思い公開します。

    SE的声かけ変換表 - Qiita
  • LL から Java に移行した人がはまりがちなこと - tokuhirom's blog

    こんにちは。Java 初心者です。 Java 初心者、得に LL から Java に来た人にありがちな問題について社内向けに書いたものをオープンアンドシェアさせていただきます。 前提として、我々は Java 8 でガンガン攻めているということをご承知おきください。 また、自分がこの数ヶ月で「うわー。こうしとくべきだったのかー」と気づいたやつをドヤ顔で語っているということにもご注意ください。 【追記】 対象は中規模 B2C の場合です(中規模というのは facebook より小さいという程度の意味です) 例外を握りつぶさないようにしよう Eclipse が生成する以下のようなコードをそのまま残しているケース。 これは言うまでもなく良くないですね。デバッグが困難になります。 try { } catch (IOException e) { e.printStackTrace(); } Perl

  • 型安全性とは何か | POSTD

    以前書いた(C言語についての) メモリ安全性について定義した記事 について、型安全性について説明する記事も投稿してほしいというコメントがありました。型安全性についてはかなりよく知られてきていると思いますが、ズバリこうだと簡単に定義できるほどにはまだ理解が浸透していません。特に誰かが”Javaは型安全な言語だ”と言った場合、これは厳密に何を意味するのでしょう。全ての型安全な言語はある意味”同じ”と言えるでしょうか。ある特定の言語について、そして一般的な意味で、あなたを悩ませる型安全性とは何でしょうか。 実際のところ、型安全性が何を意味するのかは言語の型システムの定義によります。最もシンプルなケースでは、型安全性はプログラムの動作が正しく定義されるように保証します。もっと一般的な話をすると(この記事ではそのあたりをカバーするつもりですが)、言語の型システムはそのプログラムの正確さと安全性を推論

    型安全性とは何か | POSTD
  • intro-to-aop

    複雑なアプリケーションではロギング、 トレーシング 、メトリクスといったサポートの機能により、関数にすぐ負荷がかかってしまいます。これらのコードブロックはあらゆるコードベース上でそれぞれ少し変形して繰り返し使用されるのですが、これを 横断的関心事(cross-cutting concerns) と言います。 アスペクト指向プログラミング (AOP)は、アスペクトと呼ばれるモジュール内にコードブロックを引き入れて、 関心の分離 (separation of concerns)を手助けします。 AOPの実装 Phoneクラス ^(1) 不自然な例だというのは承知の上で、 dial メソッド1つを使って簡単なPhoneクラスを構築してみました。 function Phone() {}; Phone.prototype.dial = function (friend) { var start =

    intro-to-aop
  • すべてのプログラマが読むべき記事10選 | POSTD

    Javaプログラマやソフトウェア開発者として、私は「プログラマが知っておくべき…」というタイトルが付く記事から、多くのことを学びました。そういった記事は、特定のトピックに関する有益かつ詳細な情報を数多く与えてくれましたが、探し出すのが非常に困難でもあったのです。知識を探求する中でとても役に立つ記事を見つけたら、参考として何度も読み返せるようにブックマークしてきました。こういった記事を読むことは、どのプログラマにとっても有益になると思うので、私が集めた「 すべてのプログラマが知っておくべきこと 」を皆さんと共有する為にこれを書きました。 ここで紹介する記事は私が個人的にブックマークしたものです。「メモリ」、「Unicode」、「浮動小数点演算」、「ネットワーキング」、「オブジェクト指向設計」、「時刻」、「URLエンコード」、「文字列」などといった代表的なトピックについて載っています。このリス

    すべてのプログラマが読むべき記事10選 | POSTD
  • Java使いの必携書「Effective Java 第2版」を,通読・マスター・事後参照するためのリンク集 - 主に言語とシステム開発に関して

    名著「Effective Java (第2版)」は,Javaプログラマの必読書エンジニアの社内勉強会や,コミュニティの読書会などの場で,しばしば教材として使われる。 入門書でJavaの基礎を学び, GofのデザインパターンでJava使いとしての土台を固めたら, 次はこのしかない。中級者としての素養を会得するのに,最適また必須の一冊。 Effective Javaの目次PDFファイルはこちらにある。 Effective Javaは,Javaに関する技術的な文書を執筆する際に,参考資料としてしばしば引用される。(※例) Web上に簡易インデックスのようなものがあれば,いろんな説明もしやすくなる。 下記は,このを読んだり,あとから参考資料として指摘したりするために役立つリンク集。 Effective Java 第2版 を読む前に: 著者はJoshua Bloch(ジョシュア・ブロック)と

    Java使いの必携書「Effective Java 第2版」を,通読・マスター・事後参照するためのリンク集 - 主に言語とシステム開発に関して