「正しさ」をめぐるコミュニケーションについて

こんにちは、CTOの山岡(@hiro_yもしくは@hiroy.kotori.style)です。

自分も含め、エンジニアは「正しいこと」にこだわりがちです。設計の「正しさ」だったり、プログラミングコードの「正しさ」だったり、「正しいこと」について考える機会が多いのが理由でしょうか。

その結果として、「正しくないこと」に過剰に反応してしまいがちです。つい強い言葉を使ってしまったり、細かい部分に都度意見を言ってしまったり。そうしたきっかけで、他の人と衝突してしまったことはないでしょうか。自分はあります。

続きを読む

GitHub ActionsにPHPMDを導入して循環的複雑度を計測・警告してみた

ソフトウェアエンジニアの荻島です。

弊社では現在レガシー化してしまったLaravelアプリケーションのフレームワークのアップデートとリファクタリングが絶賛進行中です。

今日はその活動の一環でPHPMD(Mess Detector)という老舗の静的解析ツールを導入した話を記事にしたいと思います。

  • 静的解析ツールって?
  • PHPMDって何ができるの?
  • PHPMDを導入してCLIで実行してみる
    • ライブラリをインストール
    • 設定ファイル(phpmd.xml)を作成
    • 【お好みで】composer.jsonのscriptsに追記
    • phpmdの呼び出し方
  • PHPMDをGitHub ActionsのCIに組み込む
  • まとめ
続きを読む

Slackのチャンネル一覧を取得するスクリプトを書いた

こんにちは、CTOの山岡(@hiro_yもしくは@hiroy.kotori.style)です。

イノベーター・ジャパンではコミュニケーションのツールとしてSlackを利用しています。今回、たくさんあるチャンネルの整理を図ろうという話が出てきたのですが、現在契約しているProプランだとSlackが用意しているチャンネル管理ツールを利用できません。

要件としてはとりあえずチャンネルの一覧を出力できればよいだけなので、さくっとNode.js(バージョンは18系を想定)でチャンネル一覧のCSVファイルを出力するコードを書いて解決しました。

続きを読む

PHPConference福岡2023にて登壇してきました!

ソフトウェアエンジニアの荻島です。 先週末福岡で開催されたPHPConference福岡2023に参加・登壇してきましたので、そのレポです。

オフラインカンファレンスは春のPHPerKaigiに続いて2回目だったのですが、今回はなんと応募したトークが採択され、登壇者として参加してきました。

登壇内容

トークは「Monologの実装に学ぶInterfaceの使いどころ」というタイトルでの発表でした。

fortee.jp

内容としてはPHPer御用達のロギングライブラリ、Monologの内部実装で使用されているInterfaceを例に、

  1. Monolog内部でInterfaceがどんな役割を担っているのか?
  2. Interfaceを上手に使うと何が嬉しいのか?

というInterface入門時に躓きがちなInterfaceの概念部分をメインにお話をさせていただきました。

続きを読む

EC2 Instance Connect Endpoint を活用して踏み台なしで RDS に接続するスクリプト

追記: 仕様変更により、本記事に記載の方法は利用できなくなっています。

以下の通り、 SSH / RDP のみ利用可能な仕様となっています。

The specified RemotePort is not valid. Specify either 22 or 3389 as the RemotePort and retry your request.




エンジニアの唐津です。
先日、AWS から EC2 Instance Connect Endpoint(EIC Endpoint) という新機能 が発表されましたね。

こちらを利用することで、パブリック IP アドレスを持たない EC2 に SSH/RDS することが可能となります。
それ自体はこれまでも実現可能でしたが、EIC Endpoint はなんと無料で利用可能で、かつ設定も簡単ですので、ぜひ積極的に活用していきたいサービスです(データ転送料金はかかります)。

こちらの導入により Bastion サーバを削減し、セキュアな状況を保ちつつも、コストや運用の手間を削減できるケースも多いのではないでしょうか。

EIC Endpoint を活用して踏み台無しで RDS に接続する

さて、ホットな新機能ということで、色々と検証されている方も多いと思います。
例えば、クラスメソッド様の記事 では、 EC2 だけでなく、 RDS にも踏み台なしで接続可能であることを検証・確認されています。

私も例に漏れず、便利に活用できないかと考え、
上記の記事を参考にさせていただきながら、プライベートサブネットにある RDS インスタンスを対話的に選択し、
接続設定を行うシェルスクリプトを書いてみました。

EIC Endpoint を活用していますが、そもそも EIC や AWS CLI を利用した操作にあまりに馴染みが無い方もいらっしゃるかと思います。
少し事前準備は必要となりますが、普段 AWS CLI 等をあまり使用しない方でも楽に使えるようにできればと思い、
スクリプト実行時には、対象の RDS を選択するだけで、接続設定が完了できるようにしています。

続きを読む

テキストコミュニケーションでつまずかないようにするために

こんにちは、CTOの山岡(@hiro_y)です。

イノベーター・ジャパンでは、リモートでのコミュニケーションが日常です。オフィスが東京、福岡、柏、湘南と分かれており、フルリモートで働くメンバーもいるからです。また現在、出社を最低週3日としているので、週2日はリモートで仕事する可能性があります。

そうしたリモートワークを支えているのがSlackです。全社用、プロジェクト用、部活動用、個人用(分報)など数多くのチャンネルが乱立(よい意味で)しています。もちろん、ビデオ会議(Zoomを使っています)やSlackのハドルミーティングも活用していますが、多くのコミュニケーションはテキストを用いて行われます。

テキストコミュニケーションですが、誰もが最初からうまくできるわけではありません。どういうわけか、人はテキストだと強い調子で物事を書きがちです。人を傷つけてしまったり、人に不安や疑念を起こさせるような書き方、してしまったことはありませんか。

続きを読む