開発に携わりコミットを続けているオープンソースCMSであるbaserCMSの歴史を辿り紹介します。
東京に予定があったため、私はロマンスカーが来るのを待っていた。
数分ほどすると、ロマンスカーの到着を知らせるアナウンス音が流れ始めたので、ボーッと目の前のドアが開くのを待っていた。
ティントン。ティントン。ティントン。
電車のドアがあく音。
ドアは、開かなかった。
「あれ?」と周りを見渡すと、そんなことはなくて、私の目の前にあるドアが開かなかったのだ。
そう、7号車の前のドアは開かなかったのである。そうか、なんか開くドアと開かないドアがあるのか、と少し先まで歩いて電車に乗った時、私は閃いた・・・・・。
「MVCのその先へ」
話すこと
・Controllerとは何で、Modelとは何であるか
・MVCだけでは表現しきれない世界(アーキテクチャ)を表現する
・もし”奇数号車”のドアしか開かなかった場合、どこのレイヤーに変更があると嬉しいのか
エンジニアとして始めて少しすると必ず知る概念、それが「デザインパターン」です。
私も新卒の頃、輪読会としてデザインパターンの本を読みました。そして、その知識を持て余したものです。
”デザインパターンを勉強しよう”で知ったデザインパターンは、その適用に失敗することの方が多い様に感じます。
「道具として自然に出てくること」が大事であること、そして「道具としてもう使われないものもあること」を認識するのが大切です。
本セッションでは、新卒の頃の私に伝えたい、デザインパターンとの向き合い方と、共通言語として今でも使うデザインパターンをピックアップしてまとめます。
話すこと
・デザインパターンとの向き合い方(共通言語として”デザインパターン”を知っておく)
・今では使わないデザインパターン、それはなぜか
・今でも使うデザインパターン
※GoFのデザインパターンのことを指します。
自分が作っているサービスの顧客と話したことはありますか?
ユーザーが自分の作っているサービスを触っている所を見たことがありますか?
かつての私はただコードを書いているだけのエンジニアでした。
作ったものが使われない、キョムリリースをしているエンジニアでした。
そしてアジャイル・スクラムと出会い、自分はプロダクト・顧客と全く向き合えていないことに気づきました。スクラムのプロセスを通じて、開発プロセスの改善、そしてその先の”顧客と対話”ができるまでの話をします。
「ただコードを書いているエンジニア」が、「ユーザーと話にいきたい、いくぞ」と一歩を踏みだせる話をします。
話すこと
・キョムリリースはなぜ生まれるか
・エンジニアが顧客とコミュニケーションをする
・顧客との対話を通じて得られた洞察やフィードバックとプロダクトの改善
Webでリアルタイムで双方向の通信をしたいとき、どうしますか?
サーバー上でのデータの更新を知りたいとき、
最もシンプルな方法といえばポーリングですよね。
一定時間おきにブラウザからアクセスをするだけで済みます。
ただ一方で、その通信・処理の大部分が無駄になってしまう方法でもあります。
この問題を解決するのがServer-Sent Eventsです。
SSEは必要な時だけサーバーサイドから通信を行える仕組みです。
このトークではSSEを使うにあたって必要な知識やTipsをお伝えします。
話すこと
・ SSEの基本
・ 他の手法との比較
・ Laravelとの組み合わせについて
こんな人におすすめ
・ ポーリングをやめたいな〜と思っているひと
・ SSEに興味があるひと
2024年1月、「なぜキャッシュメモリは速いのか」が話題になりました。
この質問に答えるのはなかなか難しく、X(Twitter)ではいろいろな回答がされていました。この回答はさまざまな立場・理解からされていて、Xのタイムラインをご覧になっていた方はいまいちしっくりこなかったのではないでしょうか。
このトークでは「なぜキャッシュメモリは速いのか」に答えるのに必要な知識を、初心者の方にもわかりやすくご説明します。
キャッシュの使いこなしは現代コンピュータにおいて避けることはできず、キャッシュを制するもののみがコンピュータを高速に動作させられると言っても過言ではない状態です。キャッシュを理解し、キャッシュを楽しみましょう!
APIを作るとき、あなたはどんな技術を使いますか?REST API?GraphQL?えっ、SOAP…!!?
gRPCは、Googleによって開発されたオープンソースのリモートプロシージャコール(RPC)フレームワークで、多くの言語で使用でき、高効率なマイクロサービス間通信を実現できます。
このセッションでは、gRPCのインタフェース記述言語(IDL)であるProtoBufの基本、gRPCの通信パターン、PHPにおける実例と、導入にあたっての注意点についてお伝えします。
WordPressの機能の一つにブロックエディタというものがあります。
ブロックエディタはカスタマイズ性や柔軟性が非常に高く、デザインの編集など、管理画面上で殆どの対応が完結します。
ブロックエディタは管理画面上での編集のみならずコードベースでの管理もすることができます。
しかしながら、コードベースで管理する方法についてWeb上で検索すると不十分な公式ドキュメントしか見つかりません。
機能を十分に使うにはWordPress本体のコードを読むしかなく、ベストプラクティスのようなものも自分が知る限りでは存在していないようです。
今回のトークでは、実際に自分が初期導入から実装までやった経験を踏まえて、どのように開発していけば良いのかの一例をご紹介します。
想定対象者
学生時代からいままでの約10年でITコミュニティの参加、活動の中でよかったことを話します。経験値アップや業界人とのつながりでの良い刺激など魅力をお伝えしたいです。
・過去に参加、活動したイベント、コミュニティ
オープンソースカンファレンス
baserCMSコミュニティ
PHPカンファレンス
その他勉強会など
多くの開発者は手元のマシンでPHPで開発をする際Package Manager経由でPHPをインストールしているはずです。
長年プログラミングをしている方なら brew update を叩いたらPHPが壊れるといった経験をしたことがあるはずです。
バージョン競合が発生しやすいため環境依存性や再現性や安定性に課題があります。
本登壇ではNixというPackage Managerの紹介をします。
NixはAtomicなInstallが可能であり、他Packageとの依存がないので何もしてないのに壊れたという状況が起こりえません。
PackageのBuild Scriptを宣言的に記述することができ、Rollbackも簡単に行うことができます。
想定聴講者
みなさんフロントエンドのフレームワークは何を使っていますか?
このトークではReactやVue.jsなどに次ぐ
第3のフレームワークとして注目を集めているSvelteをご紹介します。
LaravelとSvelteを組み合わせたときに他と比べてどんな良いことがあるのか、
具体例も交えながらSvelteの魅力をたっぷりお伝えします。
話すこと
・ Svelteの特徴
・ Laravelとの組み合わせについて
・ 他のFWや組み合わせとの比較
こんな人におすすめ
・ Svelteに興味があるひと
・ フロントエンドFWをアップデートしたいひと
・ フロントエンドをもっと簡単にもっと良くしたいひと
私がいるチームであるBASE BANKでは、フルサイクルエンジニア(Full Cycle Developers)のというスタンスを掲げています。
フルサイクルエンジニアは、よりスピーディにプロダクトアウトプットし続けるためにソフトウェアライフサイクルの一連の流れを価値提供に関わるエンジニア、チームが責任を持ち、実行できるようにしようというスタンスです。
今回のセッションでは、フルサイクルエンジニアについて簡単に説明しつつ、BASE BANKではフルサイクルエンジニアとしてどのような取り組みをしているのか具体例をお話します。
今回のセッションで話すこと
みなさん様々な環境にPHPのアプリをデプロイしていることと思います。
PHPコミュニティでは、Azureを使った事例はあまり公開されていないように思います。
AzureにもPHPをデプロイするのに適した良いサービスがたくさんあるのですが、「Azureはどこから手をつけていいかわからない...」といった話を聞くことも多いです。
そこで、このセッションでは、AzuereでPHPを含む今時なWebアプリケーションを動かすことのできる様々な環境を比較しつつご紹介しようと思います。
想定する聴講者
PHPをAzureで利用する環境に興味がある方
Azureには興味があるが、どこから手をつけて良いかわからない方
Azure初心者〜中級者の方
2024/02/02 にPHPUnit 11がリリースされました。
前回のPHPUnit 10ほど変更量はありませんが、それでも無視できない変更がいくつかあります。
例えばデータプロバイダーからの名前付き引数が使用できるようになったり、Deprecatedになったメソッドが20個近くあったり・・・
今回のトークではPHPUnit 11で何が変わったのか、changelogベースで解説していきます。
必要に応じて、実際に動かしたりしながらの解説もしていきます。
https://github.com/sebastianbergmann/phpunit/blob/11.0/ChangeLog-11.0.md
https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-11.1.md
パーソナルコンピュータの普及やスマートフォンの普及によって日本語入力をしていない日本人は殆どいないくらいコンピュータに日本語が入力されています。
ソフトウェアへの日本語入力を支えている技術にIME(Input Method Editor)というものがあります。
コンピュータ上ではローマ字入力、スマートフォン上ではフリック入力が一般的ですが世の中には様々な日本語入力方法があります。
本登壇ではIMEの基本的な仕組みについての解説をした上で、SKKや親指シフトや月配列などマニアックな日本語入力を紹介して日本語入力の魅力について話します。
また、今後の日本語入力がどう変化していくのかその可能性や課題について考察します。
想定聴講者
GAE(Google App Engine)は古くからあるPaaSで、PHPが利用可能です。
2024年1月末を持って、gen1 と呼ばれていた古い仕組みのサポートが終了するため、個人開発して細々と運用してきたWebサービスも重い腰をあげて gen2 PHP8.2へ移行することにしました。
そして1年間、隙間時間で少しずつ対応して gen2 PHP8.2 で動作するようになりました。
このセッションでは同じようにまだgen1で動いているサービスをgen2に上げたい人や、
これから GAE gen2 を使ってみたい、興味がある人をターゲットにしています。
について話します。
このトークでは、アプリケーション開発者とデータ利用者との協業をスムーズにするためのアイデアを紹介します。
データベースに蓄積されたデータは、分析や集計、機械学習といったデータ活用を行うことでその真価を発揮します。
データ活用を行うのはWebアプリケーションの開発者ではなく、データアナリストやデータエンジニア、関連部署の社員(あるいは未来の自分)など、そのデータベースにあまり詳しくない人の場合が多いでしょう。
このトークでは、そういったデータ利用者にとって優しい(最短で理解できる)データベースをどのようにしたら実現できるのかについて、アプリケーションエンジニアからデータエンジニアに転身した筆者の目線からお話します。
【トーク例】
・自動でER図を生成! SchemaSpy!
・Enum値は文字列で保存してクレメンス
・データパイプラインが止まっちゃった! XXする時は教えてくれ!
サイボウズのGaroon開発チームは日本とベトナムにそれぞれ拠点があり、ベトナム拠点には70名以上のメンバーが在籍しています。
やりとりは主に英語でしていますが、日本メンバーもベトナムメンバーも英語は母語ではない人がほとんどです。
そんな日本メンバーとベトナムメンバーはどうやってコミュニケーションをとって開発を進めているのでしょうか?
ミーティングはどうしてる?なんでベトナム?ぶっちゃけコミュニケーションコスト高くない?
このトークではそんなGaroon開発チームの開発事情を赤裸々にお話しします!
■ 話すこと
LaravelやSymfonyで開発を行う際、デバッグ時にdd()をよく使います。
様々なオブジェクトを入れても表示してくれるし、ブラウザアクセスやコマンドなど実行形式に応じて表示もよしなに変えてくれるなんで便利ですよね!
ddそのものは各FW側のヘルパ関数として作られていますが、中身を見ると共通してSymfonyComponentであるVarDumper::dumpが呼ばれています。
このトークでは各FWで使われているsymfony/var-dumperライブラリの中身がどのような作りになっているかを追いかけます。
エンジニアにとってドキュメンテーション・技術ブログ・業務でのチャットコミュニケーションなど文章を "書く" 技術は重要ですよね。
とはいえエンジニアは文章の専門家ではありません。そのため文章を書くのに苦手意識を感じつつ悪戦苦闘している人も多いのではないでしょうか。
テキストアウトプットはメリットが多い、にもかかわらず文章術の学び方やノウハウはあまり出回っていません。
今回はブログがバズってるわけでもなく文章で食ってるわけでもない私が、苦手意識を克服して普通に書けるようになるまでに学んだことを振り返ってみます。
普通のエンジニアが普通の文章を書く技術を知って、テキストアウトプットのメリットを享受しませんか。