软件工程

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

4
我怎么知道要薪水多少?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 8年前关闭。 我正在从事软件开发工作,这是我的第一份工作(即,他们正在为我提供一个完整的职位),并且对整个薪资谈判的进展感到十分紧张。Glassdoor.com表示,我的经验不足(例如缺乏经验)提供了很高的要求,例如85k。Salary.com表示,在我所在的地区没有经验的软件开发人员大约能赚6.5万美元。 通过一些研究,我知道我不应该先说一个数字。但是,可以说他们给了我Xk。我该如何应对?我会说“我的研究表明,在我公司担任这一职位的经验水平相近的人能赚到更多……”之类的话吗?

7
如果流利的编码员无视良好做法,那么他的流利程度对他不利吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 4年前关闭。 我正在开发一个相当大且有错误的应用程序-由于它的编写方式(我将为您提供详细信息,但是在您可以想到的大多数领域中它都违反了规则),如果不进行重大重构就几乎不可能开发它。 该应用程序的重要部分是由实习生,n00bs等创作的;但是在高级开发人员中也有一个程序员,尽管谦卑,但他留下的代码也是可疑的,也许还是以不同的方式。 当然,他的代码往往会在大多数时间完成工作,但通常是很隐秘的,需要重新发明轮子(例如,使用大型自定义方法来完成相当普通的SQL db备份)等。基本上,不必要的混乱以及大量的过度设计 让我想到,如果不是其他素质的陪伴者,作为一名高技能的编码员(我故意不使用“开发人员”一词,假设它表示更多的技能)实际上可能是有毒的。 假设这是真的,我能想到的一些原因是: 如果您轻松编写代码,则感觉(或实际上实际上是短期内)可以更快地就地找到自己的解决方案,而无需使用库,既有功能等。 如果有足够的经验来轻松维护复杂程序的心理形象,则不太倾向于将其拆分为模块,层等。 因此,我的观点是,如果一个流利的编码人员恰好是一个不良的开发人员,那么他们的流利性不仅不能弥补后者的不足,反而会带来更大的危害。 你对那个怎么想的?是真的吗(如果有,程度如何)?

9
将临时报告添加到应用程序中值得吗?
我们有一个收集大量数据并生成报告的应用程序。第一次迭代是一个很好的Crystal Reports集成。在Crystal Report设计器中创建报告,然后将RPT文件导入到应用程序中。这很好用,但是用户需要应用程序来运行报告,而且用户无法创建报告。我们添加了过滤器,排序器和分组,以便可自定义RPT文件,但它们无法从头开始创建一个。 第二种互动是使用SSRS,SSAS和Microsoft的报表生成器工具的基于Web的解决方案。这需要一些数据库工作,还需要一些工作才能从OLTP架构启动并运行多维数据集,但是最后,创建汇总报告要容易得多。但是,我们仍然必须使用报告构建器工具创建报告,然后发布然后发布,等等。我们还添加了过滤器,排序器和分组器以使其“可自定义”。 在这两个场景中,随着时间的推移,我们大约有30至50个开箱即用的报告。 现在,有一些有关添加临时报告的讨论,以便用户可以从头开始创建报告。现在,我们的数据模型非常复杂,需要具备良好的工作知识才能理解它。至少要做到这一点,需要大量的工作才能将数据模型转换为“更可报告”且更易于理解的模式。我认为我们的应用程序不适合临时报告(不值得付出努力)。 有没有人在提供临时报告方面取得任何成功?您使用了什么工具集?它对您的应用程序的成功有影响吗?

3
是否可以编写适用于所有本地化和字符串类型的通用字符串反向函数?
我只是在看Dev-Days的Jon Skeet(与Tony the Pony)一起演讲。 尽管“编写字符串反向函数”正在对采访101进行编码-我不确定实际上是否可以编写一种通用的字符串反向函数,但肯定不是在所有本地化和所有字符串类型中都有效的函数。 除了检测输入字符串是否为ascii,UTF8,UTF16(固定长度和可变长度)等之外 ,Jon还突出显示了“对下一个字符应用重音符号”(U + 0301)代码。然后有可能显示或不显示或连字编码为双字符的连字。 似乎“反向字符串”实际上是较难的计算机科学任务之一!

3
Haskell的高级概念(如Monads和Applicative Functor)对大多数常规编程任务有多重要?
我已经读过《学Haskell的学习》书,直到他们介绍Monad和诸如Just a之类的东西为止。这些对我来说太违反直觉了,以至于我只是想放弃尝试学习它。 但是我真的很想尝试。 我想知道我是否至少可以暂时避开高级概念,而只是开始使用语言的其他部分来完成Haskell的更基本部分的许多实际任务,即函数,标准IO,文件处理,数据库接口等。 这是学习使用Haskell的合理方法吗?
16 haskell 

2
UTF-16是固定宽度还是可变宽度?为什么UTF-8没有字节顺序问题?
UTF-16是固定宽度还是可变宽度?我从不同的来源得到了不同的结果: 从http://www.tbray.org/ongoing/When/200x/2003/04/26/UTF: UTF-16将Unicode字符存储在16位块中。 从http://en.wikipedia.org/wiki/UTF-16/UCS-2: UTF-16(16位Unicode转换格式)是Unicode字符编码,能够在Unicode代码空间中从0到0x10FFFF编码1,112,064 [1]个数字(称为代码点)。它产生每个代码点一个或两个16位代码单元的可变长度结果。 从第一个来源 UTF-8还具有编码单位为字节的优点,因此不存在字节顺序问题。 为什么UTF-8没有字节顺序问题?它是可变宽度的,一个字符可能包含一个以上的字节,所以我认为字节顺序仍然会是一个问题吗? 谢谢并恭祝安康!

8
如何使面试失败?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 想象一下这样一种情况,有几个人被派去面试,只有一个人必须通过。他的知识足以胜任该项目。但是,客户要求提供几种候选人,以便他可以选择最佳候选人。您公司中的其他人已经在从事其他项目,因此不应该得到这份工作。 问题是:如何表明其他候选人更糟,同时又不显得愚蠢? UPD 我已经指出了要点,但是我需要澄清主要想法。我想知道[不应该通过面试]的另一位候选人如何表现呢? 我留下了修改后的问题[第一个],因为有几个答案与之对应。
16 interview 

9
服务器端开发人员应了解多少HTML和CSS?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 我已经做过C,C++现在我想开始我的网络开发人员职业。我阅读了很多有关网络开发的知识,并且知道网络上有两种类型的开发人员, 1. Client Side Developers. 2. Server Side Developers. 我想继续专注于服务器端开发。我认为最好从基础入手,因此我开始做HTMLand CSS。我发现CSS对于一个人来说,太大了,无法完全掌握。我想知道服务器端开发人员应该了解哪些基本知识,他应该是HTML的精通者,CSS或者只是放弃它?

5
C#中泛型的良好命名约定是什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我决定在这里问这个问题,而不是在堆栈溢出时问这个问题,因为它相当主观。 在C#中,通常我会看到名称很差的泛型类型。具体来说,“ T”是常用的,但其本身并不是有意义的名称。例如: class Fruit<T> { T fruit; } 虽然这是典型的方法,但有人会反对吗?如果是这样,那么在C#泛型函数和类的上下文中,泛型的合理命名约定是什么? 在我之前的示例中,让我们假设泛型类型T必须始终是水果的类型,例如Apple或Orange。该类型T需要使它很明显地表明它是水果的类型,所以也许更好的名称是FruitType,所以我们最终得到: class Fruit<FruitType> { FruitType fruit; } 这只是为了给大家我正在寻找的想法。这个问题可以接受的“经验法则”是什么?
16 c#  naming  generics 

2
软件测试技术或类别
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 8年前关闭。 您知道哪种软件测试?我听说过测试驱动开发,单元测试等,但是不了解它们的重要性和差异。例如,为什么我们要使用回归测试或验收测试。他们提供什么优势?

8
功能与功能[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 4年前关闭。 我经常听到项目经理(项目经理)谈论特性和功能。而且我很困惑要区分它们。有时我认为功能等同于用户故事。诸如“作为用户,鲍勃应该能够看到他的付款清单”之类的东西,他们称其为功能。有时它变得像子系统一样大,例如“通过Web应用程序发送SMS的能力”。另一方面,功能有时会像“为数字输入实现数字分组”这样的任务一样小,而在某些情况下,它会像整个CRUD操作一样大。 我的问题是,如何区分功能和功能?

10
如何减少技术债务而获得报酬?
我目前在一家技术含量很少的小型公司工作。我是其中之一的唯一开发者。大约一年前,我获得了该产品的旧版本并开始“支持”它。 客户只谈论新功能,业务价值和其他类似的功能。问题是,尽管代码是用C#编写的,但它是过程性的。没有抽象,仅在Visual Studio需要它们的地方才使用类-例如表单。这些类的实现确实很糟糕,并且代码很难维护。 这些年来,我花费自己的时间进行重构。在最新版本中,有一些漂亮的抽象等。我不得不从头开始重新实现许多组件,我真的觉得向这些组件添加新功能或更改行为要比其他组件容易得多。 问题是,我花自己的时间。我非常喜欢结果,但我不喜欢每天工作12个小时。您去过类似情况吗?我应该怎么做?我已经尝试过讨论它,但仍然没有成功。 当我们决定实现需要对遗留代码进行大量更改的新功能时,我只是感到害怕。这可能会让客户感到震惊:为什么您需要8个小时来更改这些图标?客户只是不在乎我需要更改代码中的500个位置。我还应该首先找到所有这500个地方。 有任何想法吗?

4
SGML,XML,HTML和XHTML之间的关系和差异
我想知道Wikipedia中的 “个人资料”是什么意思: XML是ISO标准SGML的配置文件,并且大多数XML都原样来自SGML。 根据 http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html: HTML是SGML的子集。 XML是SGML的功能强大的子集。 XHTML是HTML的扩展和子集。 “一个是另一个的子集”是否意味着第一个代码在语法上也正确,并且在语义上与第二个代码相同? 就像在基本集合论的意义上, HTML,XML和XHTML都是SGML的不同子集吗? XML和HTML几乎不相交? XHTML是XML和HTML的超集吗? 我可以期望对以上四个方面的目的和/或何时使用哪个方面的差异进行更简洁明了的总结吗?我对它们的预期目的之间的明确界限感到困惑。 根据 http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html: XML不是一种标记语言。让用户设计自己的标记语言是一种元语言。 我想知道如何理解XML和HTML都是SGML的子集,但是HTML是一种标记语言,而XML不是一种标记语言,而是一种设计标记语言的语言。 SGML和XHTML还是设计标记语言的元语言吗? 正如在两个链接中提到的那样,HTML是SGML的应用程序,也是SGML的子集,而XHTML是XML的应用程序。我想知道说一种语言是另一种语言的应用与说一种语言是另一种语言的子集之间有什么区别?
16 html  xml  xhtml 

11
我应该为我的软件申请专利吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 5年前关闭。 我去一所大学,根据学生要修读的科目信息,即课程的开放时间,教授以及其他人的剩余空间,我可以让学生制定学期时间表。手工制定这些时间表是一项非常困难/无聊的任务。 我编写了一个漂亮的Python程序来自动执行此过程。您选择要修读的科目代码,然后过滤掉不需要的教授。然后,如果没有时间冲突,程序将输出所有可能的可能性。该计划帮助了很多学生。安排时间从2天减少到不到30秒! 现在开始问题。我的家人和所有使用该程序的人都告诉我要在某人窃取该主意之前为该程序申请专利(这可能在我的国家/地区发生)。但我对此表示怀疑。是否有必要为混合了回溯引擎的刮板机申请专利?编写该程序很困难,因为我不了解很多东西,但是现在我已经完成了,我觉得申请这样的东西将是非常愚蠢/不成熟。但是,另一方面,我不希望其他人为此获得荣誉。你怎么看?

3
文档数据库与关系数据库:如何选择?
我是一个SQL专家,但我知道不仅有SQL数据库-大多数是文档数据库。与大多数技术一样,每种技术也各有利弊。 我读过一些文章,但是它们太理论化了。我想要的是两个真实的案例: 从关系数据库到文档数据库的转换带来了改善 从文档数据库到关系数据库的转换带来了改善 改进是指可以制定更好程序的任何事物-更少的开发时间,可扩展性,性能,以及与编程相关的任何事物。需要注意的是2 .:诸如“因为每个人都知道SQL而回退到关系数据库”之类的故事不好

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.