サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
やろう!確定申告
tech.visasq.com
はじめに ビザスク開発本部 検索チームのくまがいです。 Pythonでアプリケーションを書いていると、何度も出てくる値やロジック等を再利用したいニーズがあります。 開発初期ではプログラム内にハードコードされたそれらの値やロジックをコピー&ペーストで横展開することも多々ありますが、再利用する箇所が増えていくとメンテナンス性が低くなってきて、共通モジュールとしてライブラリ化を検討することになったりしますよね。 ビジネスに固有の機能・コード片でなければパッケージ化してPython Package Index(PyPI)に公開することで、自社のみならず同じような機能を必要としている人の助けになります。 有用な機能であればたくさんの人から参照・ダウンロードされ、感謝されたり文句を言われたりとたくさんのフィードバックを得ることができます。 公開することが許される内容なら、それも一つの選択肢です。 一方
はじめに こんにちは!基盤チームの酒井です。 Google Cloud 主催の G.I.G. プログラムに参加してきました。 これまでも当社からは複数回参加させていただいており、今回は私が貴重な機会をいただくことができました! G.I.G. プログラムとは? G.I.G. Japan(Google Cloud Innovators Gym Japan)は各業界をリードするエンジニアに向けた Google Cloud スキルを習得いただくための招待制特別トレーニング プログラムです。 私が参加した期間は10月 ~ 12月までの3ヶ月間で、以下のようなプログラムがありました。 Google Cloud のエンジニアによる集合形式セッション Google Cloud Skills Boost 提供(自習プログラム) Google Cloud のエンジニアによる学習サポート 補習セッション:エンジ
2月から急に寒くなりましたが、皆様いかがお過ごしでしょうか。 先般、皆様ご存知不朽の名作、Kingdom Come: Deliveranceの続編が遂に発売されましたね。私は今始めると人間性を失ってしまいかねないため、もう少し人生が落ち着いた頃合いに手を付けようと何とか我慢しています。早く無力な凡夫ヘンリーを最強の男にしたいし、ひたすら野に咲く薬草を摘んで錬金術師としての人生も送りたい。 さて、みなさんはこう考えた事はありませんか? 手元の作業ブランチをstagingブランチにマージする前に、検証環境で動作確認ができればいいのに、と。 あったらいいのに 弊社のアプリケーションは Google Cloud 上の Cloud Run で動作しています。 従来よりデプロイごとにユニークなURLを発行しており、作業ブランチをstaging環境にデプロイする仕組みもあるため、簡単な動作確認は実施でき
はじめに こんにちは、エキスパート/lite 開発の中原です! ビザスクでは主に Vue.js を使用してフロントエンド開発を行っています。 みなさんは Vue.js がどのように実装されているか意識したことはありますでしょうか? ライブラリを使う時その裏でどんな処理がされているのか正しく理解していないと、意図した挙動をしてくれなかったり、思わぬところでバグが発生することがあります。 今回は Vue.js のリアクティブ機能を実現する ref() と reactive() に焦点を当て、実際のソースコードを読みながら内部動作を理解していきたいと思います。 ref() まずは ref() のコードを見てみます。 // https://github.com/vuejs/core/blob/v3.5.13/packages/reactivity/src/ref.ts#L59-L61 export
無駄にアクションチップにこだわった ボードゲーム大好きな検索チームの tanker です。最近は社内部活で (テキサスホールデム) ポーカー部ができたので、ボードゲーム部と掛け持ちしながら参加しています。 検索チームでは半年毎にオフサイトをやっています。今回は、TRPG風な障害対応訓練をやってみました。 過去のオフサイトの記事も参照ください。 tech.visasq.com tech.visasq.com Wheel of Misfortune (不運のルーレット) について Wheel of Misfortune(不運のルーレット)とは、Googleなどで行われている障害対応訓練の手法で、ゲームマスターが障害のシナリオを用意し、障害対応を行うメンバーと会話形式で実施していきます。 TRPGやマーダーミステリーのようなイメージです。 概要 参加人数: 5人 (+ GM) プレイ時間: 90
こんにちは、フルサポート開発の辰己です。 この時期はビザスクのテックブログの更新が盛り上がりますね。 乗るしかないこのビッグウェーブに!ということで今回はAuth0テナント設定をTerraform管理してみたので、その方法について記事にまとめます。 下準備(Auth0テナントの用意) TerraformのAuth0 ProviderはAuth0 Management APIを利用します。 そのためTerraformで管理するためにはテナントを作成して、Auth0 Management APIを利用するためのMachine to Machine アプリケーションを作成する必要があります。 WEBコンソールからアプリケーションを作成したら準備完了です。 Auth0テナントをTerraform管理化に 準備ができたらAuth0テナントをTerraform管理化におくために必要なファイルを生成しま
eyecatch はじめに こんにちは。 正月の休みボケがやっと抜けきったexpert/lite開発チームの下山です。 正月の思い出は車が雪にハマってスコップ1つで復帰したことです、ハマったら呼んでください、助けに行きます。 今回は私たちが定期的に実施しているマニュアルを読む会を皆さんに紹介できればと思い、記事にしました! liteチームと開発 liteチーム 弊社の組織上、主にビザスクliteサービスにおいてユーザと密接な関係にあるのが「プロダクト企画部 liteチーム」(通称 Customer Success)です。日々の業務の中で常にユーザの声に耳を傾け、ユーザ視点に基づいた新しいアイディアや課題・改善点をくださるファビュラスなチームです! 現在の問題点と目標 liteチームと開発チームの連携が0というわけではありませんが、開発チームとして以下2つの課題がありました。 そのため、li
はじめに こんにちは!基盤チームの高畑です。 最近シロカのコーヒーメーカーを買ってからというもの、1 日に 5 杯くらいコーヒーを飲み続けてしまっておりちょっと飲み過ぎなのではないかと危機感を覚えています。 手軽にコーヒーが淹れられてしまうのも考えものですが、美味しいので仕方がないと自分に言い聞かせながら今もコーヒーを淹れています。 みなさん、Cloud SQL のバックアップを定期的に行うといえば、まず思い浮かぶのは自動バックアップ機能を利用することだと思います。 しかし、この自動バックアップはあくまで「インスタンスが存在していること」が前提で、仮に Cloud SQL のインスタンスが削除されてしまった場合にバックアップもろとも削除されてしまい復元ができないといった状態に陥ってしまいます。 AWS の RDS であればスナップショットを定期的に取っておくことでインスタンスが削除されてし
はじめに 本題 本題に行く前に、まずDjangoについて 1. N+1問題を解決しよう select_relatedを使ったクエリ prefetch_relatedを使ったクエリ 2. 大量データを効率的に処理しよう 3. データの存在確認を簡単に 4. 数値の計算をして更新したい場合はFオブジェクト 5. シグナルの活用 最後に はじめに 初めまして、VISASQに去年の秋ごろに入社した者です。 現在はフルサポートチームにてアプリの管理画面等の開発を行っております。 2025年に入り、気づけば入社してもうすぐ半年が経とうとしてます。 私は今までPythonは少し触れたことがあるものの、Djangoは入社してから初めて触りました。 そんなDjango初学者の私が、これ知っておくと便利だなと思ったものを書いていきたいと思います。 ※この記事はDjangoを学び始めた方を対象にした基礎的な内容
こんにちは。 最近は寒いのでアイリッシュコーヒーとか飲みたいですね、エキスパート/lite開発の下山です。 以前以下の記事を執筆してから、シリーズ化して書こう書こうと思っていたら雪が降る季節になっていました、書きます(見てないって方は是非見てみてください)。 tech.visasq.com 今回はFastAPIのミドルウェアについて少し書ければと思います! 尺稼ぎではないざっくり前回の復習 FastAPI は巨人の肩の上に立っています。(FastAPI stands on the shoulders of giants) Web の部分はStarlette データの部分はPydantic 引用:https://fastapi.tiangolo.com/ja/#typer-the-fastapi-of-clis この巨人の両肩ってなんなの?というところから、 ルーティングシステムやミドルウェ
ビザスクでは全社のコミュニケーションにSlackを利用しています。 本記事では朝会のテンプレにSlack Canvasを使ったら捗った話を紹介します。 Slack Canvasとは 背景 ASIS: 毎朝投稿されるSlackbotのメッセージにスレッドで記載 この運用の課題 TOBE: Slack Canvasに記入 Slackワークフローを使って、毎朝共有 当初の懸念と実際 Slack Canvas運用にして良かったこと 共有・相談のやりとりが加速し、朝会の時間が効率化された 雑談のきっかけになるような情報も残しやすくなった その他使ってみて良かったこと Slack Canvasをの所感 むすび Slack Canvasとは Slack CanvasはSlack内で情報を作成・整理・共有するためのスペースです。 テキストやファイルから、リッチメディアやリンクの展開まで、canvas には
はじめに 本記事でお話すること 声があがるまでの経緯 アプリケーションの背景 課題 ルール策定、ドキュメント作成へ コーディングルール コーディングスタイル その他 運用中 おわりに はじめに こんにちは!フルサポート開発チーム、エンジニアの下山です。 最近は猛暑のせいでバイクに乗る回数が極端に減っています。早くライダーに優しい気温の季節になってほしいです🥵 本記事でお話すること 今回は、フルサポート開発チームがメインで取り扱う管理画面※1のコーディングルールについてお話します。 ただし、コーディングルールの詳細については触れません。 では何の話をするかというと、そのコーディングルールができるまでの経緯とか背景とか目的とか… そういった事細かにまとめられる機会のあまりない内容についてお伝えしたいと思います。 ※1:管理画面とは弊社スタッフが利用する社内アプリケーションの総称です。 声があ
インフラを管理する際にTerraform Providerのアップデートが面倒になって放置していませんか? それ、Renovateで解決できます。 こんにちは!DPEチームの酒井です! 弊社ではインフラの管理にTerraformを利用していますが、Providerのバージョンアップデートは後回しにされていました。 そこで導入したものが、依存関係を自動更新してくれるRenovateになります。 Renovateとは? docs.renovatebot.com Renovateはリポジトリの依存関係を自動的に検出し、更新を効率的に管理するツールです。 機能としては、最新の依存関係に関するPRの自動作成や、条件を満たした場合の自動マージがあります。また、様々なオプション設定により、柔軟なカスタマイズをすることが可能です。 Renovateの使い方 導入 GitHubを使っている場合には、GitH
こんにちは!クライアント開発チームの安野です。 クライアント開発チームでは、クライアントポータルという to B 向けのサービス開発を担当しており、私はそこでフロントエンド・バックエンドの開発に携わっています。 クライアントポータルの内容はこちらからも確認できるので、ご興味があれば是非ご一読いただけますと幸いです! square.visasq.com そんなクライアント開発チームですが、この度、 Dependabot というライブラリの脆弱性管理ツールを導入しました。 今回は導入にあたって調査した Dependabot について共有できればと思います。 はじめに ソフトウェア開発において、外部ライブラリの利用はもはや常態化しています。 豊富な機能や開発効率の向上といったメリットから、多くのプロダクトにライブラリが活用されています。 しかし、外部ライブラリにも脆弱性が含まれる可能性があり、発
はじめに こんにちは!DPE(Developer Productivity Engineering)チームの高畑です。 最近カーオーディオにハマっていて、スピーカーを変えたり DSP アンプを導入したりとオーディオの沼に腰あたりまで浸かってしまいました。 スピーカーケーブルをちょっと良いやつに変えたりしてみたんですが、正直違いが分かっていないので頭まで浸かるのはまだ先のようです。 現在、ビザスクでは遅ればせながら MySQL 5.7 から MySQL 8.x へアップグレードするためのプロジェクトが進行しており、既存のデータを移行するため諸々の検証を行なっていました。 検証を進めるにあたり、データの移行に DMS (Database Migration Service) を利用する方針となったので、経緯や方法をご紹介したいと思います。 移行方法の検討 当初、既存の MySQL 5.7 デー
5月に入社した、ITチームの@enpipiです。 今回はCleanShot Xのトライアルから導入までの取り組みと工夫についてご紹介します。 1. CleanShot Xトライアルから導入の背景 2. CleanShot Xとは App + Cloud Proプランについて Webアップロードを禁止制御できる SSO, JITプロビジョニングの利用ができる 3. トライアルの開始 1ヶ月のトライアル期間の成果を最大化するために 1: 最短で全員にアクティベーションを促す 2: チャンネル参加からスムーズなトライアル開始 3: 初期設定からHowToをセルフサービス化 4: コミュニティを盛り上げる 不定期でTipsを投稿 CleanShot Xお触り会の開催 即レス・即時ドキュメンテーション 口コミでトライアル利用者が広がる 4. サーベイの取得と結果 殆どの人が効率化と品質向上を実感 業
暑くなってくるとだんだん食欲がなくなってきませんか?今年もそんな季節となりました。 今年の夏は北海道に行く予定です、私は本当にやるぞ。DPEチームの嶺岸です。 ところで、パブリッククラウド高くないですか? 使った分だけお支払いいただきます、この売り文句を聞いて高くなると思うか、安くなると思うか、その感覚は人それぞれかと思います。しかし覚えておいて欲しい。使えば使っただけ支払わなければならないということを。 弊社のGoogle Cloud、高くない? 私のコスト感覚を一言で言うと、「なんとなく」です。身も蓋もない。 この費用……なんか、変?何が高いのかな……?(裏声) という感じでなんとなくGoogle Cloudの請求レポートを眺めます。 期間を1年くらい、グループ条件を月 > サービスに設定すると、毎月どのサービスにどれだけ課金しているかが分かります。 そこから上位3サービスくらいをピッ
ビザスク開発1グループ エキスパート/lite 開発チームのよしけーです! もうすぐ風来のシレン6が発売されますね。自分は初代とアスカ見参!しか経験がないのですが、14年ぶりの新作ということで久しぶりに手を出してみようかと思ってワクワクしている今日この頃です。 にしても。自分は現在30代後半なのですが、スラムダンクが映画化したり、るろうに剣心が再アニメ化したり、幽☆遊☆白書が実写化したり、紅白でポケビブラビが出たりしたりで子どもと一緒にワイワイできるコンテンツが多くていい時代ですね!自分は子どもいませんけど! 本記事について 弊社では現在、サービスの成長に伴いモノレポからのサービス分割に取り組んでいます。 サービスごとに技術スタックが多少異なるのですが、自分が担当しているサービスのバックエンドでは FastAPI を使用しています。 FastAPI のマニュアルでは SQL のツールキット
こんにちは、今年の10月に入社したプラットフォーム開発グループ DPEチームの酒井です。 先日 GitHub Actions に TFLint と Trivy を導入しました。 まとめて書くと長くなってしまうので、今回は TFLint 導入編です。 今回説明する部分は以下になります。 TFLint の設定 TFLint を GitHub Actions で動かす TFLintとは? TFLint は、Terraform ファイルの命名規則や、インスタンスタイプのエラー、非推奨の構文、未使用の宣言など、静的解析してくれるフレームワークです。 github.com TFLint 導入 TFLint の install ビザスクの Terraform 環境周りではCLIパッケージマネージャーとして aqua を利用しています。 TFLint は aqua registry に存在していますので、
はじめに こんにちは!DPE(Developer Productivity Engineering)チームの高畑です。 ちょっと前に iPhone 15 Pro に変えてようやく USB-C ケーブルに統一できる!と思っていたら、手元にある Magic Trackpad が Lightning ケーブルでしょんぼりしました。 さて今回は、ビザスクのインフラ周りで利用している Terraform をエンジニア全員が安心・安全に利用できる仕組みづくりを行なっている話をしていきます! これまで ビザスクではインフラの構築・運用に Terraform を利用しており、依頼ベースで DPE のメンバーが Terraform の修正を行なってレビュー&リリースをしていました。 開発メンバーから Terraform の PR をあげてもらうこともありますが、plan / apply の権限を持っていない
はじめまして。エキスパート/lite 開発 の倉光と申します。 今回初の記事投稿として、私が日々愛用している tmux の紹介ができればと思います。 自己紹介 本編に入る前に、簡単に自己紹介をさせてください。 私は 2022 年 8 月にビザスクに入社し、気がついたら約 1 年ほど経っていました。 ビザスクに入社する以前は、インフラ系のメーカーで開発職として製品開発に従事していました。また、大学の出身学部も物理系であったため、 ビザスクに入社するまではプログラミングとは無縁のいわゆるエンジニア未経験として異業種異分野からジョインして、今は既存サービスの改善であったり、プロジェクトの開発に日々従事しています。 そして、テックブログって一体どんな内容を書けばいいんだ・・ネタが思い浮かばん・・と先延ばしにしていたら日々の開発に圧倒されているうちに丸 1 年経過していたことに驚き、遅ればせながら今
こんにちは!DPE(Developer Productivity Engineering)チームの高畑(Sorarinu (@int_sorarinu) / Twitter)です。 最近は月一のキャンプを楽しみに日々を生きていて、栃木県のとあるキャンプ場が最高すぎてリピートしまくっています。 今回は、ビザスクのメンテナンスを行う際の仕組みを刷新したお話をしてみようと思います! これまでのメンテナンスの仕組み ビザスクではアプリケーションの定期メンテナンスを行う際に「メンテナンスモード」へと移行して、メンテナンス期間中にアクセスされた場合にメンテナンス画面を返すようにしています。 その際、アドバイザー用の画面、クライアント用の画面、社内の管理画面のそれぞれでメンテナンス用のインスタンスをデプロイ・トラフィックの切り替えを行なっていました。 メンテナンスの画面を返すだけであればこの仕組みで問題
こんにちは、プラットフォーム開発グループ SREチームの西川 (@taxin_tt) です。 皆さんTerraform使ってますか? 弊社では既存サービスのマイクロサービス化を進めており、GCPベースのインフラはTerraformを利用して整備するようにしています。 一方で、サービス数の増加などに比例してtfファイルのコード量も増えていき、ディレクトリ構成や個別のリソースの定義などマイクロサービスのインフラ整備において負担になる部分があり、昨年末からSREチーム主導でリファクタリングを行っています。 今回は、そのリファクタリングの背景や進め方についてお話しできればと思います。 (本記事は、Terraform v1.3系を前提にしています。) リファクタリング後のTerraformのディレクトリ構成は下記をベースにしているので、下記の記事も合わせてどうぞ。 tech.visasq.com リ
こんにちは!フルサポート開発チーム兼 Embedded SRE の高畑(Sorarinu (@int_sorarinu) / Twitter)です。 最近、スノーボードだけでなくキャンプにも手を出してしまった結果、どんどん沼にハマっていっている私ですが皆さまいかがお過ごしでしょうか。 先日のシルバーウィークで 3 連休それぞれキャンプに出かけていたのですが、両日とも台風の影響で生憎の大雨となり雨濡れ耐性が格段に向上してしまいました。 さて今回は、弊社でも利用している Terraform のディレクトリ構成について、改めてベストプラクティスってなんだっけというものを考えてみたのでご紹介いたします。 事の発端 今ではマイクロサービス化も進み、各サービスそれぞれで Terraform のコードが増えてきている状態となっています。 既存の Terraform では変数( creation フラグ)
こんにちは。SREチームでリーダーをやっている木村です。 座右の名は「明日自分が交通事故にあっても、システムの運用を滞りなくする」です。 2021年から SRE 責任者の役割をしていますが、その中でいわゆるマネジメントという業務を行っています。 本日は、この答えのないマネジメントについて少しお話をさせていただけたら。と思っています。 そもそもマネジメントとは何をすれば良いものか? 初めてマネジメント業務をすると大体の人がこの疑問を最初考えると思いますが、 大きく分けると2つに分類されるかと思います。 成果を上げるための仕組みを作る 業務の割り振りや、メンバーの成長するための仕組み等を整えたりすること リーダーシップ その場に集まっているメンバーに目標やビジョンを共有し、周りのモチベーションを高めチームの成果が メンバー = 1 のエンゲージメントではなく、 メンバー = 1.xx にするた
こんにちは。SREチームでリーダーをやっている木村です。 座右の名は「明日自分が交通事故にあっても、システムの運用を滞りなくする」です。 先日、ビザスク SRE チームでオフサイト (半日程時間をとって集中して、テーマに関して議論する時間です) を行って「次の半年でやりたいこと」を議論しましたので、 こちらの内容を生々しくお伝えしていきたいと思います。 なぜオフサイトを開いたのか? 日々の業務で SRE チームは同期・非同期的な積極的にコミュニケーションを取りながら日々の仕事をしていますが、 日々の中だとどうしても目の前の課題にフォーカスした内容になり、中長期的なちょっと遠い目線の話しは後回しになりがちです。 とはいえ中長期的にどこに目指すのか?の目線あわせをしないと、意思疎通や認識齟齬が発生をして「こう思っていた」や「そうだと思っていた」 という思い込みによる無駄が発生します。 そのよう
こんにちは!フルサポート開発チームの高畑(Sorarinu (@int_sorarinu) / Twitter)です。 つい最近、ISUCON 12 の予選があったようで、 Twitter のトレンドに「SQLite」が上がっていて DB 屋さんたちがザワザワしていたようですが、皆さんいかがお過ごしでしょうか。 自分は ISUCON 9 以来参加できていなくそろそろ参加したいなと思っているのですが、その前に社内の管理画面をパフォーマンスチューニングして ISUCON の雰囲気を思い出してきたのでご紹介します。 これまでの現状 ビザスクの管理画面が出来てから結構年数が経ってきており(first commit が 2012 年)、所々 N+1 を許容する実装や DB の JSON カラムなどが存在しており、ユーザが増えていくにつれて段々とパフォーマンスに影響が出てきていました。 情報量が多いペ
はじめに こんにちは。SREチームの西川です。 現在、ビザスクではサービスのインフラ基盤のリプレイスに伴い、Sentry+Datadogを用いたサービス監視体制を整備しています。 その中で、継続的に抱えていた「運用の属人化」という課題に対して、ツール面からアプローチできないかという思いがありました。 今回は、「運用の属人化」に対する課題意識、ツール利用の観点から属人化へのアプローチについてまとめます。 課題意識 ビザスクでのサービス監視系の運用作業 (e.g. エラー対応) に関しては、各サービスチーム+SREチームで実施しています。 上記の運用作業を行う中で、下記のような課題が挙がっていました。 エラー対応などの運用作業が特定のメンバーに集中している社内からの問い合わせ・事象調査の際に、複数のツールの使い分けが必要になったり、調査に必要な情報にリーチしづらいケースがあるエラー対応の過去ロ
アドバイザー/lite開発チーム フロントエンドエンジニアの小柳(@mascii_k)です。 はじめに 弊社サービス「ビザスクlite」では、Vue 2.6 向けのプラグイン @vue/composition-api を 2020/02 から導入しています。 tech.visasq.com ビザスクliteでの導入実績とノウハウ蓄積の結果、社内で利用している管理画面のフロントエンド(Vue 2.6)環境にも @vue/composition-api を導入することになりましたが、当時の判断で古いバージョンのものを導入してしまいました。 しくじりの経緯 2020/09 当時の最新バージョンであった @vue/composition-api 1.0.0-beta.14 を導入しようとしたところ、vue 本体のバージョンが 2.6.10 (当時の最新バージョンは 2.6.12)だったため、コンパ
次のページ
このページを最初にブックマークしてみませんか?
『VISASQ Dev Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く