サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16
tech.innovator.jp.net
こんにちは、CTOの山岡(@hiroy.kotori.styleまたは@hiro_y)です。 2024年2月11日、PHPカンファレンス関西2024が開催されました。なんと430人以上の方が参加されたとのことで、大盛況。私も東京から日帰りで参加しましたが、とても楽しい、有意義なイベントでした。 当社からはエンジニアの荻島さんが登壇しました。当日の様子は別記事になっているので、そちらをご覧ください。 tech.innovator.jp.net さて、私が当日参加したセッションに、菱田裕美さん(@77web)の「モデルとは何か」があります。Webシステム開発で使われるところの「モデル1」ではなく、「模型」(「プラモデル」とかの)を示す言葉としての「モデル」に着目して、モデルにすると何がうれしいのか、Webシステム開発におけるモデルとは何なのかについてわかりやすく語られていました。 システムは現
こんにちは、CTOの山岡(@hiroy.kotori.styleもしくは@hiro_y)です。 Webアプリケーションを作成する際、最近だとJavaScriptでAPIにアクセス、その結果を受け取って画面の表示を変えたり、場合によっては別のURLに移動するように作ることが多いかもしれません。Next.jsやRemix、SvelteKit等のフロントエンド由来のフレームワークを用いれば簡単に実装もできてしまいます。 しかし全てのWebアプリケーションがそうした実装を必要としているわけではありませんし、以前から運用されているWebアプリケーションはもっと素朴な作りをしているのではないでしょうか。サーバーサイドでHTMLをレンダリングし、フォームから値がPOSTで送信され、サーバーサイドで処理を行う、というような。 そうしたAPIを返すのではないサーバーサイド実装において、POSTで値を受け取り
こんにちは、CTOの山岡(@hiro_yもしくは@hiroy.kotori.style)です。 自分も含め、エンジニアは「正しいこと」にこだわりがちです。設計の「正しさ」だったり、プログラミングコードの「正しさ」だったり、「正しいこと」について考える機会が多いのが理由でしょうか。 その結果として、「正しくないこと」に過剰に反応してしまいがちです。つい強い言葉を使ってしまったり、細かい部分に都度意見を言ってしまったり。そうしたきっかけで、他の人と衝突してしまったことはないでしょうか。自分はあります。 しかしよくよく考えると、エンジニアが考える「正しさ」も最初から確立していたわけではありません。チームのエンジニア同士、あるいはもっと大きなエンジニアコミュニティの中で何度も議論され、話し合われて、その結果得られた現在地点としての「正しさ」なのではないでしょうか。だからこそ皆が納得感を抱いている。
こんにちは、CTOの山岡(@hiro_y)です。 イノベーター・ジャパンでは、リモートでのコミュニケーションが日常です。オフィスが東京、福岡、柏、湘南と分かれており、フルリモートで働くメンバーもいるからです。また現在、出社を最低週3日としているので、週2日はリモートで仕事する可能性があります。 そうしたリモートワークを支えているのがSlackです。全社用、プロジェクト用、部活動用、個人用(分報)など数多くのチャンネルが乱立(よい意味で)しています。もちろん、ビデオ会議(Zoomを使っています)やSlackのハドルミーティングも活用していますが、多くのコミュニケーションはテキストを用いて行われます。 テキストコミュニケーションですが、誰もが最初からうまくできるわけではありません。どういうわけか、人はテキストだと強い調子で物事を書きがちです。人を傷つけてしまったり、人に不安や疑念を起こさせるよ
こんにちは、CTOの山岡(@hiro_y)です。 イノベーター・ジャパンでは、大切にしている価値観として四つのVALUEを決めています。「LOVE」「CHAOS」「GROOVE」「ENJOY」です。普段特別に意識することはあまりありませんが、ふりかえると大切だよね、と思うことが多いかもしれません。 ちなみに二つ目の「CHAOS」は、別に混沌とした状態を是とするわけではなく、新しいことを始めるときは勇気を持って道なき道を進んでいこうぜ、というチャレンジ精神を大切にする心がけです。やっていくぞ(最近だとGenerative AIあたり進行中です)! さて、今回はそのうちの「ENJOY」にまつわる話。 開発だけでなく、業務で一人でやるのがつらかったり、一人でやると悩んでしまったりすることってありますよね。あるいは一人でやると捗らない作業も。例えば見積もりを考えるとか、仕様について整理するとか。そ
こんにちは、CTOの山岡(@hiro_y)です。 今月(2023年3月)、PHPerKaigi 2023がいよいよ開催されますね。イノベーター・ジャパンはシルバースポンサーとして協賛しています! そして私は2日目に登壇予定なので、登壇資料のスライドを作って調整しているところです。 fortee.jp 登壇資料はKeynoteで作ることが多いです。スライドは要するに紙芝居。過不足なく一連のストーリーが伝わる必要があります。私の場合、いきなりKeynoteで作り始めるのではなく、最初は紙に流れを考えながら「あらすじ」を書き出すという方法をとっています。 そこで便利に使っているのが「情報カード」です。いろいろな種類や大きさのものが売られていますが、最近愛用しているのはダイソーで購入できる無地で名刺サイズの小さなものです。何と言っても100円なので気軽に買えるし、どんどん書いていけます。 1枚をス
こんにちは、CTOの山岡(@hiro_y)です。ここ数年「心理的安全性」という言葉を目にすることが増えました。Web上の記事でも、書店に並ぶ書籍でも。 自分も何度か「心理的安全性」って大事だよね〜と話した記憶があるのですが、実際のところ「心理的安全性」とは何でしょう。大切なのは誰もが同意するでしょうが、皆が思い描く「心理的安全性」が達成された状態は少しずつ違っていたりしないでしょうか。 ちなみに似たような感じで扱われる言葉に「コミュニケーション」があると思っていて、大切なことは否定できないけど具体的に何を指しているかは人それぞれ、という…。最近はなるべく「コミュニケーション」という言葉を使わないようにしてみています。 さて、話を戻します。「心理的安全性」とはそもそも何なのでしょうか。自分なりに考えた結果としては、「状態を指す言葉ではあるけれど直接は作れないもの」です。どのような状態かという
こんにちは、CTOの山岡(@hiro_y)です。 ソフトウェア開発(特にWebアプリケーション開発)に携わっていると「レガシー」という表現をよく聞きます。でもよくよく考えてみると、ソフトウェアは放っておいても腐りませんし、錆びてしまうこともありません。しかし現実問題として、ソフトウェアは放っておくと否応なく「レガシー化」します。どうしてそうなってしまうのでしょうか。 (「レガシー」それ自体は悪い意味の言葉ではないはずですが、不思議とソフトウェア開発の文脈だとよくない意味合いの方が強くなってしまいますね…。) レガシー化する理由とその対策 動いているソフトウェア自体が変化しなくても、周りの環境が変化します。OSのバージョンが上がったり、その上で動いているミドルウェアが変わります。また、最近だとクラウド環境を利用することが多いので意識することが減りましたが、ハードウェアも新しいものがどんどん出
こんにちは、CTOの山岡(@hiro_y)です。 コロナ禍でリモートワーク(テレワーク)が促進され、オフィスに出向かず自宅等でお仕事する方も増えたのではないでしょうか。特にIT業界では顕著だと思います。 そういった状況の中で、あっという間にポピュラーな存在になったのがビデオ会議(オンライン会議、Web会議)ではないでしょうか。ZoomやGoogle Meet、Microsoft Teams等を用いた打ち合わせ・会議はもはや当たり前の光景になっています。 当社ではコロナ禍以前より複数拠点間(東京・福岡・&donutsの各オフィス)で連携しての業務を行っていましたが、当時はPolycomの会議システムを利用して、拠点同士をつないでやり取りをする程度でした。しかし今や、それぞれのPC同士で接続できるようになったのです。本当に便利な世の中になりました。 ビデオ会議で必要になるのは、高速な回線とカメ
こんにちは、CTOの山岡(@hiro_y)です。 先日、ISUCON12のオンライン予選に三人のチームで参加しました。本戦には進出できませんでしたが、目標の「スコアをゼロでなく、きちんと出せる形で終わること」「楽しむこと」の二つは達成することができました。 久しぶりに一日アプリケーション開発のことだけ考える時間を持てた気がします。自分の場合、普段はどうしても会議やいろいろやらなければならないことが多く、なかなかまとまった時間を取ることができていませんでした。定期的にそうした時間を取れるようにしてみようかな、と思ったりしています。 さて、ISUCON12オンライン予選への参加を通じて、エンジニアの資質としてあらためて「ねばり強さ」というものがあるなと感じました。何か問題が起こったとき、あるいはわからないことに遭遇したときに、一歩一歩解決に向けて考えたり、調べたりしながら手を動かし続けられる能
こんにちは、CTOの山岡(@hiro_y)です。 採用活動において、「採用面談」(あるいは「カジュアル面談」)を行うのが当たり前になってきました。いわゆる「採用面接」とは別の、選考過程ではない、その前段階という立て付けです。今回は、自分が採用面談をやる側として考えていること、心がけていることについて書いてみようと思います。 ちなみに、当社では私がエンジニアとデザイナーの採用面談を担当しています。自分一人で行うことも、誰かエンジニアやデザイナーと一緒に行うこともあります。 採用面談の目的としては、イノベーター・ジャパンという会社のことを知ってもらうことと、もし何か知りたいこと、聞きたいことがある場合にそれに対して答えることです。基本的には会社紹介を行っていくのですが、話を始める前に、知りたいこと、聞きたいことがないか伺って、あるようならその話題を中心に紹介をしていきます。 昨今の情勢によって
こんにちは、エンジニアのうじたです。 弊社ではスクラム開発を取り入れており、スプリント内の最後には毎回スプリントレトロスペクティブという振り返りを行っています。 2021年の8月から開始して、現在までの間に約15個の振り返り手法を試してみました。 現在はFDL+Tというオリジナルの手法によって行っています。 この記事では試してみたいくつかの振り返り手法の感想と現在のFDL+Tという手法を採用した経緯をまとめました。 どの振り返り手法を採用しようか悩んでいる方の参考や弊社の振り返りの雰囲気が伝わると嬉しいです。 弊社でのスプリント振り返りの歴史 試した振り返り手法の感想 FDL SSC 象、死んだ魚、嘔吐 YWT KPT 現在の手法を採用した経緯 まとめ 試した振り返り手法の感想 FDL Fun(楽しかったこと) Done(価値を届けられたこと) Learn(学んだこと) 振り返りが暗いもの
こんにちは、CTOの山岡(@hiro_y)です。 新型コロナウイルスの感染拡大に伴って、ここ数年、Webエンジニアリング系の勉強会やカンファレンスがオンラインで開催されることが増えました。 例えば毎年開催されているPHPカンファレンスの場合、2020年12月に開催されたPHPカンファレンス2020は、開催21年目にして初めてのオンライン開催となりました。翌2021年10月に開催されたPHPカンファレンス2021も、同様にオンライン開催となり、YouTube Liveを活用した配信となりました。 オンラインならではのメリットはいくつかあります。まず、移動が必要ない(自宅からでも参加できる)ので時間が有効に使えること。そして日本全国、あるいは世界のどこからでも時間を合わせれば気軽に参加できること、です。 しかし当然、デメリットもあります。いわゆる「カンファレンスの廊下」問題です。勉強会やカンフ
こんにちは、CTOの山岡(@hiro_y)です。 (この記事は、来る2022年4月9日から開催されるPHPerKaigi 2022に登壇応募したものの選出されなかった題材をブログに書くことで供養しようという試みです。) Webシステムでパスワードを保存するとき、そのままの値(平文)で保存してはいけません。データベースの中身が何かしらのインシデントで漏洩してしまった場合、パスワードの内容が明らかになってしまうからです(漏洩の時点でもっと酷い事態になっていそうではありますが…)。では、どのような対策を行えばよいのでしょうか。 パスワードはハッシュ化しよう 一つ目の対策は、パスワードを秘密鍵を使って暗号化、保存する方法です。 その場合、それぞれの暗号化に共通の秘密鍵を使わないことが大切です。また、初期化ベクトル(IV)としてそれぞれ異なるものを用意、ブロック暗号化モードを利用して暗号化した結果が
こんにちは、CTOの山岡(@hiro_y)です。 エンジニアをやっている皆さんなら、プログラミングはバグが付きものであることがおわかりかと思います。バグがゼロであることはあり得ないし、もしゼロという結果が出たなら、その結果の方を疑ってかかった方がよいとされているぐらいです(全くないとは言いませんが、極めてまれです…)。 これは言ってみれば、失敗を最初から想定し、許容する態度だとも言えます。必ず失敗するので、失敗に気が付ける仕組みを最初から用意しておく。そのために各種テストプロセスがあります。単体テスト、結合テスト、システムテスト。その他にもプロセスが用意されていることも少なくありません。 Webエンジニアの皆さんであれば、ユニットテストや継続的インテグレーション(CI)が一番身近な失敗検知の仕組みになるでしょう。実装するプログラムのテストを自分で用意しておく。場合によっては(テスト駆動開発
こんにちは、CTOの山岡(@hiro_y)です。 以前「Webエンジニアとして駆け出そうとしているあなたに」という記事を書きました。その中で「学習の高速道路」について触れましたが、その「高速道路」は最初からあったものなのでしょうか。また、「高速道路」の部分は通り過ぎたまま、先に向かってしまってよいものなのでしょうか。 tech.innovator.jp.net お察しの通り、「学習の高速道路」は最初からあったわけではありません。元々砂利道しかないようなところから、自分たちが少しでも楽できるように、皆で少しずつ作って整備してきたものだったりします。 例えば、Webアプリケーションフレームワークの場合。今どきのフルスタックなものであれば、一通り必要そうな機能が最初から用意されていて、必要に応じてコマンドを実行すれば簡単にページや機能が追加できます。 PHPだと、LaravelやSymfonyな
こんにちは、CTOの山岡(@hiro_y)です。このエントリーは「イノベーター・ジャパンAdvent Calendar 2021」の24日目の記事です。 あなたの会社に「頼りにできるエンジニア」はいるでしょうか。業務に必要なドメイン知識を持っていて、技術的にも複数領域携われる力があるような、そういう存在。 非常にありがたい存在なのですが、彼らに対して私たちはどうしても依存しがちです。この人に聞けば答えてくれる、安心感。それはいつしか依存に変わります。いつの間にか、その人なしではプロジェクトがまわらないようになっていたりしないでしょうか。その人がいるから他にエンジニアを入れなくていい、と判断してしまうこともあるかもしれません。 プロジェクトが小さいうちは、それでもシステム開発が成り立ちます。しかしプロジェクトが大きくなったり、継続性を考えなければならなくなったときに個人の力に頼りすぎてしまう
こんにちは、CTOの山岡(@hiro_y)です。 私はいくつかの会社でWebエンジニアの採用に携わっています。そうすると、否が応でも「駆け出しエンジニア」の方々を目にすることになるのです。採用媒体によって違いはありますが、多いと半分ぐらい「駆け出し」の方々なのでは…という媒体もあったりします。 人によってWebエンジニアになりたいと思う動機は様々です。純粋にエンジニアリングが楽しい人もいるし、もっと作るもの、プロダクトに関心がある人もいるし。その中に、どうやら稼げるらしいから、という理由があったとしてもよいと思います。会社に縛られないフリーランスになりたいからとか、リモートワークしたいからとか。動機は何であれ、Webエンジニアになりたい人が増えたのは単純にうれしいことです。 私がWebエンジニアになって20年近く経ちますが、今はすっかり便利になりました。主要なWebアプリケーションフレーム
このブログはJP_Stripes Advent Calendar 2019 の10日目のブログです。 adventar.org Stripe CLIについて書こうと考えていましたが、以下齋藤さん投稿で先を越されてしまいました。 developer.leap-arrows.jp そこで、過去1回だけ経験したことがある「チャージバック申請(Disputes)」について書こうと思います。 チャージバック申請(Disputes)とは クレジットカード利用者が不正使用などの理由により、利用代金の支払に同意しない場合に、クレジットカード会社がその代金の売上を取消しすることをチャージバックと呼びます。クレジットカードの明細を見て身に覚えのない支払いを拒否して、払い戻してもらう事ができます。*1 不正利用であったり、購入した商品が届いていないなどの理由でもチャージバック申請は利用されています。 チャージバ
こんにちは、CTOの@hiro_yです。 この記事はイノベーター・ジャパン Advent Calendar 2019、6日目の記事です。 ちなみに昨日、一昨日は&donuts(アンドーナツ、と読みます)のメンバーが書いてくれました。&donutsは「人がいるところに仕事を移す」職住近接をコンセプトにした当社発のプロジェクトです。とても面白いので、ご興味を持たれたらぜひ&donutsのサイトもご覧ください。 協賛のご報告と、そもそも協賛とはという話 さて、当社ではこのところ立て続けに技術系のイベント2つに協賛しました。11月に福岡で開催された「フロントエンドカンファレンス福岡2019」と、12月に東京で開催された「PHPカンファレンス2019」です。 以前、そうした技術系イベントに参加する意味について書いたことがあるのですが、今回は会社として協賛する意図だったり、意味について書いていきます。
こんにちは、エンジニアの @hanhan1978です。 弊社では、ソフトウェアの開発プロセスにおいて、ほぼ全てのプログラム修正・追加に対してソースコードレビューを実施します。本番環境にはレビューを通った変更のみが反映されます。 仕組み的な話をすると、恐らく多数の会社や団体にて行われているのと同様にGitHubのPullRequestに対してソースコードレビューを行って、Approve されないとPullRequestがマージ出来ないという形を取っています。 しかし、ソースコードレビューが常態化してくると、簡単に指摘できるような内容は少なくなってきて、「これ、あんまり良くないと思うんだけど、相手にどうやって伝えていいか分からない。」とか、「自分なら違う書き方をするし、そのほうが良いと思うけど、説得できるほど自分の頭の中で言語化できてない。」という状況によく出会うようになります。 このような状
こんにちは、エンジニアの @akase244 です。 弊社ではいくつかのドメイン事業者を利用しているのですが、つい先日、そのうちの1社であるお名前.com社より「【必ずご返信ください】」というタイトルのメールが届きました。 タイトルをよく見ると「Whois」との文字があったので、定期的に送られてくる「Whoisの内容は正しいですか?最新状態に更新してくださいね」といったニュアンスのメールかと思ったらどうやら様子が違います。 定期的に送られてくるメールのタイトルはこちら。 「【重要】Whois情報 正確性確認 ドメイン名」 今回送られてきてメールのタイトルはこちら。 「【必ずご返信ください】[お名前.com] Whois情報修正のお願い ドメイン名」 今回はこのメールが一体何なのか、いつまでにどういった対応を行うべきなのか、といった点について紹介したいと思います。 このメールは何? メール本
こんにちは、エンジニアの @akase244 です。 この記事を読んでいる方の中にも、もしかすると参加していただいた方がいらっしゃるかもしれませんが、先月の6/29(土)に「PHPカンファレンス福岡2019」を開催しました。 私と @cakephper さんの二人で始めた Fukuoka.php という勉強会をきっかけに、大規模なカンファレンスを開催することになるとはまったく想像もしてなかったわけですが、今年で5年目を迎えました。 そんなPHPカンファレンス福岡ですが、開催にいたるまでにスタッフがいったいどんな準備をしているのか興味ないですか? 今回はカンファレンス当日までにスタッフがどういった作業をやっているのかを、Backlogのチケットタイトルを眺めながら紹介してみようと思います。 12月 今年の経費明細を元に来年のスポンサー数と金額を決定する スポンサー特典の内容決定 スポンサー資
こんにちは、エンジニアの @hanhan1978です。 2019/05/29(水)GMO Yoursにて開催された第138回 PHP勉強会@東京 - PHP勉強会@東京 | Doorkeeperにおきまして、「PCREとPCRE-JITとPHPの話」というタイトルで発表してきました。 PHP勉強会 第138回 PCREとは? Perl互換の正規表現ライブラリのネイティブ実装です。PHPでは4系の頃からpreg_系の関数においてPCREを利用していました。 今回、個人的にPCRE-JITという正規表現のパフォーマンスを向上させるJust In Time コンパイラ周りを調べていた時に、7系以降のPHPとPCREの関係がなかなか面白いなと思ったので、まとめた次第です。 登壇スライド まとめ 正規表現は、文字列の高度で柔軟な操作をするときによく利用しますが、PHPが使っている正規表現ライブラリや
こんにちは、CTOの山岡(@hiro_y)です。 イノベーター・ジャパンでは「&donuts(アンドーナツ)」というプロジェクトをやっています。簡単に言うと、職住近接のコンセプトを基に子育て中のお母様方などに郊外のオフィスに集まっていただき、そこでお仕事をしてもらうという取り組みです。現在、千葉県・柏の葉と神奈川県・湘南(辻堂)に拠点を設けています。 今回、東京オフィスと&donuts柏の葉オフィスで「見積もり」をめぐるお話会(自由参加の勉強会みたいなもの)を開催しました。クライアントワークでは見積もりを出す機会はいくらでもありますし、社内のやり取りでもどれぐらいかかりそうか、話し合う機会は多いと思います。そのコミュニケーションを改善するきっかけになればよいなと思ってのことでした。 東京オフィスでは割とかために、見積もりとは〜のような感じで話を進めたのですが、&donuts柏の葉オフィスで
こんにちは、エンジニアの@hanhan1978です。 2019/2/16(土)グランパークカンファレンスにて開催された。Laravel JP Conferenceにて、「Laravelで学ぶ、Webアプリケーションチューニングの基本」というタイトルで発表してきました。 conference2019.laravel.jp 登壇内容 10年以上前の話ですが、サービスイン後に負荷が上がったアプリケーションを目の前にした時に、どうして良いか分からずに途方にくれたことがありました。 個別の細かいチューニング方法は少し触れる程度に抑えて、大局から絞り込んでいくやり方にフォーカスしています。私と同じように苦境に立たされた人にとって、闇を照らす光になれたらなと思っています。 speakerdeck.com 聴講したセッションと感想 ServiceProvider, ServiceContainer入門 :
どうもこんにちは、@yamacho1111 です。 最近注意力が散漫です。戦闘力はたったの5です。うそです。 周りにポモドーロ・テクニックを駆使しているメンバーがいるので、私もやってみようと思いました。 ポモドーロ・テクニックとは 「ポモドーロ・テクニックとは」でググると、強調スニペットで次のように表示されていました。 ポモドーロテクニックは、「25分(集中)・5分(休憩)・25分(集中)・5分(休憩)…」のリズムで仕事をするという、取り入れやすく、かつ、効果も絶大な仕事術・時間術です。 なるほどですね。効果絶大。 他にも色々ありそうですが、ひとまずこの言葉を信じます。 作りました ということで、ポモドーロ・テクニックを実践するために、ポモドーロ・タイマーを自作しました。 まずはデモをご覧ください。 25分の集中と5分の休憩を交互にカウントダウンし、表示するだけのデバイスです。 Slack
複数人で開発していると、コードの書き方(インデントやブレスでの改行など)について意見が分かれることがあるかと思います。 また、PHP7.0以降で使えるタイプヒントは、宣言した型が不一致だとエラーになってくれますが、実行するまでエラーになるかわかりません。 安心安定の開発にはこれらが障害になりますので、静的解析によって排除しましょう。 今回はそのためのツールと簡単な使い方を書きます。 PHP_CodeSniffer PHPMD PHPStan Larastan 余談 おわりに PHP_CodeSniffer github.com 決められたコーディング標準を守っているかをチェックするツールです。 ここではPSR-12への準拠をチェックする例を示します。 導入 ルールファイル(phpcs.xml)作成 実行 # Composerで導入 $ composer require --dev squi
こんにちは、エンジニアの @akase244 です。 「AWS Lambdaを触ってみたい」と急に思いたち、AWSのドキュメントを読んでいたのですが、Lambdaを触るための前準備として以下の3つが説明されており、その中の「SAM CLI のインストール」がうまくいかずハマってしまったので、その際のメモを残しておこうと思います。 AWS アカウントのセットアップ AWS CLI のセットアップ SAM CLI のインストール Lambdaを触るための前準備 冒頭で大まかな流れを書きましたが、もう少し詳しく書くとこんな感じになります。 AWS アカウントのセットアップ AWSアカウントを作成する。 IAMユーザーを作成する。 AWS CLI のセットアップ AWS CLIをインストールする。 作成済みのIAMユーザーの情報を元にAWS CLIの設定を行う。 SAM CLI のインストール S
次のページ
このページを最初にブックマークしてみませんか?
『Innovator Japan Engineers’ Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く