会計チームで債権周りの開発をしている hachi (@hachiblog)です。会計チームが開発している freee 会計は freee の中で一番歴史が長いプロダクトです。加えて会計というドメインは複雑かつバグを生むと顧客の業務を大きく阻害するという点で一度作ったものを変更しづらいという特徴があります。 そのような環境で今回、債権のチームでは freee会計の初期からある「自動で経理」という機能の一部リファクタリングを行いました。リファクタリングのしづらい環境下でうまくリファクタリングをすすめるための tips は多くの人に役立つのではと思い、このエントリを書くに至りました。 今回「自動で経理」でリファクタリングしたときに事前に以下のことを行いました。 課題の発見 課題の具体化 設計とスケジュール見積もり テストコード実装 それぞれについて今回意識したことを書いていきます。 課題の発見
DX(デジタルトランスフォーメーション)やIoT(Internet of Things)の進展により、ますますその存在感が増しているオープンソースソフトウェア(OSS)。ソフトウェアの高機能化、大規模化によるサプライチェーンの複雑化を背景に、SBOM(Software Bill of Materials)によるOSSサプライチェーンマネジメントに注目が集まっています。米国では既に必須化・標準化の動きが始まっており、日本企業も対応を迫られるようになってきました。本記事では、あらためてSBOMとは何か、そして日本におけるSBOM活用の普及促進にはどういった課題があるかについて、詳しく解説します。 SBOMとはいったい、どのようなものなのか Software Bill of Materials(SBOM、「エスボム」と読みます))とは、ソフトウェアを構成するOSSや商用ソフトウェアなどのライブラ
OSSは企業のシステムにおける重要なコンポーネントとなっている。さまざまなソフトウェアにOSSが組み込まれることで、高度な処理が行える。だが、オープンであるが故に脆弱性が入り込む可能性も否定できない。この状況をいち早く検知し、対処するためのツールとして注目されている「SBOM」について有識者に話を聞いた。 米国大統領令で一気に注目された「SBOM」 オープンソースソフトウェア(OSS)は既に企業のシステムにおける重要なコンポーネントとなっている。さまざまなメリットがある一方で、ソフトウェアの「サプライチェーン」を狙う攻撃も多く、ソフトウェアの部品として組み込まれるOSSの脆弱(ぜいじゃく)性がシステム全体に影響を及ぼすことが課題となっている。この状況をいち早く検知し、対処するためのツールとして「SBOM」(ソフトウェア部品表)が注目されている。 SBOMとは、ソフトウェアサプライチェーンに
VS Code 1.71 がリリースされました? マージエディタの改善や、スティッキースクロールが GA したり (editor.stickyScroll.enabled)、統合ターミナル周りの改善など様々なアップデートがありました。 またプレビュー機能ですが、ファイルの移動や名前を変更したときに、該当ファイルを参照している Markdown のリンクを自動で追随して変更してくれる機能も来ているようで気になっています。 (markdown.experimental.updateLinksOnFileMove.enabled) 今回のアップデートで個人的に一番嬉しかったのは、統合ターミナルで Git Bash も(まだ実験的ですが)サポートされたことです。 統合ターミナルではコマンドの検出や装飾、ナビゲーションなどの便利な機能が使うことができますが、サポートされているのは以下の組み合わせのみ
Next.jsのホスティング先といえば、Vercelという認識は結構多くの人の中での共通認識になりつつあると思う。実際にVercelは特に難しいことをする必要もなく、また月額$20の課金(Proプラン)でのできる範囲はかなり広いと思う。 私も普段作っているサービスのDeploy先の1つとしてVercelを持っているが、今回はFirebaseもかなり良いと言う話をしていきたいと思う。 2022年5月、FirebaseHostingがNext.jsに対応した 実はGoogleI/Oの中で、こっそりとFirebaseHostingがNext.jsに対応していたのだ GoogleI/Oの記事はこちら 厳密には、Next.jsのプロジェクトを FirebaseHosting+FirebaseFuncitons(裏側でゴニョゴニョやってくれて第二世代のFunctionsにdeployされている)にfi
単体テストを書く時、モジュール間の関連を検証するため、一部のモジュールをモックする必要が出てくることがあります。モックは様々な手法がありますが、書き方によって、メンテナンス性やテストの可読性が変わります。一般的に行われるモック手法を確認しつつ、よりリーダブルなテストを書く方法を紹介します。 ログイン API を呼び出す Web API クライアント 今回紹介する、モック対象の Web API クライアントです。Native Fetch API を関数でラップした、自作の Web API クライアント(ログインするためのlogin関数)です。 export type Data = { redirectUrl: string; }; export type Input = { email: string; password: string; }; export async function l
Rustの自動テスト機能 Rustは、標準で自動テスト機能をサポートしています。自動テスト機能とは、文字通りプログラムの正当性を自動でテストする機能で、バグのない安全なプログラムの開発には必須です。テストを自動化することで、コードを改変した際の動作検証の手間も最低限に抑えられます。 Rustの備える自動テスト機能には、大きく分けて以下の3つがあります。 単体テスト 単体テストは、ユニットテストとも呼ばれ、テストの基本です。関数やメソッド単位で実行し、与えた引数に対して期待する値が返るかなど、基本的な動作を検証するために用いられます。 結合テスト 結合テストは、複数の関数やメソッド、モジュールやクレートにまたがったテストです。単体テストはあくまでも関数、メソッドの単体での動作をテストするものですが、それらが組み合わさった機能としての挙動をテストするのが結合テストです。 ドックテスト ドックテ
Q.29歳のシステムエンジニア(SE)です。先月から休日出勤続きで、今月も平日残業はもちろん、休日出勤が多くなりそうです。顧客に提示した見積もりと一致する受注プロジェクトなら残業はないはずだと不思議に思っています。要員計画は、月20日で160時間働く前提になっています。入社以来、全てのプロジェクトにおいて残業がありました。SEやプログラマーなどITエンジニアは残業が多いと割り切っていますが、つらいときがあります。残業が常態化している状態は、明らかにおかしいです。 残念ながら質問にあるプロジェクトは、最初から残業が当然という要員計画です。1人月を「1日8時間、月20日で160時間働く前提」としています。月の就労日数が平均20日だとすると、これでは順調なプロジェクトであっても必ず残業が発生します。 さらに、要件定義の見直しによる仕様変更やシステムトラブルが重なったときは、過重労働(長時間残業)
コンテキスト Xamarin のサポート終了というアナウンスを見て、Xamarin として提供されていたものが終了するというような誤解と不安を煽るような流れがあったので日頃 .NET をウォッチしているものとしては少し補足しておきたいと思います。 Xamarinのサポートは2024年5月1日で終了。マイクロソフトが.NET MAUI関連のロードマップを示す - Publickey 前提 Xamarin といった場合には次の製品ファミリーを指していることが多いです。 Xamarin: .NET のネイティブプラットフォームバインディングのフレームワーク Mono を基盤としつつ各種プラットフォーム (iOS, Android, macOS, Tizen など) のバインディングを提供する一式 例えば Android の Activity や View を C# などの .NET 言語で取り扱
はじめに 本記事は、Microsoft AzureのAzure Bot Serviceを利用した、画像認識の方法を記載しています。 ※2021年9月時点での手順です(クラウドサービスのため変更されている可能性あり) 前提 LINEアカウントを持っていること 通常のLINEを利用できるもの もしLINEを使っていない場合は、アカウントの作成が必要 Azureアカウントを持っていること もしアカウントを持っていない場合は、こちらからアカウント登録 準備手順 LINE Messaging API LINE Developersにログイン こちらからLINE Developersサイトを開きます。 LINE Developersサイトの右上の「ログイン」ボタン(下記画像の赤枠部分)をクリックします。 「ログイン方法選択」画面に遷移します。 そして、「LINEアカウントでログイン」ボタン(下記画像の
サーバレスってなに?Alibaba Cloud, AWS, Azure, Google Cloud のサーバレスサービスを比べてみました</h1>\r\n"}}" id="text-469def0355" class="cmp-text"> サーバレスってなに?Alibaba Cloud, AWS, Azure, Google Cloud のサーバレスサービスを比べてみました <span class=\"biz-smb-fs-p1\"><b>Batch/OLAP Software Engineer, CRE(Customer Reliability Engineer)<br>\r\n 大原 陽宣</b></span></p>\r\n<p>多様多種で複雑なデータを明確化し、テクノロジーでイノベーションを起こすことで、昨日までは不可能だったものを、明日は可能になるようなデータエンジニアを目指し
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? LINEトーク画面で英文画像を送ると、OCRしてDeepLによる高精度和訳してくれるLINEボット「瞬間Deep和訳」がローンチから半年で友達300人を突破しました。 LINEからのお知らせがあったのですが、友達300人以上のLINE公式アカウントは上位25%に含まれるそうです。 そこで、どんなふうにユーザーが増えていったか、個人開発したサービスの緩やかなグロースの軌跡をまとめたいと思います。 2022年2月1日に瞬間Deep和訳をリリース 瞬間Deep和訳は、2022年2月1日に個人開発でリリースしたLINEボットです。 ※QRコード
フロントエンドエンジニアの小林和弘です。 kakari という薬局向けに提供しているサービスで Electron を使って Windows アプリケーションを作成したので、そのことについてお話しようかと思います。 事の発端 これまで、「kakari」では、患者さまから薬局へ処方せんが送信されたときに薬剤師さまが処方せんの受信に気づけるように FAX で処方せんを送信していました。 しかし、FAX 送信に利用していた Twilio Programmable Fax サービスが 2021 年 12 月 17 日をもってサービス終了になってしまいました。 このサービス終了に対応すべく、薬局向けに処方せんが送信されたらプリンターで処方せん印刷ができる Windows アプリケーションを Electron で作成することになりました。 そもそもElectronとは HTML, CSS, JS のフロ
Malwarebytes Labsは8月12日(米国時間)、「A vulnerability was found in Electron which is what drives Discord, Spotify, and Microsoft Teams」において、ソフトウェア開発フレームワークの「Electron」に複数の脆弱性が発見されたと伝えた。 Electronは、HTML5やCSS、JavaScriptといったWeb技術を用いてデスクトップアプリケーションを開発することができるフレームワークで、Microsoft TeamsやVisual Studio Code(VSCode)、Discordなどの人気アプリケーションでも利用されている。 今回のElectronの脆弱性に関する発表は、米国で開催されたサイバーセキュリティカンファレンス「Black Hat USA 2022」の次の
モック関数によりコード間の繋がりをテストすることができます。 関数が持つ実際の実装を除去したり、関数の呼び出し(また、呼び出しに渡されたパラメータも含め)をキャプチャしたり、new によるコンストラクタ関数のインスタンス化をキャプチャできます。 そうすることでテスト時のみの返り値の設定をすることが可能になります。 関数をモックするには、次の2つの方法があります。 1つは、テストコードの中でモック関数を作成するという方法。 もう1つは、manual mockを作成してモジュールの依存性を上書きするという方法です。 モック関数を利用する forEach 関数の実装をテストすることを考えてみましょう。 この関数は、与えられた配列の各要素に対して、コールバック関数を呼び出します。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く