並び順

ブックマーク数

期間指定

  • から
  • まで

161 - 200 件 / 2877件

新着順 人気順

hogeの検索結果161 - 200 件 / 2877件

  • macOSのCopy-on-Write機能を使ってディスクを節約した話 - DeNA Testing Blog

    こんにちは、SWETでCI/CDチームの前田( @mad_p )です。 SWETではCI/CDチームの一員として、Jenkins運用のサポートや、CI/CD回りのノウハウ蓄積・研究をしています。 はじめに 先日開催されましたCEDEC 2022にて、Gitリポジトリの肥大化に対応した事例を発表しました。これはそのフォローアップ記事となります。以前に出した記事の続編でもあります。 発表資料は次の場所に置いていますので、参照してみてください。 CEDiL(要登録): https://cedil.cesa.or.jp/cedil_sessions/view/2600 Speaker Deck: https://speakerdeck.com/dena_tech/kaorumaeda_cedec2022 Gitリポジトリの肥大化問題 前提となっている課題をおさらいしておきます。 Gitリポジトリは

      macOSのCopy-on-Write機能を使ってディスクを節約した話 - DeNA Testing Blog
    • DBのリストアテストを全自動化した話 - Pepabo Tech Portal

      ホスティング事業部の業務信頼性向上チームでエンジニアをしているはらちゃんです。 先日STREET FIGHTER 6のオープンベータに参加し、友人にボコボコに負けました。 製品版買っていい勝負ができるように特訓を重ねたいと思います。 今回、ホスティング事業部のサービスであるロリポップ、ムームードメイン、ヘテムル、おさいぽのDBリストアテストを自動化したので紹介します。 まず業務信頼性向上チームとは? リストアテストを継続的にやっている理由 なぜ自動化したのか 全体像 具体的な実装 実装時に困ったこと dumpのサイズが大きすぎて通常のrunnerではリストアテストができない場合 scpをするアカウントにdumpファイルを操作する権限がない場合 dumpファイルのファイル名が微妙に違ってうまく指定できない場合 終わりに まず業務信頼性向上チームとは? 最初に、自分の所属している業務信頼性向上

        DBのリストアテストを全自動化した話 - Pepabo Tech Portal
      • オブジェクト指向は単なる【整理術】だよ - Qiita

        概要 掲題の通りです。異論は認めますだからオブジェクト指向警察の皆さん見逃して下さいお願いします。 この投稿は「オブジェクト指向(OO/ object oriented)ようわからん」って人向けになるべくわかりやすく説明しようとする試みになります。一応は「1冊くらいは入門書読んだ人」を対象にしています。 ちなみにぼくのオブジェクト指向力は100メートル走で例えると多分12~13秒台くらいです。よくわからないけど。 オブジェクト指向は難しい? 初めてプログラミングに触れてオブジェクト指向について学び始める時、その概念を理解するのに苦労してる方は結構多いのではないかと思います。カプセル化だとか、ポリモーフィズムだとか、よくわからないアカデミックな名称が次々と出てくるのに比べ、実践的にはどうすれば良いかの説明に関しては結構貧弱な書籍が多いというのが理由のひとつだろうなと思ってるのですが、その大き

          オブジェクト指向は単なる【整理術】だよ - Qiita
        • 2023年 研究開発部 新卒技術研修 ~ テストコード編 ~ - Sansan Tech Blog

          こんにちは、研究開発部 Data Analysisグループの笛木です。 4/26(水)〜 4/28(金)で研究開発部内の技術研修を行いました。 こちらのブログの続きでテストコードについての研修資料を一部公開します。研修では新卒2年目の私が1年間で部内のコードなどから学んだ情報を共有しました。至らない部分もあるかもしれませんが、ご参考になれば幸いです。 こちらの研修で使用したGitHubのコードリンクは以下です。適宜、ご参照ください。 github.com 目次 目次 はじめに この研修の目的 研修スコープ外 テストコードについて テストコードの便利な点 テストコードの悪い例 テストコードに関するFAQ pytestによるテストコードの書き方 ファイル名 ディレクトリ 基本編 Parametrize Fixture 異常系 Mock indirect conftest 知っておくと活用する場

            2023年 研究開発部 新卒技術研修 ~ テストコード編 ~ - Sansan Tech Blog
          • 表示順という属性を別テーブルに分ける - そーだいなるらくがき帳

            最近、この説明を複数回したので記事にする。 要約 普段は 今北産業 派なのだが、3行考えるのが面倒なため、今後は大人の表現を使う。 「今北産業」をスタートアップ語にすると「マジ価値サマリー」になるらしい ちなみにここだけの話ですが、大人語にすると「要約」になります pic.twitter.com/Q8SflvBX7c— ところてん (@tokoroten) 2022年1月24日 画面に表示したい順(以下、表示順)は振る舞いの属性なので分ける 似たような振る舞いに関わる属性は別テーブルにわけると良い 普通に正規化しましょうって話。 表示順をカラムを追加して表現する よくあるテーブルは画面情報と合わせて表示順カラムがあるパターン。 こういうテーブルを作って SELECT * FROM items ORDER BY display_order_number; で表示順に取り出すパターン。 表示順

              表示順という属性を別テーブルに分ける - そーだいなるらくがき帳
            • 半年間使って便利だったVSCodeの機能紹介 - エニグモ開発者ブログ

              はじめに こんにちは、今年の6月にエニグモに入社したサーバーサイドエンジニアの橋本です。 この記事は Enigmo Advent Calendar 2020 の6日目の記事です。 みなさんはテキストエディタは何を使っていますか? 会社を見渡すとVimが一番多いような気がしますが、私はVSCodeを使ってます。 正直、エニグモ に入社するまではツールを入れる程度でそこまでカスタマイズしていなかったのですが、入社してからは諸先輩方の開発スピードに圧倒され、これはツールやショートカットキーを駆使して速く開発できるようにならなければ、、、という必要性に駆られ、少しずつカスタマイズを加えてきました。 この記事では初期設定でも使える便利機能やカスタマイズを加えてよかったショートカットキーやツールをピックアップして紹介していきたいと思います。 ショートカットキー まずは使ってよかったショートカットキーに

                半年間使って便利だったVSCodeの機能紹介 - エニグモ開発者ブログ
              • 【暫定】コーダー歴3年で辿り着いた保守しやすいコーディング手法

                未経験からコーダーとして仕事をし始めて2年が経過しました。 最初の頃はとにかくスピードややりやすさ、デザインの再現などを重視し、保守性は特に考えていませんでしたが、ページが多くなってきたり自分以外の人と一緒にコーディングする機会が増えるにつれ、当初とはまるで違う意識で書くようになった気がします。 自分のコーディング手法もまだまだ発展途上だとは思いますが、自分なりに保守しやすいであろうコーディング手法が確立されつつあるので、コーディングルールも兼ねて記事に残しておこうと思いました。 デザインが再現できればOKというコーディングから一歩進んだコーディングを目指す方の参考になれたら嬉しいです。 この記事の前提 コーディングに付随するいろんな用語が出てくるかと思いますが、詳しくは説明していません...。なので、今コーディングを勉強中であったり仕事でコーディングしたことない人にとっては、理解しづらい

                  【暫定】コーダー歴3年で辿り着いた保守しやすいコーディング手法
                • TypeScript の型生成における OpenAPI Generator のハマりどころ - READYFOR Tech Blog

                  こんにちは。READYFOR でフロントエンドエンジニアとして働いている菅原(@kotarella1110)です! 嬉しいことに、READYFOR のプロダクト開発組織は急拡大中で、正社員の人数は 2019年7月時点では8名でしたが2021年4月現在は29名になりました 🎉 その反面、組織が大きくなってくると「我々はどこに向かってるんだっけ?」「あの人、最近はどんなことに取り組んでいるんだろう?」といった「見えないこと」が増えてきます🤔 この「見えないこと」を減らすために、READYFOR では毎月「プロダクト開発本部会」を開催しています。 プロダクト開発本部会では、必要な全体周知(組織やプロダクトの方針等)や月替わりプレゼンテーションを行っています。 本記事はこのプロダクト開発本部会の月替わりプレゼンテーションで発表した内容になります。 はじめに 以前 READYFOR で初主催とな

                    TypeScript の型生成における OpenAPI Generator のハマりどころ - READYFOR Tech Blog
                  • React+TSプロジェクトで便利だったLint/Format設定紹介

                    こんにちは、よしこです。 この記事は 2020年に立ち上げたWebフロントエンド構成の振り返り の「linter/formatter」項の詳細記事です。単体でも読めますが、よければ元記事もあわせてどうぞ! この記事では、今わたしが 株式会社ナレッジワーク というスタートアップで開発・運用しているプロジェクトにおいて便利だったLint/Format関連の設定についてご紹介していきます。 使っているのは、TSのlintのためにESLint, CSSのlintのためにStylelint, 主なファイルのformatのためにPrettierです。 ESLint pluginsとextendsだけどんなもの入れてるか載せておきます。 "plugins": [ "strict-dependencies", // 後述 "unused-imports", // 後述 ], "extends": [ "a

                      React+TSプロジェクトで便利だったLint/Format設定紹介
                    • Terraformのセキュリティ静的解析 tfsec の導入から始めるAWSセキュリティプラクティス - BASEプロダクトチームブログ

                      こんにちは。BASE BANK 株式会社 Dev Division にて、 Software Developer をしている東口(@hgsgtk)です。 BASE BANK Dev での開発では、クラウドインフラの構成管理に、 Terraform を利用しています。 世の情報をたくさんキュレーションしている CTO の@dmnlkさんに、手軽に CI に組み込めそうなセキュリティチェックツールがあることを教えてもらったので、導入してみました。 CTO氏のキュレーションメディアで紹介された tfsec を早速試して良さそうだったhttps://t.co/bl67dlW2Ub https://t.co/vAkTOVagec— Kazuki Higashiguchi (@hgsgtk) August 21, 2020 このブログの公開日は 2020/10/30 ですので、導入してから約 2 ヶ月

                        Terraformのセキュリティ静的解析 tfsec の導入から始めるAWSセキュリティプラクティス - BASEプロダクトチームブログ
                      • ニッチすぎる!?知られざる広告JavaScriptの世界 - CARTA TECH BLOG

                        こんにちは。雨宮(@rail44)です。 普段はヨーヨーやポケモンに興じるかたわら、株式会社fluctで広告配信システムの開発を担当しています。 fluctは広告業界ではSSP(Supply-Side Platform)と呼ばれる立ち位置で、インターネットメディアの収益の最大化にフォーカスした事業を行っています。 私たちのシステムを使うと、広告によるマネタイズが面倒な運用無しに出来る。といったイメージです。 この記事では、自分が直近で担当をしている広告の配信スクリプトと、普段注目されづらいその裏側について書いていきたいと思います! 広告タグの構造 さて、webページに広告を表示したい場合、アプリケーションはHTMLで記述されているため、広告もHTMLタグの形でお渡しすることになります。 (※fluctではモバイルアプリや動画プレイヤーへの広告配信も行っており、それらの場合はHTMLではない

                          ニッチすぎる!?知られざる広告JavaScriptの世界 - CARTA TECH BLOG
                        • Go の goroutine / channel は全然簡単じゃないので errgroup を使おう - 音速きなこおはぎ

                          技術記事です。今日は Go の golang.org/x/sync/errgroup についてです。 TL; DR Go が並行処理を得意とするのは事実だけど、とはいえ正しく使うのは難しい(特に channel)。 errgroup なら「並行でダウンロードする」のような頻出パターンをとても簡単かつ安全に使えるので、まずはこれで美味しいところだけ頂いてしまおう。 重い処理を並行にすればあなたのプログラムはカジュアルに数倍速くなる。 多分 errgroup だけで現実の要件の85%くらいはカバーできるはず。 channel も含めてちゃんと使いこなしたいと思ったら、Go 言語による並行処理 がおすすめです。 errgroup とは ドキュメントはここを参照してください。説明を読むよりコード例で見たほうが早いと思うのでこちらをどうぞ。 package main import ( "fmt" "

                            Go の goroutine / channel は全然簡単じゃないので errgroup を使おう - 音速きなこおはぎ
                          • Raft + Redis な内製Redisサーバの紹介 - Mirrativ Tech Blog

                            こんにちは ハタ です。 Mirrativのインフラ内で実際に開発・運用している内製のRedisサーバについてお話したいなと思っています。 前回の記事 は、今回紹介する内製Redisサーバで起きたメモリリーク対策に関するお話しとなっておりますので、もし未読であればあわせて読んでいただければと思います。 今回はなぜ Redis サーバを内製することにしたのかの経緯や実装についての簡単な紹介が出来たらなと思っています Redis 導入の経緯 課題感: 揮発しないでほしい 課題感: 生存時間が短いデータを保持したい 課題感: 日次データをなんとかしたい 候補 Redis Cluster のヨシアシ: slot 管理 Dynomite のヨシアシ: sharding/replication radisha = Raft + Redis + HA Raft クラスタ コマンドとデータストア レプリケ

                              Raft + Redis な内製Redisサーバの紹介 - Mirrativ Tech Blog
                            • Overleaf+VSCode+GitHub+etcな執筆環境を整える

                              環境構築 以下の手順で構築していきます. Overleaf-Workshopの拡張機能をVScodeに入れる Latex-Workshopの拡張機能をVSCodeに入れる Latex-Workshopの設定を変更 texliveをインストール +α Grammarlyの拡張機能をVSCodeに入れる Grammarlyの設定を変更 1, 3, 5はVSCodeの拡張機能で検索すれば一瞬で出てくるのでスキップ. Latex-Workshopの設定を変更 Latex-Workshopの設定を変更します.以下を設定から変えましょう.cmd+,で設定のタブが開けると思います. Latex-workshop › Latex › Recipe: Default - first + lastUsed onSaveでtexソースをビルドするときに、デフォルト設定のfirstのままだとpdflatexのビル

                                Overleaf+VSCode+GitHub+etcな執筆環境を整える
                              • Log4j2 脆弱性問題における SpringBoot アプリケーションの検証 | DevelopersIO

                                先日騒ぎになっていた CVE-2021-44228 についてのアプリケーション側の対応について記載いたします。 緩和策としてすでに AWS WAF での Rule の Update 等が行われているため、AWS サービスの詳細については別途記事を御覧ください。 Log4jの脆弱性対策としてAWS WAFのマネージドルールに「Log4JRCE」が追加されました ここでは SpringBoot をベースとしたアプリケーションへの影響と対応可否の判断についてどのような調査を行ったかを記載します。 ひとまず結論 Spring 側から見解がすでに出ています。 Log4J2 Vulnerability and Spring Boot 以下抜粋します。 Spring Boot users are only affected by this vulnerability if they have switc

                                  Log4j2 脆弱性問題における SpringBoot アプリケーションの検証 | DevelopersIO
                                • 超楽にRubyで雑に書いたスクリプトをsystemdで管理したい! - 宇宙行きたい

                                  ちょっとした雑なスクリプト書いてそれを常に起動しておきたいときないですか?僕はあります。 しかもめんどくさがり屋なのでghq管理化のディレクトリでgemに頼って雑に書いたスクリプトがそのまま動いてほしいんです。 systemd使えば出来るんだろうなぁと思いつつ「色々面倒くさいんだろうな」と思って手を出していなかったんだけどやってみたら拍子抜けするほど簡単だったので共有です。 雑要件定義 rubyはrbenvで管理してるんでそれそのまま使ってほしい 実行ファイルをgit&ghq管理化のディレクトリでそのまま使いたい 他の場所にインストールとかコード管理ダルい bundle exec 的なのもやって依存ライブラリもうまいことやってほしい やること systemdをユーザーレベルで使うときは ~/.config/systemd/user/にファイルを置けば良い。ディレクトリ無かったら作る mkd

                                    超楽にRubyで雑に書いたスクリプトをsystemdで管理したい! - 宇宙行きたい
                                  • フロントエンドと素朴なコードベース | 雑司ヶ谷インターネット

                                    これは SmartHR Advent Calendar 2020 の4日目に書かれた記事です。今は 12月4日の42時10分なので、ギリギリ滑り込んだ形になってしまいましたね。 React と自由 SmartHR で開発している様々なプロダクトはその大半 1 がフロントエンドに React を採用している。僕も Twitter で「React が好きだ!TypeScript 最高だ!」と叫んでいたら「弊社 React + TypeScript ですよ」というスカウトをいただいて転職に至ったという経緯があって、それぐらい全社的に React をやっていくぞという意志の統一が果たされている。 とはいえ React というのはフレームワークではなく、あくまでも JSX という記法と各種関数のバインディングを通じて宣言的な UI を構築する機能を持ったライブラリに過ぎないので、アプリケーション全体

                                      フロントエンドと素朴なコードベース | 雑司ヶ谷インターネット
                                    • ただ15行のシェルスクリプトで個人ナレッジマネジメントツールを作った話

                                      はじめに 自分が読んだ本や記事などを読む時に書いたノートを体系的に管理したいですよね。 現在優秀なナレッジマネジメントツールはありふれています。企業向けだと Confluence DocBase Qiita Team などがあります。個人向けは Notion HackMD Boost Note のようなシンプルで使いやすいツールがあります。マインドマップツールをさらに含めると数え切れません。 筆者自身はミニマリストです。 コードのようにGithubで自分のノートを管理したい Webからマインドマップ形式になっているノートを確認したい サブスクではなく、無料で使いたい なので、個人ナレッジマネジメントツールを自作したいという発想に至りました。 結果としては下記の15行シェルスクリプト、GitHub ActionsとMarkdownマインドマップ変換ツールmarkmapで作りました。 項目をク

                                        ただ15行のシェルスクリプトで個人ナレッジマネジメントツールを作った話
                                      • Firebase Realtime DatabaseとFirestoreを使い分けていこうなという話 - KAYAC engineers' blog

                                        こんにちは、今年もあっというまでしたね〜@fnobiです。この記事はTech KAYAC Advent Calendarの12日目になります。 毎年アドベントカレンダーでは、その時お世話になった技術の話をしているんですが、今回は去年に引き続きfirebaseで行かせていただきます。いちおう専門はWebフロントのはずなんですが、最近WebフロントエンジニアというよりはFirebaseエンジニアです。 Firebase Realtime DatabaseとFirestore そもそもfirebaseとはなんぞや?という話は去年も書いたのでよろしければ読んでみてください。 さて現在Firebaseでは、データベースとしての機能がRealtime DatabaseとFirestoreの2種類提供されています。いちおう公式でも並列に扱われていたり、比較を書いてくれたりしているんですが、全体を通してな

                                          Firebase Realtime DatabaseとFirestoreを使い分けていこうなという話 - KAYAC engineers' blog
                                        • 音声認識モデルwhisperの全モデル文字起こし比較 - 毎日がEveryday、日々 Day by Day

                                          OpenAIの音声認識モデルWhiper、いやー、まじですごすぎて感動しました。 配信中のpodcast番組 白金鉱業.FMを頑張って文字起こしするために、この記事とか、この記事とかでかなり真面目に既存文字起こしAPIの精度などを比較していましたが、もう今回は比べるまでもなく本当に雲泥の差です。ほぼ一言一句正確に文字起こしできます。GCP, AWS, Azureの文字起こしAPIは文字起こし精度が体感30~60%くらいでしたが、whisperは90%超えている印象です。もう笑うしかないです。 最初に結論 インストール 実行方法 結果 tinyモデルの結果 baseモデルの結果 smallモデルの結果 mediumモデルの結果 largeモデルの結果 まとめ 追記 カタカナ英語 完全制覇 whisperくん せんでんせんでん 最初に結論 whisperは異なるモデルサイズが5種が利用可能であ

                                            音声認識モデルwhisperの全モデル文字起こし比較 - 毎日がEveryday、日々 Day by Day
                                          • 【脱jQuery】jQuery <=> vanillaJS 書き換え集

                                            jQuery <=> JavaScript全書き換え一覧ではありません jQueryで書いていたコードをvanilla(素のJavaScript)に書き換えたいけど書き方がわからなくて調べ方もピンとこない状態の自分がこれを見ることができたらきっと嬉しいと思ったのでここに供養します。 脳の記憶容量が8バイトくらいしかないので今でもシンプルにJavaScriptの書き方をページ内検索して使ったりしています。 /*----------------------------------- セレクター ------------------------------------*/ //html $("html") document.documentElement; //body $("body") document.body; //id $("#hoge"); document.getElementBy

                                              【脱jQuery】jQuery <=> vanillaJS 書き換え集
                                            • RDS Proxyが無意味になる恐怖の現象「ピン留め」を回避するための基本的な設定値について | DevelopersIO

                                              CX事業本部@大阪の岩田です。 RDS Proxyを利用するとRDS ProxyにプールされたDB接続を複数のDBクライアントで使い回すことができ、限られたDB接続を効率的に利用することが可能になります。しかし複数のDBクライアントが安全にDB接続を共有できない場合、RDSProxyはコネクションプール内のDB接続を特定のDBクライアントに対して固定してしまいます。これが「ピン留め」と呼ばれる現象で、このピン留めが発生するとRDS Proxyを利用するメリットが失われてしまいます。 このブログでは「ピン留め」を回避するための基本的なパラメータ調整についてご紹介します。 環境 今回利用した環境です こちらのブログとほぼ同様の設定にしてクライアントからの同時接続数が実質1に制限されるようにしています。 RDS for PostgreSQL 11.8-R1 インスタンスクラス db.t3.mic

                                                RDS Proxyが無意味になる恐怖の現象「ピン留め」を回避するための基本的な設定値について | DevelopersIO
                                              • Gatsby + TypeScript で技術ブログを書くための知見

                                                Blog を作りました!!!!! 会社を辞めて 5 ヶ月経とうとしており、ついに堕落しきった生活による危機感が生まれはじめました。 その危機感が結実したものがこの Blog です。 で、Blog を作ってみたものの書く内容が特にないので、まずはこのブログをどうやって作ったかについて書きます。 「こういう記法にちゃんと対応できてる?」を試す目的でもあります。 技術スタック 根幹になっているものは、 TypeScript Gatsby です。 元々は amdx + NextJS, もしくは完全自作 SSG を考えていたのですが、 ブログは完璧を目指しているといつまでも完成しない ということは知っているので、自分にとって自信があるツールとして Gatsby を選びました。 しかし、ただ使うだけなのはチャレンジ性がなかったので、TypeScript を使ってみることにしました。 昔の Gatsby

                                                  Gatsby + TypeScript で技術ブログを書くための知見
                                                • Yahoo! JAPAN がメールセキュリティ「BIMI」を導入するまでのお話

                                                  ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。メッセージング技術領域における第11代黒帯(ヤフーでのスキル任命制度)の中村成陽と申します。エンジニアとしてYahoo!メールを担当しております。 今回の記事では、メールの比較的新しい認証規格である BIMI についてのご紹介、そしてその BIMI を Yahoo! JAPAN が導入することになりましたので、それまでの過程や実際の対応内容などについてご説明します。さらに、BIMI における今後の展望に関しても触れられればと思います。 フィッシングメール対策として、Yahoo! JAPANから配信するメールにアイコンが表示される規格「BIMI」を導入(プレスリリース) BIMI とは? BIMI (Brand Indi

                                                    Yahoo! JAPAN がメールセキュリティ「BIMI」を導入するまでのお話
                                                  • GitHub Actionsって何?触ってみて理解しよう!入門・逆引きリファレンス - Qiita

                                                    ある日のこと 「さーて、今日もGitHubにコミットをプッシュしていくぞ〜〜」 「ローカルでコミットした変更をgit push origin mainして、、」 「github.comのレポジトリを見にいくと、、お!反映されているな!Initial Commitってちゃんと出ているぜ!」 「そういえば、いつも気にしていなかったけどActionsタブってのがあるな?これってなんだ?」 これがGitHub Actionsです。レポジトリごとに用意されていて、Actionsタブから管理、確認することができます。 「ほ〜。GitHub Actionsっていうのか・・なんのためにあるんだろう?ここで何ができるの?」 GitHub Actionsとは GitHub ActionsはGitHubがサービスの一環として提供する、ワークフロー自動化サービスです。 簡単に言えば、「開発している時にやりたいこと

                                                      GitHub Actionsって何?触ってみて理解しよう!入門・逆引きリファレンス - Qiita
                                                    • 開発/Stg環境のための本番DBマスキングと継続的リストアの仕組みを作りました | ランサーズ(Lancers)エンジニアブログ

                                                      SREチームの安達(@adachin0817)です。今回はMENTA、Lancers Creative、Lancers Agencyでマスキングした本番環境のデータをStgや開発環境のMySQLコンテナへ毎週リストアする仕組みを実装しました。実際にここらへんは運用をしていく中で一苦労されている方も多いのではないでしょうか。それではまず背景と、実装するに当たっての活動含めてご紹介できればと思います。 背景 今回はMENTAを例にしています。各サービスの開発環境はDockerを利用しており、本番とStg環境はTerraformで管理しています。カラム追加ではマイグレーションを実行することでサンプルのスキーマファイルを投入して開発をしているのですが、たまに開発環境で動いていたソースがStgや本番で動かないといったことで開発効率が下がることが見受けられます。開発メンバーにとってはより本番環境に近い

                                                        開発/Stg環境のための本番DBマスキングと継続的リストアの仕組みを作りました | ランサーズ(Lancers)エンジニアブログ
                                                      • Chrome Devtools による フロントエンドパフォーマンスの計測

                                                        こんにちは。株式会社スタメンでFANTSのフロントエンドを担当している@0906kokiです。 今回の記事では、皆さんおなじみの Chrome Devtools にある Performance タブで、フロントエンドのパフォーマンスを計測する方法について書きたいと思います。 はじめに フロントエンドのパフォーマンス・チューニングと言うとバックエンドと比べて後回しになりがちですが、フロントエンドにアプリケーションの複雑性が寄ってきている現在、フロントエンドがボトルネックでレスポンスのレイテンシーが発生することは往々にしてあると思います。 バックエンドではユーザー数の増加や大量の同時接続に耐えられる負荷対策やパフォーマンス・チューニングが中心となりますが、フロントエンドではプロジェクトサイズの増加による JavaScript ファイルのダウンロードやスクリプティング、レンダリング速度の低下等が

                                                          Chrome Devtools による フロントエンドパフォーマンスの計測
                                                        • より信頼できるクエリを書くために、SQLでもテストを書く - ハヤオキスルフクロウ

                                                          はじめに こんにちは、久しぶりに技術系の記事を書きます、株式会社カンムで機械学習エンジニアをしている fkubota です。 今日はSQLについてです。 弊社に入社してから毎日のようにSQLのクエリを書いてきました。 クエリを書き始めてからもう3年が経とうとしています。 日々クエリを書きながら少しずつ自分のスタイルが出来上がってきているのを日々実感しています。 僕は 正確で 読みやすく 再利用しやすいクエリを 高速に 生み出すための工夫を重ねてきました。 結果的にテスト駆動開発ぽいスタイルが生まれたので今日は紹介してみようと思います。 似たような記事がないので少しドキドキですが温かい気持ちで読んでもらえると嬉しいです。 対象読者 対象読者は、分析のためにクエリを書いている人とします。 プロダクトに乗せるクエリというより、ビジネス的になにか示唆を得たいときにクエリを書く人を想定します。 痛み

                                                            より信頼できるクエリを書くために、SQLでもテストを書く - ハヤオキスルフクロウ
                                                          • データエンジニア / Analytics Engineer向けの権限管理のためのTerraform紹介 - yasuhisa's blog

                                                            これは何? 背景: 権限管理とTerraform 権限管理の対象 誰に権限を付与するのか どのスコープで権限を付与するのか どの強さで権限を付与するのか Terraformについて Terraformの概要: 権限管理でTerraformを使うと何がうれしいのか 例: roles/bigquery.jobUserを付与してみる コラム: どこでTerraformを実行するか Terraformでの権限管理の例 例: データセットの作成 例: データセットに対する権限付与 サービスアカウントの管理 iam_member関連の注意点: AdditiveとAuthorativeを意識する Terraformで管理されていなかったリソースをTerraform管理下に置く: terraform import Terraformの登場人物 terraform planやterraform applyの

                                                              データエンジニア / Analytics Engineer向けの権限管理のためのTerraform紹介 - yasuhisa's blog
                                                            • TypeScript で type と interface どっち使うのか問題

                                                              はじめに あくまで一個人の意見なので絶対的な解ではないというのと、どっちをデフォルトに選んでも普通にアプリケーション開発してて困ることはほぼほぼないと思うので、そこまで気を揉むことでもない、ということだけ最初に述べておいて意見をしたためます。 TL;DR アプリケーション開発では基本的に type でおk Declaration merging したい時だけ interface ライブラリ開発のような使う側で拡張したい(Declaration merging したい)時は interface とりあえずチームでどっちをデフォルトにするかは統一しといた方が気持ちいい type と interface の違い 機能的にはそんなに大きな違いはなく、個人的に判断に関わるのは次の3つかなと思います。 interface では Declaration merging がされる。type ではされない

                                                                TypeScript で type と interface どっち使うのか問題
                                                              • Pythonのみで業務スーパーの各店舗と気象状況を可視化する - Qiita

                                                                みなさん、業務スーパー使ってますか?私は、朝ごはんに業務スーパーのインスタントフォー(チキン味)を食べるようにしていることから、週1回は業務スーパーに通っています。最近、全都道府県に店舗が出店されたそうです(パチパチパチ)。 というわけで、業務スーパーの全店舗の位置をプロットしてみようかと思いました。あと可視化だけだとちょっと退屈なので、気象データを使っていくつかの店舗の気温の比較を行います。foliumで作った可視化は次のようになります。 開発環境: Python 3.9.1 folium 0.12.1 pandas 1.2.3 requests 2.25.1 requests_html 0.10.0 xarray 0.16.2 ハンズオン開催します はんなりPythonで、この記事であったrequests / requests-htmlを使ったデータ取得ハンズオンを行います。ご関心をお

                                                                  Pythonのみで業務スーパーの各店舗と気象状況を可視化する - Qiita
                                                                • 遅くないpandasの書き方 - ML_BearのKaggleな日常

                                                                  これは何? この記事は Kaggle Advent Calendar 2021 の7日目の記事です。 pandasはデータ分析ライブラリとして非常に便利ですが、書き方を間違えると簡単に処理が遅くなってしまうという欠点があります。そこで、この記事では遅くならない書き方をするために気をつけたいポイントをいくつかご紹介したいと思います。 この Colab Notebookの実行結果をエクスポートした上で、不要な部分を一部削って記事にしています。colab notebook をコピーして実行してもらえれば再現することが可能なはずです。(colabにコメント等をいただいても返すことはできないと思います、すみません。) 前提条件 この記事ではあくまで「遅くない(なりづらい)書き方を紹介する」ことに努めます。よって、以下のような改善点はあるが一旦考慮の外におくものとして話を進めます。 並列化ライブラリ

                                                                    遅くないpandasの書き方 - ML_BearのKaggleな日常
                                                                  • とってもRailsライクなサーバーレスフレームワーク「Ruby on Jets」を本番環境に導入した話 - LiBz Tech Blog

                                                                    はじめに 経緯 構成 技術選定 Lambdaのランタイム(言語)は何で実装するのか? サーバーレスアーキテクチャの構成管理に何を利用するのか? Jetsをちょっとだけ解説 プロジェクトの作成 ルーティングの設定 コントローラー 必要なIAMポリシー シークレットキーなどの扱い方 デプロイ方法 最後に おまけ はじめに こんにちは!先日26歳を迎え、30歳への恐怖感が着々と増してきた渡邊です。 今回が3回目のブログ投稿になります。 前回のKubernetes(GKE)にお安く入門するではたくさんのブックマークをいただきありがとうございました。 今回は実際に業務での利用をしはじめたRailsライクなRuby製 サーバーレスフレームワーク 「Ruby on Jets」について書きます。 経緯 自分が開発を担当しているプロダクトには、求職者の方と弊社のキャリアアドバイザーがLINEを介してメッセー

                                                                      とってもRailsライクなサーバーレスフレームワーク「Ruby on Jets」を本番環境に導入した話 - LiBz Tech Blog
                                                                    • 無理なく始めるGoでのユニットテスト並行化 - カンムテックブログ

                                                                      KanmuでPoolを開発しているhataです。最近、ロボット掃除機を買いました。ロボと猫がじゃれている景色はいいですね。 今回はGoのユニットテストの並行化についての記事です。 TL;DR Goのテストは、並行化することでテスト実行時間の短縮やテスト対象の脆弱性の発見などのメリットがある 基本的にはそのままでも最適化されているが、テストコードにt.parallelを記述することでよりきめ細やかな最適化を施すことができる ただし、一定規模以上のアプリケーションへの導入・運用は大変 テストコードを一気に並行化するtparagenというツールや、並行化忘れを防ぐ静的解析ツールがあり、これらを使うことで無理なくテスト並行化の導入・運用ができる はじめに ユニットテスト並行化とは 本記事では、「並行」「並列」という用語を使用します。本記事におけるこれらの用語を定義します。 並行:複数の処理を独立に

                                                                        無理なく始めるGoでのユニットテスト並行化 - カンムテックブログ
                                                                      • 記事の書き方

                                                                        writing.md 記事の書き方 記事の執筆には、Markdown形式を利用してください。 Markdownにはさまざまな流派がありますが、GitHub Flavored Markdown(https://github.github.com/gfm/ )をベースとした書式を採用します。 書籍を執筆するための形式として考えると、Markdownには不足している機能が多々あります。 しかし、次のような利点があるので、Markdownを採用することにします。 最低限の構造しかないので、見た目でごまかせる余地が少ない 原稿を著者自身が再利用してもらいやすくしたい ラムダノートで販売する際のスタイルは、原稿の形式がなんであれ、別に考えなければならない 以下では、節や項といった記事の大構造、および、段落やコードや図表といった記事の小構造について、 執筆にあたって気を付けていただきたいことや記述方法の

                                                                          記事の書き方
                                                                        • dodaアプリを支える技術とアーキテクチャ・設計思想 - techtekt

                                                                          doda アプリ開発グループの坂戸です。 今回は doda アプリがどのような技術を使用してアーキテクチャ・設計しているかをお話しします。 前半部分をフロントエンド、後半部分をバックエンドに分けて説明していきます。 フロントエンド doda アプリのフロントエンドはざっくり以下の構成で成り立っています。 ReactNative ReactNativeFirebase typescript ReduxToolkit Realm jest 今回は設計のお話をしたいので、各ライブラリの詳細な説明などは割愛させていただきます。 まずは外観をご覧ください。 dodaアプリフロント概要 Redux フロントエンドで取り扱うデータを格納する層です。 各ドメインの粒度でSliceを切ってデータを管理しております。 ディレクトリ構成は Re-ducks パターンを採用。基本的にはReduxの原則に則って管理

                                                                            dodaアプリを支える技術とアーキテクチャ・設計思想 - techtekt
                                                                          • 開発責任者として、事業会社にジョインして半年の振り返り

                                                                            あれこれ 備忘録的な書き殴りな文書です。あしからず。 オシャンティーな技術スタックで、大きな組織でやるのも面白いと思うけど、小さな会社でレガシーなシステムやメンバーと向き合うのも悪く無いよ!ってことを伝えたいのだけど、これが楽しめる人いるかな?私は楽しいよ! ジョインした時点の状況 開発体制 開発エンジニア(入社半年) インフラエンジニア(5年前後、QA兼ねる) 主力サービスの協力会社 0.5人月程度 会社の屋台骨の 主力事業のSaaSサービスがあるが、業務委託の0.5人月程度の工数の範囲でできる改修を行っていた。 開発エンジニアは新規機能を開発していた。 課題感 一度作られたシステムは、表(UI/UX)も、裏(システム)もレガシーな状況であった。 限られたエンジニアのリソースは、営業視点で、あったら売りやすい機能開発に費やされており、負債返却や、使い心地の改善には充てられていなかった。

                                                                              開発責任者として、事業会社にジョインして半年の振り返り
                                                                            • タスクランナーとしてのmakeを使う際の工夫と注意点 - KAYAC engineers' blog

                                                                              SREチームの長田です。 みなさま開発・運用上の定形オペレーションに伴うタスク実行をどのように管理していますか? 今回は make をタスクランナーとして使う例を紹介します。 タスクランナーがほしい タスクランナーを使う主なモチベーションは以下の2つです。 タスクをリスト化したい タスクの実行インターフェイスを統一したい タスクがリスト化されていれば、それ自体が生きたドキュメントとして機能します。 また、タスクの実行インターフェイスが統一されていれば、 例えばタスクに前処理や後処理を追加したとしても、 開発・運用メンバーが実行するべき操作が変わることはありません。 操作変更の周知コストも下がりますし、変更に伴う操作ミスも減らすことができます。 タスクランナーに求めるもの タスクランナーの機能としては必要最低限のものがよいと考えています。 高機能なタスクランナーも魅力的ではあるのですが、タス

                                                                                タスクランナーとしてのmakeを使う際の工夫と注意点 - KAYAC engineers' blog
                                                                              • 技術者向けTips: はてなブログでMermaid記法を利用する方法 - はてなブログ開発ブログ

                                                                                いつもはてなブログをご利用いただきありがとうございます。 さて、はてなブログには、 はてなブログは、Mermaid記法に対応する予定はないでしょうか? というご質問をいただくことがあります。はてなブログはJavaScriptやCSSなどをご自身で記載し、自由にカスタムできるプラットフォームです。Mermaidの対応も、少し設定を加えることでご自身のブログに導入することが可能です。 本記事では、はてなブログへの導入方法を紹介させていただきます。 Mermaidとは Mermaidとは、テキストでダイアグラムやチャートを記述する仕様のことです。また、その記述方法がMermaid記法と呼ばれています。 例えば、以下の記述が、 graph LR; 書く-- 読みたくなる -->読む; 読む-- 書きたくなる -->書く; 読む-- 共感する -->はてなスター; はてなスター-- モチベート --

                                                                                  技術者向けTips: はてなブログでMermaid記法を利用する方法 - はてなブログ開発ブログ
                                                                                • オブジェクトのクローンにJSON化を使う時代は終わった!【JavaScript】 - Qiita

                                                                                  const obj = { hoge: [new Date(2023, 3, 12), 1], fuga: 'foo' }; const objClone = structuredClone(obj); // ディープコピー obj.hoge[1] = 10; console.log(objClone.hoge[1]); // 1 objClone.hoge[0].setFullYear(2050); console.log(obj.hoge[0].getFullYear()); // 2023

                                                                                    オブジェクトのクローンにJSON化を使う時代は終わった!【JavaScript】 - Qiita