工数削減リファクタリング

品質向上

  • 無駄がなく見通しのよいコード

生産性向上

  • 障害原因、修正箇所特定の迅速化
  • 技術的負債の返済

工期短縮

  • スピーディな不具合修正/機能拡張

~ 保守工数のかかる箇所から少しずつ ~

冗長で複雑化したソースコードに取り組むのは、非常にリスクが大きく、そして時間のかかる作業です。
きれいに整理されたコードの5倍、10倍というのは決して大げさな数字ではないでしょう。

結果は単純な修正でも、最短距離でそこにたどり着けるのは稀です。
まず何処(と何処と何処...)を修正すればいいのかわかりません。
ようやくあたりがついても、「こうすればいいだろう」という修正プランはすんなりはまってくれません。
修正できたと思っても、期待した動作が得られないことは往々にしてあり、試行錯誤が繰り返されます。

そうした作業の中、プログラマのエネルギーは消耗していきます。
コードを頭で再構成して理解する必要があるので脳内のメモリを大量に消費します。
影響範囲が読み切れないので修正には神経を使います。
期待した動作がなかなか得られないと気力、集中力が削がれ、心が折れそうになります。
修正後も意図せずほかの機能の動作まで変えてしまっていないか、不安が残ります。

コードの修正にはジレンマがあります。
「ほかの機能に影響を与えないように」安全な修正にこだわると、コードは冗長化・複雑化していきます。
コードが冗長化・複雑化すると、調査の対象となる範囲、修正に必要な箇所が増えていきます。
不具合修正や機能追加の工数は増え、デグレードのリスクが高まります。
初めはきれいなコードでも、修正を重ねるうちにメンテナンス性は落ちていく宿命にあります。
時間や技術の進歩、コミット単位のコードレビューがそれを解決してくれることはありません。

適切なリファクタリングを施すことで、増大した修正コストやデグレードのリスクを減らすことができます。
必ずしも機能追加を止めて全体を一気に作り変える必要はありません。
最も必要性の高い箇所から、少しずつ、効果を体感しながら安全に適用することが可能です。

弊社には多くのレガシーコードに対処した経験から培ったリファクタリング、ユニットテストのノウハウがあります。
保守工数でお悩みの場合はぜひご相談ください。


こんなときに

  • 「プログラミング工程の効率化・品質向上を同時に実現させたい」
  • 「これだけ直すのになぜこんなに工数がかかるんだ?」
  • 「新人プログラマのスキルアップを図りたい」

サービスの流れ



診断
― 無料にて承ります ―
  • コードをお預かりし、リファクタリンク方針のご提案とともにお見積もりいたします。
    ※お預かりするソースコードの機密は厳守いたします。作業PCはすべて生体認証付きで、ハードディスクは暗号化されています。
    ※コードのレビュー/添削を通した若手プログラマのスキルアップにご活用いただくことも可能です。
お申込み
作業実施
  • お預かりしたコードをリファクタリングいたします。
  • 仕様や改善方針について、必要に応じてメールにて確認させていただきます。
納品
  • リファクタリング後のソースコードと作業報告書をお送りいたします。

価格


コードを拝見してお見積もりいたします。

よくあるご質問



Q. プログラミングの良し悪しでどのような違いが生まれますか?
A. 例えば、大量のデータを加工してインポートするのに、AとBの2つの方法があります。
どちらも仕様書に記載された機能要件は満たします。
しかし、AはBの3分の1の工数、2分の1のステップ数で実装でき、24倍高速に動作します。
さらに動作検証をすると、Aが用意したすべてのケースをクリアしたのに対し、 Bは使用頻度の少ないデータ型で例外が発生し、調査と修正にさらに工数がかかりました。
このような違いを生み出す箇所がプロジェクトには無数にあり、その積み重ねが、 工数と品質にテストでは取り戻すことのできない決定的な差をもたらします。

お問い合わせ


     
  • 「ちょっとケースが違うかな」とお感じの場合も、お気兼ねなくご相談ください。
    お困りの内容やご予算にあわせ、最大限お役に立てるご提案をいたします。
    (本サービス内容のほか、ご提供可能な作業の例を こちら に記載しております)
  • メールでのお問い合わせ も承っております。
対象技術

言語


 

C#


  1.0 / 1.1 / 2.0 / 3.0 / 3.5 /
  4.0 / 5.0 / 6.0 / 7.x
 

Visual Basic(VB)


  6.0 / VBA /
  .NET(2002) / 2003 / 2005 /
  2008 / 2010 / 2012 / 2013 /
  2015 / 2017
 

LINQ


  LINQ to Objects
  LINQ to DataSet
  LINQ to Entities
  LINQ to XML(XLINQ)
  PLINQ(Parallel Linq)
 

SQL


  標準SQL(ANSI/ISO)
  Transact-SQL(T-SQL)
  PL/SQL
  他各ベンダーSQL
 

XSL


  XSLT
  XPath

プラットフォーム


 

Windowsフォーム


  コントロール
   ユーザーコントロール
   カスタムコントロール
   DataGridView, ...
  データバインド
  イベンド
  マルチスレッド
 

ASP.NET


  Web フォーム
   Web コントロール
   HTML コントロール
   検証コントロール
   ユーザーコントロール
   カスタムコントロール
   チャートコントロール
  ASP.NET MVC
   Razor
   Html Helper
   WebGrid Helper
  ASP.NET Web API
   APIコントローラ
  ASP.NET Core
   Razor
   Tag Helper
   ViewComponent
  データバインド
   GridView
   ListView
   DetailsView
   FormView
   ObjectDataSource
   EntityDataSource
  クライアントスクリプト
   jQuery
   TypeScript
  Ajax
   Microsoft AJAX Library
   AJAX Control Toolkit
   AJAX Extensions
   AJAX エクステンダ
   Unobtrusive Ajax
  Webサービス
  構成(Web.config)
   URL Rewrite
 

WPF


  XAML
  MVVM パターン
  WPF コントロール
  バインディング
  コマンド
  スタイル/テンプレート
 

Windows Media


  Media サービス
  Media エンコーダ
  Media Player SDK
 

Microsoft Azure


  Virtual Machines(仮想マシン)
  App Service
   Web Apps(Web アプリ)
  SQL Database
  Application Insights
  Azure Backup
 

Amazon Web Services


  EC2
  S3
  CloudWatch
  AWS SDK for .NET
  AWS CLI
  AWS Lambda

フレームワーク


 

.NET Framework


  1.0 / 1.1 / 2.0 / 3.0 /
  3.5 / 4 / 4.5 / 4.6 / 4.7
 

.NET Core


  1.0 / 1.1 / 2.0 / 2.1
  アップグレード(1.x → 2.x)
 

.NET Standard


  1 ~ 1.6 / 2.0
 

ADO.NET


  DataSet(データセット)
  Entity Framework (EF)
   DbContext
   ObjectContext
   POCO エンティティ
   LINQ to Entities
   Entity SQL
   EDM / Database First
   Code First
 

レガシー データアクセス


  Jet
  ODBC
  DAO
  OLEDB
  ADO
  ADOX(ADO DDL拡張)
 

分散テクノロジ


  .NET Remoting
  WCF
 

同期テクノロジ


  Sync Framework
  (データ/フォルダ同期)
 

CMS


  Orchard
  Umbraco
 

AOP/DIコンテナ


  Seasar
   S2Container.NET
   S2Dao.NET
  Unity
  Autofac
 

ロギング


  log4net
  Serilog
 

単体テスト


  NUnit Framework
  Visual Studio 単体テスト
  (MSTest)
  xUnit
  MbUnit
  Moq(モックライブラリ)
  Appium(GUIテスト自動化)
  Windows Application Driver
 

Phoenix Compiler Framework


  データフロー解析

開発環境


 

Visual Studio


  6.0 / .NET(2002) / 2003 /
  2005 / 2008 / 2010 / 2012 /
  2015 / 2017
 

ツール


  FxCop(コード分析)
  StyleCop
  StyleCopAnalyzers
  VSTO(Visual Studio
    Tools for Office)
  Productivity Power Tools

データベース


 SQL Server
 Oracle
 Access(MDB)
 PostgreSQL
 MySQL
 DB2

レポーティング


 CSV
 Excel
 Access (mdb/adp)
 Word
 ActiveReports (Win/Web)
 Crystal Reports
 SpreadsheetGear

リプレース


 Web 化
 .NET 化
 .NET バージョンアップ
 Azure(クラウド)化
 DBMSマイグレーション
 (MDB → SQLServer 他)

ソース管理


 Visual SourceSafe(VSS)
 VSSオートメーション(API)
 Access 2003 VSSアドイン
 Subversion(SVN)
 Git
 

デプロイメント


 Visual Studio Installer
 (セットアッププロジェクト)
 msi 編集(Orca)
 Reg-Free COM
 (Side-by-Side 配置)
 Web Deploy
 Gulp
 

ドキュメント作成


 APIドキュメント
 (SandCastle)
 テーブル定義書・ER図
 

ログ解析・統計(Log Parser)


 IIS ログ
 イベントログ
 ファイルシステム
 

Web サイト運営


 

メールマガジン自動配信


  MailChimp