記事一覧

Ruby/Railsアップデートを乗り越える戦略と攻めのリファクタリング

初期構築から3年近くメジャーアップデート対応をしていなかったRuby on Railsのプロダクトについて、事前のリファクタリングなどの整備を経てアップデート作業を実施しました。本稿ではその事前整備に焦点を当て、大規模なアップデートの経験やそれに対する準備がされていないプロダクトに対する事前整備として、どういう背景から何を考えどのようなことを行ったのかを紹介します。

実践的Djangoプロジェクトの設計―開発・運用が楽になる設定ファイルを書こう! アンチパターンとベストプラクティス

Pythonで広く利用されているWebアプリケーションのフレームワークにDjangoがあります。Djangoで開発を始める際に、プロジェクトの設定ファイルをどのように記述すれば運用が楽になるのか。『Python実践レシピ』の著書もある筒井隆次(ryu22e)さんによる寄稿です。

React+Reduxによる状態管理とフロントエンドの技術的負債 ─ 長く継続するサービスのアプリケーション設計

遷移なく表示コンテンツを変更できるシングルページアプリケーションでは、ページの状態管理が重要になります。現在はReactによるUI構築とReduxによる状態管理を選択しているChatworkは、jQueryなどの技術的負債と共存しながら、フロントエンド設計の見直しを重ねてきました。クライアントサイド・アーキテクトの火村智彦(@eielh)さんと、エンジニア採用広報の高瀬和之(@guvalif)さんによる解説です。

RustでWebアプリケーションのバックエンドを開発するには ─ 型システムの堅牢性と柔軟性を業務システムにも!

安全性に大きな特徴があるプログラミング言語Rustは、C言語やC++に代わるシステム記述言語として注目されてきました。しかし、その安全性とパフォーマンスの高さにより、ビジネスアプリケーションの構築にも採用されています。この記事ではキャディ株式会社による事例を紹介します。

モジュラモノリスに移行する理由 ─ マイクロサービスの自律性とモノリスの一貫性を両立させるアソビューの取り組み

大規模なソフトウェア開発においてモノリシックかマイクロサービスかというアーキテクチャの議論がありますが、近年は第3の選択肢としてモジュラモノリスが話題になっています。いったんマイクロサービス化に舵を切りながら現在はモジュラモノリスに取り組むアソビューの考え方や進め方について、VPoEの兼平大資(disc99)さんによる寄稿です。

東京都 デジタルサービス局職員が語る「都政DX」の現状と未来|デジタル人材採用イベントレポート

2022年1月24日に開催された東京都 デジタル人材採用イベントのレポート記事をお届け。現在、都庁で活躍するデジタルシフト推進担当課長3名によるDX推進プロジェクト事例が紹介された。「徹底点検TOKYOサポート」「ユーザーテストの実施徹底を推進」「都民等デジタルデバイド是正」それぞれの取り組みとは?

WebAssembly入門 ─ Webフロントエンドの現実的なユースケースを知り、Wasm製アプリケーションを体験してみよう!

WebAssembly(Wasm)は、ブラウザー上で直接動くプログラミング言語として、JavaScriptを置き換える期待が寄せられますが、実際にWasmが果たすべき役割や適したユースケースとはどういったものでしょうか? Wasmの動作を体験するチュートリアルとあわせて、山本悠滋(igrep)さんが解説します。

コンテナ時代におけるオブザーバビリティの基礎

この数年であちこちで見かけるようになった「オブザーバビリティ」という言葉。コンテナが利用されるシーンが増えてきた現在におけるオブザーバビリティの基礎についてミクシィでみてねのSREグループマネージャーをつとめる清水 勲さんに解説いただきました。

Deno入門 ─ 新しいTypeScript/JavaScript実行環境でWebアプリ開発とデータベース接続の基本を体験しよう

新しいJavaScript実行環境として、Deno(ディノ)の存在感はますます大きくなっています。Deno Land社のメンバーとして開発にあたる日野澤歓也(@kt3k)さんに、機能的な特徴の概説から、基本的な環境構築と開発のチュートリアルまでを執筆してもらいました。

エンジニアHub2周年感謝祭 – REALFORCEやAmazonギフト券が当たるキャンペーンを開催!

エンジニアHubは6月15日にリニューアルオープンから2周年を迎えました。そこで今回は2周年を記念し、日頃の感謝を込めてエンジニアの方のものづくりを応援するプレゼントキャンペーンをささやかながら開催させて頂きます。みなさまの参加をお待ちしております。

GitHub Actions入門 ── ワークフローの基本的な構造からOIDCによる外部サービス認証まで

GitHubが公式に提供するGitHub Actionsは、後発ながらよく使われるワークフローエンジンとなっています。本記事では、藤吾郎(gfx)さんが、典型的なCI/CDのユースケースに即したワークフローの設定と管理について解説するとともに、注目されているGitHub OIDC(OpenID Connect)の利用についても紹介します。

最近の「インタプリタ」言語のインタプリタ事情 - コンパイラ言語・スクリプト言語との違い、JITコンパイラ、REPL、コンパイラ言語のスクリプト的実行サポートを徹底解説

PerlやRuby、Pythonなど様々なインタプリタ言語/スクリプト言語がありますが、最近だとインタプリタ言語もJITコンパイルしたり、コンパイラ言語の中にもスクリプトのように動かせるものもあります。 その辺りの今どきの事情について、エン・ジャパンの小澤が解説します。

Gitの教え方に困った!非エンジニアにも「いい感じ」でわかるGitの解説

エンジニアが非エンジニアと仕事をするとき、全員がGitが使えたら…と思う場面も。ただ、教えようにも、どう教えたらいいのか、困ったことはありませんか?  そこで「非エンジニア向けにGitを教える方法」について考えていきたいと思います。非エンジニアからすると技術用語はハードルが高く、いわば「何がわからないかがわからない」状態からのスタート。 今回は、新人マーケター(非エンジニア)が、エンジニアから「Gitをこう教わってたら理解ができた」という体験から実際の導入方法までお届けします。

AWS構成の基本をユースケースごとに学ぼう。AWSの中の人がサンプルをもとに解説する

多種多様なサービスを提供するAWSですが、よりよい構成にするためには、なにをどのように選ぶべきでしょうか。ユースケースに応じたAWSのシステム構成サンプルを「AWSの中の人」が解説します。

GitとGitHubを分かりやすく! 組織開発で生かすツール選択とプロジェクト進行を解説

分散型バージョン管理システムのGitと、そのホスティングサービスとしてプルリクエストなどの機能をもつGitHubは、ソフトウェア開発環境として広く普及しています。本記事ではGitやGitHubの考え方や使い方の基本を解説するとともに、実際のプロジェクトにおける開発の進め方を簡単に紹介します。

68サービス・アプリのクラウドやフレームワーク・言語など聞いてみた! アーキテクチャ大調査2022

エンジニアHub恒例のアーキテクチャ大調査。2022年版では、エンジニアHubに掲載中の求人情報を元に整理しました。68のアプリ・サービスの情報をまとめています。

あらためて学ぶOSの役割 - 「OSの気持ち」を知り、コンピュータをよりよく理解しよう

パソコンを操作するうえで、欠かすことができないOS(オペレーティングシステム)ですが、あまりにも「あたりまえ」の存在ゆえ、その実像をイメージすることは多くはないでしょう。OSは「なにを」「どのように」処理しているのかを学ぶと、自身が使用するパソコンがもっとよく理解できるようなるかもしれません。内田公太さんが、OSの役割と働きの基本、そして「OSの気持ち」を理解するための方法を解説してくれました。

Reactを取り巻く状態管理の潮流を学ぼう。HooksやServer Componentsなどの登場で何が変わるか

Reactを取り巻く状態管理のアプローチは変化を続けていますが、いま知っておくべき手法とはどのようなものでしょうか。小林 徹(@koba04)さんに、現在、そしてこの先の状態管理について執筆いただきました。

Ruby 3.1はここに注目! 新しいJITとは? デバッガ、エラーメッセージ、そして未来! リリースマネージャーに聞いた

2021年12月25日にリリースされたばかりのRuby 3.1では、どのような機能がどういった経緯で採用されているのでしょう。リリースマネージャーのnaruseさんと、フルタイムコミッターのmameさん、ko1さんに詳しくうかがいました。

今そこにあるIPv6 ─ もう1つのインターネットが普通に使われていることに普通のITエンジニアはどう対応するべきか?

長らく「オオカミ少年」と呼ばれながら近年は対応サービスの増加もあって普通に利用されているIPv6。2021年12月に『プロフェッショナルIPv6』を改訂する小川晃通(@geekpage)さんに、普通のITエンジニアがこれから考えるべきことを聞きました。

HTTP/3とQUICはなぜ必要になり、どのように標準化されてきたのか? 現代のプロトコル設計とインターネットの課題

IETFで標準化が進められているWebの新しい通信プロトコルQUICとHTTP/3について、現在のインターネットが抱える課題やプロトコル設計での議論を中心に、ASnoKaze blogの後藤ゆき(@flano_yuki)さんに執筆いただきました。

5,500超のMySQLインスタンスを少人数で運用するには - LINEのDB運用効率化・自動化の取り組み

大きなサービスであれば、それを支えるデータベースの規模もまた大きくなるでしょう。LINE社のデータベースの規模は、2021年11月時点でMySQLのインスタンス数5,500超。巨大なデータベースの運用を効率化、自動化するための工夫やノウハウをLINE社のDBAに聞きました。

超入門SQL 初心者でも理解できるCOUNT()とSUM() ─ グルーピングと集約関数の基本

以前に掲載して好評を博している「SQL入門」の続編です。前回は基本的なSELECT文を解説しましたが、今回は簡単な集計に挑戦してみます。執筆は前回と同じく、日本MySQLユーザ会副代表の坂井恵さんです。

ソフトウェアの「アジリティ」と「品質」をトレードオフにしない、プロダクト開発の理想型|Tably及川卓也×Autify 近澤良

ソフトウェア開発においても重要なキーワードとなっている「アジリティ」。激しい市場変化への対応力、機敏性を意味する言葉だ。あらゆる産業でソフトウェアを主体としたビジネスへとシフトするなか、その「アジリティ」と「クオリティ」をどう両立するか。そのためのプロダクト開発の理想型とは? Tably及川卓也氏 × Autify 近澤良氏の特別対談をお届けする。

Scrum@Scaleの基本と実装 - Chatworkの実践に学ぶ「スケールするスクラム」の導入戦略

スクラムのスケーリング手法であるScrum@Scale(スクラムアットスケール)の基本的な概念、そして企業内での実践例を粕谷大輔(daiksy)さんが解説します。実践例では、Scrum@Scaleにおいて「だれが」「なにをやるのか」を、1週間のタイムスケジュールとともに解説します。

個人開発のススメ。中学生になった息子のためにアプリ開発をしたら、「ビジネス理解」への小さな一歩が進んだ話

ナイル株式会社にてメディアテクノロジー事業本部でエンジニアをしている福本さんによる「個人開発のススメ」をお届け。本来エンジニアは、ものづくりを通じて本質的な課題を解決し、誰かに喜んでもらう仕事なはず。エンジニアリングの「作業化」という問題をどう解決していく? 中学生になった息子のためのアプリ開発、個人開発にそのヒントがあった!?

「がんばらないTypeScript」のための現実的な設定を考える ─ 4レベルの厳しさを使い分けてTypeScript疲れを克服しよう!

エンジニアHubでは2019年に「がんばらないTypeScript」を紹介しました。JavaScriptに静的型付けなどを提供するTypeScriptは、今では実プロジェクトに採用されるプログラミング言語になっています。そこで現実的なTypeScriptの設定を、藤吾郎(gfx)さんに解説してもらいました。

オフィスを3倍に増床。インフラチームが「回線まわり」でやったこと。150名規模、ITベンチャーのオフィス移転物語

従業員の増加に伴う「オフィス移転」、その時ITベンチャーのインフラチームは何に対応した?ベンチャーにとって嬉しくも、大変なオフィス移転。2016年創業のITベンチャー、アルサーガパートナーズ社も例外ではない。従業員数150名となった2021年5月のタイミングで、4度目となるオフィス移転を行なった。コロナ禍でも、オフィスを3倍に増床。新たに冷却機器の設置が必要になるなど想定外の対応も。その時、インフラチームはどんな工夫をした?移転作業を振り返り、同社代表小俣泰明氏とインフラチームのマネージャーを取材した。

なぜ食べログはフロントエンドのリプレースを進めているか。- 大きな改善を行うときに大事なこと-

食べログが大規模サービスとして成長していくなかで、どのように技術的・組織的課題と向き合ってきたのか。裏側エピソードを大公開。2021年4月15日に開催されたエンジニアHubウェビナー「食べログエンジニアに聞く!大規模サービスの裏側エピソードを限定公開」より、全文書き起こしレポートをお届けします。

食べログに見る、成長し続けるサービスの「業務的負債」との向き合い方

食べログが大規模サービスとして成長していくなか、どう「業務的負債」と向き合ってきたのか。システムと実業務に狭間に発生する「業務を無理にシステムに合わせて運用」「手作業による個別対応が多い」など“あるある”な負債の発生要因と、向き合い方を解説してもらいました。

食べログのエンジニアが、コロナ禍で向き合った課題。テイクアウト、感染症対策情報、Go To Eat…求められた即対応

食べログ大規模サービスのウラ側エピソードを大公開。コロナ禍で生活様式が変化する中、テイクアウト、レストランの感染症対策情報の掲載、Go To Eatキャンペーンなど、新たなニーズが次々と発生。急激な変化に対し、即対応が求められる状況に。食べログではどのように対応したのか?

現役CTOやエンジニア出身の人事責任者に聞く!会いたくなる履歴書・職務経歴書とは?

現役CTOやエンジニア出身の人事責任者に「会いたくなる履歴書・職務経歴書」について取材しました。エンジニア採用をする企業が魅力に感じるレジュメや、特に重視しているポイントを解説します。

Laravel大規模開発入門!MVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について

ナイル株式会社メディアテクノロジー事業本部の工藤さんにMVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について解説いただきました。

新人エンジニアに知ってほしい、DX時代のキャリア論。約500名を育成してきたCTOからの手紙

約500人を超えるエンジニアの採用と育成に携わってきた小俣泰明氏(アルサーガパートナーズのCEO兼CTO)による連載企画。エンジニアとして、高い目標のキャリア像を掲げられているか。日本のDXを加速させるエンジニアの役割とは。小俣泰明氏独自のキャリア論をお届けします。

Laravel実践入門! シンプルなREST APIを実装して学ぶ、多機能なPHPフレームワークの使い方

LaravelはPHPで実装されたオープンソースのWebアプリケーションフレームワークです。自由度が高く、幅広いニーズをサポートし、開発支援も充実し、多くのユーザに使われています。ここではサンプルアプリケーションとしてREST APIの実装を通して、Laravelを利用した開発を体験します。

API開発の基本 - 銀行APIの開発事例に学ぶ『使いやすい』のデザインプロセス

APIは多くのWebシステムにおいて、欠かすことのできない技術です。APIをどのように設計、デザインすれば、ユーザに利便性を提供できるのかを、GMOあおぞらネット銀行 CTOの矢上聡洋さんが解説します。API設計の基本、そして実際の銀行APIの設計から、“使いやすい”を生み出すためのデザインプロセスを学びます。

カオスエンジニアリングを導入したクックパッドの挑戦 マイクロサービス化に伴う可用性の低下に対応

料理のレシピ投稿・検索サービスのクックパッドでは2年前からカオスエンジニアリングに取り組み、さまざまな事例やノウハウを蓄積しています。クックパッドの技術部・SR(Site Reliability)グループの小杉山拓弥さんとDX(Developer Productivity)グループの鈴木康平さんに、導入の理由やさまざまな知見を伺いました。

ISUCONの問題作成の舞台裏を2020年の出題チーム・白金動物園に聞いてみた

ISUCONの問題は、一体どうやって作られている?あまり明かされることのない、ISUCONの舞台裏を2020年の出題チーム「白金動物園」に聞いてみました。出題者たちは、果たしてなにを考え、どのように参加者と戦うための問題を作っているのか。彼らの答えに、ISUCON攻略のヒントがある!?

Kubernetesのモダンな活用法 - 設計メソッドと、Virtual Kubeletで実現するサーバーレス化を学ぼう

Kubernetesはここ数年で一気にユーザーを増やしたコンテナオーケストレーターですが、一般化にともない、その活用法も洗練されてきました。本稿では「The Twelve-Factor Appを援用したKubernetes設計」と「Virtual Kubeletを活用したKubernetesのサーバーレス化」という、比較的新しい2つの活用法を武井宜行さんが解説します。

モノリシックな大規模アプリを運用する技術-サービスを“分割しない”メリットをSansanの実例に学ぶ

モノリシックにアーキテクチャを構築するメリットとは?近年、マイクロサービスアーキテクチャが注目を集めていますが、Sansanは大規模なアプリケーションに成長したいまも、モノリシックな構造を維持しています。ドメインコンテキストの共有のしやすさ、チームビルドのしやすさなど、モノリシックな構造だからこそ得られるメリットを聞きました。