Fest2019に参加しました<<後編>>残暑お見舞い申し上げます。まで1ヶ月強となりました。午後の練習問題は相変わらず6割超えないくらいに終わってます...。転職したばかりの環境でヒィヒィ言っているうちにとうとう9月の中旬になってしまいました。増税前に会社の金で行ったKotlinFest後編についてまとめていこうと思います。2019Ktorってなんとなく使ってみたけどこの記述は何をしているの?他のDIライブラリと何が違うの??という疑問にぴったりな講演でした。Ktorとは?KtorはDIをもたらすことで薄いフレームワークを作ってくれます。***Application.ktに書いているinstallというブロックは機能の追加をする役割をしています。Ktorは計算パイプラインの機構を提供しており、FeatureやRoutingの実行順序を柔軟に変更することができます。並行して走るThread2は計算ができます。計算終了後、Thread2はThread1の処理と合流します。suspend別スレッドでリクエストを受け付ける事ができるlaunchブロック内ではThread3を生成するが、終了しない場合は全てのパイプラインが実行を待つ。asyncブロックでは別スレッドを生成し、これが終了するまで次のCallフェーズには移らない。awaitsuspendしながら次のフェーズまで処理をする事ができる。最後のフェーズが終了したらまたMonitoringフェーズに戻り、全ての処理が完了したら処理が終了する。効率的に計算する事が可能。Continuation(コールバックが入ったクラス)suspendコード実行を中断する可能性がある。同じサスペンドの中で呼び出す事ができる通常の関数からはビルドエラーする→コンパイル後は引数にコールバックが入る+返り値がAnyになるsuspendの呼び方suspendブロック内でstartCoroutineで走らせる事ができる返り値(途中中断した場合マーカーがかえる)を持つ関数がある。KotlinPoetこちら外国の方の講演でした。KotlinPoetというAPIライブラリを使って、アノテーションを作っちゃおうぜというお話でした。全体的に話のレベルが高かったです。私が唯一感覚としてハマったのは、あるJsonパーサーを使っていて遭遇したキャスト関係のエラーについてくらいでした。(正直よくわからんかったです。自分に知識が足らなすぎて...下記内容はほぼほぼ自分の解釈+言葉遣いになるので、ニュアンスが違ったら教えてください。)メタプログラミングについて機能に振る舞いを加えたり、変更したりする。実行中にファイルやプロパティを読みこむ。ex)変数を読み込む、機能を呼び出すxmlやjsonのように解釈する保守しづらいバッドプラクティスなコードについて考えてみよう入力に基づいてファイルを生成するアノテーションはソースコード、バイトコードもしくはどのような種類のファイルでも出力できる。安全にコンパイルする静的にコードを解析し、実行前にエラーするのを防ぐ。アノテーションプロセッサはJava6から加えられたAPI仕様。@AutoMapはデータクラスをMapとして解析できるようにコンパイルしてくれます。AndroidModule)講演者はmetadataもオススメと話していましたが、こちらは割愛します🙇‍♂️KotlinMetadataUtilsを実装するgetSupportedAnnotationTypesをオーバーライドする事で設定の文字列を返している。@AutoPlocessorは別途build.gradleで追加する。literalFunspecでにアノテーションだけではなく、コメントを加えることができる。引数の型と返り値の型、KDocを書いていく事ができる。edit").build().writeTo(outputDir)どんなコードができるかは101枚目のスライドを見てみましょう。感想としては、自分たちが使っているライブラリたちは、きっとこのような過程を経て出来ていくんだなあ、と。言語特性をフル活用してコーディングする経験としてはライブラリ作成ってかなりいいのかも。完全にKotlin製のライブラリって実はOKHttp4のようにまだまだ少数派なのかも...と思い直す講演でした。Springこちらの講演は、今の現場でSpringを使うことが多い為に聴きに行きました。別途まとめ直すかもしれません。Kotlin/Nativeはなぜ動くのか?CyberAgentからギークな新卒の方がお話をされにいらっしゃってました。Kotlinをコンパイルする為に必要なミドルウェア(LVVM)のお話周りです。KotlinFestのひよこ前記事にも書きましたが、Kotlin界隈の方々は親しみやすく、一定数ギークな人たちが集まっているコミュニティという印象です。そこでのエンジニアは純粋に好きなものを追いかけていて、それがどのような方向性であれ容認していくところが素晴らしいと感じています。ちなみに、我が社のKotlin使いの先輩はGraphQL、Springなど使って管理画面を一新するそうです。Fest2019に参加しました<<前編>>残暑お見舞い申し上げます。環境構築諸々...2019-05-11Kotshi+MVVMをカジュアルに採用してみた。GWも過ぎて、ハイテンションで迎えた令和もすでに鬱々とした気...2018-11-16RubyのブロックとProcこんばんは。読者になる検索リンクはてなブログブログをはじめる週刊はてなブログはてなブログPro最新記事2019年の振り返りと、2020年にやってみたい事。振り返る運動神経ゼロの私が、普通二輪の卒業検定に受かるまで。月別アーカイブはてなブログをはじめよう!letterneginrさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。