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