Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 应用程序设计5年_C#_Asp.net_Model_Application Design - Fatal编程技术网

C# 应用程序设计5年

C# 应用程序设计5年,c#,asp.net,model,application-design,C#,Asp.net,Model,Application Design,我的问题不是技术性的。这更像是一种哲学,实际上是个人偏好。我正在设计和开发一个应用程序(web+桌面),我刚刚想到了这一点,想知道你们(程序员和设计师)以前是否遇到过这个问题: 一些设计人员相信,开发的应用程序将运行3-5年,任何出现在他们身上的变化都将反映在他们身上,而无需借助于系统核心的变化。作为一名程序员,我知道事实并非如此。小的外观变化确实会发生,但通常会在一两年后消失,随着时间的推移,会有需要核心变化的变化,最终您将制作一个新的应用程序 IMHO说,考虑到技术的快速变化,设计一个5年的

我的问题不是技术性的。这更像是一种哲学,实际上是个人偏好。我正在设计和开发一个应用程序(web+桌面),我刚刚想到了这一点,想知道你们(程序员和设计师)以前是否遇到过这个问题:

一些设计人员相信,开发的应用程序将运行3-5年,任何出现在他们身上的变化都将反映在他们身上,而无需借助于系统核心的变化。作为一名程序员,我知道事实并非如此。小的外观变化确实会发生,但通常会在一两年后消失,随着时间的推移,会有需要核心变化的变化,最终您将制作一个新的应用程序

IMHO说,考虑到技术的快速变化,设计一个5年的应用程序是相当荒谬的。我的意思不是设计,而是这个应用程序将运行5年的想法,以及我们不需要创建一个新应用程序的信念,我认为这是生活在一个傻瓜的天堂。我的意思是,程序员们,大多数任务关键型或基本的小型应用程序都有一个运行的流程,通常在几年后会被重新制作/重新构造/重新组织/重新编码

所以我的问题是,为什么要保持这种态度,让这个完美的应用程序运行十年呢。这真的很愚蠢,因为你知道技术每年都会改变;新的框架、新的方法、新的技术将会出现,你的客户也会想要它们。所以,如果你原谅我使用这个短语,WTF是重点

我一直告诉我的设计师,应用程序将在几年内重新设计,无论如何,没有必要试图让它从@ss拍摄灯光,因为它永远不会。没有完美的应用程序


我希望你们明白我的意思。你们也有同感吗。顺便说一句,我在软件编程行业已经有7年了。如果你真的想一想,你真的认为Facebook在未来的5年里会保持不变吗?当然,它的设计每年都会改变,保持“时髦”,但其核心每隔几年就会改变一次。我完全相信这一点。我是偏执狂还是什么?请告诉我还有其他的程序员和我一样。有人吗

我的方法是为改变而设计。这意味着写我能写的最可维护的代码,保持松散耦合和模块化,尝试以尽可能标准的方式来做事情,以便其他开发人员能够快速掌握代码,等等


我通常会在未来的数据库设计上投入更多的精力,因为在许多情况下,数据库的更改可能比代码更改困难得多。

我相信,如果系统的核心是建立在多年来没有太多更改的原则上,那么系统从根本上不会有太大的更改,大多数变化将主要是美学上的

一些久经考验的原则至今仍然很强大,例如数据库规范化、代码模块化等


所以这取决于你对核心的定义。对我来说,核心意味着系统的设计,如果做得好,未来可能不会有太大变化。

我认为理想的设计是完全正交的,但你必须接受,它很少按照你想象的方式工作。如果你从未读过《实用程序员》,它会谈论很多关于代码未来验证的内容。

就我个人而言,我绝不会着手设计任何类型的应用程序,假设它将在几年内被取代。通常,这些“更新”和“重写”都会被推下,以获得那些不想等待整个新应用程序的客户所需要的快速修复。当然,需求会发生变化,需要特性,但在当前迭代中,它们通常是需要的


我的意思是,有很多应用程序、语言和设计模式都有相同的想法,并且至今仍在使用。我脑海中浮现的一个问题是千年虫。70年代的程序员从来没有想过他们的代码会持续30年,而且肯定有人会在世纪之交之前将这些年份值扩展到4个数字。我们都记得当时的想法是如何产生的……

我曾在两家不同的公司工作过,它们的软件产品已经有10多年的历史了。尽管它们已经扩展了大量的新功能,并进行了许多整容,但自从第一次稳定发布以来,应用程序的核心基本上没有受到影响。这可能不是典型的情况,但如果架构师足够熟练,系统可以构建为模块化和可扩展的,足以适应惊人的增长量。

这实际上取决于环境。我发现我们的内部公司应用程序在发布后的18个月内就被彻底检修(通常是退役)。这不是任何人的错——业务优先级改变,需求改变,新系统上线。同时,其他系统运行了很长时间


当然,我们开发任何应用程序都不会期望它很快就会退役,但有一些业务需求需要立即解决,有时最好尽快将应用程序上线并交给最终用户。我们更新、迭代并确定下一个最佳步骤。

数据和数据结构(通常)需要合理地设计,以持续几十年。算法、用户界面和其他一切都将迅速发展

如果您的数据代表法律文件、财务记录,您可能需要将其保存数十年


不过,这也可能被带到极端。有一些数据子集可能在50年后无人关心,比如存储在数据库中的内存性能计数器。

我记得詹姆斯·科瓦奇的一句话,我相信,在