株式会社サイバーエージェントAI事業本部の2024年度 エンジニア新卒研修でシステム運用の基本と戦略に関する講義を行いました。
株式会社サイバーエージェントAI事業本部の2024年度 エンジニア新卒研修でシステム運用の基本と戦略に関する講義を行いました。
Mark Seemann 著、吉羽 龍太郎、原田 騎郎 訳、Robert C. Martin まえがき TOPICS 発行年月日 2024年06月 PRINT LENGTH 312 ISBN 978-4-8144-0079-9 原書 Code That Fits in Your Head FORMAT Print PDF EPUB ソフトウェアは複雑さを増すばかりですが、人間の脳は限られた複雑さしか扱えません。ソフトウェアが思い通りに動くようするには、脳に収まり、人間が理解できるコードを書く必要があります。 本書は、拡張を続けても行き詰ることなくコードを書き、複雑さを回避するための実践的な方法を解説します。最初のコードを書き始めるところから機能を追加していくところまでを解説し、効率的で持続可能なペースを保ちながら、横断的な問題への対処やトラブルシューティング、最適化を行なう方法を説明します
昔のflag管理 AWS AppConfigの導入 feature flagの管理 feature flagの利用 まとめ ソフトウェアエンジニアの浦川です。 clusterではサービス開発にfeature flagが活用されており、常時10+個程度のflagが並行して使われています。 これまでflagはgoのコードとしてハードコードされていたのですが、AWS AppConfigを利用してコードを修正することなく動的に変更できるようにしました。 昔のflag管理 ハードコードされたflagは1つのstructにまとめて定義されていて // feature flagを集めたもの type FeatureFlag struct { IsAvatarXxx bool // アバターを良い感じにする IsEventXxx bool // イベントを良い感じにする // (大量のフラグ) } app
以前にデータベースを自作しようとして、SQLiteのアーキテクチャを見てみたらVMだったことに疑問を感じ、それをツイートしたところ作者からリプをもらいました。 作者いわく、次のような背景があったとのことでした。 SQLiteを作った当初はデータベースエンジンのことをよく知らないがコンパイラのことをよく知っていた SQLデータベース・エンジンを書くという問題をコンパイラ構築の問題として扱うのは自然なことだった データベースエンジンのコアの部分をVMにするという発想がまったくなかったので、どんなメリットがあるのか?と気になっていました。 それを作者に聞いたら、詳細な説明ページを作ってくれました。 個人的にVMにしたことで、評価&実行のパフォーマンスは多少良くなると思うが、データベースエンジンのパフォーマンスにそれほど寄与していないんじゃないかな?って思ったりしました。 本記事はそのページについ
林原 めぐみ,江守 徹,堀 勝之祐,古谷 徹,Satoshi Kon,Satoki Toyoda,Seishi Minakami
どうも GitHub Actions 上で Docker ビルドを行うと時間がかかるなぁと感じていました。 かなり軽量の Go の Web アプリケーションを Docker イメージにしてプッシュするプロセスなのですが、全体で 3 分ほどかかっています。 今回はその速度改善を行ったので、得た知見を記事にしたいと思います。 最終的に、ケース次第では以下のような結果を出すことができました。 ※ケース = go のソースコードのほんの一部を変更してワークフローを実行する。 go.mod など依存関係に変化はない。 go build: 60秒 → 1秒 docker/build-push-action ステップ: 2分30秒 → 30秒 ワークフロー: 3分 → 1分 前提 go build は Dockerfile のステップで行っており、イメージとして以下のような内容になっています。 FROM
The release of ESLint v9.0.0 brought with it the rollout of the new configuration system, but also a series of changes to the rules API. These changes are necessary in order to prepare ESLint for implementing language plugins, which will give ESLint the ability to natively lint languages other than JavaScript. As a result, plugin authors needed to update their rules to work with v9.0.0, and unfort
切り替える理由 自社の主力製品で利用している技術(WebRTC / WebTransport)がブラウザベースのため TypeScript を利用する Go を採用したのは sqlc が使いたかったという理由 sqlc-gen-typescript が出てきたのでもう Go を使う理由がなくなった 自社サービスチーム全員が Go にまったく興味が無い sqlc 自体は便利 そもそも自社に Go への興味がある人がいない 自社サービスの規模ではボトルネックになるのはデータベースであって言語ではない もしアプリでスケールが必要なときは Rust や Erlang/OTP に切り替えれば良い コネクションプールは PgBouncer を利用すればいい TypeScript からは 1 コネクション 1 接続で問題無い どうせフロントエンドでは TypeScript を書く 自社では React
みなさんこんにちわ、カカオ豆です。 皆さんは家でコーヒーを飲みますか?僕は一日4杯くらい飲みます。 コスパ良く美味しいコーヒーが飲みたすぎて自家焙煎までしはじめて、職場の同僚にもその良さを布教しまくるようなウザムーブをかまして、気がつけば2年が経ちました。 さて、自宅コーヒーは、ちょっと気をつけて投資するだけでその辺のカフェくらいなら余裕で追い越せるくらい美味しいのが淹れられるようになります。 え?「プロをなめんな?」 いえいえ、もちろん超こだわったお店で超こだわる客に出す超高い一杯を超えるのは相当難しいです。 しかし普通のカフェが出す普通のお客さんに出す普通の一杯は極限までコストを削減しなければならないのです。 それはそれでプロの仕事ですが、我々自家消費のしろうとはコスト感覚を無視して高級豆を使えるのです。よく「ドリップ技術」なんて言われますが、コーヒーのドリップは豆の品質がほとんどです
ごあいさつ はじめましての人ははじめまして、こんにちは!BASE BANK Divisionのフロントエンドエンジニアのがっちゃん( @gatchan0807 )です。 今回は、ここ数ヶ月の間にOIDC(OpenID Connect)という技術を使った開発を複数行い、この技術の概観を理解することができたので、OIDCの技術概要に触れつつBASE BANKの中でどのように使ったのかをご紹介しようと思います。 OIDCとは何なのか このパートでは、まずOIDCという技術について概要を紹介します。いくつかのWebページに記載されていた内容を参考にしてまとめさせて頂いているので、記事の最後に参照元のリンクを記載しておきます。 また、OIDCをはじめとした認証・認可の仕組みには様々な用語があり、自分自身も「調べれば調べるほど知らない用語が増えて、どんどんわからなくなってきた…」という経験をしたので、
新たなチームへ移動した際に役立つアプローチ「WTF Notebook」について、ソフトウェアエンジニアのナット・ベネット氏が解説しています。 Why you need a "WTF Notebook" https://www.simplermachines.com/why-you-need-a-wtf-notebook/ ベネット氏は新しいチームに参加するたびにノートの新たな1ページを開き、一番上に「WTF - チーム名」とタイトルを付け、「なんてことだ(What The Fuck)」と思ったり変更したい事を思いついたりしたときにメモを書くとのこと。 チームに参加してから2週間はそうしたメモの内容をチームに伝えたり解決に動いたりせず、ただ見て、聞いて、奇妙に思えることを書き留めるだけにします。今回ベネット氏はこの単純なやり方でどのように物事を効果的に成し遂げる人としての評判を築き、常に不平
# 参考資料 - https://speakerdeck.com/pokotyamu/furikaeri-2024-95ceb97e-d587-4c4b-a4ec-5e52672644f6 - https://www.1101.com/umeda_iwata/ - https://speakerdeck.com/soudai/release-small
言葉の定義 モバファクの 1on1 の目的 1on1 で自分が大事にしていること 1on1 はメンティーの時間である 1on1 はメンターの時間でもある 1on1 初回 今使っている 1on1 のフォーマット 体調 半期目標の進捗振り返り ネクストアクションの振り返り うまくいかなかったこと・もっとよくなりそうなところ・うまくいったこと・その他に話したいこと ネクストアクション 1on1 の中でのやりとり お休みの取り方がわからない 最近見積もりの精度が高くなっている 朝会の議事録をとるようにしたい 最近チームの動きがぎこちないと感じている 1on1 定期的な振り返り まとめ こんにちは。駅メモエンジニアの id:dorapon2000 です。 今回は自分自身がメンター側として実施している 1on1 について、どのように実施しているのかご紹介しようと思います。 1on1 のやり方はメンター
人は無能に到達するまで昇進するという「ピーターの法則」というのがある。 「階層型の組織においては、どんな人も、昇進を繰り返すことでいずれは能力の限界に達し、十分に職責を果たせなくなって無能化する。その結果、「あらゆるポストは、職責を果たせない無能な人間によって占められる」という。 https://mba.globis.ac.jp/about_mba/glossary/detail-20919.html グロービスとくにリーダーが劇的な環境変化に異動、転職、抜擢で放り込まれるとこの法則が強烈に作用する。なぜなら周りの方が知識や経験があり自分がその組織内で最もそれがない人になってしまうからだ。一方で、この人は何かしてくれるのでは?という期待を関係者からは持たれる。「組織内で最も無能なのに最も期待される」という特殊状態を過ごすことになる。 12年ほど前に突然、社長をというキャリアチェンジを経験を
「ダンジョン飯」アニメ公式 @dun_meshi_anime ◤ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄◥ TVアニメ「#ダンジョン飯」 新OP ノンクレ映像公開 ◣___________◢ オープニング主題歌 #sumika 『#運命』 youtube.com/watch?v=asyT-N… 第2シーズンのノンクレジットオープニング映像を公開しました! #DeliciousinDungeon pic.twitter.com/XalWBc8h3Y 2024-04-04 23:00:02 志太駿介 @dashidash10 新OPは監督コンテを副監督や、キャラデザみんなフル稼働で仕上げています。作画監督は清田千萌さん。清田さんの絵の楽しい感じが本当に素敵です。原画も手厚く、なんと今回のOP冒頭は吉成さんが原画描いてくれています!やったー🙌参加したスタッフの皆さんありがとうございました! #ダンジョン飯 x.
起動確認 いつもの 初期設定 VSCode左下の><をクリック 開発コンテナー構成ファイルを追加 ワークスペースに構成を追加する こちらを選択することでGit上で構成ファイルを管理出来ます。 定義済みのコンテナー構成定義から Node.js & TypeSctipt 導入する、言語などを選択してください。 バージョンを指定してください。 お好きな拡張機能を追加してください。 .devcontainer/devcontainer.jsonに以下の様なファイルが出来上がります。 // For format details, see https://aka.ms/devcontainer.json. For config options, see the // README at: https://github.com/devcontainers/templates/tree/main/src/
このブログエントリでは、テスト駆動開発(TDD: Test-Driven Development)の考案者Kent BeckがTDDの定義を改めて明確化した文章を、許可を得たうえで翻訳し、訳者の考察を沿えています。 きっかけ 2023年の年末、テスト駆動開発(TDD: Test-Driven Development)の考案者Kent Beckは、substackにTDDに関するポストを連投して論戦を繰り広げていました。TDDはその誕生から20年以上が経ち、その間に「意味の希薄化」が発生して議論が噛み合わなくなっていました。意味の希薄化(Semantic Diffusion)とは、新しく作り出された用語が広まる際に本来の意味や定義が弱まって伝わる現象です。 私(和田)はTDDと関わりの深いキャリアを歩んできました。Kent Beckの著書『テスト駆動開発』の翻訳者であることもあり、TDDの正
ここはすべての夜明けまえ 作者:間宮 改衣早川書房Amazonこの『ここはすべての夜明けまえ』は、第11回ハヤカワSFコンテストの特別賞を受賞したSF中篇(もしくは短めの長篇といえるかぐらい)だ。特別賞は長さが短めだったり一点突破の魅力があったりで受賞する作品が多いが(たとえば過去事例で代表的なのといえば草野原々の「最後にして最初のアイドル」など)、本作も「刺さる人にはこれ以上なく深く刺さる」、2100年代を舞台にした、問題まみれの家族の物語だ。 とある理由からひらがなだらけの文章で物語が始まるので面食らうのだが、設定開示の順番は心地よく、すぐに作中世界へと入り込んでいくことができる。単行本になる前からゲラが配られたりSFマガジンに全文掲載されたりしていたのでエモいエモいと評判だけは聞いていたのだけど、実際に読んでみたらたしかにこれはエモーショナルな物語だ。しかし、ただ感動させよう、感動さ
はじめに タイトルはこちらから拝借しました。この記事は他のパブリッククラウド(Azure, GCP)を薦める記事でもなければ、プライベートクラウドを薦める記事でもありません。また私自身、エンジニアキャリアの中でAWSはたくさん使ってきましたし、今でもソフトウェア開発のわがままに答えてくれる素晴らしいサービスだと思っているので、AWSを貶めるような記事でもありません。むしろ以下に紹介するサービスはAWS上に構築されていることが多く、間接的にもますます世界中の基盤として発展していくはずです。 PaaSアーキテクチャ 前提条件 前提として、現在でも主流なSPAを中心としたフロントエンド、バックエンド、データベースサービスからなるアプリケーションを想定します。 この場合、 フロントエンド → CDN + Static Hosting バックエンド → Container Deploy(Auto S
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く