ふと「別の言語も学んでみたいけど、とっつき方がわからない」と思う方も多いのではないでしょうか。
特に近年よく使われる Go などを触ってみたいけど、難しそうと思いなかなか手を出しづらいと思っている方もいらっしゃるかもしれません。
Go をチョットワカルようになるだけでも PHP にはない新鮮さ、楽しさを感じることができます。
ちなみに、私は Go を初めて触ったときに作ったものは、ハムスター監視システムで、もともと PHP で作られていたシステムを学習の意味も含めて Go にリプレイスしました。
主に大きい学習としては非同期に処理ができる WebSocket サーバーの実装をゼロから作り上げた点です。もともと Go は既にいろんな WebSocket のサードパーティモジュールが提供されています。しかし、あえて茨の道を進むことにしました。
そこで PHPer である私が Go を歩むにあたってどのように学習をして、WebSocket サーバーの実装を行っていったかを本トークでお話できればと思います。
ふと「別の言語も学んでみたいけど、とっつき方がわからない」と思う方も多いのではないでしょうか。
特に近年よく使われる TypeScript などを触ってみたいけど、難しそうと思いなかなか手を出しづらいと思っている方もいらっしゃるかもしれません。
TypeScript をチョットワカルようになるだけでも、業務の分野が広がり、フロントエンドエンジニアの業務がどういったことをやっているのか理解しやすくなります。
ちなみに、私は TypeScript を初めて触ったときに作ったものは、ハムスター監視システムでした。
そこで、PHPer である私がどのように TypeScript を学習し、ハムスター監視システムを作り、そして業務レベルまで扱えるようにしたのか本トークでお話させていただければと思います。
私が携わっているシステムでは、過去に既存PHPアプリケーションにLaravelを導入した経緯があり、bootstrap処理の中で独自設定を施しています。
これによってLaravelのデフォルト設定を都合が良いようにカスタマイズして使っています。
Laravelのデフォルト設定がどうなっていて、どういうカスタマイズをなぜやっているかをベースに、既存アプリケーションへの適用についてお話しできればと思います!
これから導入を考えている、設定をいじりたい、フレームワークのソースコードに興味があるという方の一助になれば幸いです。
私の所属する組織では、10年以上に渡って「小さなお葬式」というWeb集客型の葬儀サービスを提供し続けています。
サービスを構成するWebサイトや基幹システムをはじめ、関連するほぼすべてのシステムをPHPで開発しています。
本セッションでは、事業の急成長とともに肥大化・複雑化していった基幹システムをドメイン駆動設計を足がかりにリプレースした話を軸にして、
レガシーコードやレガシーシステムと向き合ってきた私達の過去〜現在〜未来についてお話させて頂きます。
株式会社ウエディングパークでエンジニアリングマネージャーをしています。
このプロポーザルを書いている10月からSREへジョブチェンジすることを決断しました。
私のこれまで歩んできたキャリアは、サーバサイド→マネジメント→QA→SREと、あらゆる職種を渡り歩いてきました。
PHP界隈のエンジニアを初めとして、昨今のエンジニアにおいてのキャリアパスは多岐に渡っており、
自分がどこに進めばいいか?何を極めていくべきか?どういう人材でありたいか?は頭を悩ませている人も多いはず。
今回は、私が10年間のエンジニアとしての歩んできたキャリアを1つ1つ棚卸しをしながら、
それぞれの分岐点で何を考えてきたか、失敗と成功例、キャリア整理の仕方など、
実際に経験し、実践をしてきたことをお伝えできればと思います!
他社事業を買収し再出発するWeb系スタートアップの技術責任者。こんな経験をされる方は少ないのではないでしょうか。
このセッションでは「君、明日から技術責任者ね」と言われたエンジニアが何を考え、どう判断するのか、現在進行系のリアルな経験談をお話します。
一般的な職位のあるべき論ではなく「スタートアップのDay-1に立った」私を主語にしキャリアと思考についてお伝えします。
技術中心思考から事業全体へと視座をあげ意識を変革することは、すべてのエンジニアにとって成長のきっかけになるはずです。
技術職でのキャリアアップをめざし今後どう成長していくべきか悩まれている方に、ぜひ聴いていただきたい内容です。
PHPには乱数生成関数がたくさん実装されていますが、いったいどれを使えばいいでしょうか?
rand()
mt_rand()
random_int()
random_bytes()
openssl_random_pseudo_bytes()
なんでこんなに関数があるんでしょうね。
みなさんはどの関数をどんな目的で使ってますか?それって本当に安全ですか?
それぞれどんな歴史的経緯があり、アルゴリズムや実装ってどうなっているでしょうか。
このセッションでは、そもそも乱数とは何か基礎知識からはじめ、PHPでの実装を踏まえながら解説を進めます。
さぁ、PHPの闇に触れましょう。
昨今のPHPerにとって、継続的に価値を提供するソフトウェアをつくるためには、言語等の技術要素に加えて、開発の流れや人に対するエンジニアリングも必要不可欠です。
「技術と人」両方に着目するようになると、XPやアジャイルなどの考え方・取り組みに最終的に帰着するチームは多いと思います。
アジャイル開発において、ユーザーストーリーをイテレーションごとに収まるような形で分割することは、プロダクトに対する検査と適応のリズムを得るために重要な取り組みです。ユーザーストーリーが大きすぎるものをそのまま取り組もうとすると、大きさゆえに見積自体の精度もより落ちてしまったり、その実現に期間を要することから顧客からのフィードバックも得づらくなります。
今回は、実際に所属企業で実践した実例を題材にしつつ、聴講いただいた皆様が明日から使える実践的な見積もり技術話をお届けできれば思っています。
Communities are increasingly important in this Digital Transformation era. Getting together people and technology with common interests, a strong sense of belonging and collaboration is a powerful platform to empower individuals and connect organizations with their audience.
With 20 years of experience in software development and more than 12 years being heavily involved in tech communities as community leader and strategic advisor in Argentina, New Zealand, Australia and US I would love to dive with you the principles of building diverse and innovative communities with a positive impact in the society.
How Apache Kafka is different from other messaging systems like RabbitMQ.
What are the advantages and disadvantages and why you should
consider changing your service communication.
We all know about API versioning and how painful it can be to maintain these,
especially for many services and over a long time.
What if there was a better way for this using messaging?
We will dive in, how Apache Kafka and Apache Avro can make your life
easier and how you can have evolving schemas.
SymfonyプロジェクトでのDBマイグレーションの不安を和らげるために、マイグレーションを実行する前にmysqldumpを出力するようにする方法について紹介します。
ちゃんとBlue Green Deploymentしているようなプロジェクトでは無縁の話ですが、サーバー1台にアプリもDBも同居しているような古き良き構成ではとても役立ちます。
インフラに投資してもらえないSymfonyプロジェクトをお持ちの方必見!
Symfonyユーザーの皆さんに朗報です。
シンプルでカスタマイズしやすい最強のページネーションバンドルを作りました。
https://github.com/ttskch/TtskchPaginatorBundle
・超軽量
・Symfony以外に一切依存なし
・ページャー部分のHTMLなどはtwigで簡単にカスタマイズ可能
・見出し部分を簡単にソートのためのリンクにできる
・検索フォームとの連動も簡単
・ページャー部分のHTMLのBootstrap4テーマをプリセット
といった特徴を備えています。
本セッションでは、このバンドルを使って実際にページネーションを実装する手順や、Doctrineと連携した応用的な使い方について解説します。
開発当初はインスタンス一つで動いていたWebサービスも機能が増えるにつれて複雑になっていきます。
メールを送りたい、定期実行したい、高度な検索をしたい、ログを取りたい、アセットをCDNに置きたい。
Laravelをサービスをつなぎ合わせる糊として使うことでAWSにはたくさんの便利なサービスを有効活用できます。
設計が変化していった変遷をその時の苦労話を交えてお伝えします。
弊社のシステムはバックエンドのフレームワークは Laravel を使用、そして OpenAPI と呼ばれる API の設計書を書けば CRUD に対応した API が自動的に実装されるような仕組みを用いて自動生成し、最後にバリデーションを書けば、一つの API が完成します。
もともと弊社の社内システムは SaaS 上にしかなかった、かつバックエンドエンジニアが私一人である中で、どう効率的にゼロベースからプロダクトを組み上げてプロダクトのローンチを早められるかが鍵でした。
CRUD に対応した API 実装、正常系・異常系テストの生成自動化、API のドキュメントの記述、全文検索エンジンへどう自動的に繋ぎこむか、例外処理はどうするか?といった全ての事情を汲み取りながら基盤開発に邁進し、
今では一つあたりの API の実装は 10 分もかからないレベルになりました。本トークでは、この基盤の構築をした経験を元に、考えてきた事、実行してきたこと、判断に迷ったこと、そして Laravel を使った実装についてのお話をできればと思います。
弊社にはプロダクト開発部というものがありませんでした。物流のオペレーションは全て SaaS のシステム一つのみ。そのシステムを内製化するため
プロダクト開発部のチームをゼロから設計し、今ではエンジニア 3 名、デザイナー 1 名の小さいですがチームが組み上がってきました。
チームを組み上げていくにあたって大切にしてきたこと、そしてチームにおける技術の価値観の定義についてお話できればと思います。
弊社では顧客管理システムを SaaS で管理していたのですが業務要件が拡大するにつれて SaaS が提供している API のコールが頻繁に発生し Rate Limit になってしまったり、顧客 1 人の詳細を開くのに
5 秒以上かかる、そしてシステムがスケールできないといった課題がありました。その課題を解決するための一歩として顧客管理システムの内製化をはじめました。
本トークでは、どのように内製化を進めていき、そして稼働するまでの軌跡をお話できればと思っています。
人生においてお金があることで選択肢が増えることがあります。磨いてきた技術力を何らかの対価に変える方法の一つに企画があります。このコーナーではペチパー向けにできるだけ多くの実例をもとにした、採用される企画書の書き方をご説明します。また、より深く知りたい方向けに抽選で10名様に拙著「ITエンジニア向け企画力と企画書の教科書」(2020年3月出版)をプレゼントいたします。