タグ

blogとtechに関するmoritataのブックマーク (58)

  • 待望のLazyCell/LazyLock安定化間近! - paild tech blog

    こんにちは、ペイルドの森です。ペイルドでは創業以来バックエンドの開発言語にRustを採用してきたため、Rustという言語そのものが持つ課題とその解消、クレートの流行り廃りなどの歴史を共に歩んできました。その中でも最も苦しんだものの一つに遅延初期化があります。 その遅延初期化のための機能が、2024年7月リリース予定のRust 1.80.0で安定化されるということで、機能について、その歴史とともに見ていきます。 目次 遅延初期化とは何か、何のためにするのか パフォーマンス向上のため リソースの効率的な管理のため 循環依存の回避のため Rustと遅延初期化の歴史 lazy_static クレートの登場と、抱えていた課題 マクロ依存性 スレッドセーフでない初期化のリスク 型の制約 初期化のタイミング制御 once_cell クレートの登場によって何が解決されたのか? マクロを使わないシンプルな

    待望のLazyCell/LazyLock安定化間近! - paild tech blog
  • Findyの爆速開発を支えるテクニック - Findy Tech Blog

    こんにちは。 Findy で Tech Lead をやらせてもらってる戸田です。 早速ですが、これは弊社のとあるチームの1ヶ月のサイクルタイムです。 最初のコミットからマージされるまで平均3.6時間程度と、開発に着手したらその日のうちにリリースされるのがデフォルトとなっています。 今回はこの開発スピードを継続し、更に速くするために弊社で実践しているテクニックを紹介していきます。 それでは見ていきましょう! タスク分解 Pull requestの粒度 テスト CI/CD 高速化 自動化 通知 まとめ タスク分解 開発タスクをアサインされた時、まず最初にタスク分解をします。 タスク分解をすることによるメリットとしては、 工数見積もりの精度が上がる 対応方針の認識を他メンバーと合わせやすくなる 対応漏れに気づきやすくなり、手戻りの発生が少なくなる Pull requestの粒度を適切に保つことが

    Findyの爆速開発を支えるテクニック - Findy Tech Blog
  • 【新卒研修】監修者@t_wadaと読む!プログラマが知るべき97のこと読書会 - CARTA TECH BLOG

    技術広報しゅーぞーです。 今日は24卒エンジニア新卒研修で行われた『プログラマが知るべき97のこと』読書会の模様をレポートします! O'REILLY 『プログラマが知るべき97のこと』 この研修の目的 新卒研修だからこそ先人たちの経験から学び方を学び、それをベースに半年後の目標を考えてもらうことです。研修の最後に個々人が立てた目標を書いてシェアしてもらいます。 24卒エンジニアが書いた半年後の目標 監訳者@t_wadaと共読 今回の読書会は 『プログラマが知るべき97のこと』の監修者である @t_wadaさんと共に進めます。 『プログラマが知るべき97のこと』監修者 @t_wada @t_wadaさんはエンジニアなら誰もが目にする 『プログラマが知るべき97のこと』 『SQLアンチパターン』 『テスト駆動開発』 の監修者でもあります。 @t_wadaさんが監訳・監修したたち @t_wad

    【新卒研修】監修者@t_wadaと読む!プログラマが知るべき97のこと読書会 - CARTA TECH BLOG
  • KubeCon + CloudNativeCon Europe 2024 参加レポート - ZOZO TECH BLOG

    はじめに こんにちは。SRE部フロントSREブロックの三品です。 3月19日から3月22日にかけてKubeCon + CloudNativeCon Europe 2024(以下、KubeCon EUと呼びます)が行われました。今回弊社からはZOZOTOWNのマイクロサービスや基盤に関わるエンジニア、推薦システムに関わるエンジニアの合わせて4人で参加しました。 記事では現地の様子や弊社エンジニアが気になったセッションや現地の様子について紹介していきます。 目次 KubeConEU2024の概要 セッションの紹介 現地の様子 ブースについて 参加に向けてのTips 最後に KubeCon EU 2024の概要 昨年4月にオランダ アムステルダムで行われたKubeCon EUの様子については昨年の参加レポートをご覧ください。 techblog.zozo.com 今年のKubeCon EUはフラ

    KubeCon + CloudNativeCon Europe 2024 参加レポート - ZOZO TECH BLOG
  • 2024年の今、いかにしてVS2005を捨ててVS2015にする戦いは終わったか、そしてなぜCOMとの苦しい戦いが繰り広げられたか ~再入の悪魔~ - OPTiM TECH BLOG

    概要 Optimal BizのWindows AgentはながらくVisual Studio 2005とVisual Studio 2015を併用してビルドする必要がありました。Visual Studio 2015化対応は2012年のVisual Studio 2012化対応からスタートしていましたが、対応範囲の大きさからモジュールごとにVisual Studio 2015化対応を行ってきました。そして2024年リリースのBiz 9.19.0にてVisual Studio 2015化対応は完了を迎えました。 しかし、埋め込まれたバグの修正にはCOMの理解が不可欠であったため、2020年代に突入した今になって私達はこれまで正面戦争を避けてきたCOMを0から学び直す必要がありました。そしてATLの不思議な挙動やSTAにおける再入との戦いを乗り越え、無事にリリースされました。 はじめに Opti

    2024年の今、いかにしてVS2005を捨ててVS2015にする戦いは終わったか、そしてなぜCOMとの苦しい戦いが繰り広げられたか ~再入の悪魔~ - OPTiM TECH BLOG
  • TypeScript開発にRailway Orientedを持ち込み、より型安全なエラーハンドリングへ - Sansan Tech Blog

    Digitization部 Bill One Entry*1グループの秋山です。 はじめに Domain Modeling Made Functionalというスゴ 補講:Make Illegal States Unrepresentable バックエンドの処理を抽象化する 手続き型プログラミングの典型例 課題1:制約のないエラーハンドリング 課題2:低い可読性 課題3:エラーハンドリングの低い網羅性 Railway Oriented Programming TypeScriptで型安全にエラーハンドリングする ステップ1:サブ関数の出力はResult型で表現する ステップ2:サブ関数にResult型を入力できるようにする ステップ3:サブ関数を連結する ステップ4:網羅的にエラーハンドリングする おわりに 付録 TypeScriptの全文サンプル はじめに エラーハンドリングは重要な処

    TypeScript開発にRailway Orientedを持ち込み、より型安全なエラーハンドリングへ - Sansan Tech Blog
  • 会計システムのアーキテクチャとモデリング ~会計というドメインを Rust で表現している話~ - CADDi Tech Blog

    はじめに こんにちは。 バックエンドエンジニアの松です。今回は、会計システムの開発を通じて、 CADDi におけるプロダクト開発の様子を紹介します。 2024年3月現在、CADDiでは2つのサービスを提供しています。1つは図面データ活用クラウド「CADDi Drawer」で、もう1つは加工品製造サービス「CADDi Manufacturing」です。 今回、後者の加工品製造サービス「CADDi Manufacturing」向けに、 会計システムを構築しました。これは、生産管理システムや拠点管理システムから取得した各種情報を基にして、会計仕訳データを生成し、経理部門に公開する役割を持ちます。 はじめに 会計システムのアーキテクチャとその狙い 計算処理を少しずつ進める 会計数値の妥当性をダッシュボードに表示する 会計システムのモデリングと最初の開発 仕訳の流れを整理して、ドメインモデル、デー

    会計システムのアーキテクチャとモデリング ~会計というドメインを Rust で表現している話~ - CADDi Tech Blog
  • モノタロウがGoとprotobufで進める爆速マイクロサービス開発とそれを支えるプロセス - MonotaRO Tech Blog

    こんにちは。モノタロウのTechBlog編集チームです。 モノタロウではECサイトでのお客様体験の向上を目指して、日々改善に取り組んでいます。 商品の出荷目安などの出荷関連情報は重要な要素の1つになります。 今回は、出荷関連情報の正確性を改善するとともにシステムの変更容易性を向上させるためにマイクロサービス化に取り組んだ活動をインタビューしました。 自己紹介 納期表示を高度化する サプライヤ在庫連携機能開発のつらみ AVLのマイクロサービス開発のすすめ方 リリース・監視・その後の展開 おわりに 今回インタビューしたみなさん 自己紹介 山崎 章裕 ECシステムエンジニアリング部門 開発生産性グループ、プラットフォームエンジニアリング部門 CTO-Officeグループ AVLチーム兼務 2019年8月に入社し、主にECサイトの注文・配送周りのプロジェクトにテックリードとして関わる。またECサイ

    モノタロウがGoとprotobufで進める爆速マイクロサービス開発とそれを支えるプロセス - MonotaRO Tech Blog
  • Amazonに売ってるモノだけで6脚ロボットを完全自作してみた (3Dモデル+ソースコード付き) - ABEJA Tech Blog

    はじめに 完成品イメージ (Tagurobot v1) 3Dモデルの全体像 メイン構造体 制御系回路・バッテリー搭載用ボード 関節 アーム End Effector 電源・制御系の全体像 モジュール紹介 (LiPoバッテリー) モジュール紹介 (ヒューズ) モジュール紹介 (DC-DCコンバーター) モジュール紹介 (RaspberryPi) モジュール紹介 (サーボモータードライバー:) モジュール紹介 (サーボモーター) モジュール紹介 (加速度ジャイロセンサー) 制御系ソフトウェアの全体像 Tripod Gait(トライポッド歩容)の紹介 適切な関節角度を算出するための逆問題を解く 制御系ソフト 設計・作成しての学び 3Dプリント関連 機構・ソフトウェア設計関連 v2に向けた改善点 最後に ※3Dモデル・ソフトウェアの利用ポリシー We Are Hiring! はじめに こんにちは!

    Amazonに売ってるモノだけで6脚ロボットを完全自作してみた (3Dモデル+ソースコード付き) - ABEJA Tech Blog
  • Railsのモデル名をすべて変更した話 - SmartHR Tech Blog

    SmartHRでは開発にRuby on Railsを広く採用しています。 今日は負債解消のために、開発しているサービスでRailsのモデル名をすべて変更した話を紹介します。 既存のモデル構造のつらみ 私達が開発しているサービスでは、モデルの親子構造が分かりやすいということで、モデルをネストした構造にしていました。 例えば、 User に紐づくプロフィール画像 User::ProfileImage は、 app/models/user/profile_image.rb に配置する具合です。 パッと見の構造が分かりやすいのですが、時が経つにつれて次のようなつらさが顕在化してきました。 Railsの規約(推奨ルールのようなもの)に則っていないので、関連定義が冗長になる テーブル名が長くなる。 外部キーや関連名が長くなる。 関連名と外部キー名が一致せず、カラムを呼び出したいときにDB定義を見ないと

    Railsのモデル名をすべて変更した話 - SmartHR Tech Blog
  • Rust の DI を考える –– Part 2: Rust における DI の手法の整理 - paild tech blog

    paild 社でお手伝いをしている yuki です。前回に引き続き Dependency Injection 略して DI の話題を書いていきたいと思います。今回は Rust における DI についていろいろと考えてみました。今回紹介する実装はかなり単純な例を用いたもので、この記事からさらにみなさんのアプリケーションの実装状況に合わせていくつか工夫は必要になるかもしれません。ただ、とっかかりとしては十分なものになっていると思うので、DI でお困りの方はぜひ参考にしてみてください。 今回実装したいアプリケーションのお題について 今回紹介する技法の種別について コンストラクタインジェクション 静的ディスパッチを用いたもの 動的ディスパッチを用いたもの 静的ディスパッチと動的ディスパッチの利点・欠点 shaku (DI コンテナ)を用いたインジェクション shaku の利点・欠点 余談: DI

    Rust の DI を考える –– Part 2: Rust における DI の手法の整理 - paild tech blog
  • RuboCop RSpecからRuboCop CapybaraとRuboCop factory_botが切り出されたけど結局どうすればいいの? - ANDPAD Tech Blog

    こんにちは、 ydah です。最近はというと、料理への情熱が再燃してきました。一時期は作った料理を全て写真に残していたりとしていたのですが、いつの間にか記録を何も残さなくなっていました。何かしら記録を残すことで、前回よりも味も見た目も良くしようと思えるので、記録を残していくようにしたいと思います。やっていくぞ〜!! トマトとタコのパスタの近影 はじめに 5/11-13 に長野県松市 まつもと市民芸術館 で開催された RubyKaigi 2023 の Lightning Talks で、 RuboCop RSpec チーム*1と RuboCop RSpec から、 RuboCop Capybara と RuboCop factory_bot を gem に切り出した話をしました。 rubykaigi.org 当日の発表スライドは以下です。 この記事では RuboCop RSpec を現在使

    RuboCop RSpecからRuboCop CapybaraとRuboCop factory_botが切り出されたけど結局どうすればいいの? - ANDPAD Tech Blog
  • Javaエンジニアだった私が当時困ったRustのコンセプト - paild tech blog

    お手伝いの @helloyuki_ です。今回はポエムです。 今回は、Rust を始めた当時、プログラミング言語は Java しかまともに触ったことがない新米若手 Java エンジニアだった私[*1]が「見たことがなく、使いどころがわからなく理解が難しい」と感じたポイントについて紹介します。対象とするソフトウェアのレイヤーが低いか高いかを問わず、とにかく Rust をやってみて理解するまでに時間がかかり、難しいと感じたポイントについて紹介します。 Rust の「メモリ安全」って、結局何 所有権とライフタイム 参照 スマートポインタ 代数的データ型 関数が第一級である モジュールシステム self 型クラスという側面でのトレイト まとめ 私が Rust をある程度使いこなせるようになるまでの話 「難しい」って何?、の話 Rust の「メモリ安全」って、結局何 そもそも論ですが、Rust が取

    Javaエンジニアだった私が当時困ったRustのコンセプト - paild tech blog
  • 暗号の歴史と現代暗号の基礎理論(RSA, 楕円曲線)-前半- - ABEJA Tech Blog

    はじめに このブログに書かれていること 自己紹介 注意 Part1 古典暗号 2つの暗号方式 スキュタレー暗号 アルゴリズムと鍵 シーザー暗号 原理 頻度分析 アルベルティ暗号 ヴィジュネル暗号 如何にしてヴィジュネル暗号は破られたか Part2 近代暗号 エニグマ エニグマの登場 エニグマの基構造 如何にしてエニグマは突破されたか 前提条件 必ず異なる文字に変換される性質を利用 ループを利用 まとめ 参考文献 採用情報 はじめに このブログに書かれていること 前半 古代暗号から始まる暗号の歴史 エニグマの構造と解読法について 後半(後半ブログは こちら) RSA暗号の基 楕円曲線暗号の基 自己紹介 こんにちは!株式会社ABEJAの @Takayoshi_ma です。今回のテックブログですが、ネタに5時間程度悩んだ挙句、暗号を取り上げることにしました!暗号化手法の解説にとどまらず、そ

    暗号の歴史と現代暗号の基礎理論(RSA, 楕円曲線)-前半- - ABEJA Tech Blog
  • Google Kubernetes Engine(GKE)を徹底解説 - G-gen Tech Blog

    当記事は みずほリサーチ&テクノロジーズ × G-gen エンジニアコラボレーション企画 で執筆されたものです。 G-gen の佐々木です。当記事では、Google Cloud (旧称 GCP) でマネージドな Kubernetes クラスタを使用することができる Google Kubernetes Engine (GKE) を解説します。Amazon Elastic Kubernetes Service (EKS) や Azure Kubernetes Service (AKS)など、kubenetes をマネージドに提供するサービスは存在しますが GKE はそれらの中でもよい評判を耳にします。例えばマスターノードの料金が不要、起動が早いといった具合です。GKE は Google Cloud 採択の理由たりえるサービスのため、優先的に仕様を調査することにしました。 Google Kube

    Google Kubernetes Engine(GKE)を徹底解説 - G-gen Tech Blog
  • 学びを仕事に繋げる / 外貨を稼ぐ / 継続的に成長する - Sansan Tech Blog

    「公立はこだて未来大学」にお招きいただき、学生さん向けに講義をさせていただきました。 講義で用いたスライドは公開済みで、既にTwitterやはてブでも反響をいただいております。 スライド内には埋め込み動画やリンク等、Speaker Deckでは再現されないものもあるので、講義資料をあらためて「記事形式で」全ページ公開したいと思います。 講義のテーマ/構成について 講義のタイトルは「学びを仕事に繋げる」としていますが、 「海外進出」(外貨を稼ぐという選択肢を持つ) 「成長サイクル」(継続的に成長する) と併せた 3立て 1 にしています。 講義のテーマは非常に悩んだのですが、私の経験から学生さん向けに話せるもっとも価値のある内容はなんだろう?どうやったら90分飽きずに聞いてもらえるだろう?と考えた結果このようになりました。 2 学生さん向けの講演ではありますが、現場でバリバリ活躍されている

    学びを仕事に繋げる / 外貨を稼ぐ / 継続的に成長する - Sansan Tech Blog
  • プロダクト開発本部キックオフ資料を人事が紹介してみる - ROBOT PAYMENT TECH-BLOG

    はじめまして! ROBOT PAYMENT人事の上村です! 私の業務内容は人事の中でもエンジニア側に特化した立ち位置でして、このブログも編集長なんていう偉そうな肩書で運営してます笑 さて今回は、 「2023年キックオフ資料」を見てほしいっっ!!! という、私個人の衝動で記事を書かせていただきました。 「気持ち>体裁」で書いてますので見栄えは悪しからず。 はじめに 早い話が資料を見てくださいなんですが、折角なので私に紹介の時間をください。 speakerdeck.com そもそもこの資料は社内向けに作成したもので、毎年期初である1月に実施するKickoff Meetingで使用した資料になります。 全部署が同様に昨年の振り返りと今期の方針を発表するのですが、正直一番、気合入ってました。(上村個人の感想です) 過去最大となる10名の採用を達成 2022年はエンジニア採用が一気に拡大しました。

    プロダクト開発本部キックオフ資料を人事が紹介してみる - ROBOT PAYMENT TECH-BLOG
  • レイヤードアーキテクチャを振り返る - Sansan Tech Blog

    こんにちは、Sansanプロダクト開発部の清水です。 ある程度のアプリケーションの大きさだと当たり前に使われる事が多い「レイヤードアーキテクチャ」の自分が考える設計のポイントや、実際に運用する際のポイントについて書いてみようかと思います。 基的な話なので「今更かよ」って感じがしますが、実際に設計、運用する際には様々な考慮事項のあるものだと思うので、知ってる人にとっても復習にでもお役に立てればと思います。 そもそもレイヤードアーキテクチャって何? 概要 一言でいうと、アプリケーションを作る際にそれを構成する部品を、それぞれ責務が定義された論理的なグループにまとめて整理し、それぞれのグループ間のやり取りの仕方を決めておこうという事です。 このグループ間のやりとりにおいて、一方向かつ隣接するグループとしかやりとりを行えないようにする事が多く、層状になるのでレイヤードアーキテクチャと呼ばれます。

    レイヤードアーキテクチャを振り返る - Sansan Tech Blog
  • サーバダウンしたニコニコ漫画に何が起きていたのか - BOOK☆WALKER inside

    こんにちは。メディアサービス開発部Webアプリケーション開発課の奥川です。ニコニコ漫画のバックエンド開発を担当しています。 2021年初頭、ニコニコ漫画である作品の連載が開始されました。それに端を発する数カ月間のサーバ障害により、ユーザーの皆様には大変ご迷惑をおかけしました。 少し前の話にはなりますが、当時ニコニコ漫画のサーバでは何が起こっていたのか、どのような対応を行ったのかを振り返ってみたいと思います。 1号棟(事の起こり) 2021/01/08 問題の作品(以後、「作品I」*1と記述します)の第1話が投稿されます。その過激な内容からSNSなどでは一部で話題になりましたが、まだニコニコ漫画へのアクセスも穏やかなものでした。 2021/01/22 その2週間後、「第2話(前編)」の公開から事件が起こります。 ピークタイム最中の12:22頃から、まずmemcachedがCPU Utiliz

    サーバダウンしたニコニコ漫画に何が起きていたのか - BOOK☆WALKER inside
  • ミラティブの社内勉強会の紹介 - Mirrativ Tech Blog

    みなさまこんにちは。@n0mimonoとshirakawaです。今日はミラティブの中で行われている社内勉強について紹介させていただきます。社外に公開しながら社内にも宣伝をする一石二鳥の作戦です。 ミラティブではエンジニアが自身やメンバーのために勉強会や交流会を開くことを奨励しています。 tech.mirrativ.stream その一つとして、毎週木曜日に行われている勉強会を紹介します。 勉強会 以下、社内文書からの転載になります。 なぜやるのか 新しい知識の獲得・技術レベルの向上のため ディスカッションを通してチームビルディング やらないこと 事前資料準備等: 参加者に負担がかかるため どうやるのか を決めます 参加者で読みたかった・読んでみたかったを出す 投票によって選ぶ 週一回、45分集まる曜日・時間(カレンダーは1時間抑える)を決めます 集まった人でを順番に音読していきます

    ミラティブの社内勉強会の紹介 - Mirrativ Tech Blog