软件工程

针对在系统开发生命周期中工作的专业人士,学者和学生的问答

7
函数编程的真实世界实现?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我试图使自己熟悉不同类型的语言,以了解每种语言都非常擅长的领域。到目前为止,我已经涉猎C –一种过程语言,C ++和Java –静态类型的面向对象语言和groovy –一种动态类型的面向对象语言。 每种编程语言可能已经开始满足需求。而且我认为每种语言在至少一件事上都非常优秀,因此它成为特定领域或领域的标准。与C一样,C ++已成为浏览器或游戏开发等领域的标准。Linux世界中的Python以其易于编写脚本的能力而著称,而企业界中的Java等。 现在,我有兴趣学习像Clojure或Lisp这样的函数式编程语言。那么,现实情况中的函数式编程语言在哪里使用?我不认为有人会使用Clojure或Lisp开发应用程序或UI。因此,在学习了基础教程和学习资源以简要了解函数式编程的实现之后,我应该沉迷于什么样的项目?您是否强烈建议您使用一种语言,例如clojure?

3
计算值和简单阅读-我的域驱动设计困扰人!
我一直面临的问题是如何处理由域逻辑驱动的计算值,同时仍然有效地处理数据存储。 例: 我正在通过服务从存储库返回产品列表。此列表受客户端发送的来自请求DTO的分页信息限制。另外,DTO指定一个排序参数(一个客户端友好的枚举)。 在一个简单的场景中,一切工作都很好:该服务将分页和排序表达式发送到存储库,而存储库向数据库发出有效的查询。 但是,当我需要对通过域模型在内存中生成的值进行排序时,一切都将崩溃。例如,Product类具有一个IsExpired()方法,该方法根据业务逻辑返回布尔值。现在我无法在存储库级别进行排序和分页-所有这些操作都必须在内存中完成(效率低下),并且我的服务必须知道何时向存储库发出这些参数以及何时执行排序/分页的复杂性本身。 在我看来,唯一有意义的模式是将实体的状态存储在db中(将IsExpired()设置为只读字段,并在保存之前通过域逻辑对其进行更新)。如果我将此逻辑分为一个单独的“读取模型/ dto”和“报告”存储库,那么我将使模型变得比我想要的更贫乏。 顺便说一句,我看到的每个这样的计算示例实际上都依赖于内存中的处理和掩盖性,因为它从长远来看效率很低。也许我过早地进行了优化,但这并不适合我。 我很想听听其他人如何处理此问题,因为我敢肯定这在涉及DDD的几乎项目中是很常见的。

4
从公共方法返回哈希表有什么问题,什么时候才有意义?
当您要返回多个项目而不是创建一个类并返回该对象时,从公共方法返回哈希表有哪些设计问题? 如果确实有问题,那么在什么情况下才有意义? 这个问题的答案如何根据语言是否动态而变化? 编辑:这是为了澄清键将是常量,并且是代码而不是数据的一部分。我们通常为之创建类的东西。问题是,如果创建类确实确实是正确的选择,那么为什么使用哈希表却会出错呢?

6
什么时候停止编写用户故事并开始编码?
在发现第一个冲刺的故事时,您如何知道何时停止写作并向前发展? 我问了几个我认识的人,基本上我得到的答复是,它取决于项目所处的环境以及整个项目的时间安排。 有什么标准的方法可以知道何时停止编写用户故事,如果是的话,其基础是什么?它如何应用于未来的冲刺?

9
使用PHP构建大型Web应用程序时避免使用框架是否有意义?
作为PHP Web应用程序开发人员已有几年了,我分享了MVC和框架。起初我以为它们是切成薄片以来最好的东西。一切似乎都很容易实现。 但是,现在看来,应用程序越复杂,框架引入的麻烦就越多,因此我必须开发解决方法来克服它们。由于我必须深入研究框架核心代码并进行更改,以便使其按照我想要的方式运行,因此此类解决方法通常非常艰巨而复杂。 例如,在我的一个使用Slim(C)+ Idiorm(M)+ Twig(V)的项目中(我认为它非常灵活),我必须创建一个自定义函数,以便在父模板中显示动态数据。没有框架,我本可以在包含的文件中简单地执行mysql_query()。 好的,如果我要创建一个简单的公司简介网站,框架会很酷。我可以在一夜之间鞭打一些代码,它们通常在早晨准备就绪,而且我从它们那里学到的良好的编码实践和设计模式非常有价值。 但是实际上,对于像基于Web的多合一学校管理系统这样的复杂Web应用程序,框架通常会像上面的示例那样妨碍我的业务流程。 所以我的问题是:可以回到基础上,并使用标准的PHP代码和库来做下一个项目,那里可能有大量的框架和库,只要我能充分使用良好的编码习惯并遵循明智的设计模式,就可以了吗?喜欢MVC?我的开发团队很小:只有2个程序员和1个设计师。其他程序员也同意我的上述想法。

2
如何调试不容易重现且仅在生产环境中发生的异常?
我正在处理一个例外,该例外仅在我们的生产环境中发生。我无权访问这些环境,也不知道此异常的含义。查看错误说明,我无法理解原因。 javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 有人可以建议我如何解决这种问题吗?

7
面向对象需要哪些功能?
我只是想知道,语言或库必须提供什么功能才能将其定义为“面向对象”。是否可以在具有适当功能的任何通用编程语言中或多或少地实现对象定向?还是只能通过专门宣传它们支持面向对象编程的语言才能实现? 例如,看下面的C代码: SDL_Surface* screen = SDL_SetVideoMode( 640, 480, 16, SDL_HWSURFACE); SDL_FreeSurface( screen ); 或此处讨论的代码。 现在,上面的代码不使用继承,运行时多态性(?),虚函数等。但是对我来说,它似乎是非常面向对象的。 面向对象是否只是在编写基于不需要对象或编程语言或库提供的特殊模式或功能的可创建和可破坏的数据结构(例如对象,类,结构等)的代码?

3
为什么我们有这么多种.NET?这是好事吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 .NET Framework有许多“特色” : 满(“正常”) 客户资料子集 Web浏览器中的Silverlight Windows Phone上的“ Silverlight” 紧凑的框架 WinRT 当在新平台上需要C#代码时,Microsot似乎更喜欢采用完整的CLR并将其剥离为一个小的子集,从而创建新的程序集并移动类型,而不是仅使用现有的程序集(例如BCL中的程序集) 。例如,Silverlight对于WPF具有不同的类/方法(甚至包括某些具有稍微不同的签名或非常不同的实现的方法),而不仅仅是引用与List<T>WPF 相同的实现。 这是理想的体系结构还是传统的标志?BCL不应在所有平台上都只具有不同的表示/ IO库的所有平台上运行吗?还是BCL和其他库过于ated肿,将它们拆分出来会产生太多向后兼容的问题,这是可以接受的? 如果我们从一块空白的画布开始,并且不担心向后兼容性,那么当前的状况真的是处理多个平台的最佳方法吗?

7
带变量vs内联变量的string.format
有什么优点/缺点(如果有) string output; int i = 10; output = string.Format("the int is {0}", i); 与 string output; int i = 10; output = "the int is " + i; 我一直使用后一个示例,但似乎大多数在线教程都使用string.format示例。我认为效率没有真正的区别,我最初的想法是使编码人员不必为了插入变量而不断破坏字符串。
9 c#  .net  vb.net  strings 

4
在C#中从MS SQL Server查询数据的最佳实践?
在C#中从MS SQL Server查询数据的最佳方法是什么? 我知道在代码中进行SQL查询不是一种好习惯。 是创建存储过程并从C#中使用参数调用它的最佳方法吗? using (var conn = new SqlConnection(connStr)) using (var command = new SqlCommand("StoredProc", conn) { CommandType = CommandType.StoredProcedure }) { conn.Open(); command.ExecuteNonQuery(); conn.Close(); }
9 c#  sql  sql-server 

4
基于便携式存储的版本控制?
我在两台计算机上开发个人项目,而无需使用共享服务器或两者之间的网络连接。 是否有任何通用的版本控制系统可靠地支持将便携式存储设备(例如USB闪存设备)用作共享存储库?

9
如何回答“何时完成?”
我们所有人都有它,这些问题很难解决,很难通过模糊的代码和奇怪的意外功能来解决。缓慢地,逻辑地尝试查找模式,错误和错误。此过程需要时间,并且客户通常不容易理解问题。 当被问到“何时完成?”这一问题时,如何回答,特别是当客户可能不了解软件开发的内在复杂性时?


3
是否有通用的方法来评估优化算法的最优性?
是否有一种通用的方法来评估优化算法的最优性,例如解决原本为NP困难或NP完全问题的算法? 到目前为止,我想到的唯一方法是将算法的结果与已知的最佳解决方案进行比较。 如果不是,是否有针对某些特殊问题的特定方法? 编辑要澄清:通过最优性,我的意思是结果与最优解的结果有多接近。

6
有什么方法可以测试网站在负载下的性能如何
我已经制作了一个Asp.net MVC网站,并将其托管在共享的托管服务提供商上。由于我的网站包含一个非常笼统的想法,因此将来某个时候它可能会有大量并发用户。 因此,我正在考虑一种测试网站加载性能的方法。就像当100或1000个用户同时在线并浏览网站时,网站的效果如何。这也将使我理解我的LINQ查询是否写得很好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.