" Done is better than perfect "は私の好きな言葉。ないないづくしの開発だからこそこの言葉を頼りに日々のタスクを完了させていくことが重要です。しかし完璧を目指さないとは言わない。完璧を目指すためには完了と同時に残課題を明確にすることが大事。必ずやらなければならないことを管理することが重要です
“Done is better than perfect”をプロダクト開発で実践する
" Done is better than perfect "は私の好きな言葉。ないないづくしの開発だからこそこの言葉を頼りに日々のタスクを完了させていくことが重要です。しかし完璧を目指さないとは言わない。完璧を目指すためには完了と同時に残課題を明確にすることが大事。必ずやらなければならないことを管理することが重要です
Cloud Buildのビルド結果をSlack通知するためのポイント紹介 – Block kitのカスタマイズ例も
Cloud Buildのビルド結果を通知するために調べたことのまとめとSlack通知メッセージのカスタマイズを紹介します。Cloud Buildの通知は公式のソースを少しカスタマイズしSlack通知メッセージはBlock Kitを使ってカスタマイズしています。Pub/Subやデプロイ時のエラーについても紹介しています。
表のセルに記入がないことは「いいえ」という選択肢を表すとは限らない
今回はちょっとした表の書き方についてのコラムです。 よく仕事で「表を埋めてください」と言われることがありますし、自分でも依頼することやドキュメントで書いていくこともあります。 この表を埋めるときに、記入しないセルを残していないでしょうか? 表を埋めていないところは曖昧になってしまうので、
アクセス制限付きの静的ウェブサイトを楽に構築して運用するためにいろいろ調べた
アクセス制限を入れた静的サイトを作りたくて調べていました。 重要なのは静的サイトをできるだけ簡単かつ安くアクセス制限も入れてやりたいというところ。AWS S3, GitHub Pages, GCP Cloud Storage, Firebase Hosting, Cloud Runといった選択肢を比較しました。
アクセス制限付きの静的ウェブサイトを楽に構築して運用するためにいろいろ調べた
アクセス制限を入れた静的サイトを作りたくて調べていました。 重要なのは静的サイトをできるだけ簡単かつ安くアクセス制限も入れてやりたいというところ。AWS S3, GitHub Pages, GCP Cloud Storage, Firebase Hosting, Cloud Runといった選択肢を比較しました。
OpenAIのVison APIとAWS CDKを使って航空券の情報を読み取るAPIをつくってみた
今回はNRIハッカソン2023で開発したAPIにOpenAIの画像入力のAPIを使った航空券の情報を抽出するAPIを追加したので紹介します。もともとはGoogle Maps PlatformのDirections APIなども使い旅行者向けに飛行機が出発するまでの短い時間で行ける場所を提案するプロダクトを作りました。
プレゼンの上達は緊張した時の自分を知ることからはじめよう – テクニックはあとからでよし
今回はハッカソンなどにおけるプレゼン(人前で話す)をどのようにしているのか自分の経験をもとに書いていきたいと思います。ポイントは緊張した時の自分を知ること。そのうえで極度に緊張しないようにするための対策を考えておくことです。テクニックはそのあとで身に着ければOK。私なりの対策を3点説明しているのでぜひ参考にしてください
シンプル/単純というのは非常にわかりやすくてよいものだと思います。でも開発現場ではそのシンプルを作ることがなかなか難しい。抽象的な設計を具体的な設計にしたときの共通認識が足りなかったりするのかも?みんなシンプルにしたいと思っているはずだしそれを目指すためにはどうすれば?結論、私はシンプルが好きなんです。
文章は意味のあるかたまりで切ろう。無意味に接続詞を使ってはいけない。
報告文書で無意味に接続詞をつかって文章を長くしてしまうとわかりにくい文章になって理解してもらえなくなります。今回は「接続詞」を適切に使ったり使わなかったりして、文章を意味のあるかたまりに適切に分けることを簡単な例を挙げながら紹介します。接続詞の意味と文章の前後関係も考えて適切な文章のつなげ方と分け方を身につけましょう。
生活習慣を変えてうまく睡眠がとれるようになりました – ポイントはセロトニンとストレッチ
私は自他ともに認めるほどに睡眠を取るのが下手な人間でした。 今回は生活習慣として朝の散歩や筋トレ、夜のストレッチなど様々なことを取り入れてうまく睡眠がとれるようになりました。今では睡眠サプリメントをやめることもできています。そんな私の睡眠のための生活習慣について解説します。ポイントはセロトニンとストレッチです。
生活習慣を変えてうまく睡眠がとれるようになりました – ポイントはセロトニンとストレッチ
私は自他ともに認めるほどに睡眠を取るのが下手な人間でした。 今回は生活習慣として朝の散歩や筋トレ、夜のストレッチなど様々なことを取り入れてうまく睡眠がとれるようになりました。今では睡眠サプリメントをやめることもできています。そんな私の睡眠のための生活習慣について解説します。ポイントはセロトニンとストレッチです。
正しい論理と経験をベースに自分の違和感を信じることが正しい価値を導く
今回は直感的に思ったことを少し書いてみようと思います。 仕事をしていると様々な人の話を聞くことになります。マネージャーになると特に話すのが仕事みたいな部分があります。 そんなとき、人の話を聞いて違和感を持つことがあります。 長年考えてきましたが、その違和感の正体は目的のずれにあるようなのです。
8年ぶりにPCを組みなおしてWindows 11に乗り換えました – できるだけ安く長く使えるように
今回は自作PCの話です。今プライベートで使っているPCは8年ほど前に自作したPCなので、そろそろ新しくしたいしWindows 11が使いたいのもあり新たにPCを組みなおすことにしました。今回は自作PCパーツで選んだものとなぜそれを選んだのかを紹介します。主にCPU、マザボ、メモリ、ストレージを紹介しています。
上司に意思決定をお願いするなら漏れなく重複のない選択肢を用意しよう
今回は会議で上司に意思決定をしてもらうときに部下として何をするべきなのかを解説しようと思います。 これは会社組織に属する人ならだれでも必要な業務遂行能力の一つですしエンジニアも例外ではありません。やるべきことは選択肢を用意することです。漏れなく重複なく正しい日本語を使った選択肢を明示することが必要なのです。
元同期に聞かれてみた大手SIerからキャリアチェンジした理由と意味 – 30代のうちにチャレンジしたかったんです
元同期で現在はキャリアコンサルタントとしてお仕事されているクライス&カンパニーの和田さんにインタビューいただいた記事の紹介です。 テーマは大手SIerから転職してスタートアップの開発責任者になったことについてです。転職理由は30代でチャレンジしたかったからでありそれをテーマに沿って話している記事です。是非ご覧ください。
提供サービスで発生した障害は、技術的対処と組織的対処で是正する – QAオペレーション見直しが急務
今回は提供しているサービスで障害が発生した時にどのように障害を是正していけばよいかということを考えます。障害の是正には技術的な対処と組織的な対処の両面が必要です。この記事では特に組織的な対処としてQAオペレーションに注目します。異常系やデグレ検知を具体的に何に気を付けるべきなのか?をご紹介します。
エンジニアからマネージャーになるというキャリアを選んで3か月を振り返る
仕事でマネージャーになって四半期を終えましたので少し振り返りたいと思います。 いちエンジニアからマネージャーになるというキャリアの選択は思いの外自分にとっては変化が大きかったようでした。その変化がどんなものだったのか?その3か月をどのように感じてきたのかを書いていきます。
こんちには。てぃろです。 今の仕事でVPになって四半期を終えました。ほんの少しですが、振り返りたいと思います。
大企業で10年培った仕事を効率化するためのテクニックまとめ – それでも最後は気持ちが大事です
大企業で10年やってきた仕事の仕方というのは意外と効率的だったと気付きました。 その過去の経験で書いてきた記事をまとめていきます。仕事や会議を効率化するためのテクニックやガジェット、ツール、デスク周りについて説明してきます。今のリモートワーク全盛時代だからこその話もあります。是非仕事の効率化のヒントとしてご覧ください。
大企業で10年培った仕事を効率化するためのテクニックまとめ – それでも最後は気持ちが大事です
大企業で10年やってきた仕事の仕方というのは意外と効率的だったと気付きました。 その過去の経験で書いてきた記事をまとめていきます。仕事や会議を効率化するためのテクニックやガジェット、ツール、デスク周りについて説明してきます。今のリモートワーク全盛時代だからこその話もあります。是非仕事の効率化のヒントとしてご覧ください。
性能テストを計画実行するときによく起こりがちな問題とその解決策4選
これまで多くの開発に関わってきましたがどの開発でも最も問題になる工程が性能テストでした。ほとんどの開発現場で性能観点を十分考慮することが少なかったことで最終的に性能テスト工程になってよく問題が起きていたと思います。そこで今回は私がよく遭遇してきた性能テストの問題とその解決方法について紹介していきたいと思います。
Google Cloud Japanさんにお呼ばれしてDigital Native Leaders Meetupに参加しました
こんにちは。てぃろです。 現在の会社ではGCPを使用していたので、GCPのカスタマーエンジニアの方とコミュニケ
Go言語で文字列ベースのenumを書く時には必ずバリデーションしたい : Tipsメモ
今回はGo言語で文字列ベースのenumを書く時にバリデーションチェックをしなければいけない理由とバリデーションチェックをするための簡単な方法を紹介します。switch文を少し書くだけでバリデーションチェックができるようになります。規約も併用する形ですが好みの部分もあるのでGo言語でenumを書く時の参考にしてください。
人と一緒にやる仕事の進め方はエンジニアこそしっかり身に着けるべきだ
最近仕事の進め方について思うところがありました。そこで思い至ったのが仕事の進め方って習わないということ。ここでいう仕事とは「一つの目的を達成するために長期的に他者と共同作業をする」ことを指しています。実はいいプロダクトを作ろうと思うエンジニアほど共同作業が多くなります。だからこそ仕事の進め方をエンジニアは学ぶべきです。
ブランチ戦略から考えるソフトウェア品質とリリース運用の安定性と開発現場の5つの事情
今回はソフトウェア品質の側面からブランチ戦略を考えます。 私の経験に基づいて、ソフトウェア品質を確保するためにどのようなブランチ戦略を考えるべきか、そのための要点として開発チームによくある5つの事情をご紹介します。ソフトウェア品質やリリース運用に困っている方々はこれでブランチ戦略を再考してみはいかがでしょうか。
makeでup to dateとか言われたらPHONYを使おう:Tipsメモ
makeコマンドを使っているときに"up to date"というエラー文が出てしまったときには、PHONYを使ってコマンドをうまく使えるようになります。Go言語やマイクロサービスの利用が増えてmakeがC言語で使われた時代より注目されるようになったと思います。今だからこそmakeのTipsとして参考にしてみてください。
いまさらはじめるGo言語 – 後編:Cloud FunctionsでYoutubeの動画情報自動編集
Cloud FunctionsでYoutubeの動画情報を自動で編集することができる関数を作ります。動画をYoutubeにアップロードするだけで動画情報がすべて入力されるようにします。Cloud FunctionsをコールするトリガーにはIFTTTを使用しGo言語でYoutube Data API v3をコールします
TP-Link Deco X60のハマりどころ – 失敗から学ぶ安定運用のため設定
こんにちは。てぃろです。 最近オンラインゲームをやることが増えたのもあり、ネットワークの速度を上げたかったので
gitignore.ioを使った簡単で漏れない.gitignoreファイルのつくりかた
.gitignoreを作るのはかなりめんどくさいです。いざ作ろうとすると一つ一つ指定する必要があって手作業で作成するのはかなりの手間です。そこでgitignore.ioというサービスを使って簡単に.gitignoreファイルを自動生成してしまいましょう。丁寧なコメント付きで生成してくれる非常に便利なサービスです。
開発現場で使うフレームワークは、正しい問題に適用し、運用を定着させて初めて意味を持つ
フレームワークは特定の問題にあてはめて使用すると正しく容易に解決策やそのめのヒントが得られる、というものです。ではフレームワークはただ適用すればいいのでしょうか?変化する現場でフレームワークを使うには適用可能な問題を見極めることと、変化する問題を捉え続け適用するフレームワークすら変化させる必要があるはずです
開発現場で使うフレームワークは、正しい問題に適用し、運用を定着させて初めて意味を持つ
フレームワークは特定の問題にあてはめて使用すると正しく容易に解決策やそのめのヒントが得られる、というものです。ではフレームワークはただ適用すればいいのでしょうか?変化する現場でフレームワークを使うには適用可能な問題を見極めることと、変化する問題を捉え続け適用するフレームワークすら変化させる必要があるはずです
Go言語(Golang)で引数に渡された関数の実行タイミングは、引数があるかないかで変わる
こんにちは。てぃろです。 最近仕事が変わってGo言語の実装を担当するようになりました。 そこでGo言語で引数に
いまさらはじめるGo言語 – 前編:Go言語の基本を学びCloud Functionsでサンプルを実行
Go言語を学び始めていこうと思います。そこでどのようにして学んでいけば良さそうか?導入をどうしていったか?ということの備忘を残します。今回は前編としてGo言語の基本をどこで学ぶのがよいか?Go言語でCloud Functionsを実行するにはどうすればよいか?を書きます。後編はYoutube APIなどを実装します。
React+TypeScript+video.jsで動画配信用クライアントを関数コンポーネントでつくる
今回はReactとTypeScriptでvideo.jsを使い関数コンポーネントで動画が見れるようにしたサンプルを紹介します。React+TypeScript+video.jsで関数コンポーネントで書いてあるいい例がなかったので自分で書いてみました。Githubでソースを公開しているので是非動かしてみてください。
日中の生産性を上げる起床後のストレッチのススメ – 朝にやるべき動的ストレッチメニュー
今回は私が習慣にしている起床後のストレッチを紹介。背中と骨盤をほぐすオガトレさんのストレッチ動画です。狙いは背中と骨盤の筋肉をほぐすこと。背中と腰と尻をほぐして血流を改善し目を覚ましていきます。頭痛や肩こりの改善も見込めます。ぜひ習慣化すべきストレッチです。
PyScriptで書いたスクリプトをGithub Pagesで動かしてみた
今回はPyScriptをGithub Pagesで試してみたいと思います。 PyScriptはWebAssemblyを活用しPythonをブラウザ上で実行できるようにするOSSです。HTML内にPythonを記述してブラウザ上でPythonアプリを実行できます。公開にはGithub Pagesを使ってみます。
睡眠の質を上げる就寝前のストレッチ習慣のススメ – 自律神経の乱れを整えます
今回は私が習慣にしている就寝前のストレッチを紹介。背中をほぐすストレッチと全身をほぐすオガトレさんのストレッチ動画です。狙いは自律神経の乱れを整えること。背中と腰と尻をほぐして血流を改善し自律神経の乱れが整って睡眠の質が改善することを期待します。頭痛や肩こりやむくみの改善も見込めるので是非やるべきストレッチです。
TypeScriptの勉強メモ – 勉強になる解説記事とか本とかのまとめ
ここはTypeScriptを勉強する上で参考にしている解説記事や本をまとめます。 勉強は日々行っているので内容は随時更新していきます。
WindowsとMacとPS5を一つのディスプレイで気持ちよく使って楽しみたいエンジニアのデスクツアー – 音にもこだわってます
WindowsとMacとPS5を1つのディスプレイで使いたいところから初めてデスクに様々な工夫を凝らして仕事しやすくゲームもしやすいデスク環境を作っています。特に初代M1 Macの3画面化やMixAmpの接続、遅延なしのBloutooth接続など快適なデスクワークライフを送るコツをその背景といっしょにご紹介します!
約10ヶ月で品質を意識する文化醸成に成功した – 長期的な目線でソフトウェア品質を考える
今回は長期的な目線でソフトウェア品質を改善するために文化醸成にまで踏み込んで活動してきた結果のまとめです。 結果としておよそ10カ月でソフトウェアの品質は改善し継続的に品質を維持向上させるための文化醸成まで成功しました。 ここまでいくためにどのようなことをしてきたのか?を少しご紹介したいと思います
プラグインなし!WordPressの記事を新しく公開したことをZapierを使って自動でツイートする
こんにちは。てぃろです。 ブログの記事更新のツイートしようと思ってたまに忘れてしまうことがあります。それをいろ
FOSSAでOSSライセンスを一覧しよう。両立性(互換性)チェックは事例は理解しつつ専門家に頼ろう。
こんにちは。てぃろです。 先日公開した以下の記事でOSSライセンスを調べていた話をしました。 https://
OSSライセンスの両立性をうまくコントロールできなかったのでOSS公開ができなかった話
こんにちは。てぃろです。 今回はOSS公開をするにあたってOSSライセンスとどのように付き合っていけばよいかを
ImageMagickを使ってUIテストの画面崩れのデグレチェックを自動化するツールをつくってみた
UIテスト結果のスクショをどうやってチェックしていますか?枚数が多くなるとそのチェックだけでも大変なので、今回はImageMagickを使ってUIテストの画面崩れのデグレチェックを自動化してみました。compareというコマンドを使い自動チェックツールを作りました。ツール作成のためのTipsも紹介します。
ImageMagickを使ってUIテストの画面崩れのデグレチェックを自動化するツールをつくってみた
UIテスト結果のスクショをどうやってチェックしていますか?枚数が多くなるとそのチェックだけでも大変なので、今回はImageMagickを使ってUIテストの画面崩れのデグレチェックを自動化してみました。compareというコマンドを使い自動チェックツールを作りました。ツール作成のためのTipsも紹介します。
AWS CDK v2を使ってReactのフロントアプリとサーバーレスなインフラを(ほぼ)1コマンドでデプロイできるアプリをつくってみた
こんにちは。てぃろです。 仕事でSlackのAPIを使ったメッセージ送受信をWeb画面からしたいという要件があ […]
今回CLIツールを作る機会があったのですが、自分の得意なPythonで作ろうと思ったときにどうやって作ればいいかわからなかったので調べました。 その時にそのまま有用だった記事があったので、それをまとめるだけのリンク集的な記事です。PythonでCLIツールを作るためのsetup.pyの作り方に関する記事の紹介です。
TypeScript x React x TailWindで作るシンプルなModalコンポーネント
こんにちは。てぃろです。 今回はReactでモーダルを簡単に追加する方法を紹介します。 Reactでモーダルを […]
firebase hostingでホスティングした複数のWebサイトのうち一部だけを停止(disable)したい。復旧もしたい。
今回はfirebase Hostingで公開していたWebサイトが複数あるときに、その中でも 特定のWebサイトだけ停止(disable)して他は停止せずに残しておき、あとで復旧(deploy)もしたい 。というときにどのようにコマンドを打てばよいかfirebase-toolsのコマンド例も交えて解説しています。
M1 Macを3画面表示するための方法を紹介します。 今ではM1 Maxなどの最新のM1 Macではそのままでも2台以上のディスプレイに出力できますが、初代のM1 Macbook Proでは出力できるディスプレイは1台のみでした。 しかし、あるガジェットを使うと2台のディスプレイに出力できるようになります。
宣言的か?命令的か?ではない。宣言的も命令的も違いを理解していい感じに使おう。
宣言的プログラミングと命令的プログラミングの違いはなんでしょうか?どちらのほうが優れているのでしょうか?どちらもいいところと悪いところがあります。宣言的と命令的のメリットとデメリットでその違いを知った上でそれぞれを適切に使っていくことを考えたい。今回はそんなことを考えてみるコラムです。
私が所属する有志団体のArumonでアドベントカレンダー2021を実施しています! ただこのArumonのアドベントカレンダーが面白いところは、Arumonの自由な文化をそのまま反映しているところにあります。 エンジニアの集団ではあるのですが、技術の話だけではなく多岐にわたる記事を公開しています。ぜひ少し覗いてみてください。
React Tips:親子関係にないコンポーネントでの値渡しにはURLを使ってもいい(使わなかったけど)
ReactのTipsです。 Reactは親子関係にあるコンポーネント同士での値の受け渡しには Props を使うなどわかりやすい方法がしっかり用意されています。 ただ、今回は 親子関係にない コンポーネント同士での値の受け渡しをどのようにやればシンプルなのか?を考えました。React Router v5を使った方法です。
S3からファイルをダウンロードするAWS CLIコマンド : Tipsメモ
こんにちは。てぃろです。 今回はただのコマンドメモです。 対象のAWS CLIのバージョン aws-cli/2 […]
こんにちは。てぃろです。 今回はSI現場での「テストする時間がない」というときの話について書きます。 ソフトウ […]
OR toolsのVRPTWを使って乗り合いバスの予約システムを開発しました – 後編:実装編
車両の経路計算に活用できるOR toolsをご存知でしょうか。今回は特に乗り合いバスの経路計算のためにOR toolsを使います。使用するVRPTWは時間制約を用いたアルゴリズムです。内容は要件定義と実装の前後編で分けています。本記事は後編の実装です。どのように要件を解釈し実装に落としたのか解説します。
ReactでDatepickerを使っていますか?そのカレンダーとして表示された日付のうち特定の日付に色を付けるなどして強調したいときの設定方法を紹介します。非常に簡単な設定だけで鮮やかなカレンダーの日付の強調表示ができます。使うライブラリはreact-datepickerです。
OR toolsのVRPTWを使って乗り合いバスの予約システムを開発しました – 前編:要件定義編
車両の経路計算に活用できるOR toolsをご存知でしょうか。今回は特に乗り合いバスの経路計算のためにOR toolsを使います。使用するVRPTWは時間制約を用いたアルゴリズムです。内容は要件定義と実装の前後編で分けています。本記事は前編の要件定義です。どのように要件定義をしアルゴリズムを選定したかを解説します。
AWS GameDay Online ~ APN杯 vol.2 ~ で最多クエストクリアを受賞しました!
先日行われたAWS GameDay OnlineにチームArumonとして出場して見事入賞しました!今回はチームArumonとして参加し最多クエストクリアの賞をいただきました。過去の参加体験記として今後GameDayに参加したいと思っている人の参考になればと思います。
AWS GameDay Online ~ APN杯 vol.2 ~ で最多クエストクリアを受賞しました!
先日行われたAWS GameDay OnlineにチームArumonとして出場して見事入賞しました!今回はチームArumonとして参加し最多クエストクリアの賞をいただきました。過去の参加体験記として今後GameDayに参加したいと思っている人の参考になればと思います。
fastlaneで出力したスクショのノッチ部分を自動で削除する – sipsコマンドを活用
fastlaneを使った自動UIテストで出力されたスクリーンショットを自動で加工する方法を紹介します。Macにもともと入っているコマンドでsipsを使っていきます。これらをfastlaneの実行完了後にシェルで実行することでノッチ部分の削除を自動化しUIのデグレ検知を効率的に可能としていきます。
複数端末のiOSアプリのUIテストを自動化しちゃおう – XCUITestとfastlaneとBeyond Compareで実装
iOSアプリ開発で複数端末で自動UIテストを実行したくありませんか?多少の工夫が必要になりますがSaaSも使うことなくお使いのMac上で構築することができます。それにはfastlaneを中心に使い1コマンドですべてのテストを実行するようにします。最終的にUIのデグレ検知をどのようにすればよいかまで考えていきます。
xcodegenを入れようとしてxctestが見つからない時はXcodeでCLIの設定をしてるか確認しよう
xcodegenを導入しようとした時にxctestが見つからないというエラーが出ました。これはXcodeのCLIを設定していないことが原因。どこから設定すれば良いのか備忘録として画像付きで簡単に解説を残しておきます。xcodegenの構築時に限らずコマンドでxctestが見つからないとなったらチェックをオススメします
Xcode13(beta)で実機でUIテスト(XCUITest)しようとしたらBundle Identifierが勝手に書き変わってしまった
XcodeでSwiftのUIテストをするときにハマった設定のメモです。なぜかBundle Identifierに”.xctrunner”と勝手にくっついてしまってビルドができなくなってしまいました。少し設定をいじることでうまくビルドができるようになりました。どのように設定すればよいか簡単に解説します。
”比べてわかるIaCの選び方 – クラウドネイティブストーリー”を読んで、Pulumiのすばらしさに気づきました
比べてわかるIaCの選び方という技術書を読んだのでその書評を書きました。個人的にはTerraformとPulumiを実務上で使うメリットや注意点を知ることができた素晴らしい本だと思います。実務で使っている彼らだからこそ語れる内容が入っています。本記事では私が特に参考になった部分について少しだけ紹介したいと思います。
WordPress 5.8 でWebPをサポート!が、WebPへの変換は未サポート…代替手段をご紹介します
WordPress5.8がリリースされました。新機能の中でも注目したのはWebPのサポートです。これはWebPがアップロードして記事で使えるようになったという意味でWebPへの変換まではまだできないようです。ではWebPへの変換は今はどうすればよいのか?今後変換に対応していく予定があるのか?答えていきます。
リモート会議のためにマイクにこだわろう – おすすめはUSBで使えるコンデンサマイク
こんにちは。てぃろです。 その後も同様のテレワークをずっと続けていますが、やはりこれで問題なく仕事が回るという […]
もう大規模開発で詳細設計書は作れない。単体テストコードを詳細設計と再定義しよう。
大規模ソフトウェア開発の品質を考える第二弾です。今回は特にどうすれば大規模開発においてデグレを防いだ開発を進めることができるか?という課題について現実的な話を考えていきたいと思います。結果として詳細設計と単体テストの作り方や定義を更新するべきだ、という結論に至りました。その議論の経緯をご覧いただければと思います。
React+TypeScriptでFireStoreのMap型を受けてmapでるーぷする – forEachは使わない
FireStoreのMap型をそのまま受け取るには?TypeScriptのMap型を使ってはいけません。Map型を使わずに独自にinterfaceを定義することで受け取ることができます。データをループして表示するときはforEachではなくmapを使うことができます。具体的な実装例と私のハマりポイントを解説します。
失敗から学ぶAppSyncのSubscriptionとかApolloとかPostmanとか
AppSyncでSubscriptionのクライアントを作りたいですか?僕はVueで作りたかったです!でもうまくいかず諦めました…。でも諦めるまでにやったことが個人的に学びが多かったので記事にまとめます。AppSyncのSubscriptionをVue+ApolloやPostmanでつなぐことを試して失敗した経緯です。
プラグインなし!WordPressのホワイトリストにない外部サイトを埋め込む方法 – PHPも書きません
Wordpressでブログを書く時、外部サイトをキレイに埋め込みたいことありませんか?TwitterやYoutubeならただURLを張り付けるだけでキレイに埋め込めますが埋め込めないサイトもあります。この記事ではそんなWordpressで通常埋め込めない外部サイトでも簡単にキレイに埋め込むことができる方法を紹介します。
AWS LambdaのProvisioned ConcurrencyをServerless Frameworkを使って設定してみた – おまけでTipsも解説
LambdaはProvisioned Concurrencyでコールドスタート問題に対する対策をすることができるようになりました。これをServerless Frameworkを使って設定する方法を解説します。設定したときの注意点もあります。これを知らないといつか本番障害を起こす危険性すらあります。
炎上寸前のソフトウェアテストの悪循環を断ち切るために押さえたい一つのこと – 原因と実践方法を解説
炎上寸前のプロジェクトでテストしたことありますか?炎上するということはアプリの品質が悪いということ。品質が悪いと障害が多発し忙しくなってもっと品質が悪くなる。一刻も早くこの悪循環を断ち切る必要があります。本記事ではそんな現場で私が実践する悪循環を断ち切るたった一つの考え方を背景とともにご紹介します。
AppSyncのDynamoDBリゾルバーをServerless Frameworkで書いた
DynamoDBリゾルバーを使えばAppSyncをすぐ作れます。さらにServereless Frameworkと組み合わせると構築速度や再現性が高まります。記事はServerless Frameworkで書いたDynamoDBリゾルバーの定義の例を解説します。公開済のソースで今すぐAppSyncを構築してみませんか?
v-listの高さを固定してスクロールできるようにする – 仮想スクロールは要りません
v-listのスクロールがしたいですか?リストの要素の追加と削除がある場合やリストの要素数の多さで最適な実装方法は変わってきます。CSSだけで実装できる場合もあれば仮想スクロールが必要な場合もあります。そんな使い分けの方法についてなぜそのような使い分けになるのか?仕組みの解説も交えてお答えします。
Pythonでクラスを継承しオーバーライドする箇所をデコレータですっきり作り変えたい
Pythonのデコレータを使ってますか?自分でデコレータを使ったライブラリを作るのは実は簡単です。既存のクラスを書き換えるのも簡単です。継承やクラスメソッドのオーバーライドの部分も問題なく書き換え可能です。実行速度も問題ありません。本文では書き換えの実例で使い道も解説しています。デコレータでかっこよく書き換えませんか?
Vue.jsとMoment.jsで日付フォーマットのやり方 – Vue3での使い方も紹介
Vue.jsで日付をキレイにフォーマットして表示したい!そんなときにVue,jsの備えるフィルター機能とMoment.jsを組み合わせた使い方で日付フォーマットを簡単に書けます!しかしVue3ではフィルター機能はなくなってしまいました。でもその書き換え方は非常に簡単。フィルターがなくなった代わりになる書き方も紹介します
Vue2.xで配列要素の追加/削除で変更検知する – リアクティブシステムを少し解説
Vue.jsで配列要素を追加しても削除しても画面が更新されない!それはVue.jsのリアクティブシステムで変更検知できない操作をしているからです。Vue.jsで用意されているAPIを使って強制的に変更検知をさせて配列要素の追加と削除で画面を更新できるようにしましょう。APIは非常にシンプル。今すぐ書き換えられます。
AppSyncのLambdaリゾルバーをPythonとServerless Frameworkで書いた
LambdaリゾルバーでAppSyncの可能性は無限大になります。さらにServereless Frameworkと組み合わせると構築速度や再現性が高まります。今回はPythonでLambdaを書いたソースを見ながらAppSyncの定義の例を解説します。公開済のソースを使って今すぐAppSyncを構築してみませんか?
bit.connect2020でNOW STYLE賞を受賞! – リモート猟師サービス「ヤマサチ」を開発しました
NRI主催のハッカソンbit.connect2020で受賞しました。リモート猟師サービス「ヤマサチ」を開発。深刻な猟師不足を解消するべく猟師のリモート体験からジビエへの興味を喚起し最終的に猟師そのものへ興味を誘発することを目指したサービス。課題がNewではなくNowだという理由で急遽新設されたNOWSTYLE賞を受賞。
いいねしてくれた人をTwitter APIで表示したかったけどできなかった話
こんにちは。てぃろです。 Twitterの運用を日々改善しています。その中で自分のツイートにいいねしてくれた人 […]
CloudFrontのキャッシュ削除を自動化してみた – CI/CDに使えるコマンド化を解説
CloudFrontのキャッシュ削除してますか?CloudFrontではレスポンスをよくするためにキャッシュを使えます。しかしキャッシュ削除しないと古いアプリのまま使われてしまう恐れがあります。そこでアプリを更新する度にCloudFrontのキャッシュを自動削除できる方法を解説します。シンプルな3行のコマンドで実現できます。
AppSyncとGraphQLとは?re:Invent 2020のセッションをもとにまとめてみた
AppSyncを知ってますか?AppSyncとはAWSが提供するGraphQL実装のフルマネージドサービスです。本記事はre:Invent2020のセッション内容をフォローしながらAppSyncとGraphQLの概要をまとめていきます。この記事を読めばAppSyncとGraphQLのことについて理解できます。RESTとは違うAPIの実装に少し触れてみませんか?
AppSyncとGraphQLとは?re:Invent 2020のセッションをもとにまとめてみた
AppSyncを知ってますか?AppSyncとはAWSが提供するGraphQL実装のフルマネージドサービスです。本記事はre:Invent2020のセッション内容をフォローしながらAppSyncとGraphQLの概要をまとめていきます。この記事を読めばAppSyncとGraphQLのことについて理解できます。RESTとは違うAPIの実装に少し触れてみませんか?
Vue.jsのフロントをVue I18nで多言語化してみた – 実装の工夫や注意点も解説
こんにちは。てぃろです。 今回はVue.jsで作ったフロントを多言語化し、日本語と英語を切り替えできるようにし […]
AWSで作るサーバーレスアーキテクチャ入門 – 自作Webアプリを題材に解説
こんにちは。てぃろです。 今回は私が開発しているサーバーレスアプリのフレームワークを題材にサーバーレスアーキテ […]
npmパッケージの脆弱性を自動チェックして対応する方法 – 2つの簡単な工夫を紹介
npmパッケージの脆弱性チェックしてますか?この記事ではnpmパッケージの脆弱性を自動でチェックする方法を紹介します。チェックで脆弱性が見つかったときの簡単な対応方法についても紹介しています。npmパッケージを扱う上で脆弱性チェックとその対応をすることは実は難しくありません。記事を読んでアプリのセキュリティを向上しませんか?
VueとServerless Frameworkで本番で使えるサーバーレスアプリのフレームワークを公開しました
サーバーレスアプリの作り方知ってますか?Vue.jsとServerless Frameworkを主に使用し、これまでのサーバーレス開発のノウハウを詰め込んだサーバーレスアプリのフレームワークを作りました。開発から運用まで考慮したその特徴を説明しています。公開しているソースを使ってサーバーレスアプリを作ってみましょう。
AWS Lambdaの一歩進んだ使い方を考える – re:Invent2020のセッションを参考に
AWS Lambdaを使いこなしていますか?本記事ではre:Invent2020のセッションを参考にしながらLambdaを使いこなす使い方やその特徴について解説していきます。あなたもこの記事を読んでLambdaを使いこなして、コストパフォーマンスの高く管理しやすい最高のサーバーレスアプリケーションを開発しましょう。
WordPressでWebPを使おう – Xserverの設定も解説
ブログをもっと読んでもらいやすくしたいですか?ブログを配信するときにWebPという画像フォーマットを使うと、表示速度が上がり記事が読まれやすくなります。本記事ではWordpressでWebPを使うための設定方法や手順を画像付きで解説しています。記事をもっと読まれたいと考えている方は是非ご覧ください。
AngularでDateオブジェクトを変更検知するときは新しいDateオブジェクトを使う
Angularの場合の変数の変更検知のTipsです。Dateオブジェクトを変更検知させようとしたときのことについて特に書いています。
アイディアは考えないことが重要です。でも、何もせずに待っていればアイディアが突然閃くというものでもありません。アイディアを閃くためには日々の積み重ねが必要なのです。そのための手順や意識の持ち方について解説します。
【追加CSS】Worpress記事の見出しを見やすいスタイルにする
wordpressで投稿のスタイルをカスタマイズしたい人向け、特に投稿の中でもキレイな見出しを作りたいときの話です。wordpressで追加CSSを書くことによってユーザが見やすいスタイルに仕上げます。
「ブログリーダー」を活用して、てぃろさんをフォローしませんか?
" Done is better than perfect "は私の好きな言葉。ないないづくしの開発だからこそこの言葉を頼りに日々のタスクを完了させていくことが重要です。しかし完璧を目指さないとは言わない。完璧を目指すためには完了と同時に残課題を明確にすることが大事。必ずやらなければならないことを管理することが重要です
Cloud Buildのビルド結果を通知するために調べたことのまとめとSlack通知メッセージのカスタマイズを紹介します。Cloud Buildの通知は公式のソースを少しカスタマイズしSlack通知メッセージはBlock Kitを使ってカスタマイズしています。Pub/Subやデプロイ時のエラーについても紹介しています。
今回はちょっとした表の書き方についてのコラムです。 よく仕事で「表を埋めてください」と言われることがありますし、自分でも依頼することやドキュメントで書いていくこともあります。 この表を埋めるときに、記入しないセルを残していないでしょうか? 表を埋めていないところは曖昧になってしまうので、
アクセス制限を入れた静的サイトを作りたくて調べていました。 重要なのは静的サイトをできるだけ簡単かつ安くアクセス制限も入れてやりたいというところ。AWS S3, GitHub Pages, GCP Cloud Storage, Firebase Hosting, Cloud Runといった選択肢を比較しました。
アクセス制限を入れた静的サイトを作りたくて調べていました。 重要なのは静的サイトをできるだけ簡単かつ安くアクセス制限も入れてやりたいというところ。AWS S3, GitHub Pages, GCP Cloud Storage, Firebase Hosting, Cloud Runといった選択肢を比較しました。
今回はNRIハッカソン2023で開発したAPIにOpenAIの画像入力のAPIを使った航空券の情報を抽出するAPIを追加したので紹介します。もともとはGoogle Maps PlatformのDirections APIなども使い旅行者向けに飛行機が出発するまでの短い時間で行ける場所を提案するプロダクトを作りました。
今回はハッカソンなどにおけるプレゼン(人前で話す)をどのようにしているのか自分の経験をもとに書いていきたいと思います。ポイントは緊張した時の自分を知ること。そのうえで極度に緊張しないようにするための対策を考えておくことです。テクニックはそのあとで身に着ければOK。私なりの対策を3点説明しているのでぜひ参考にしてください
シンプル/単純というのは非常にわかりやすくてよいものだと思います。でも開発現場ではそのシンプルを作ることがなかなか難しい。抽象的な設計を具体的な設計にしたときの共通認識が足りなかったりするのかも?みんなシンプルにしたいと思っているはずだしそれを目指すためにはどうすれば?結論、私はシンプルが好きなんです。
報告文書で無意味に接続詞をつかって文章を長くしてしまうとわかりにくい文章になって理解してもらえなくなります。今回は「接続詞」を適切に使ったり使わなかったりして、文章を意味のあるかたまりに適切に分けることを簡単な例を挙げながら紹介します。接続詞の意味と文章の前後関係も考えて適切な文章のつなげ方と分け方を身につけましょう。
私は自他ともに認めるほどに睡眠を取るのが下手な人間でした。 今回は生活習慣として朝の散歩や筋トレ、夜のストレッチなど様々なことを取り入れてうまく睡眠がとれるようになりました。今では睡眠サプリメントをやめることもできています。そんな私の睡眠のための生活習慣について解説します。ポイントはセロトニンとストレッチです。
私は自他ともに認めるほどに睡眠を取るのが下手な人間でした。 今回は生活習慣として朝の散歩や筋トレ、夜のストレッチなど様々なことを取り入れてうまく睡眠がとれるようになりました。今では睡眠サプリメントをやめることもできています。そんな私の睡眠のための生活習慣について解説します。ポイントはセロトニンとストレッチです。
今回は直感的に思ったことを少し書いてみようと思います。 仕事をしていると様々な人の話を聞くことになります。マネージャーになると特に話すのが仕事みたいな部分があります。 そんなとき、人の話を聞いて違和感を持つことがあります。 長年考えてきましたが、その違和感の正体は目的のずれにあるようなのです。
今回は自作PCの話です。今プライベートで使っているPCは8年ほど前に自作したPCなので、そろそろ新しくしたいしWindows 11が使いたいのもあり新たにPCを組みなおすことにしました。今回は自作PCパーツで選んだものとなぜそれを選んだのかを紹介します。主にCPU、マザボ、メモリ、ストレージを紹介しています。
今回は会議で上司に意思決定をしてもらうときに部下として何をするべきなのかを解説しようと思います。 これは会社組織に属する人ならだれでも必要な業務遂行能力の一つですしエンジニアも例外ではありません。やるべきことは選択肢を用意することです。漏れなく重複なく正しい日本語を使った選択肢を明示することが必要なのです。
元同期で現在はキャリアコンサルタントとしてお仕事されているクライス&カンパニーの和田さんにインタビューいただいた記事の紹介です。 テーマは大手SIerから転職してスタートアップの開発責任者になったことについてです。転職理由は30代でチャレンジしたかったからでありそれをテーマに沿って話している記事です。是非ご覧ください。
今回は提供しているサービスで障害が発生した時にどのように障害を是正していけばよいかということを考えます。障害の是正には技術的な対処と組織的な対処の両面が必要です。この記事では特に組織的な対処としてQAオペレーションに注目します。異常系やデグレ検知を具体的に何に気を付けるべきなのか?をご紹介します。
仕事でマネージャーになって四半期を終えましたので少し振り返りたいと思います。 いちエンジニアからマネージャーになるというキャリアの選択は思いの外自分にとっては変化が大きかったようでした。その変化がどんなものだったのか?その3か月をどのように感じてきたのかを書いていきます。
こんちには。てぃろです。 今の仕事でVPになって四半期を終えました。ほんの少しですが、振り返りたいと思います。
大企業で10年やってきた仕事の仕方というのは意外と効率的だったと気付きました。 その過去の経験で書いてきた記事をまとめていきます。仕事や会議を効率化するためのテクニックやガジェット、ツール、デスク周りについて説明してきます。今のリモートワーク全盛時代だからこその話もあります。是非仕事の効率化のヒントとしてご覧ください。
大企業で10年やってきた仕事の仕方というのは意外と効率的だったと気付きました。 その過去の経験で書いてきた記事をまとめていきます。仕事や会議を効率化するためのテクニックやガジェット、ツール、デスク周りについて説明してきます。今のリモートワーク全盛時代だからこその話もあります。是非仕事の効率化のヒントとしてご覧ください。
大企業で10年やってきた仕事の仕方というのは意外と効率的だったと気付きました。 その過去の経験で書いてきた記事をまとめていきます。仕事や会議を効率化するためのテクニックやガジェット、ツール、デスク周りについて説明してきます。今のリモートワーク全盛時代だからこその話もあります。是非仕事の効率化のヒントとしてご覧ください。
大企業で10年やってきた仕事の仕方というのは意外と効率的だったと気付きました。 その過去の経験で書いてきた記事をまとめていきます。仕事や会議を効率化するためのテクニックやガジェット、ツール、デスク周りについて説明してきます。今のリモートワーク全盛時代だからこその話もあります。是非仕事の効率化のヒントとしてご覧ください。
これまで多くの開発に関わってきましたがどの開発でも最も問題になる工程が性能テストでした。ほとんどの開発現場で性能観点を十分考慮することが少なかったことで最終的に性能テスト工程になってよく問題が起きていたと思います。そこで今回は私がよく遭遇してきた性能テストの問題とその解決方法について紹介していきたいと思います。
こんにちは。てぃろです。 現在の会社ではGCPを使用していたので、GCPのカスタマーエンジニアの方とコミュニケ
今回はGo言語で文字列ベースのenumを書く時にバリデーションチェックをしなければいけない理由とバリデーションチェックをするための簡単な方法を紹介します。switch文を少し書くだけでバリデーションチェックができるようになります。規約も併用する形ですが好みの部分もあるのでGo言語でenumを書く時の参考にしてください。
最近仕事の進め方について思うところがありました。そこで思い至ったのが仕事の進め方って習わないということ。ここでいう仕事とは「一つの目的を達成するために長期的に他者と共同作業をする」ことを指しています。実はいいプロダクトを作ろうと思うエンジニアほど共同作業が多くなります。だからこそ仕事の進め方をエンジニアは学ぶべきです。
今回はソフトウェア品質の側面からブランチ戦略を考えます。 私の経験に基づいて、ソフトウェア品質を確保するためにどのようなブランチ戦略を考えるべきか、そのための要点として開発チームによくある5つの事情をご紹介します。ソフトウェア品質やリリース運用に困っている方々はこれでブランチ戦略を再考してみはいかがでしょうか。