PRのコメントで、「テスト後で書きます!」やコードに「// TODO: テストを追加する。」といったやりとりを一度は見たことあるかと思います。
しかし実際に後でテスト書かれたことはありますか?
また、テストがないことでコードの変更に対する不安が生じ、開発速度が遅くなることもあります。
「テストを後で書く」と決めても、多くの場合それは単なる願望です。
テストを後回しにすることのリスクや、そもそもなぜテストが必要なのかを考え直し、今すぐテストを書くことのメリットを解説します。
話すこと:
日付を扱う際、私たちは時に"存在しない日付"に遭遇・生み出してしまいます。
例えば、2024年2月30日や2024年13月1日のような日付です。
このような日付が生まれると、バグが生じる原因となります。
本トークでは、存在しない日付が生まれる原因と解決策を実際のバグ事例を用いて解説します。
ターゲット:
このトークでは、短期ハッカソンにおける効率的かつ効果的なサーバーサイド開発のためのアーキテクチャ設計について掘り下げます。ハッカソンでクリーンアーキテクチャやレイヤードアーキテクチャを取り入れた私の経験を基に、これらのアプローチのメリットとデメリットを分析し、開発者が遭遇する課題への具体的な解決策を提案します。特に、限られた時間内で可読性、拡張性、保守性を犠牲にすることなく、迅速にプロダクトを構築するための戦略を詳しく紹介します。このトークは、ハッカソンでの成功と技術的な挑戦に取り組む開発者へ、アーキテクチャ設計に新たな視点を提供し、短期ハッカソンにおける私のアーキテクチャに関するベストプラクティスを共有することを目的としています。(本トークではGo言語を用いた実装例を中心に取り上げます。)
Laravelでは「運営ユーザのみアクセスできる」などの認可をmiddlewareを使って簡単に定義できます。
定義の仕方も「routingファイルに書く」・「Policyを使う」など様々な用途で使い分けができます。 便利ですよね。
しかし、上のような書き方だと、どうしてもroute側かPolicy側が認可の責務を持つことになってしまいます。
もしかしたらValueObject・Entityを使う設計がされているプロダクトではValueObject・Entityごとに対する操作の認可というアプローチもありなのかもしれません!
このLTでは、ValueObject・Entityごとに対する操作の認可の実際の書き方・書くことでどういうメリットがあるかをお話します!
みなさんNativePHPはご存じでしょうか?
このNativePHPは、HTML、CSS、JavascriptそしてPHPを用いてデスクトップアプリケーションを開発可能にするフレームワークです。
そう、PHPを使ってデスクトップアプリケーションが書けるのです!
今回はこのNativePHPでスイ◯ゲームもどきを作る/作ってみた話をLTという短い時間の中で精一杯の情熱を込めて発表したいと思います。
話すこと
話さないこと
内容:
私の初めての開発はフロントエンドでちょっとしたサービスを作って公開してみたものでした。
あの頃、右も左も分からず書いたコードのレビューをして初心者が初めて開発するときに引っかかりやすい罠や初心者に教える時に気をつけた方がいいことについて話そうと思います。
トークの対象者:
Webプログラミング挑戦中の方
Webプログラミングを人に教えている方
注意:
初心者の頃のよわよわなコードが見られるかと思いますが、優しい目で見てください笑
reactで書いたプロジェクトですが、一般的に気をつけるべきことについて話します!
みなさん、「GraphQL」 使ってますか?
GraphQLはWeb APIを開発するためのクエリ言語であり、
クライアントが本当に必要なデータのみを柔軟に取得できる仕組みとして注目を集めています。
そんなGraphQLですが、PHPでもLighthouseというフレームワークを使うことにより、簡単にGraphQL APIを実装することができます。
さらにはこの実装したGraphQL API、少しの工夫を加えるだけでこれまた簡単に、TypeScriptから型安全に呼び出すこともできちゃうんです。
このセッションでは「これからGraphQLに触ってみたい!」という方を対象に、
Laravel + Lighthouse + TypeScriptを用いた"型安全なGraphQL API開発体制の作り方"についてお話しさせていただきます。
先輩や上司になにかを相談したり1on1したときにみんなよく言う「メタ認知を鍛えよう」とか「メタ認知力を上げよう」という言葉が何を指しているのでしょうか?
視座とか自分を客観視したときの状態とか難しい言葉が多く、何を意識すればよいのか分かりづらいですよね。
また、成長のために必要だと言われてもいまいち何をすればよいのかイメージも付きません。
このLTでは、「メタ認知」の図解や具体例を交えながらわかりやすく解説しつつ、「メタ認知」を身につけるために有効な方法をご紹介します。
My talk in the conference is about why we need to code ? Why we need Generative AI ? Why coders always rely on ChatGpt and other open AI. Why programming language are difficult to understand ? Will AI replace the coders ? These are the sub domains , I want to talk in the conference .
PHPStan、知っていますか?
PHPStan(PHP Static Analysis Tool)は、コードを実行せずに検査できる静的解析ツールです。
あなたの書いたコードの良くないところを探して、こういうふうに直すといいよって教えてくれます。
「なんかCIめっちゃ落としてくるめんどくさいやつだ」
今までPHPStanは導入されていたし、一旦従って何気なく使ってきました。
でもコイツ、思っているよりもめ〜っちゃすごかった。
PHPのバージョンアップに取り組み始めてから、PHPStanがあるってこんなに嬉しいんだ……!!と感動しました。
このLTを聞いた皆さんは、「PHPStanがあるとなんで嬉しいの?」から「PHPStanってマジですごい!!」になるでしょう!
わたしはかれこれ20年ほどエンジニアとして生活を営んでいます。その過程で様々なアクシデントや環境の変化に見舞われまれたことからの気付きとして、職業人として「力」を得るのは長期的な研鑽が欠かせず、つまり日々のトレーニングいかんによって成長度合いが左右されるということです。
10年代は闇雲に行っていて、それはそれで間違いではないものの、20年代に入ってからは先達から得た教えからトレーニングを3つの指標をモニタリングすることで確実な効果を得ています。
このセッションでは、具体的にどのような指標を使っているのかと、実際につけている記録からエンジニアリングとしてのプロセスの実践例を示します。
この皆さんが長く成長し続けるためのヒントになると信じています。
私はベトナムにグループ会社があるグローバル企業に所属しています。
今年2月頃に、日本開発部のエンジニア達でベトナムへ行き、ベトナムのエンジニア達とハッカソンを開催しました。
日本とは文化も言語も違うエンジニア達と、どうコミュニケーションをとりながらハッカソンに挑んだのか、
実際のベトナムでハッカソンをした貴重な体験談から学んだ異文化コミュニケーションの壁の乗り越え方をお話します。
日々レガシー開発の現場で闘っているみなさん!おつかれさまです!
自分も20年以上の歴史があるプロダクトの開発に関わっていたり、過去にはフレームワークのリプレイスに携わったりと、さまざまな問題に悩まされる毎日です。
そんなある日のカンファレンスで、同じようなレガシープロダクトに関する発表を聞いて思いました。
「ああ〜わかる〜あるある〜」
(ん?もしかして自分が思ってるあの悩みやこんなつまずきも、もしかしてあるあるなのでは?)
レガシー開発あるある、言いたい!!
というわけでこのLTではレガシー開発あるあるを紹介します。
あるある or ねーよ! など、皆さんの共感や感想交えて盛り上がれたら嬉しいです!
私は今、受託開発の会社に勤めていますが、受託開発だと複数案件に関わることはあるあるだと思います。
ただ、参画したタイミングや状況により様々なポジションや開発言語で案件をかけもつことがあります。
時にはマネージャーとして管理を行い、時にはメンバーとして開発を行う。イレギュラーな事態は毎日発生し、考えていた進捗まで中々届かない。。
このLTはそんな中で自身を管理しつつ各案件をなるべく燃やさずに進めている方法をお話します。
いざ、大冒険の幕が上がる!!
PHPとLaravelのバージョンアップ――それは、EOLという名の暗雲が迫る中、このデジタルの海を航海する我々の船の帆を張り直す必要がある作業だ。わずかに残された時間でPHPerたちは、この世界を救い出せるのか?
だが、心せよ。この旅は、ただの数字遊びではない。我々の前に立ちはだかるのは、 「破壊的変更」 という名の荒波だ。1つ、2つとバージョンが上がるごとに、新たな敵が次々と姿を現す。
この旅の道中では、我々が冒険の書として頼りにしたアップグレードガイドには載っていない、隠された強敵とも多く戦ってきた。
本LTでは、PHP 7.1から8.1へ、Laravel 5.6から8.xへのバージョンアップで直面した問題と、それに立ち向かった数々の対処法(具体例)を一挙ご紹介。
今、あなたもこの冒険に参加し、戦いに挑もう!(バージョンアップしよう!)
【概要】
システムの保守運用は出来ても自分自身のメンテナンスはおざなりにしてしまう...そんなことありませんか?
システムの健康はエンジニアの健康あってこそです。
自分という唯一無二のシステムを、長期的かつ安定的に維持するためのヒントをご紹介します。
【トークの対象者】
・健康管理に興味がある人
・健康を維持して各地のカンファレンスへ飛び回りたい方
【トークの目的】
・健康管理に興味を持つエンジニアを増やし、長く元気に楽しく働いてもらう
【内容】
・自分という唯一無二のシステムを知ろう〜自分自身にドキュメントはない!試して動かして検証しよう
・食事・運動・睡眠〜合う方法を探すためには自分自身をよく知ること!行動と結果を振り返ろう
・外からフィードバックを受けよう〜プロでも機械でも、客観的な目線は大事です
【話さないこと】
・医学、栄養学に関する知識
aspida を使用して、REST APIのバックエンドを型安全に呼び出すLTを発表をします
発表の流れ
aspida とは
• aspidaは、REST APIを型安全に呼び出すためのツールであり、簡単にAPIクライアントを生成できるライブラリです。
URLベタ書き
• APIエンドポイントを直接書く方法を使っていこれはミスのリスクが高くなります。
自作でバックエンドの型作成
• バックエンドの型を手動で作成する必要がありました。しかし、バックエンドが変更する度に手間がかかります。
Swagger + aspidaで楽々型作成
• Swaggerを使ってAPI仕様を定義し、aspidaを利用することで、自動的に型安全なAPIクライアントを生成できます。
まとめ
発表しないこと:
• Swaggerの詳細な説明
• REST以外の型安全な呼び出し方
銀テープをご存じですか?コンサートとか行くと終盤に空中に放出される銀色のテープです。
3月に開催されたPHPerKaigi 2024ではエンディングのあとに銀テープを放出しました。
このLTでは銀テープを出すにはどうしたら良いか、銀テープを出す前に発生した問題、出した後に発生した問題など、銀テープを出したい方には嬉しい情報をお伝えします。
出そう!銀テープ!
(このLTを我々が事前に聞けていたらもっとラクだっただだろうに…)
最近サーバーレスPHP流行ってますよね?
私は全国でサーバーレスPHPの利用がもっと広がって欲しいと思って活動をしています
広がって欲しいなら方法を示すべきです
それでは「5分で」サーバーレスPHPをデプロイするデモをしてみましょう
5分でデプロイ出来るなら、みなさん試してくれますよね?
このデプロイのデモを動画ではなくみなさんの眼の前でデプロイすることで、
「本当に5分で出来るならやってみるけど...」 -> 「サーバーレスPHPすごい!簡単!やっていくぞ!」
と感じてもらうのが目的です
スライドは「タイトル」と「自己紹介」と「デモ」と書かれたセクションだけです
その後、すぐデモに入ります
私自身のデモの練度を上げることで、制限時間の中で出来る事を増やして、
みなさまの手を動かすきっかけになれれば幸いです
※AWSアカウントの作成が済んだ状態で始める事は許容してください
4keysの簡単な説明と、とあるプロダクトで勝手に試して勝手にやって勝手に分析したことでどんな気づきを得ることができたかについて話します。