皆さんはUIの実装を楽しんでますか?マークアップ、Webフロントエンド、GUI、ネイティブアプリ等、ドメインや技術は様々ですが、アプリケーションには必ずUIがあり、それを実装する作業があります。このUI実装の技術についてはよく語られる一方、UI実装者のモチベーションについてはあまり語られていません。本セッションでは発表者の15年ほどUIに関わってきた経験を通して、UI実装の魅力やどのように楽しめばいいのかをご紹介します。
話すこと
対象者
Goは並行処理で知られていますが、アクターモデルを導入することで、
さらに洗練された並行処理ができるようになります。
このセッションでは、アクターモデルの基本的な考え方とGoで実装する際の具体的な手法と効果、
実際の導入例をもとに詳しく解説します。
メッセージベースのコミュニケーションを中心としたアクターモデルが耐障害性や拡張性にどのような影響をもたらすのか、
EIPについてやProtoActor、Ergoといったツールキットも交えてお話しします。
Goとアクターモデルの組み合わせによるすこしだけ違うプログラミングパラダイムを探求してみましょう!
言語を問わず利用できるEvent SourcingはCQRSとの組み合わせだけでなく、そのエッセンスは様々な仕組みに取り入れることができます。
マイクロサービスアーキテクチャ化、大規模なデータ処理の改善、CDC、
分散システム・リアクティブシステム構築などではほぼ必須のテクニックとなっています。
しかし、ネット上にある記事を鵜呑みにしてしまうと致命的なアンチパターンに繋がってしまうことも多くあります。
状態をもたせないイベントでマテリアライズドビュー化してしまう、
巨大なランタイムを持たせてしまったハンドラ、
分割しすぎて時系列を無視したイベントなどなど。
当然いくつかは実際にやってしまったこともありますが、
このセッションでは実体験をもとにEvent Sourcingとは何かを説明しながら、
何をすべきでやるべきでないのかを楽しくお話します!
「プログラミング楽しい!」という気持ちで今の世界に飛び込んで、15年以上が経ちました。何度かの転職も経て、業務で扱う言語も、流行りの技術も、様々な変遷をしてきました。また自分自身も加齢やライフステージの変化により生活スタイルなど大きく変わりました。
そんな中でも、今も昔もずっと変わらずに続けているのが「趣味プログラミング」です。
そのときそのときに興味を持ったものを題材として、自分の好きなようにコードを書き、自分の作りたいものを作る。自分だけのための「趣味」としてのプログラミングです。
ただ自分が楽しむためのものでしたが、その趣味プログラミングを通じて様々な学びがあり、出会いがあり、多くの経験を得ることができました。私のこれまでの趣味プログラミングの話、取り組むときの思考、起きた変化などを紹介し、趣味プログラミングの楽しさをお伝えし「プログラミングが好き」な仲間を増やしたいと思います。
「隙間家具OSS」は私が考えた言葉で、クラウドサービスやミドルウェアなど、システムを構成する大きなコンポーネントの間にあるちょっとした隙間をうまく繋ぐためのソフトウェア(特にOSS)のことです。
数年来、私は「隙間家具OSSを作るのが趣味です」と公言しています。そして、このような小さなソフトウェアをOSSとして開発し続けることで、ソフトウェアエンジニアとして生きていく上で、いろいろと重要なことを学べることを実感しました。
このトークでは、小さく実用的なソフトウェアを開発することを通して得られた「よいこと」をお伝えします。
株式会社はてなでは長年の運用によりPerlでのWebアプリケーション開発知見は溜まっていますが、Goにおけるベストプラクティスが定められていません。Goを採用しているチームはそれぞれで試行錯誤しながら開発を進めています。
この状況を見かねて、Goにフォーカスしたチーム横断のタスクフォース「Goサブ会」を設立しました。社内外のGo知見の輸出輸入を活発に進められるような工夫を検討しながら実施しています。
またさらにここから分離した「標準化分科会」も少人数で実施し、社内でのGo Webアプリケーション開発におけるガイドラインの設立を目指して活動を進めています。
本セッションでは「Goサブ会」および「標準化分科会」オーナーである私から、どのようにしてこれらのタスクフォースを回しているのか、現在どのような成果が出ていて今後の展望としてどのようなことを考えているのか事例を交えつつ紹介いたします。
私は、今年で9周年を迎えたソーシャルゲームのサーバの保守・運用に従事しています。今回は、既存のサービスに対して新しい取り組みを行う模索として、Perlで動いているサーバに対してAPI通信を行ない、クライアントとして振る舞うプログラムをGoで書いてみるという挑戦をしました。このような挑戦をするに至った経緯や、ぶち当たった壁・それを通して感じたことなどをお話できたらと思います
話すこと
SHOWROOMのサーバーサイドアプリケーションは、オンプレ時代のインフラを前提としたPerlのアプリケーションでした。
その後コストや運用負荷の観点から一部コンポーネントをAWSマネージドサービスへ移行したのですが、
その際さまざまな問題がありアプリケーション側の改修も含めてそれらを解決したので、
本発表ではその知見を共有したいと思います。
弊社ブログ「SHOWROOMインフラのマネージドサービス移行」の内容の一部を少し深くお話しする予定です。
今の時代、ソフトウェア無しでは事業の成長はありえません。
しかし、実際にソフトウェアを作るとなると様々なことを決める必要があります。
あのときの決断が技術的負債の根本原因になってしまった…そんな経験が自分もあります。
そこで今回は現場で技術選定を行ったり、ソフトウェアを作る時に必要な考え方やテクニックをご紹介します。
キャッシュはパフォーマンスを劇的に改善する効果がある反面、一度使うと簡単にはやめられない複雑性と中毒性があります。
その特性から「キャッシュは麻薬」と言われ、安易な利用は忌避されています。
しかし、キャッシュがもたらすパフォーマンスの改善効果は無視することはできず、コンピュータの世界において有効活用されているのも事実です。
そこで今回は実際にキャッシュを使う時に陥りやすい問題を取り上げながら、実際の活用例を説明します。
このトークでは、私が実務でイチからバックエンドアプリケーションを開発する際に実践している手法について紹介します。
近頃私はTypeScriptでバックエンドAPIを開発していますが、今回はPerlで簡単な事例を作って解説する予定です。
決して真新しい内容ではないでしょうが、この技術選択をした背景と理由を交えたトークにします。
対象者 中級者~上級者向け
話すこと
深く話さないこと
サブタイトル:「キャッシュは麻薬」という標語からの脱却
キャッシュは適切に使えば強い味方ですが、使い方を間違えると自分の足を撃ち抜くこともできます。まったく使わないと決めるのも、データ量やトラフィックのある Web アプリケーションでは不可能でしょう。
この発表では、キャッシュをパターン化し、各パターンにおいて、何を解決するのか、どういう実装になるのか、どんな落とし穴があるのか、を整理します。
「キャッシュは麻薬」として腫れ物を触るように扱うのではなく、自信を持ってキャッシュと付き合っていきましょう。
YAPC::Kansai 2017 OSAKA での @moznion さんのトークを本歌取りする発表です。
https://speakerdeck.com/moznion/pattern-and-strategy-of-web-application-caching
CI/CDパイプラインとは何?なんのためにやるの?
やれば何がいいことがあるの?
やりたいけど何から始めるの?
大掛かりなことはできない・・・一部だけ実装することはできないの?
というお話をします。
これからはDXの時代! なんでもかんでもデジタルにしたい! そんな波に乗っかり、私もやりたいことをやることにした。
しかしそこに立ちはだかるのは、金、人、時間の壁!
いかにわたしは社内DXをやり遂げたのか?!
実際はいまから(2023/9)やっていくので、登壇するときに詳細を話します
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で実装してみてください。
perldocを見ていると, 「振る舞いは未定義です」といった表現が見られることがあります. Perlには文法的には正しくて実行できるものの, その振る舞いが未定義である場合がいくつかあるのです.
このトークで改めて「Perlの未定義な振る舞い」について振り返ってみましょう. 実はこれ, 振る舞いが未定義だって知っていました?
※ タイトルは「100連発」ですが, 実際に未定義な振る舞いを100個紹介することを保証するものではありません. ご了承ください
私たちの日々の業務運営におけるSlackの役割は極めて重要であり、それは情報の伝達やコミュニケーションの場として、私たちの仕事の中核に位置付けられています。
このセッションでは、Slackを組織で上手に活用するために、私がどのようにして自社のSlackボットを開発し、日々の業務に導入したかを共有します。具体的には、
などについて紹介します。
また、これらのボットを開発・導入することで得られた具体的な利益や生産性の向上、更には仕事の進め方の変革について紹介し、最終的な目標は、皆さんが自社の業務にもこれらのテクニックを用いて、業務改革を実現するためのインスピレーションを得られることです。
カンファレンスや勉強会に参加して感動したり、あなたの人生を変えるような何かに出会ったことありますか?
あなたが好きだと感じたその場所が、いつか衰退して永久に失われてしまったら悲しいですよね。
しかしあなたは自身の"LIKE"を守るためいつでも行動をおこすことができます。
このセッションでは、コミュニティ運営を事例にして、自身が成し遂げたいと思った"LIKE"を実現に導くための道のりを紐解きます。
私が複数コミュニティを運営するなかでどんな困難を感じてどう乗り越えてきたかなどの経験を踏まえながら、何かを始めたり継続するために必要なマインドや行動のエッセンシャルをお伝えします。