|DMM inside
追記 2022/11/12 追記 この記事読んで、DI 便利だなって思ったらこちらも併せて読んでみてください。クリーンアーキテクチャーの開設の中で依存性逆転の説明が出てきます。難しいかもしれませんが、一度理解すればつぶしが効く考え方なので腰を据えて読んでみてください。 本文 ここでは、最近のそこそこの規模のアプリだと大体使われてる(と私は思ってる)Dependency Injection(DI)について、何故使ってるのか?というのを私の理解で書いていきたいと思います。 今回の対象言語は C# ですが、DI 使ってる言語であれば大体同じ事情なのかなと思います。 単体テストしたいよね アプリケーションを作るとうまく動いているかテストをすると思います。 たとえ、そのアプリがハローワールドだとしても動かして目視で確認してると思います。 もうちょっとアプリの規模が大きくなってくるとクラス単位やクラス
まえがき 会社の若い子に「情報系出身でもないのに一体どうやって勉強してきたんですか?」と聞かれたのでランチを食べながら「こんな本読んだ。これもタメになった。あ、これもタメになった」とKindleを広げながらリストアップした。思い返せばたくさん本を読んだ。その中には役に立ったものもあれば時間の無駄だったものもある。すると「あ、役に立った本だけ抽出したら有益かもしれないな」と思ったのでエントリにする。 僕は文章を簡潔に分かりやすくまとめる才能が致命的にないのでこのエントリもげっそりするほど長い*1が、2017年も暮れなのでここはひとつ日本酒でもかっ喰らいながら自分の人生を振り返ってみようと思う。 無理やり要点をまとめるならば、 TCP/IPの知識 Linuxの知識 なにかひとつプログラミング言語 なにかひとつGUIシステムの理解 アルゴリズムとデータ構造 強運*2 を身につけたらどんなに低く見
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 内容 以下記載のURLを参考にロードマップをJavaバージョンにしてみた。 初心者から立派なJava エンジニアになる方への学習の道しるべになれば。 また自分自身すべてできるわけではないので、できるようにするためのメモ書きとして。 (ただ以下をなんとなく理解するだけで2,3年以上かかった。。。) 参考 ※ 会社の同期から基本文法についてレベル別記載のアドバイスをいただいたので修正(2018/4/9) ロードマップ 学習方法 1.Hello World どのプログラミング言語でもそうですが、まずは動かし方を学びましょう。 ゲシュタルト崩壊
Kotlin歴2ヶ月程度で勉強中なのですが、現在プロジェクトのソースコードを少しずつですがKotlinに置き換えていて、本日11/7時点でKotlin率は40%弱です。 この記事の内容は、そんな自分がKotlin置き換え始めた頃の失敗、問題点を雑に振り返り、 JavaのソースコードをKotlinに書き換える際には下記2つを行なうのが良いのではないかという提案です: 自動変換コードは常に疑う デコンパイルされたバイトコードのレビューをする 尚、内容はYahoo JAPAN!様で開催されたBonfire#2にて発表したものから抜粋しています。(発表資料はこの記事の下部にあります) Kotlin置き換え始めた頃の自分の問題点 1. 自動変換を信用しすぎていたこと Android Studioを用いたAndroidアプリケーション開発において、JavaのソースコードをKotlinに置き換える際には
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? かつてJavaは技術の中心だった 私はSIerでシステム開発のアーキテクトやPMを担当しています。SIではまだまだJavaが主流ですが、文法を理解してコーディングできるだけでは活躍できない時代がすでにきていることを実感します。 私の上司が**「技術の渦」**という独特の表現を使って説明してくれたのですが、2000年から2006年ぐらいまではJavaを書くということは、いろいろな最新技術の実装を学べる時代でした。アプリケーションサーバー、XML、SOAP、MQ、CORBA、マルチスレッドなど、現代の評価としては芳しくないものも多いですが、
Facebookは、Javaのコードを静的に解析してマルチスレッドプログラミングで発生するデータ競合のバグを発見するツール「RacerD」をオープンソースでリリースした。 アプリケーションのレスポンスを改善するうえで、マルチスレッド化は重要な選択肢のひとつです。 その一方で、マルチスレッドのアプリケーションは十分に注意深くプログラミングしないと、変数の値が予期しないタイミングでほかのスレッドから書き換えられるなどの問題が紛れ込みやすいものです。 しかもマルチスレッドに起因する問題は再現が難しく、一般に発見するのが困難です。 RacerDリリース:Facebookで1000以上ものバグを発見 Facebookは、こうしたデータ競合の問題を、コードを静的解析することで発見し、警告してくれるツール「RacerD」をオープンソースで公開しました。 Facebookの説明によると、RacerDはロッ
コードレビューをするときには、フォーマットや慣例的な書き方とか、名前ちゃんとした方が良いよとか、処理にも名前をつけようねとか、そういうことは伝えるんだけど。それよりももっと気にするのは、「ここで見つけておかなきゃいけない」ってことだなぁってふと思ったのだった。 ここで見つけておかなきゃいけないこと? 仕様に従ってるかどうかとかは、動かしてみれば分かるし、PDM(Product Manager)が受け入れテストとして見てくれたり、QAと呼ばれるテストのチームがやってくれたりもする。ので、そこまで気にしてない。 気にするのは、エンジニアがソースを読むことでしか見つけづらいバグ。かな。特定の条件が重なったときにだけ発生するようなやつとかそういうの。10msのタイミングで発生するとか、12/31の0時にだけ発生するとか、エラーが発生したときにだけ発現するとか、今は大丈夫だけど2年後ぐらいに発火する
私が仕事として扱ったことのあるプログラミング言語は以下があります。 Java C/C++ Python PHP javascript この中でも Java は特別で、15年近く愛用してきました。 Javaの優れている点 Java の優れている点として以下があるとおもいます。 10年前のコードも動かせる信頼性の高いVM クロスプラットフォーム動作 豊富なライブラリ群 高速動作 信頼性の高いVM インタープリタ言語の中にはランタイムのバージョンアップで動作が変わってしまったりすることも多く、なんたらenv といったアプリケーションを使って任意のバージョンのランタイムに固定するのが慣例となっていますが、Javaにおいては最新のJVMを入れれば大体なんとかなります。 クロスプラットフォーム動作 私は長らく Windows を開発機として使用し、Linux サーバで動作させる。ということをしてきまし
Kotlin が Android の公式言語になることが Goole I/O 2017 で発表されました。これから Kotlin を始める Java プログラマが多くなると思うので、本投稿では Java プログラマが Kotlin でつまづきがちなところについて説明します。 本投稿は単独で理解できるように書いていますが、↓の連載の第二弾です。 Kotlin の基礎的な構文は理解していることを前提としているので、 Kotlin の基礎については "Javaとほぼ同じところ" を御覧下さい。 Javaとほぼ同じところ 新しい考え方が必要でつまづきがちなところ ←この投稿で扱う内容 Kotlinならではの便利なこと 新しい考え方が必要でつまづきがちなところ 新しい概念を学ぶときには、何ができるのかだけでなく、どうしてそうなっているのかがわからないとそれをうまく使いこなすことができません。 本節で
この記事は Android Advent Calendar 2016 2日目の記事です。 こんにちは。わくわくです。 現在お仕事で書いているアプリを新規で書き始めたのが2015年で、現在は2016年です。 そう、1年が経ちました。その頃から今まで書いてきて、今から書くならこんなライブラリや設計を採用するよ(したいよ) というのをまとめたいと思います。 これからAndroidアプリを書くけどどんなものつかっていけばいいんや〜?といった方の参考になれば幸いです。 すでにAndroid開発をされている方にとっては内容が薄く感じられることと思いますがご了承いただければと思っております…(予防線) (裏の目的としては自分の備忘録のようでもあったりします。) この記事では紹介しているライブラリや設計などに関しては深くは説明を書きませんが、参考になる資料などをまとめて行ければと思っております。 言語につ
はじめに こんにちは、アプリケーションエンジニアのid:takuji31です。今年の1月に入社してAndroidアプリの開発を行っています。 先週4月2日(土)にはてな京都オフィスで開催されたKotlin 1.0.0リリース記念勉強会 in 京都で、「KotlinとモダンなライブラリーでAndroidアプリを作るっ」というタイトルで発表しました。 この発表では、AndroidアプリをKotlinを使って作る時に既存のライブラリーを使うことができるか、使う場合にKotlinの利点をどう活かすか、という点について話しました。 Kotlinとは KotlinはJetBrainsが開発しているJVM言語です。Javaとの100%の相互互換性を目指しつつモダンな言語機能を取り入れた言語で、最近は特にAndroid関連のサポートを強化していて、Androidアプリ開発で多く利用されはじめています。 発
LL から Java に移行した人がはまりがちなこと こんにちは。Java 初心者です。 Java 初心者、得に LL から Java に来た人にありがちな問題について社内向けに書いたものをオープンアンドシェアさせていただきます。 前提として、我々は Java 8 でガンガン攻めているということをご承知おきください。 また、自分がこの数ヶ月で「うわー。こうしとくべきだったのかー」と気づいたやつをドヤ顔で語っているということにもご注意ください。 【追記】 対象は中規模 B2C の場合です(中規模というのは facebook より小さいという程度の意味です) 例外を握りつぶさないようにしよう Eclipse が生成する以下のようなコードをそのまま残しているケース。 これは言うまでもなく良くないですね。デバッグが困難になります。 try { } catch (IOException e) { e
『Android アプリ開発のための Java 入門』 というものを Gist で公開しました。 Android アプリ開発の勉強会を行うときに書いたものです。 Java をちゃんと使いこなすために知っておくべき必要最低限のこと をまとめたつもりですので、Android アプリを開発したいけど Java はほとんど知らない、みたいな人に読んでいただければと思います。 もちろん Android アプリ開発とは関係なく Java を学びたい人にも適していると思います。 Android アプリ開発勉強会のために書いた Java の入門文書 「Android アプリ開発のための」 というタイトルではありますが、基本的には Android アプリとは関係のない Java の基礎となっています。 この文書は次の書籍を参考に書きましたので、よりちゃんと学びたい人は下の書籍をご覧ください。 プログラミング
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く