みなさん、こんにちは。あんざいゆきです。Android の Google Developer Expert をしています。よろしくお願いします。 私はいろんなクライアントさんの Android アプリ開発のお手伝いをさせていただいていまして、Java から Kotlin に変換した Pull Request のレビューをすることがあります。 プロジェクトの大多数がまだ Java だったり、最近 Android 開発をはじめたばかりだったりして Kotlin になじみがない場合だと、自動変換されただけのような状態でレビュー依頼されることがままあります。 そこでこのセッションでは、Java から Kotlin に自動変換したあと、より Kotlin らしいコードにするためにどういうことをしてほしいのかを紹介したいと思います。
Problemこのクラスは大きすぎて、もうこれ以上大きくしたくありません。「単一責務の原則」を適用してクラスを分割しようと思います。分割の具体的な方法がわかりません。Strategy「クラスの抽出」を適用します。どんなとき?「単一責務の原則」を適用してクラスを分割しようと思います。責務を把握したので、分割の実装を行いますが、具体的な方法がわかりません。どうする?「クラスの抽出」リファクタリングを適用します。ほとんどのレガシーシステムにおいて、最初にできることは、「実装レベル」で単一責務の原則を適用することです。つまり、大きなクラスから「クラスの抽出」をして、抽出クラスに委譲することです。「インタフェースレベル」で単一責務の原則を導入するには、より多くの作業が必要です。クラスの呼び出し側を変更しなければならず、テストも必要になります。まず、実装レベルで単一責務の原則を導入しておくと、将来イン
Software development is a young profession, and we are still learning the techniques and building the tools to do it effectively. I've been involved in this activity for over three decades and in the last two I've been writing on this website about patterns and practices that make it easier to build useful software. The site began as a place to put my own writing, but I also use it to publish arti
技術書の翻訳としては22冊目となる『Go言語で学ぶ並行プログラミング』の予約をAmazonで受付始めました。 まったく分類・整理していませんが、ランダムにWebサービスのバックエンドのAPI仕様に関する備忘録を書いていきたいと思います。 001 該当する定義が存在しない問題:あるデータの一覧を返すエンドポイントの仕様に、「返されるデータはXXXYYYStatus順に返される」と記述されているのですが、そもそもXXXYYYStatusはどこにも定義されていない。 この記述を書いた本人は分かっているつもりなのかもしれませんが、第3者が読んだら理解できなくて問い合わせることになります。これは、記述した仕様が第3者が理解できるかという視点を持たないことによるものだと思われます。その視点で、自分で記述した仕様をレビューできる必要があります。 一般的にXXXYYYStatusというのはenumとして定
してみたけど、広告がうざいのでまだ引っ越さないよ。 スケジュールされたバックアップタスクが実行された際に外部メディアが外れているとタスクは遅延するが、メディアが接続されるとこのように丁寧且つローカライズされたダイアログが出て、タスクを再開するように促される。 素晴らしい対応だ。 これならば標準アプリにも負けない出来であり、購入しかないだろう。というか、買う。 ところで「アーカイブのコンテンツをプルーンします」の"プルーン"ってなんだ? もう何度目だろうか。 ReSharper6まで上げたはいいが殆ど使わずに他のプラットホームの仕事に移ったものの、なぜか現在WPFアプリを書いている最中だが、今後1年間コンスタントにWindowsアプリケーションを書いている保障は全く無いわけで※、今回はさすがにバージョンアップは見送ろうと思ったのだが、ReSharperを使ったコーディングは一度経験してしまう
Continuous Integration and Continuous Delivery As an extensible automation server, Jenkins can be used as a simple CI server or turned into the continuous delivery hub for any project. Easy installation Jenkins is a self-contained Java-based program, ready to run out-of-the-box, with packages for Windows, Linux, macOS and other Unix-like operating systems. Easy configuration Jenkins can be easily
Java on Azure Day 2023 開催のお知らせ 皆様この度、日本マイクロソフト株式会社主催の Java 技術カンファレンス「Java on Azure Day 2023」の開催が決まりました。 日時:2023 年 4月 26 日 10時〜18時 場所:日本マイクロソフト株式会社 品川本社オフィス 31F セミナールーム 登録サイト:https://msevents.microsoft.com/event?id=3692399073 COVID-19 以降、様々なテクノロジー・カンファレンスがオンライン化され、Java on Azure Day も過去2回はオンラインで開催しました。しかし今回は、完全なオフラインの対面イベントとして開催します。(現時点でオンライン配信の予定はございません) 2年前は当たり前だった対面形式のイベントを思い出し、対面だからこそ得られる体験、そして直
今週の土曜、9/24にSeasar Conference Finalを行います。 10年前に始まったSeasar Conferenceもいよいよ今度でFinalです。 お申し込みはこちら。 http://seasar.connpass.com/event/38679/ Seasar Projectの面白かったところって、開発方法論が盛り上がったところだと思うんですよ。 ステートレスなサービス + DTO vs Fatなドメインモデルみたいな。 マーチンファウラーをはじめとして、著名な人たちのほとんどが「ドメインモデル推し」の中、僕は、「ステートレスなサービス + DTO推し」だったからね。S2Daoは、このために作ったようなものです。 あの開発方法論の議論に、かなりの人が参加したり、自分で考えたりしたでしょう。それが、面白かったところです。みんなが自分の事として考えたから。そんな難しい話で
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
僕らが子供の頃は、「テレビばかり見ないで『本』でも読みなさい」と言われた。 僕が子供に言ってるのは「子供達よ『Youtube』ばっかり見てないで『テレビ』でもみなさい」だ。 語彙力アップには、YouTubeよりテレビだ。お気に入りの人ばかりの動画を見続けるYoutubeでは語彙力がそだってない。 そんなことを言う未来が来るとは思っていなかった。 ...いや、少し思っていた。 うちらの親世代は「『本』ばっかり読んでないで」勉強しなさい or 働きなさい。と言われてきたらしい。 僕らは、「テレビばっかり見てないで、本でも読みなさい」だった。 徐々に推奨メディアが変わってる。時代の変化を体感してる。 ソフトウェア開発者の自分としては、子供にいうことに次がある。」 「『Youtube』ばっかり見てないで、『ゲーム』でもしなさい」だ。 コンピューターリテラシーの基礎教育としてゲームが重要だ。 例えば
年末だし、今年の技術まとめを主観的に書いておきますね。 動画生成AIはじまる 2月にOpenAIのSoraが発表されて、動画生成AIが盛り上がりはじめました。 12月に一般公開されましたが、それまでにも複数の動画AIモデルが発表されて、動画生成AIの実用化がはじまった年になったように思います。 とはいえ、なんだか微妙だなーという感じ。 デモは、ベストofベストだったなーと。 生成できそうな動画を生成するのが大事そう。 エージェントによる推論スケーリング OpenAIのo1が9月に発表され、推論に計算力を使うことでもスケーリングすることが示されました。 思考方針を管理するモデルが、内部で実際に思考を行うモデルに推論を行わせて、その結果をまとめて表示するような仕組みです。そうやって、推論時にコストをかけることでも性能が出せるようになっています。 論理的な問題に強さがある一方で、日常的な用途では
結城浩(ゆうき・ひろし) 本を書く生活が30年、著書は60冊を越えました。 代表作は『数学ガール』『プログラマの数学』『暗号技術入門』『数学文章作法』『Java言語で学ぶデザインパターン入門』他。 2014年度日本数学会出版賞受賞。 文章書きとプログラミングが好きなクリスチャン。 いつも応援ありがとうございます。 主な活動については 結城浩の活動紹介 をご覧ください。 Hiroshi Yuki. Author of "Math Girls". 30 years into writing introductory math and programming books. LaTeX / Vim / Ruby / Math / Writing /
本日、日本Javaユーザーグループ(JJUG)主催のCCC 2014 SpringというJavaの勉強会に行ってきました。会場は、ベルサール西新宿で、都営大江戸線都庁前のA5出口を出て、新宿中央公園の5分くらい歩いたところにありました。今はスマートフォンで地図を確認しながら行けるので、初めての場所でも方向音痴の私でも電車の駅さえ間違わなければ大丈夫ですね。 CCCというのはCross Community Conferenceの略で、さまざまなコミュニティーの交流の場となる会議という趣旨でしょうか?このCCCというイベントは2012から開催されているようなのですが(CCC | 日本Javaユーザーグループ)、今回初めて参加させていただきました。残念ながら個人的な都合から、基調講演と午後の前半のセッションのみで後半と懇親会には参加できませんでしたが、参加したセッションについてまとめます。その他
RubyKaigi とか色々あって、ふと、僕がプログラミングを始めたころのことを何となく思い出したので走り書きしておきます。特に PHP に関しては記憶が曖昧なところがおおいので、 PHPer モヒカン族によるツッコミを歓迎します。 配列とハッシュが違う PHP においては、配列も連想配列もすべて array() と言う関数で生成する。むしろ、配列というものがキーを数字にしているだけの連想配列と言う位置づけだと思う。 Ruby ではもちろん、主たるコレクションには Array と Hash の二種類が存在し、区別される。最初はこの区別に若干戸惑いを覚えた。 ちなみに Python だとリスト・タプル・辞書ともっと増えるわけで、Javaのコレクションクラスに至ってはさらに多いし、この辺はどの実装が正しいとか適切とかではなく慣習なのかなあ、と思ったりする。 型(クラス)がより厳格 PHP では
コンニチハ! 変態アドベントカレンダーです。 http://atnd.org/events/22020 ※ アドベントカレンダーとは、クリスマスまでに毎日日替わりで窓を開けていくカレンダーのこと。 それにちなんで、日替わりでblogエントリを書くのがアドベントカレンダーです。 オブジェクト指向 ってよく聞きますし、実際のところ何がすごいの?? って思ったりしてる人も多いでしょう。 抽象クラスって何よ!? インタフェースとかどうやって使う? とか そういう初心者向けアーンドもう一度学びたい人達に変態を例に説明してみましょう。 うだうだですけど、最後まで読んでいただければ幸いです。。。 まず、オブジェクト指向は何が嬉しいのか?ってところですけど、 処理を共通化し、生産性をあげる!! ということではありません。 もちろんそういう一面もありますが、これぐらいならオブジェクト指向を使わなくても十分で
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く