トーク (20分)

UI実装の愉悦

ninjinkun ninjinkun

皆さんはUIの実装を楽しんでますか?マークアップ、Webフロントエンド、GUI、ネイティブアプリ等、ドメインや技術は様々ですが、アプリケーションには必ずUIがあり、それを実装する作業があります。このUI実装の技術についてはよく語られる一方、UI実装者のモチベーションについてはあまり語られていません。本セッションでは発表者の15年ほどUIに関わってきた経験を通して、UI実装の魅力やどのように楽しめばいいのかをご紹介します。

話すこと

  • UI実装のモチベーション
  • UI実装技術の歴史
  • UI実装とUIデザインの関係

対象者

  • UI実装が楽しい人
  • UI実装が楽しくない人
  • UI実装者のモチベーションを知りたい人
3
トーク (40分)

Goでアクターモデルはどこまでできるのか

ex_takezawa ytake

Goは並行処理で知られていますが、アクターモデルを導入することで、
さらに洗練された並行処理ができるようになります。

このセッションでは、アクターモデルの基本的な考え方とGoで実装する際の具体的な手法と効果、
実際の導入例をもとに詳しく解説します。
メッセージベースのコミュニケーションを中心としたアクターモデルが耐障害性や拡張性にどのような影響をもたらすのか、
EIPについてやProtoActor、Ergoといったツールキットも交えてお話しします。
Goとアクターモデルの組み合わせによるすこしだけ違うプログラミングパラダイムを探求してみましょう!

3
トーク (40分)

愉快なEvent Sourcingアンチパターン

ex_takezawa ytake

言語を問わず利用できるEvent SourcingはCQRSとの組み合わせだけでなく、そのエッセンスは様々な仕組みに取り入れることができます。
マイクロサービスアーキテクチャ化、大規模なデータ処理の改善、CDC、
分散システム・リアクティブシステム構築などではほぼ必須のテクニックとなっています。
しかし、ネット上にある記事を鵜呑みにしてしまうと致命的なアンチパターンに繋がってしまうことも多くあります。
状態をもたせないイベントでマテリアライズドビュー化してしまう、
巨大なランタイムを持たせてしまったハンドラ、
分割しすぎて時系列を無視したイベントなどなど。
当然いくつかは実際にやってしまったこともありますが、
このセッションでは実体験をもとにEvent Sourcingとは何かを説明しながら、
何をすべきでやるべきでないのかを楽しくお話します!

3
トーク (20分)

趣味プログラミングを全力で楽しむ

sugyan すぎゃーん

「プログラミング楽しい!」という気持ちで今の世界に飛び込んで、15年以上が経ちました。何度かの転職も経て、業務で扱う言語も、流行りの技術も、様々な変遷をしてきました。また自分自身も加齢やライフステージの変化により生活スタイルなど大きく変わりました。

そんな中でも、今も昔もずっと変わらずに続けているのが「趣味プログラミング」です。
そのときそのときに興味を持ったものを題材として、自分の好きなようにコードを書き、自分の作りたいものを作る。自分だけのための「趣味」としてのプログラミングです。

ただ自分が楽しむためのものでしたが、その趣味プログラミングを通じて様々な学びがあり、出会いがあり、多くの経験を得ることができました。私のこれまでの趣味プログラミングの話、取り組むときの思考、起きた変化などを紹介し、趣味プログラミングの楽しさをお伝えし「プログラミングが好き」な仲間を増やしたいと思います。

7
トーク (20分)

隙間家具OSS開発で「自分の庭」をつくる

fujiwara 藤原俊一郎

「隙間家具OSS」は私が考えた言葉で、クラウドサービスやミドルウェアなど、システムを構成する大きなコンポーネントの間にあるちょっとした隙間をうまく繋ぐためのソフトウェア(特にOSS)のことです。

数年来、私は「隙間家具OSSを作るのが趣味です」と公言しています。そして、このような小さなソフトウェアをOSSとして開発し続けることで、ソフトウェアエンジニアとして生きていく上で、いろいろと重要なことを学べることを実感しました。

このトークでは、小さく実用的なソフトウェアを開発することを通して得られた「よいこと」をお伝えします。

8
トーク (20分)

開発チーム横断タスクフォース「Goサブ会」の運用事例と今後の展望

stefafafan すてにゃん

株式会社はてなでは長年の運用によりPerlでのWebアプリケーション開発知見は溜まっていますが、Goにおけるベストプラクティスが定められていません。Goを採用しているチームはそれぞれで試行錯誤しながら開発を進めています。

この状況を見かねて、Goにフォーカスしたチーム横断のタスクフォース「Goサブ会」を設立しました。社内外のGo知見の輸出輸入を活発に進められるような工夫を検討しながら実施しています。

またさらにここから分離した「標準化分科会」も少人数で実施し、社内でのGo Webアプリケーション開発におけるガイドラインの設立を目指して活動を進めています。

本セッションでは「Goサブ会」および「標準化分科会」オーナーである私から、どのようにしてこれらのタスクフォースを回しているのか、現在どのような成果が出ていて今後の展望としてどのようなことを考えているのか事例を交えつつ紹介いたします。

3
トーク (40分)

長年運用されているWebサービスと通信をするクライアントをGoで作ってみた話

commojun commojun

私は、今年で9周年を迎えたソーシャルゲームのサーバの保守・運用に従事しています。今回は、既存のサービスに対して新しい取り組みを行う模索として、Perlで動いているサーバに対してAPI通信を行ない、クライアントとして振る舞うプログラムをGoで書いてみるという挑戦をしました。このような挑戦をするに至った経緯や、ぶち当たった壁・それを通して感じたことなどをお話できたらと思います

話すこと

  • この挑戦をするに至る個人的キャリア上の動機
  • Perlで仕事を覚えた人間が、今Goに触れてみて感じたこと
  • 9年間熟成された、弊社独自のAPI仕様書を紐解いてみる
  • 初心者だからこそ、車輪の再発明をしないように気をつけよう!知名度のあるOSSに乗っかろう!…その気持ちが引き起こした失敗と成長
  • 同じ仕事を何年もやり続けて、なかなか挑戦の機会が与えられなくても、自分で挑戦の機会を作り出すことはできる
4
トーク (20分)

オンプレ時代のPerlアプリケーションのインフラをAWSマネージドサービスに移行しようとしたら色々事故った話

中村直人

SHOWROOMのサーバーサイドアプリケーションは、オンプレ時代のインフラを前提としたPerlのアプリケーションでした。

その後コストや運用負荷の観点から一部コンポーネントをAWSマネージドサービスへ移行したのですが、
その際さまざまな問題がありアプリケーション側の改修も含めてそれらを解決したので、
本発表ではその知見を共有したいと思います。

弊社ブログ「SHOWROOMインフラのマネージドサービス移行」の内容の一部を少し深くお話しする予定です。

8
トーク (20分)

事業とチームを支える適切な問題設定と技術の選び方 - Simple is Beautiful

soudai1025 曽根 壮大

今の時代、ソフトウェア無しでは事業の成長はありえません。
しかし、実際にソフトウェアを作るとなると様々なことを決める必要があります。
あのときの決断が技術的負債の根本原因になってしまった…そんな経験が自分もあります。

そこで今回は現場で技術選定を行ったり、ソフトウェアを作る時に必要な考え方やテクニックをご紹介します。

話すこと

  • シンプルとはなにか
  • 問題を解決するための技術選定の勘所
  • 小さく、素早く、リリースする
3
トーク (40分)

失敗から学ぶキャッシュの正しい歩き方

soudai1025 曽根 壮大

キャッシュはパフォーマンスを劇的に改善する効果がある反面、一度使うと簡単にはやめられない複雑性と中毒性があります。
その特性から「キャッシュは麻薬」と言われ、安易な利用は忌避されています。

しかし、キャッシュがもたらすパフォーマンスの改善効果は無視することはできず、コンピュータの世界において有効活用されているのも事実です。

そこで今回は実際にキャッシュを使う時に陥りやすい問題を取り上げながら、実際の活用例を説明します。

話すこと

  • キャッシュが有効な例と失敗例
  • キャッシュを実装パターンと始めるときの勘所

対象者

  • アプリケーション開発などでパフォーマンスに苦労したことがある人
  • キャッシュを利用したサービスの運用で苦労wしたことがある人
  • キャッシュを利用したことがないが、怖いなと思っている人
  • とにかく今すぐパフォーマンス改善したい人
11
トーク (40分)

手続き型プログラミングの手法によるクリーンアーキテクチャへの取り組み

ytnobody わいとん

このトークでは、私が実務でイチからバックエンドアプリケーションを開発する際に実践している手法について紹介します。

近頃私はTypeScriptでバックエンドAPIを開発していますが、今回はPerlで簡単な事例を作って解説する予定です。
決して真新しい内容ではないでしょうが、この技術選択をした背景と理由を交えたトークにします。

対象者 中級者~上級者向け

  • クリーンアーキテクチャの実践例を見たい方
  • 手続き型プログラミングの手法が気になる方
  • アプリケーション設計にの知見を深めたい方

話すこと

  • 技術選択の背景と目的
  • コンポーネント構成と依存関係
  • 純粋関数とビジネスロジック
  • 目的別のテスト
  • 利点と試行錯誤している箇所

深く話さないこと

  • クリーンアーキテクチャとDDDの定義
  • ビジネスロジックの定義
  • 細かいプログラミングのテクニック
5
トーク (40分)

Webアプリケーションのキャッシュ戦略とそのパターン

onk Takafumi ONAKA
onk

サブタイトル:「キャッシュは麻薬」という標語からの脱却

キャッシュは適切に使えば強い味方ですが、使い方を間違えると自分の足を撃ち抜くこともできます。まったく使わないと決めるのも、データ量やトラフィックのある Web アプリケーションでは不可能でしょう。

この発表では、キャッシュをパターン化し、各パターンにおいて、何を解決するのか、どういう実装になるのか、どんな落とし穴があるのか、を整理します。
「キャッシュは麻薬」として腫れ物を触るように扱うのではなく、自信を持ってキャッシュと付き合っていきましょう。

YAPC::Kansai 2017 OSAKA での @moznion さんのトークを本歌取りする発表です。
https://speakerdeck.com/moznion/pattern-and-strategy-of-web-application-caching

4
トーク (20分)

まずは一歩踏み出すCI/CDパイプライン

satoshi256kbyte Satoshi Kaneyasu

概要

CI/CDパイプラインとは何?なんのためにやるの?
やれば何がいいことがあるの?
やりたいけど何から始めるの?
大掛かりなことはできない・・・一部だけ実装することはできないの?
というお話をします。

対象者

  • リリースの失敗を体験されたことがある方
  • 開発プロセスに改善の必要性を感じている方
  • CI/CDパイプラインにちょっと興味のある方

    アウトライン

  • CI/CDパイプラインの意義と全体像
  • 思ってたのと違うのが出てる!?を防ぐ
  • すぐに戻せるようにする
  • デプロイに承認ワークフローを設ける
  • ケアレスミスを自動でチェックしてコードレビューをちょっと楽に
  • ビルド環境を固定化する
  • SQLインジェクションやXSSの脆弱性をできるだけ自動で拾う
  • ステップカウントや複雑度を自動で計測
  • 様々なデプロイ戦略を構築する
  • DevOpsに繋げる
1
トーク (20分)

やってこ! ぼくらの社内DX

kyokucho_1989 kyokucho1989

これからはDXの時代! なんでもかんでもデジタルにしたい! そんな波に乗っかり、私もやりたいことをやることにした。

しかしそこに立ちはだかるのは、金、人、時間の壁!
いかにわたしは社内DXをやり遂げたのか?!

実際はいまから(2023/9)やっていくので、登壇するときに詳細を話します

1
トーク (40分)

RubyVM を PHP で実装する〜Hello World を出力するまで〜

m3m0r7 めもり〜

YAPCのPは任意のP。みなさんは何かしらのVM(Virtual Machine)を作ったことがあるでしょうか。私自身は過去にPHPでJVM(Java Virtual Machine)を作ったことがあります。現職はRuby on Railsがメインの企業です。PHPを主にやってきた私がRubyの気持ちを理解するにはひと工夫必要だと考えました。そこで,過去にPHPでJVMを作ったことがある経験を活かし,RubyVMを自作してRubyの気持ちを理解し学習速度を加速させようという考えに至りました。本トークではPHPでどのようにVMというものを作るのか,そしてRubyVMはどのように作っていくのかを,初心者でも「ちょっとわかったかも」と思えてもらうことをゴールとして解説します。もちろんPHPで実装できるということはPerlでも実装可能です。もし興味を持たれたらぜひPerlで実装してみてください。

2
トーク (20分)

Perlの未定義な振る舞い100連発

__papix__ papix

概要

perldocを見ていると, 「振る舞いは未定義です」といった表現が見られることがあります. Perlには文法的には正しくて実行できるものの, その振る舞いが未定義である場合がいくつかあるのです.
このトークで改めて「Perlの未定義な振る舞い」について振り返ってみましょう. 実はこれ, 振る舞いが未定義だって知っていました?

※ タイトルは「100連発」ですが, 実際に未定義な振る舞いを100個紹介することを保証するものではありません. ご了承ください

アジェンダ

  • 「未定義な振る舞い」とは?
  • 実例の紹介
  • よくやりがちな「未定義な振る舞い」
  • 「未定義な振る舞い」を避けるには?
7
トーク (20分)

「お好み」の業務効率化、Slackボット開発と業務改革 〜宮島フレーバー〜

pyama86 P山

私たちの日々の業務運営におけるSlackの役割は極めて重要であり、それは情報の伝達やコミュニケーションの場として、私たちの仕事の中核に位置付けられています。

このセッションでは、Slackを組織で上手に活用するために、私がどのようにして自社のSlackボットを開発し、日々の業務に導入したかを共有します。具体的には、

  • 離席時やランチタイムのSlack代理応答
  • フリーテキストクエリをGPT-4に投げることができる機能
  • 一定のトリガーに基づきSlackから直接issueを作成
  • OpenStackの操作

などについて紹介します。
また、これらのボットを開発・導入することで得られた具体的な利益や生産性の向上、更には仕事の進め方の変革について紹介し、最終的な目標は、皆さんが自社の業務にもこれらのテクニックを用いて、業務改革を実現するためのインスピレーションを得られることです。

7
トーク (40分)

"LIKE"を実現に導くために

ariaki4dev ariaki

概要

カンファレンスや勉強会に参加して感動したり、あなたの人生を変えるような何かに出会ったことありますか?
あなたが好きだと感じたその場所が、いつか衰退して永久に失われてしまったら悲しいですよね。
しかしあなたは自身の"LIKE"を守るためいつでも行動をおこすことができます。
このセッションでは、コミュニティ運営を事例にして、自身が成し遂げたいと思った"LIKE"を実現に導くための道のりを紐解きます。
私が複数コミュニティを運営するなかでどんな困難を感じてどう乗り越えてきたかなどの経験を踏まえながら、何かを始めたり継続するために必要なマインドや行動のエッセンシャルをお伝えします。

アジェンダ

  • "LIKE"を言語化し伝えよう
  • "LIKE"を実現するために行動しよう
  • もしも挫折したときは
  • コミュニティ運営は初心者でもはじめられる
4