質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Q&A

6回答

1332閲覧

C#での業務システム開発には今後何を採用していけばいいのでしょうか?

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

1グッド

1クリップ

投稿2021/04/02 09:19

プログラミングに関する質問ではありませんが、有識者の方々の意見をいただきたく恐縮ですが質問させていただきます。

7か月前にプログラミングを勉強し始めた初学者です。
半年前からVB6で作られた業務システ厶の”作り直し”を行っており一応完成しました。
しかし、独学+納期が十分にない
ことからwinformで作成しコードの方も綺麗とはお世辞でも言えないくらい汚いです。

自分は学習のためにリファクタリングを行いたいのですが、”動いているプログラムは触るな”と上司に言われました。

自分の意思を貫いてリファクタリングは行うべきなのでしょうか?

また、リファクタリングするのではなく
•新規でWPFで作成した方がいいのでは
•デスクトップアプリケーションではなくwebアプリケーションで作るべきか
•.NET Frameworkか.NET5どちらを採用すべきか
と、調べているうちに色々候補が出てきて整理がつきません。

リファクタリングをすべきか、
またwindows向け業務システムを新規で作成する場合何を採用するべきか
ご回答いただければと思います。
宜しくお願いいたします。

68user👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/04/02 09:23

> 自分の意思を貫いてリファクタリングは行うべきなのでしょうか? 上司の指示に従うに決まってます。「7か月前にプログラミングを勉強し始めた初学者」が何言ってるんですかって感じです。
guest

回答6

0

既に本筋の回答をいただいているので老婆心からの、補足程度の回答です。

多分、質問者さんは気づいておられないのかと思いますが、その、リファクタリングをする理由というのが全て顧客不在の、自分側の都合ということに気が付いてください。その改修を本当にお客様は望んでいますか? 改修にかかった費用は、お客様に負わせるのでしょうか。その費用に見合うものを提供できますか? 一度作って売り切りの、コードは汚いかもしれないけど一応は要望通りに動いていていて、機能は少ないかもしれないけれど、とりあえず業務を進めるのには困らないと判断して、現状のもので満足されているかもしれません。製品について、常に機能は多く、見た目がイケていれば良いというものではなく、多ければそれはバグが仕込まれる可能性が増え、お客様が覚えることも増えます。WPFを利用してリッチになったUIも、お客様にとっては無用の長物、むしろ邪魔かもしれません。

ご質問は2つありますが、

  1. リファクタリングをすべきか、

→するべきではありません。他回答者さんの書かれていることに加え、顧客に責を負わせる勝手な作業はしてはいけません。

  1. またwindows向け業務システムを新規で作成する場合何を採用するべきか

→これひとつやっておけばよいというものは無いと考えます。既存のものでWindows Forms, WPF,、UWP。顧客が求めればそれはElectronかもしれないし、Xamarin.Formsかもしれない。C#でまかない切れなければ、C++ベースのQtかもしれない。動向を見つつ、自分で好きな、得意なものを見つけてください。

「より良いものを作りたい」と言う姿勢は素晴らしいことですが、次の開発の機会に活かすこととしましょう。

投稿2021/04/02 10:24

dodox86

総合スコア9256

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2021/04/02 10:58

「C#での業務システム開発」と言う括りがあったので、Electron(JavaScript含むWEB系の言語)とC++ベースのQtは完全に余計なものでしたね。Windows上のデスクトップアプリ開発、と拡く解釈してしまいました。それで言ったらもっとたくさんありますね。
guest

0

どうしても、というのでしたら、リファクタリングと元の動きを担保するためのテストと移行にかかる工数をきちんと算出して上司に提示し、許可を得てください。

業務である以上、そこにかかるコストを考えずに対応するのは会社にとってマイナスにしかなりません。保守や機能追加でちゃんと対価を得られる対応ならともかく、リファクタリングはあくまで開発者側の都合です。
それによって、例えばパフォーマンスが増えるとか、顧客側のメリットが発生するならともかく、その判断ができるか?という部分。
開発者側だけの都合なら、そのコストが発生する間、無給で働くくらいの覚悟はあるか?という部分。

よく考えてください。

一度リリースしてしまったものはそう簡単に構造作り替えることはできません。無駄なコストになりますから。
だから通常はどんなに納期が短かろうと、その後の保守メンテナンスまで加味して検証、設計、実装します。
「時間がないから」というのはただの言い訳にすぎません。
リリース後にもっと時間がなくなるだけです。

やるなら、機能追加の提案をして受け入れてもらったときに一緒に対応するかどうかですね。もちろん、その分の工数も顧客が受け入れてくれるかどうかであって、個人で判断できるものではありません。
「自分がやりたいからやる」のは単なる自己満足の世界です。

投稿2021/04/02 09:48

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自分は学習のためにリファクタリングを行いたいのですが、”動いているプログラムは触るな”と上司に言われました。

趣味で作られているなら、ご自由に、ですが、お仕事ならば、上司のいう事が正しい。
仕事の場合、納期/予算は限られています。それを考慮してもメリットがある事が示せれば、別ですが、どもそうではなさそうですね。

またwindows向け業務システムを新規で作成する場合何を採用するべきか

純粋に新規なんてのは業務向けにあるとは思えません。類似システムをみながら、探すものでしょう。
その時に、単に「業務システム」という括りでは大雑把すぎ。もう少し内容を明確にしましょう。
もっともここで質問しようと、あまり詳しく書くと機密漏洩になったりするので。要注意。
(だから、調べる事は出来ても質問は難しい)

投稿2021/04/02 09:39

pepperleaf

総合スコア6385

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自分は学習のためにリファクタリングを行いたいのですが、”動いているプログラムは触るな”と上司に言われました。

上司がそう判断したのであれば、従った方が無難だと思われます。
学習目的であれば、部分的に試してみたいプラットフォームで置き換え・再現が可能か調べて試験的に作成してみればよいのではないでしょうか。

投稿2021/04/02 09:30

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2021/04/02 09:42

「自分は学習のためにリファクタリングを行いたい」と言う時点で、作り、納めるものが顧客の為にではなく、自身だけの為ということで、NGですね。 リファクタリングをすることで最終的に作る方、使う方双方が良い思い(いわゆるWin-Winの関係)になることが最低条件だと思います。
退会済みユーザー

退会済みユーザー

2021/04/02 09:53

ご回答ありがとうございます。 上司に従うのが無難なのはわかるのですが、この方は60歳を超えておりVBAをいつもコピペのみで作成している方なので(決して馬鹿にしている訳ではありませんし、見下してもいません。)あまり鵜呑みにするのはどうなのかと思い、質問させて頂きました。 試験的に作成するのもありですね。 参考にさせていただきます。
m.ts10806

2021/04/02 09:55

>無難なのは 違います。会社に所属する人員としての義務と責任です。マストです。
退会済みユーザー

退会済みユーザー

2021/04/02 10:28 編集

完成した後もソースを触れるということは、恐らく社内SE?的なポジションだと推定します。 業務システムって事は、今もリアルタイムで動かしてる人がいる訳ですよね。あなたがリファクタリングを行った事でもし何らかの不具合を生じた場合、触らなければ発生しなかった損失をもたらす事になります。 不具合を生じなかったとしても、もし複数人でメンテしていた場合、他人がメインで担当していたソースがかなり変更されていた場合、その人が再度自分のソースを修正する必要が出た場合、どこが変更されたのか把握するための時間という余計なコストが発生します。そこにメリットはありません。 何かを変えたいのであれば、合理的な理由が必要です。例えば、 「現在月××回ほど発生するメンテナンスで、××時間程度が掛かりますが、 この処理を××のように修正することで××時間程度に削減され、年間××時間程度の時間を削減できます。手順をまとめてみましたので、詳しくはこの資料に目を通してください」 くらいまでやってるなら、自分が上司だったら資料に目を通したくなるかもしれません。
guest

0

間違えたので修正します。

投稿2021/04/03 06:58

編集2021/04/03 07:01
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自分の意思を貫いてリファクタリングは行うべきなのでしょうか?

上司の指示に従うに決まってます。「7か月前にプログラミングを勉強し始めた初学者」が何言ってるんですかって感じです。

投稿2021/04/02 10:02

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momon-ga

2021/04/03 06:36

これにマイナス評価がつく理由ってなんですかね? 「何言ってるんですか」の部分?
退会済みユーザー

退会済みユーザー

2021/04/03 07:02 編集

「『質問への追記・修正の依頼』に回答を書く新興宗教」の方々からのバッシングです。
m.ts10806

2021/04/03 09:04

momon-gaさん 他者のコメントのコピペ あと「お前何もわかってないのに何言ってるんだ」という経緯を知っている人たちからの割と正当な低評価。本人が認めないだけで、四面楚歌。
Zuishin

2021/04/03 09:14 編集

https://teratail.com/help#aboutReplyVote > 低評価(-)がつく回答 > ・スパムや攻撃的な表現など不快な投稿 これが理由でしょうね。 何度凍結されてもストーカー行為を繰り返すただの荒らしでしかないので低評価しておきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問