You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
前置き 先日このようなツイートをしたのですが、予想以上の反響を頂いて驚きました。 知的好奇心・エンジニアとしての漠然とした成長の観点から、「JavaよりKotlinやりたい」と思っていたが、現在自分たちが抱えているプロダクトの課題を俯瞰すると、「重大な課題は、プログラミング言語を変えて解決するものではない」という結論に至った。— つくし 𝕄𝕚𝕤𝕒𝕜𝕚 𝕄𝕒𝕜𝕚𝕟𝕠 (@T5uku5hi) 2018年9月12日 ツイートを読み返し、「この書きぶりだと様々な文脈を憶測できてしまうな」と思い、140字では書ききれなかった文脈の部分を本記事で書き起こすことにしました。 結論 知的好奇心・エンジニアとしての漠然とした成長の観点から、「プロダクトの言語をJavaからKotlinに変更したい」と思っていましたが、 「事実・課題・解決策」に対する認知能力の向上 言語仕様をトレードオ
Clean Architecture 達人に学ぶソフトウェアの構造と設計を読んでます。モデリングに関しては成分薄めですが、よい本だと思います。はい。 Clean Architecture 達人に学ぶソフトウェアの構造と設計 作者: Robert C.Martin,角征典,高木正弘出版社/メーカー: KADOKAWA発売日: 2018/07/27メディア: 単行本この商品を含むブログを見る 本書の大筋から少し逸れるが、「5章 オブジェクト指向プログラミング」の「カプセル化」が面白かったので、これを切り口にモデリングについて考えてみる。 OO言語のカプセル化はすでに弱体化している オブジェクト指向の三大要素の一つである、カプセル化について、以下のようなことが書いてあります。 「カプセル化」がOOの定義の一部となっているのは、OO言語がデータと関数のカプセル化を簡単かつ効果的なものにしているから
ざっくり言うと リスト構造のデータに対してランダムアクセスはしちゃだめだぞ。お兄さんとの約束だ! 発端 数年前に他部署の支援で作ったJavaのシステムに、ちょっとデカめのデータを突っ込んだらありえないほど遅いので助けてくれ、と連絡が入った。 まぁクエリとかインデックスをちょっと見れば直るっしょ・・・と鼻をほじりながら支援に向かった。 処理内容 遅い部分の処理は以下のようなものであった。 処理対象のデータをListで受け取る。 それをforループで1件ずつ前処理する。 処理結果をオブジェクトに格納し、ORマッパーでDBにINSERTする。 これだけ? そう、これだけだ。並列処理なんて高級なことはもちろんやってない。 インフラ調査 処理中のサーバのようすを調査する。今回のインフラは典型的な3層3サーバ構成。 WEBサーバはなにもかもが余裕。 APサーバではCPUを1つ使い切っている。 14コア
はじめに ゼミで自分の気になる分野の研究を発表する機会がありました。 色々調べても面白いと思える論文がなく、唯一面白いと思えたのがアスペクト指向でした。 とても古い技術なので既に知っている人や興味のない人は多いと思いますが、面白いと思ったので紹介したいと思います。 この記事を読んで少しでもアスペクト指向に興味を持ってくれる人がいたら嬉しいです。 ※アスペクト指向ではオブジェクト指向の時のような専門用語?が多くあります。 その用語を説明するには他の用語と密接に関わりがあったりするので、この用語はなんだ?ってことが多くあると思います。 ですが、そんな言葉があるんだ程度に流してもらっていいと思います。 アスペクト指向とは? オブジェクト指向の次に来る技術で、ポストオブジェクト指向であると紹介される だがそれは違くて、アスペクト指向はオブジェクト指向の限界を補い、さらに発展させるための技術である
Jump to: Navigation Redirecting…http://fernandocejas.com/blog/engineering/2014-08-03-aspect-oriented-programming-in-android/ Templates (for web app): MwˆU @40ΆU 0G�ΆU �Pq͆U ���ΆU ;̆U �ޒΆU *�͆U ���͆U
コードレビューをするときには、フォーマットや慣例的な書き方とか、名前ちゃんとした方が良いよとか、処理にも名前をつけようねとか、そういうことは伝えるんだけど。それよりももっと気にするのは、「ここで見つけておかなきゃいけない」ってことだなぁってふと思ったのだった。 ここで見つけておかなきゃいけないこと? 仕様に従ってるかどうかとかは、動かしてみれば分かるし、PDM(Product Manager)が受け入れテストとして見てくれたり、QAと呼ばれるテストのチームがやってくれたりもする。ので、そこまで気にしてない。 気にするのは、エンジニアがソースを読むことでしか見つけづらいバグ。かな。特定の条件が重なったときにだけ発生するようなやつとかそういうの。10msのタイミングで発生するとか、12/31の0時にだけ発生するとか、エラーが発生したときにだけ発現するとか、今は大丈夫だけど2年後ぐらいに発火する
JavaもJava8でstream処理やラムダ、Optionalの型などが追加されモダンなプログラミングが幾つか書けるような機構が適応されてきました。 しかし、Javaで書くプログラマーはモダンな実装する文化は浸透しているのでしょうか? 今回はモダンな実装の仕方として、「Immutable Programming」と「nullの扱いについて」について書いてみようと思います。 前提 Webアプリケーションサーバを実装する時を想定しています。 もちろんネイティブの実装のときにも適応される部分が多いです。 Java8の書き方で説明します。 Immutable Programming(イミュータブルプログラミング)とは 凄く簡単に説明すると、変数に再代入しないということです。 全てfinalを付けてプログラミングするようなものですね。 まだ、やったことがない人はそんなことが出来るのか?ということを
@BladeCoder が書いた Kotlinの隠れたコストの調査 という一連のブログ記事は、ある Kotlin 構文にどのように隠れたコストがあるのかを説明しました。 実際の隠れたコストは、普通、不可視オブジェクトのインスタンス化やプリミティブ値のボクシング/アンボクシングに起因します。これらのコストは、Kotlinコンパイラがどのように上記の構文をJVMのバイトコードに変換するのかを理解していない開発者には特に見えづらいのです。 しかし、何らかの数字を示さずに隠れたコストの話をするだけでは、実際にどのくらいコストのことを心配すべきなのかという疑問が湧いてきます。コードベースのいたるところで、これらのコストを考慮すべきでしょうか?あるKotlin構文は単に全面的に禁止されるべきでしょうか?あるいは、最も範囲の狭い内部ループの中でだけ考慮されるべきでしょうか? さらに挑発的な言い方をすれば
Kotlin が Android の公式言語になることが Goole I/O 2017 で発表されました。 Java プログラマが Kotlin を始めることがこれから多くなると思うので、 Kotlin をスムーズに始められるように次の 3 点についてまとめます。 Javaとほぼ同じところ 新しい考え方が必要でつまづきがちなところ Kotlinならではの便利なこと すべてを一つの投稿にすると長くなるので連載形式とし、本投稿では最初の「Javaと同じところ」について説明します。 Kotlinって何? 本題の前に、 Kotlin について簡単に説明します。 まずは↓の Android のコードを見て下さい。これは Android Studio が生成するテンプレートの Kotlin 版です。 Android アプリ開発者であれば、初見でも概ね何をしているのかわかると思います。 class Ma
Kotlin が Android の公式言語になることが Goole I/O 2017 で発表されました。これから Kotlin を始める Java プログラマが多くなると思うので、本投稿では Java プログラマが Kotlin でつまづきがちなところについて説明します。 本投稿は単独で理解できるように書いていますが、↓の連載の第二弾です。 Kotlin の基礎的な構文は理解していることを前提としているので、 Kotlin の基礎については "Javaとほぼ同じところ" を御覧下さい。 Javaとほぼ同じところ 新しい考え方が必要でつまづきがちなところ ←この投稿で扱う内容 Kotlinならではの便利なこと 新しい考え方が必要でつまづきがちなところ 新しい概念を学ぶときには、何ができるのかだけでなく、どうしてそうなっているのかがわからないとそれをうまく使いこなすことができません。 本節で
null安全な言語のSwift, Kotlinを使えば、 リプレイス前より、安全安心になります! ( ̄ー ̄) ドヤッ! 本当に? 前提条件 仕様がアプリによって違うため ここでは、文字列fooがnilまたはnullだった場合、 バグである仕様と仮定にします。 主語は、Swift, Kotlinの場合です。 以下は、僕の個人的見解です。 Objective-C時代 nilにメッセージを送っても落ちないが バグを検知できない NSString *foo = nil; NSLog(@"%lu", (unsigned long)[foo length]); // 0 // nilに対するメッセージ送信結果はnil(数値を返す場合には0)が返却される // クラッシュしないが、バグが起きたことは検知できない String string = null; System.out.println(stri
16. from old Java to modern Java ∼ 職業プログラマに聞いて欲しいJava再入門 Acroquest Technology株式会社 JJUG / 関西Javaエンジニアの会 谷本 心 ( @cero_t ) 19. private List m_list = null; private int process_file(String str_file_name) { String str_line; List list_lines = new ArrayList(); int i_result = read_file(str_file_name, list_lines); if (i_result == 0) { List list_record = new ArrayList(); for (int i = 0; i < list_lines.size(); i+
デブサミやJava Day Tokyoなど、会社の許可をもらってイベントにありがたく行かせてもらっているけど、ちゃんとレポートできていなかったということで、社内勉強会で話すことにしました。 まとめ資料を作ったので、このブログにて先行して公開してしまいます*1。少し前のエントリで資料をアップロードしたのはこのための準備でした。 資料の位置づけ 古いJavaの知識で止まっている人(自分含め)やこれから本格的にJavaを学ぼうと思っている人に、最近のJava関連の新機能などをざっくりつかんでもらうための資料です。内容の深さ・広さは、聴く人のJavaスキルに合わせた一応合わせたつもりです。 Java SE 8がリリースされて、その界隈では「for文禁止」などと言われる一方で、会社の新人研修で教えるJavaでは、「ループはforやwhileを使って書きます」みたいに教えるわけで、その辺のギャップを埋
これは Java Advent Calendar 2015 の 15 日目の記事です。 昨日は @opengl_8080 さんの Byteman 使い方メモ+α でした。明日は @irof さんです。 前置き ついこないだチームでちょっとだけ話題に上って、みんなある程度指針は持っているものの、割と悩みつつ明確に答えを出せなかったので、もっと良い意見があればと思って晒してみます。まぁよくある話だし、Java 8 で Optional が使えるようになって null について語られるケースが増えたと思うので、再考するちょうどよい機会になればいいなーと思います。初心者向けです。 どう処す?処す? こんな状況の時にあなたならどうしますか? // Generics なのは例です。String でもなんでもいいです public T doSomething(T input) { // input が
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く