純粋関数という言葉をご存知でしょうか?
引数が同じなら常に同じ結果を返し、副作用のない関数を純粋関数と言います。
この純粋関数の基礎的な部分から、純粋関数を使うことによる良さを説明します。
そして、既存の関数を少しずつリファクタリングしていく過程を通して、開発に組み込むことを支援します。
目次は次の通りです。
サンプルコードの言語はJava/TypeScriptを利用する予定ですが、設計パターンの一つとしてどの言語でも役に立つ考え方となります!
なおこのセッションでは以下を目的としません
高齢の親など、離れて暮らす家族に異常がないか、見守るためのテクノロジーについて
私が実践していることを話します
既製品を使う方法(スマートスピーカ、監視カメラ、活動がわかる家電)
自分で開発する方法(RaspberryPiでセンサデータやカメラ映像解析)
などを解説します
スマートホーム化は見守りが必要な高齢者宅の方がメリットが大きく
親が高齢化するにあたって、誰しもが必ず直面する問題です。
現状の最新の見守りテクノロジーを知ると同時に、将来に備えることが大事です
またその過程で起きた不思議なバグ、祖母が就寝するとDBインサートが失敗するという現象について
物理現象と連動するシステムの不思議なバグについて話します
主にQiitaでバズったこの記事について話します
https://qiita.com/bohemian916/items/46f9f1e8bb32fc0a1f99
私が携わっているプロダクトでは、GraphQLを採用しており、周辺ライブラリにはHasura、gqlgen、Apollo Client、GraphQL Code Generatorなどを使用しています。
私は開発初期から参画し、技術選定からローンチ、運用に至るまで一貫して担当してきました。
このセッションでは、それぞれの技術選定を振り返り、実際に良かった点や課題に感じた点を率直にお話しします。
さらに、これらの経験を踏まえ、もし同じプロダクトをゼロから開発するとしたら、どの技術を選び、何を考慮するかについて紹介します。
エラーが発生したとき、ログを追ったりデバッグを繰り返したりするのは大切な作業ですよね。でも、それだけだと「エラーが起きた後の対処」に留まってしまいます。もっと良い方法があるとしたら?
設計の段階から、エラーが「見つけやすい」仕組みや「そもそも起きにくい」コードの書き方を取り入れることで、システムの信頼性がグッと上がり、あとから困ることも減ります。
このセッションでは、例外の基本的な役割や考え方から始めて、PHPやJavaのように例外を持つ言語と、RustやGoのように例外を使わない言語のエラーハンドリングを比較。それぞれの特徴を活かした設計方法をお話します。難しい話だけでなく、「こうすれば実務で役立つ!」という具体例も紹介しますので、チームのディスカッションにもぜひ活用してください!
Java言語仕様まわりのトピックスを取り上げます。
2024年3月 Java 22
2024年9月 Java 23
2025年3月 Java 24
での更新内容などについて1年ぶんをまとめます
JavaのWebアプリケーションはJava EEを基本としてサーブレット/JSPを中心に作られていましたが、Spring Bootが主流になるなどJava EE / Jakarta EEの存在感は薄れてきています。また、クラウドやコンテナが使われるようになり、QuarkusやMicronautなどフルスタックのフレームワークもあらわれはじめ、標準規格としてもMicroProfileが活動をはじめました。
このセッションでは、リクエスト処理のフレームワークについて命令形式・宣言形式・コンポーネント形式の3つにわけて紹介し、それらの実行環境についてクラウドにあわせてどのような変化があったかを整理して現状を紹介します。
これまで、地図やGPSを活用したアプリケーションをいくつか開発してきました。その際、現場で役立つアプリを設計するために、私が工夫したことを話します。具体的には、「スマホの機能(GPS・加速度センサ・カメラ)を活用して、ゴルフ場で距離・高低差を測り、弾道をシミュレーションする方法」と「緯度経度情報をもとに、AR空間にオブジェクトを配置するための、位置と回転の計算方法」について説明します。イベントに参加される方々の技術的背景は様々とのことなので、実装の詳細には触れず、あらゆる言語環境に応用可能な「考え方」をお話しできるように努めます。
国のルールである「法律」は、一見するとプログラミングとは無縁の存在ですが、法律の姿を複数の視点から捉えてみると、意外にもコンピュータプログラムやシステム開発と共通する興味深い特徴が数多く浮かび上がります。
そのために、システムのプログラムの刷新は、まるで法律を大改正するような注意と配慮が必要になります。
本セッションでは、私が現職で取り組んでいるSaaS製品のフロントエンド刷新プロジェクトの事例と現状を紹介し、一方で「法律の脱レガシー」に近い取り組みの1つである「法律の現代語化」にも触れて両者の共通点を考察。法律の現代語化の一事例の顛末を教訓としてフロントエンド刷新プロジェクトの今後の注意点を探ります。
フロントエンド刷新の進め方や難点を学べるだけでなく、難解なイメージを持たれがちな法律の存在を身近に感じることもできる一粒で二度おいしい発表です!
富山での教員時代の原体験をもとに、富山で開発した個人開発サービス『席替えメーカー』についてお話します。
『席替えメーカー』は、学校の業務を改善し、教員の負担を軽減することを目的として開発したWebサービスです。
2021年3月にリリースしてから、累計ユーザー数は50万人を突破し、今では日本中の教員の方が使ってくださるサービスに成長しました。
本セッションでは『席替えメーカー』の紹介だけでなく、サービスをリリースするまでの開発の過程や、実際にターゲットとしていた教員の方にサービスを認知してもらうために行ったマーケティング施策など、複数の観点でお話します。
ただサービスを開発するだけでなく、実際に多くの方に使ってもらえるようなサービスに育てたいという想いを持った方のお役に立てるようなセッションにしたいと思います。
Azure AI Servicesの背後にあるAI Platformの仕組みをシンプルに解説します。データ処理からモデルの構築・デプロイまで、Azureが提供するAI基盤の全体像を探りながら紹介します。データの収集と前処理において、データパイプラインの構築方法を解説します。また機械学習モデルの構築とトレーニングでは、モデルの開発、ハイパーパラメータのチューニング、モデルの評価方法について紹介します。さらに、モデルのデプロイと運用では、スケーラブルなデプロイ方法を紹介します。
サービスを作る上で、維持費と収益を獲得できるかどうかは、非常に重要な要素です。
StripeのDeveloper Relationsとしてユーザーや社内のプロジェクトに関わった経験と、
前職や個人開発におけるマネタイズに関する経験と想いを元に、ウェブサービスを開発する際のマネタイズ手法や料金モデル、そしてリリース後に発生しがちな請求管理に関するアレコレを紹介します。
トピックの例
・初期フェーズで決済・サブスクリプション機能の開発をやるべきか否か?
・開発工数と売上は比例しない話
・本当にあった、サブスクリプション請求管理で頭が痛くなる話
GitHub Copilotをはじめとする生成AIツールの登場により、コード上でのインタラクティブなサポートや、組織のコードベースを活用した開発が可能になった今、開発者には「生成AIとのコラボレーションを強化できるコードベース」を育てることが求められます。
このセッションでは、DevOpsの歴史を振り返り、IaC(Infrastructure as Code)など「X as Code」の概念がどのように生まれ、インフラやパイプライン、構成管理のコード化が開発プロセスをどう変えたのかを概観します。そして、GitOpsという新たな開発文化の可能性を探り、生成AI時代に適したコードベースの構成や運用のための技術プラクティス、組織的な課題についてお話します。
プログラミング言語にはドキュメンテーションの仕組みがあります。Rubyには標準添付ライブラリとしてRDocというツールと記法が存在しますが、広く使われているのは標準ではないYARDというツール及び記法であるなどエコシステムが統一されていません。
そこで私は今、標準添付であるRDocに各種ツールを統合するための基盤整備を行っています。具体的にはRDocに拡張機能の仕組みを導入することで、将来的なドキュメンテーションへの要求にRDocのみで応えられるようになることを目指します。このプロジェクトは2024年度Rubyアソシエーション開発助成にも採択されています。
このトークではRDoc拡張機能基盤プロジェクトの概要とこれまでの進捗を説明し、さらにRubyにおける「たのしいドキュメンテーション」という最終目標に関連したいくつかの計画についてお話できればと思います。
2021年にGartne社が提唱したCloud Native Application Protection Platforms(以下CNAPP)はそれ以降、多くのベンダーによってクラウドセキュリティ、クラウドネイティブセキュリティ向けに開発されたセキュリティ機能を多く取り込むようになりました。サイロ化されていた機能が一つのプラットフォームで活用できるようになることで優れた相関効果を期待することができます。仮想マシンインスタンスや仮想ネットワーク、コンテナやサーバーレス、CI/CDパイプライン向けに留まらず、昨年からは生成AI向けセキュリティ機能も有するベンダーが登場してきました。
本公演では、クラウドベンダー・サードパーティベンダーのCNAPPが有するセキュリティ機能の紹介と企業利用における導入・運用課題について解説したいとおもいます。
サイバー攻撃への対策として、近年はEDRやXDRのような攻撃検知製品が企業環境で盛んに導入されています。日々進歩するサイバー攻撃技術に対策するべく、Windows OS自体にも様々なセキュリティ機能が導入されており、EDRやXDRのような攻撃検知製品でもそれらの機能を攻撃検知に活用しています。本講演では、こうしたWindows OS自体に組み込まれているセキュリティ機能を中心に、EDRやXDRの機能の実装を支えている技術について実演を交えて解説します。
Amazon Aurora(以下Aurora) MySQL 5.xの標準サポートが10月で終了し、Postgreも12.xが来年2月末で標準サポートが終了するなど、Auroraのバージョンアップ対応を迫られている方も多いと思います。
しかしAuroraバージョンアップについて「どんな手法があるのか」「それぞれどんな特徴(メリット・デメリット)があるのか」が分からない、という方も多いのではないかと思います。
そこでこのセッションでは、Auroraバージョンアップの手法として用いられる
・ インプレースアップグレード
・ Blue/Greenデプロイ
・ クラスタークローン
について、その特徴(メリット・デメリット)やユースケースなどを紹介したいと思います。
またMySQL5.7→8.xにおいて仕様が大きく変わった文字コードの挙動について、パラメータグループを交えて解説したいと思います。
昨今のメジャーなプログラミング言語では、 map
や filter
, flatMap
といった高階関数が当たり前のように標準実装されています。
しかしながら、SNS上ではこういった高階関数を使ったコードは可読性が低いとか読み辛いといった声もしばしば目にします。
このセッションでは、高階関数を使ったコードにおいて読みやすくなるケースと読みにくくなるケースについて紹介し、なぜ読みにくく感じるのか読みやすくするためにはどのようにすれば良いのか、を紹介したいと思います。
本格的な生成AIとクラウド利用が進む中で、.NETは着実にバージョンアップを続けています。その最新バージョンである.NET 9が2024年11月にリリースされました。いよいよ次期LTSバージョンとなる.NET 10も見えてきた今だからこそ、押さえておきたい.NETの過去、現在、そして未来について語ります。
HTTP cachingはWebアプリケーションのパフォーマンス改善や可用性の向上に非常に役に立つ技術です。役に立つ技術である一方、設定・設計ミスにより「更新されるべきデータが表示上更新されない」「ユーザー固有の情報が他のユーザーに表示されてしまう」などのクリティカルな動作不良を引き起こしてしまう可能性もあり上手く運用するのが難しい技術でもあります。
HTTP cachingと上手に付き合うためには、仕様を理解することに加え昨今のフレームワークがHTTP cachingについてどのような振る舞いをするのかについても理解が必要です。
このセッションでは、HTTP cachingの基礎と現在主流のフレームワークがAPIとしてどのようなアプローチを取っているかを振り返り、Web開発者がHTTP cachingを活用できることの必要性や方法論について提言します。