软件工程

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


3
并行性意味着并发,但不是相反吗?
我经常读到并行性和并发性是不同的东西。答题者/评论者经常会写到他们是两个完全不同的事物。但是我认为它们是相关的,但我想对此进行一些说明。 例如,如果我在多核CPU上并设法将计算分成x个较小的计算(例如使用fork / join),每个计算均在其自己的线程中运行,则我将拥有一个同时进行并行计算的程序(因为大概在任何时候,几个线程都将在多个内核上运行)并且是并发的吗? 虽然如果我只是简单地使用Java,并处理事件调度线程上的UI事件和重绘,再运行我创建的唯一线程,那么我将拥有一个并发程序(EDT + GC线程+我的主线程)等),但不是并行的。 我想知道我是否正确,并行性(在“单核但多核”系统上)是否总是暗示并发? 另外,是否在多核CPU上运行多线程程序,但是不同线程在进行完全不同的计算的情况下是否考虑使用“并行性”?

4
如何在家学习云计算和大数据?[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以当前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 7年前关闭。 我想在家学习云计算和大数据。 是否可以在家用PC上学习这些技术? 在云计算中要学习哪些技术? 哪些技术可以学习大数据(Hadoop)?

6
零为常数?
我最近遇到了这个编程习惯用法: const float Zero = 0.0; 然后用于比较: if (x > Zero) {..} 任何人都可以解释一下,这实际上是否比以下方法更有效,可读性或可维护性: if (x > 0.0) {..} 注意:我可以想到定义此常量的其他原因,我只是想知道它在此上下文中的使用。

3
软件开发中的环境命名标准?
我的项目目前遇到环境命名问题。关于应该命名什么环境或命名什么名称,不同的人有不同的假设,这在讨论它们时引起了混乱。我已经做了一些研究,但还没有找到任何标准。 这些术语包括“本地”,“沙”,“开发”,“测试”,“用户”,“质量检查”,“阶段”和“产品”(以及其他人询问的其他内容) 我并不是在寻求公正的意见,尽管如果有“每个人”拥有的意见,我会接受它-我试图通过某种权威来寻找定义,即使它是非官方的。 这是我们当前使用的环境: 开发者PC上的环境 共享环境,开发人员可直接在其中共享代码以进行自我测试 质量保证人员测试标准和功能的共享环境 共享环境,已完成且经过质量检查的代码已由项目请求者批准 将最终环境反映为最终检查并准备部署的环境 使用代码的最终环境 我知道我叫他们什么,但是这有某种标准吗?提前致谢。

7
非零退出状态,用于干净退出
如果相关程序正常运行,返回非零退出代码是否可以接受?例如,假设我有一个简单的程序(仅)执行以下操作: 程序接受N个参数。它返回退出代码min(N,255)。请注意,任何N对该程序均有效。 一个更现实的程序可能会返回不同的代码,以成功运行表示不同事物的程序。这些程序是否应该将该信息写到流中,例如stdout?

3
如何用Java设计高度可扩展的Web服务?
我正在创建一些具有2000个并发用户的Web服务。该服务是免费提供的,因此有望获得大量用户。将来可能需要扩展到50,000个用户。 已经有一些其他问题可以解决此问题,例如 -/programming/2567254/building-highly-scalable-web-services 但是,我的要求与上述问题有所不同。 例如-我的应用程序没有用户界面,因此图像,CSS,javascript不是问题。它是用Java编写的,因此使用HipHop将PHP转换为本地代码的建议毫无用处。 因此,我决定单独询问我的问题。 这是我的项目设置- 使用Apache CXF的基于Rest的Web服务 Hibernate 3.0(具有相关的优化功能,例如延迟加载和自定义HQL以进行优化) Tomcat 6.0 MySQL 5.5 为了使基于Java的应用程序可扩展,应遵循哪些最佳实践?

6
您如何管理其他员工遗留的项目?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 碰巧有些人突然离开了公司。现在,他的工作需要完成,您将获得分配。不知道他在做什么(完成了90%还是9%),您如何处理剩菜? 我应该从头开始吗?如果完成90%怎么办? 我可以尝试了解他所做的一切吗?如果这只是胡说八道怎么办?

4
groovy是否将部分应用程序称为“ currying”?
Groovy有一个称为“ currying”的概念。这是他们的Wiki中的一个示例: def divide = { a, b -> a / b } def halver = divide.rcurry(2) assert halver(8) == 4 我对这里发生的事情的理解是,右边的参数divide绑定到了值2。这似乎是部分应用的一种形式。 术语currying通常用于将包含一系列参数的函数转换为仅包含一个参数并返回另一个函数的函数。例如,以下是curryHaskell 中的函数类型: curry :: ((a, b) -> c) -> (a -> (b -> c)) 对于谁没有用过Haskell的人a,b并且c都是通用的参数。 curry接受一个带有两个参数的函数,然后返回一个函数,该函数接受a并返回一个b到的函数c。我为该类型添加了额外的一对括号,以使其更加清楚。 我是否误解了groovy示例中发生的事情,还是只是误命名了部分应用程序?或实际上是两者兼而有之:也就是说,将其转换divide为咖喱函数,然后部分地应用于2此新函数。

4
Android开发人员需要缴纳营业税吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 6年前关闭。 根据RetroDreamer的博客文章,Android开发人员必须在有销售税的国家/地区为其应用销售支付销售税,而Apple开发人员则不必为Apple直接纳税。 这是准确的描述吗?是的,发布Android应用程序的各个人如何处理呢?

6
C#变得更难阅读了吗?
随着C#的进步,添加了许多语言功能。对我来说,它已经变得难以理解了。 作为一个例子,考虑Caliburn.Micro代码下面的代码剪断这里: container = CompositionHost.Initialize( new AggregateCatalog( AssemblySource.Instance. Select(x => new AssemblyCatalog(x)) .OfType<ComposablePartCatalog>() ) ); 现在,这只是一个小例子。 我有几个问题: 这是常见问题还是已知问题? C#社区是否找到相同的东西? 这是语言问题还是开发人员使用的样式? 是否有任何简单的解决方案可以更好地理解其他代码并避免以这种方式编写代码?
15 c#  readability 

7
C库的函数是否应该总是期望字符串的长度?
我目前正在使用C语言编写的库。该库的许多功能都希望在其参数中包含char*或字符串const char*。我从那些函数开始就一直期望字符串的长度为a,size_t这样就不需要空终止。但是,在编写测试时,这导致频繁使用strlen(),例如: const char* string = "Ugh, strlen is tedious"; libFunction(string, strlen(string)); 信任用户传递正确终止的字符串将导致安全性降低,但更为简洁和(在我看来)可读的代码: libFunction("I hope there's a null-terminator there!"); 那么,这里的明智做法是什么?使API使用起来更加复杂,但会迫使用户考虑他们的输入,或者记录对以空值结尾的字符串的需求并信任调用者?
15 c  api  strings 

4
接近Java / JVM内部结构[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我已经用Java编程了大约8年,作为一名开发人员,我对该语言非常了解,但是我的目标是加深我对内部语言的了解。我上过PL设计的本科课程,但它们是非常广泛的学术概览(在Scheme,IIRC中)。 有人可以建议一条路线来开始研究细节吗?具体来说,是否有一些特定的主题(例如垃圾回收)更容易解决或成为一个好的起点?是否有关于JVM内部和Java编程语言设计的不错的高级书籍?我当前的方法是从JVM规范开始,并根据需要进行研究。
15 java  books  jvm 

2
如果我们序列化和反序列化两个互相引用的对象会发生什么?
为了更加清楚,这是一个简单的示例: class A implements Serializable { public B b; } class B implements Serializable { public A a; } A a = new A(); B b = new B(); a.b = b; b.a = a; 那么,如果我们将a和b对象序列化到文件中并从该文件反序列化,会发生什么呢? 我以为我们得到4个对象,每个对象2个。相同的对象,但实例不同。 但是我不确定是否还有其他事情,或者是对还是错。 如果需要任何技术来解决,请基于Java进行思考。 谢谢。

2
谁是第一位程序员?
历史学家之间关于谁是第一个程序员有共识吗?如果是这样,那是谁,他们在编程什么? 我发现,更多地了解编程的先驱者变得更加有趣,无论他们是在可编程计算机上编程还是他们自己将计算机设计为可以执行某些计算任务。
15 history 

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.