プログラムのインターフェースは適切に設計できれば柔軟で、再利用しやすく保守性の高いプログラムを生み出せる一方で、設計が不適切だと不要な複雑性をプログラムやその周辺に生み出し、その保守性に大きな悪影響を及ぼしてしまいます
今回のトークでは名著と名高いA Philosophy of Software Design(APoSD)の内容を追いかけながらソフトウェアの設計とその先にあると著者が示唆する「深いモジュール」について考察し、理解を深めていきます
全プログラマー必見、累計発行部数20万部越えの名著「リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック」について、
ギュギュギュっと圧縮してサマリーをお伝えします!!
「リーダブルコード」をまだ読んでない方は、このトークでリーダブルコードのエッセンスを学ぶことができます。
もううろ覚えになっちゃっている方は、このトークで記憶の彼方から思い出すためのよいおさらいになるでしょう。
リーダブルなコードを書くエッセンスを持ち帰っていただけるLTになること保証します!
このトークは、オライリー・ジャパン出版の名著「SQLアンチパターン」で紹介されている25のアンチパターンを「超特急」で学ぶものです。
わずか5分のLTで、25個のアンチパターンをおさらいします。スピード感のある超特急LTをお楽しみください。
大事なところだけをギュッとして、明日からすぐ使える知識としてお届けできたら幸いです。
実行中のPHP スクリプト内部は様々な配列やオブジェクト、文字列にその他スカラ値といった値の飛び交う混沌とした空間で、ふつうの PHP プログラマーは何がどうなっているかを詳細に把握することなく、けっこう漠然としたイメージでスクリプトの状態をとらえつつ日々の仕事をこなしています。トラブルシュートのためにデバッガやログから局所的なデータの流れを追いかけることはあっても、全体として「スクリプトの状態」がどんな形のものなのか、のイメージを持っている人は少ないことかと思います。
このトークでは自作のメモリ解析ツール Reli を活用し、実行中の PHP スクリプトの内部状態を様々な形で見える化していく方法を紹介します。SQL でスクリプトの状態を問い合わせて表にしたり、データ可視化ライブラリを使って超かっこいいグラフを見せたりします。
Webサービスではプロフィールアイコンや記事画像、そのサムネイルなど、さまざまな場面で画像ファイルを取り扱います。画像ファイルは、とりあえずアップロードできて、表示できれば十分でしょう、と思われがちですが、どのような形式でどこに保存するか、どうやってユーザーに配信するか、どのようにして配信する形式に変換するか、実際には多くの考慮すべき点があります。
この発表では、Webサービスにおいて、ユーザーがアップロードした画像を保存し、適切な形式に変換し、それをユーザーのもとに配信する一連のプロセスに焦点を当てます。画像フォーマット、セキュリティ、PHPでの実装、ストレージ、CDNの利用方法など、各段階での重要なポイントをまとめ、考慮すべき要素を紹介します。
curlはさまざまな通信規格に対応しているデータ転送ソフトウェアであり、PHPにもcurl関数が用意されています。本発表では、PHPでHTTPS接続する方法の1つとしてcurl関数を利用できることだけでなく、常時SSL/TLSが普及した現代においてあらかじめ知っておきたいcurl関数のオプションや、サーバー接続テストを行うためのcurlおよびopensslコマンドの使い方、Webサーバー設定時のポイントなども紹介する予定です。
コードレビューは単なるエラー探しではありません。それはチーム全体の成長と製品の品質を高めるための共同作業です。
『コードレビュー、時間がかかりすぎてなかなか進まない...』『レビューで指摘されることが多く、コードの品質に自信が持てない...』『ドキュメントやコメントが不足していて、コードの意図を理解するのが難しい...』こんな悩みを抱えてはいませんか?
このセッションではPHPプロジェクトにおけるコードレビューの効率化と品質向上のために行った取り組みについて紹介します!
現在HTTP Cacheに関するRFCは7234...ではありません。2022年に改訂され、RFC9111 HTTP CachingとしてInternet Standardになっています。
本発表ではRFC9111、特に共有キャッシュについて見ていきます。
プロキシサーバのアップストリームに位置するWebアプリケーションとしてどうすればキャッシュをしてくれるのか、もしくは拒否できるのか。理解すれば、実装にはよりますが少なくともRFCに沿った議論ができるようになります。
発表者はRFC9111に沿ったキャッシュミドルウェアを実装しています。
https://github.com/2manymws/rc
そのため、実装経験に基づいた紹介ができます。
(なお、2024年3月現在rfc9111で検索して出てくるのは我々のリポジトリだけ)
この機会に「RFC9111完全に理解した」になりましょう!
初学者向けの内容です。
暗号化とハッシュ化とは、それぞれどのようなものか。どういう性質があり、どのように使われているのか。また、電子署名とはどのようなものか。
ごく簡易的なサンプルコードを用いながらお話しします。
Laraveler のみなさん、アプリのセキュリティ、気にしてますか?
何となく「Laravel がよしなにやってくれてる」で片付けてませんか?
安心してください、私もです。
XSS、CSRF、SQLインジェクション、セッションハイジャック、ファイルアップロード脆弱性、ログイン機構に対する攻撃、etc。
今回は、これらそれぞれの攻撃に対して、Laravel が何をしてくれているのか、その実装を追っていきたいと思います。
思わぬ落とし穴も見つかるかもしれません。
composer require "laravel/laravel"
コマンド一発でライブラリをインストールできる composer 、便利ですよね。
ところで composer 、なぜ世界中のライブラリが「名前」だけでインストールできるのか、ご存知ですか?
自分で作った便利ツールやモジュールも、composer でインストールできるようにして、みんなに使ってもらえるようにしませんか?
昨今PHPStanの活躍する現場が増えていますが、PHPStanがつけてくださる型の気持ちが理解できないという方も多くないのではないでしょうか。
無保証のツールなので懇切丁寧なマニュアルや顧客サポートがないので、適切に使いこなすには少なからず内部の仕組み、特に型付けのための仕組みを知っていることが望ましいです。
PHPStanの技術的な背景には型理論や構文解析などややこしい概念がありますが、実際のところ使うだけなら難しい知識はさほど必要なく、貢献の余地もたくさんあります。
今回のトークでは基礎知識と過去の事例も含めて以下のようなお話をします。
オープンソースソフトウェア(以下OSS)は現代において非常に重要な役割を担っています。業務として、あるいは趣味として、すでに貢献している方やこれから貢献したい方がいると思います。
ところで、OSSへの関わり方は非常に多様です。簡単なものでは誤字脱字の指摘から、機能追加やバグ修正、果ては自作OSSの開発まで、正解はありません。
発表者は機能要望や誤字脱字の修正からOSSに関わり始めました。その後個人的な目的のために小さなOSSを自作するようになり、自身の技術力向上に伴い有名プロジェクトへの機能追加もするようになりました。現在は一定のユーザーを抱えるOSSプロジェクトを運営するようになり、私以外のコミッターと一緒に開発しています。この発表では私個人の経験を通じて、多様なOSSへの関わり方を考えていただく一助にしたいと思います。
弊社では、今までエンジニア採用において約6~7割未経験採用をしてきました。その中でほとんどの方が早期離脱をせずに長く働いてくれました。
そこで、プログラミング未経験の人にどのような点を期待して採用しているのか?なぜ未経験エンジニアを採用するのか?などを中心に話していきたいと思っています。
アジェンダ
1.なぜ企業は未経験エンジニアを採用するのか?
2.未経験エンジニアの採用観点
3.未経験エンジニアに期待すること
4.どうやって未経験エンジニアを育てるのか?
皆さん、他社のエンジニア評価制度がどのように設計されて作られているか気になりませんか?
今回は私が0からエンジニア組織を立ち上げて、評価制度作りを行なった事例も交えて説明していきます。
アジェンダ
1.会社は評価制度をなぜ作るのか?
2.他社の評価制度の事例
3.弊社が評価制度を作った流れや設計方針
認知負荷 や ワーキングメモリ という概念があります。
「良いコード」や「プロジェクトチームの管理」といったお話の中でも、しばしば取り上げられるものです。
見聞きした事がありましょう?
ソフトウェアや組織、対人関係──とかく我々の日常は、形のないものに溢れ返っていて、
「いかに認知が生まれ、阻害され、思考が展開するのか」は、非常に重要な事柄です。
ここで一度、「認知負荷」や「ワーキングメモリ」について、基礎の基礎をおさらいしてみませんか?
その上で、我々の現場に立ち返っての「ヒント」を共有します
「余裕ができたらリファクタリングしたい」と思ったままいつまで経ってもリファクタリングできないまま、そんな経験は多くの開発者に共通するのではないでしょうか。リファクタリングがあたりまえではなくなってしまった場所でリファクタリングの火を灯すにはいったい何からはじめるといいのでしょうか。このトークでは、まだリファクタリングの成功体験が少ない人や、やりたいと思っているが最初の一歩がわからないという人の背中を押せるような、リファクタリングのはじめかた、そしてリファクタリングをあたりまえにする生き方について、ふだん考えていることをお話しできればと思います。
このトークはユーティリティファーストCSSフレームワークと呼ばれる Tailwind CSS をまだ触ったことのない人や、うまく使えていない気がする人向けに解説するものです。ですが、「こう書くと使えます」というようなハウツーではなく、「Tailwind CSSってこういうツールなんだ」という概念の理解に重きをおきます。
たとえTailwind CSSを使うことがなくても、巷で話題のツールがいったいどんな役割のものでどんな特徴があるのか、Tailwind CSSとは何であり何でないのか、ということをわかっておくことは、その他の技術選定の場面で役に立つでしょう。
Webフロントエンドのテストは書けていますか?
去年は「DOMのテストがどんどん書きたくなる Testing Library の世界への招待」 という発表をさせていただきました。
あれから1年経ち、「本番でユーザーに使ってもらう」に近づけたテストをおすすめしたことは、やはり間違っていなかったという思いを新たにしています。Webフロントエンドのテスト文脈で台頭しつつある新興のツールも、そのようなアプローチに寄ったものが増えてきているからです。
このトークでは、去年の発表から重要なエッセンスを取り出したうえで、新興のツールの潮流から、フロントエンドのテストはどこへ向かっているのかということを考えてみたいと思います。特定のライブラリやツールのハウツーではなく少しメタ的な話になると思いますが、テストについて改めて考えるきっかけを提供できれば幸いです。
Web アプリケーション開発に携わっていると、一度は OAuth という技術を耳にしたことがあるのではないでしょうか?
特に、 Laravel Passport のような、フレームワークの認証ライブラリについて調査しているときに OAuth という単語も見かけることがあると思います。
OAuth は 認可のためのプロトコル です。
しかし、そもそも認可とは何で、どのような機能を実現するものでしょうか?
そして、どのような場面で利用されるものなのでしょうか?
本トークでは、 OAuth について触れたことがない方を対象に、以下の内容についてお話しします。
本トークを通じて、 OAuth がみなさんの課題解決に役立つかを判断する助けになれば幸いです。