どうも、要件ヒアリングに自信ニキです。
私はフリーランスエンジニアとして受託開発のお仕事をよく頂くのですが、お客さんとの対話・ヒアリングを割と得意としています。
お客さんはシステム開発のプロではないので、説明が的を射ないことも多く、複雑なシステム要件のヒアリングには根気と体力を要しますよね。
そればかりか、なかなか合意や結論に辿り着けずいたずらに時間が奪われた挙句、結局失注して悲しみ、といった経験はないでしょうか。
私はよくお客さんから「1しか言ってないのに100のアウトプット出てくるんやが」「話が早すぎてもはや笑える」などと言われます。
一体私はお客さんとの対話中に何を考え、どんな手順でヒアリングを進めているのでしょうか。
このLTでは、お客さんとの対話中の私の頭の中身をまるっと皆さんにシェアします。
明日からのお客さんとの対話・ヒアリングに少しでも役立てていただけると嬉しいです!
Macユーザーの皆さんにはお馴染みのHomebrew。
Macの初期設定時のみならず、日々新たに便利なコマンドを見つけてはbrew installしていることと思います。
そんなお馴染みのHomebrewですが、裏側はどんな仕組みになっていて、コマンド自体はどこからダウンロードされているのかはご存知でしょうか?
実はこれ、とても簡単な仕組みになっていて、誰でも自分のGitHubリポジトリを通して自作のコマンドをHomebrewで配布することができます。
このLTでは、実際にPHPでCLIツールを作ってHomebrewで公開するまでの流れをお話しします。
自作のコマンドをHomebrewで公開して、世界に羽ばたきましょう!
Macで複数バージョンのPHPを使い分けるのって意外と難しくないですか?
Docker経由でしかPHPを使わないみたいな猛者スタイルで行ければいいのかもしれませんが、
パフォーマンスや開発体験の問題からローカルのPHPを使いたい事情もあると思います。
phpenvと.php-versionファイルを併用すればディレクトリごとに使用するPHPバージョンを指定することもできますが、
このソリューションはいざ導入しようとするとYak Shavingの嵐が待っていて(実体験)非常に面倒だったりします。
というわけで、このLTでは私がMacのローカル環境で複数バージョンのPHPを楽に使い分けるために実際にやっていることを5分でサクッとお伝えします。
実際に運用していてまったくストレスを感じていない方法なので、ちょっとでも困っている人には明日からすぐにお役立ていただける内容だと思います!
API Platformは、SymfonyをベースとするPHP製のオープンソースAPIフレームワークです。
Symfonyアプリケーションにアトリビュートを1行追加するだけで一瞬でREST APIとOpenAPIドキュメントを生成できてしまう優れもので、
Symfonyのエコシステムにおいてはすでに決定版と言える存在となっています。
このトークでは、API Platformの導入方法から、State Provider・カスタムコントローラ・State Processorといった重要な基本機能の概要までを、
実際に動作するデモをお見せしながら丁寧にご紹介します。
皆さんにAPI Platformの概要を知っていただき、少しでも興味を持っていただければ幸いです!
API Platformは、SymfonyをベースとするPHP製のオープンソースAPIフレームワークです。
Symfonyアプリケーションにアトリビュートを1行追加するだけで一瞬でREST APIを作れてしまう優れもので、
Symfonyのエコシステムにおいては既に決定版となっています。
しかし、ある程度複雑なことをしようとすると途端にフレームワークについての深い理解が求められたり、
痒いところに手が届かず強引なワークアラウンドが必要になったりするという面もあり、入門と実戦の間には大きな隔たりがあります。
このトークでは、API Platformの導入方法から基本機能の概要、さらには実践投入に向けた各種ワークアラウンドや実装テクニックを、
実際に動作するデモをお見せしながら丁寧にご紹介します。
API Platformの実戦投入、あるいはその検討の一助になれば幸いです!
世の中には色々なフレームワークがあります
何か特定の世界に限りません
例えば、マーケティングの世界で有名なPPM分析もそう呼ばれたりします
フレームワークとそれ以外は、何が違うのでしょう?
プログラミングでいえば
「フレームワークの名前を複数挙げて」との問いには簡単に答えられても
「それはどうして?」の判断に迷う人もいるかとも思います
何がフレームワークなのでしょう
それ以上に重要なのは、”なぜ”フレームワークなのでしょう
これがあることで、開発者の仕事や思考は、どう変わりますか?
一緒に探ってみましょう!
一緒に働いていて「この人に相談したらどうにかなる」って人、いますよね。
この「どうにかする力」って何なんだろう。
力を持ってる人に聞くと「気合」「経験」「勘」と言った回答が来ることが多いです。
本LTではこれをもう少し噛み砕き、「どうにかする力」の正体に迫ります。
みんなで「どうにかする力」を身につけていきましょう!
小田原っこ: 現在小田原に住んでいます
パフォーマンス改善と聞くとどんなことを想像するでしょうか?
大半の人はクエリチューニングであったり、ロジック改善であったり、キャッシュ化であったり
元の仕様を変えずに速度向上をする、というイメージがあるかと思います。
ISUCONなどはまさにこれで、元のテスト(ベンチマークツール)が通るように改善を行っていきます。
しかし仕様から変えて良いものであれば、それは仕様再検討から実施することで圧倒的なパフォーマンス改善を実現できると私は考えています。
本セッションでは
このあたりをお話できればと思っております。
小田原っこ: 現在小田原に住んでいます
エンジニア同士の繋がりを作る上でコミュニティの存在は重要になってきています。
私が異業種からIT業界への転職した時に、業界内の知り合いが少なく孤独感を感じていました。
そのような背景からエンジニア達が一緒に勉強したり、情報共有できる場を作りたいと感じるようになり、
プログラミング学習コミュニティ「ねこプロ」を立ち上げて2年ほど運営しておりました。
活動内容は、LT会や交流会、勉強会を開催するなど多岐に渡ります。
コミュニティ運営をすることで学習に対するモチベーションを保てたり、繋がりの輪が広がるなど良い面もありましたが、課題も多くありました。
本トークではコミュニティ立ち上げから閉じるまでに経験したことを運営者目線でシェアすることで、
コミュニティ運営の魅力とリアルをお伝えします。
コミュニティに興味を持つ人が増えることで業界がより盛り上がれば素敵だなと考えております。
何度も遭遇する PHP の「Allowed memory size of ...」。しかし、結局解決方法がわからず、最後には「ini_set('memory_limit', -1)」でその場を凌ぐという苦い経験をした方も多いのではないでしょうか。
PHP ではガベージコレクションもそれなりに発達しており、メモリを気にしないで書けるから良いと思っている人も少なからずいらっしゃると思います。
しかし、裏を返すと、メモリについてあまり考える機会がないとも言えます。PHP7.4 から弱参照といった機能も入り、メモリ管理に少しずつ関心が寄せられてきているのではないかなと思います。
そこで本トークでは、PHP でメモリ管理から逃げないようにするためには,PHP のメモリ管理の仕組みから,どのようにすれば省エネにメモリを使えるか、書き方のヒントまで含めてお話できればと思います。
みなさん使っていますか?strace。
そうですね、コンテナ全盛期とも言えるこの時代、なかなか使う機会はないと思います。私もです。
ただ、あると思うと使いたくなるのが人情というものです。
そうです、コンテナにログインしてしまえば使えてしまいますね。
このトークでは、
というはじめの1歩を話していこうと思います。
ローカル環境のデータベースこんなことにお悩みではないですか?
・開発しているうちにデータがめちゃくちゃになってしまって、元に戻せない。
・「今」のデータの状態を保存して、何かあったときその状態にパッと戻せるようにしたい。
・他のメンバーのデータベースを自分の環境にコピーしたいけど、自分のも消したくない。
・データベースのデータの状態を、何種類も持っておいて、いつでもサッと切り替えしたい。
これらのお悩み、すべて解決できます。
まるでゲームのセーブポイントのように、
saveコマンドを打てば、すぐにバックアップされ、loadコマンドを打てば、すぐに再現されます。
shareコマンドを打てば、他のメンバーにシェアすることもできます。publicにすることも、privateにすることもできます。
今回、こちらのライブラリの配布と、ライブラリの仕組みの解説をさせていただきたいと思います。
私自身が経営する株式会社ダイビック(ディープロ)が行っているITエンジニア育成プログラムにより日本とアフリカラテンアメリカで行っている育成活動をご紹介し、その未来への展望について語るトークです。
PHPのアプリケーションの開発、楽しい、色々なツールやライブラリに支えられてる、 マジ感謝・・・そんな日々です。
皆さんは普段お世話になっているライブラリ、一体どこまで「理解して」使っていますか?
アプリケーションフレームワークに、PHPUnitなどのテスティングフレームワーク、Composer、PHPStanにRectorに・・・
「普段から使っているよ!」「使い方はわかる!」という気持ちでいると、ふとした時に「何このエラー!」と悩まされたりした事はありませんか?
どうすればもっと仲良く・・・そうです、ソースを読めば良いのです!自分で作れば良いのです!
PHPを使った開発に欠かせないツールについて、「普段使っているコマンド」を起点として、実際にコードリーディングをしていく際のポイントをお伝えします。
その上で、「概要を掴んだ後に"自分で劣化版を作ってみる"」学習法を紹介します。
プログラミング界の十徳ナイフ、正規表現を使いこなせていますでしょうか!
正規表現は文字列処理において多くのタスクをこなせ、テキストエディタなどPHP以外の場でも利用できる汎用性の高い道具です。
しかしながら正規表現を自信をもって使えるようになることにハードルを高く感じる初心者も多く、曖昧なまま使い続ける中級者も多い技術でもあります。
このトークでは初心者向けの正規表現入門から、中級者にも役立つテクニック、Unicodeとの関連と正規表現の罠まで含めて、基礎を固めて使いこなせるようになるヒントをお伝えします。
PHPerの世界でもwhatやwhyが大事だ、howはなんでもいい、と言われるようになりました。
たしかにwhyやwhatはとても大事で、howは所詮howです。
しかし、howを軽視しすぎるのはおすすめできません。
「思考に気をつけなさい。それはいつか言葉になるから。言葉に気をつけなさい。それはいつか行動になるから。(後略)」というマザーテレサの名言にもある通り、howは知らず知らずのうちにあなたの設計方針に影響を与えてしまうのです。
howがどのように設計方針に影響を与えるかの実例をいくつか紹介した後、その対策についてお話しします。
世の中にはエンジニアコミュニティに参加せず黙々とお仕事をしているエンジニアもいます。PHPカンファレンスの常連になっている皆さんは「もったいないな」と思っていることでしょう。
マネージャーをしていたときに私は2人の新人エンジニアをコミュニティに送り出す作戦を立てて実行し、今年になって成果が出たことを観測しています。
エンジニアがコミュニティに参加することにどんな意味があるかを改めて言語化したうえで、ベテラン側が具体的に何をすると彼や彼女をコミュニティに溶け込ませることができるかについてお話しします。
皆さんはphpinfo()を使っていますか?
多分皆さんお世話になっていると思います。
そんなphpinfo()ですが、実は地味ぃぃぃぃではあるのですが、PHP 8.2から新機能が追加されています。
マニュアルにはない、新機能を追いかけてみませんか?
キャッシュはパフォーマンスを劇的に改善する効果がある反面、使うと簡単にはやめられない複雑性と中毒性があります。
その特性から キャッシュは麻薬 と言われ、安易な利用は忌避されています。
しかし、キャッシュがもたらすパフォーマンスの改善効果は無視することはできず、コンピュータの世界において有効活用されているのも事実です。
そこで今回は、キャッシュの手法と有効な場面での活用方法、逆に失敗してしまいやすい注意事項を説明しながら、実務の中でのキャッシュとの付き合い方を説明します。