软件工程

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

1
Haskell Web框架调查[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 Haskell有多个Web框架,例如Happstack,Snap和Yesod,还有可能更多。 它们在哪些方面有所不同?例如: 功能(例如,仅服务器,或客户端脚本,轻松支持各种数据库) 成熟度(例如稳定性,文档质量) 可扩展性(例如性能,方便的抽象) 主要目标 另外,使用这些框架的真实网站/ Web应用程序的例子有哪些? 非常感谢。

7
抽象是否必须降低代码的可读性?
最近与我合作的一名优秀开发人员告诉我,他在实现我们继承的某些代码中的功能时遇到了一些困难;他说,问题在于该代码难以遵循。由此,我对产品进行了更深入的了解,并意识到查看代码路径有多么困难。 它使用了许多接口和抽象层,以致于很难理解事物的开始和结束位置。这让我开始思考过去的项目的时间(在我很清楚干净的代码原理之前),发现在项目中走来走去非常困难,这主要是因为我的代码导航工具总是使我进入一个界面。找到具体的实现或某些插件类型体系结构中的连接位置将花费大量的额外精力。 我知道有些开发人员正是出于这个原因严格拒绝依赖注入容器。它极大地混淆了软件的路径,以致代码导航的难度成倍增加。 我的问题是:当框架或模式引入如此多的开销时,是否值得?这是模式实施不当的征兆吗? 我想开发人员应该从更大的角度看待抽象带给项目的东西,以帮助他们度过沮丧。通常,尽管如此,很难使他们看到大局。我知道我未能通过TDD出售IOC和DI的需求。对于那些开发人员而言,使用这些工具只会严重限制代码的可读性。

3
“ Java OOP”和“ Pythonic OOP”之间的区别?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 我从ActionScript 2.0开始,然后又从Java开始。从那以后,我已经学习或至少使用了一堆语言,包括Python(可能是我的最爱)。 恐怕我的面向对象编程风格非常不符合Python风格,更像带有Python语法的Java OOP。是什么使Java like和Pythonic OOP彼此不同?用Python编写面向对象的代码时,Java程序员经常做什么?

9
在“正确的工作工具”和熟悉程度之间取得平衡
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 因此,在选择用于项目的语言时,在理想的世界中选择语言是因为它是完成工作的正确工具。但是,我通常更喜欢使用一种我会流利的语言,而不是我必须学习的一种语言或仅是一种对话性的语言。当然,语言流利性还要求您了解该语言中适用的库。仅仅因为我真的很喜欢像Java这样的通用语言并不意味着我应该一直使用它,但是同时这并不意味着我每次都要进行一些文本处理时都应该使用Perl之类的东西。如何在这里找到余额?

5
自由职业者的名片应该有什么?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 5年前关闭。 例如,当我一年前第一次开始自由职业时,我的名片上有我的名字,电子邮件和网站-并且在我最喜欢的技术列表中排名第一。回想起来,我认为这不是一个明智的决定。 为什么潜在客户知道Python或Ruby是什么?他怎么知道.NET是什么? 我还剩下几个旧批次,但我要寄出一些新卡。 您建议我们开发人员在名片上显示什么?我认为上市技术对潜在客户毫无意义吗?

5
内部和外部API架构
我工作的公司保持着成功的SaaS产品,这些产品多年来“有机地”增长了。我们计划用一系列新产品扩展产品线,这些新产品将与现有产品共享数据。为此,我们希望将业务逻辑整合到一个地方:Web服务层。WS层将由以下人员使用: 网络应用 导入数据的工具 与其他客户端软件集成的工具(本身不是API) 我们还希望创建一个可供我们的客户使用的API,这些客户可以使用该API创建自己的集成。我们正在努力解决以下问题: 内部API(又称WS层)与外部API是否应在同一方面,并​​具有安全性和权限设置以控制谁可以完成操作,还是应该是两个单独的应用程序,其中外部API仅调用内部API像其他应用程序一样?到目前为止,在我们的辩论中看来,将它们分开可能更安全,但会增加开销。 其他人在类似情况下做了什么?
19 api  web  web-services 


6
Scrum Master可以分配任务吗?
我们在项目中关注scrum。我经常看到Scrum管理员为我们分配任务。但是,我从许多Scrum书籍中读到,Scrum的工作方式相反(“拉动”方法),团队成员负责任务或功能。Scrum Master分配任务是正确的方法还是违背了敏捷思想?

6
我们如何将(分层)文件系统作为基本数据结构?
我是自学成才的,没有CS学位。在这个时代,我对数据结构的了解越多,我就越想知道,我们如何仍将文件系统,目录和文件作为OS上的基本数据存储结构? 我了解它的简单性,但如今看来,可能会有更多本机可用的选项。据我所知,唯一改善文件系统基本功能的项目是ReiserFS,您可以在其中知道文件的哪一行由谁以及何时更改。 例如,如果我可以对文件进行本机标记,则可以在其中标记图像,图表,文字处理文档,整个代码存储库,这些都属于一个项目,这对我真的很有帮助。由于我陷入了文件系统范式中,所以我知道可以将所有这些文件放到一个文件夹/目录中,但是如果它们已经存在于不同的目录中并且需要留在那儿呢?我知道那里有可以做到这一点的程序,但是为什么它们不在文件系统上? 很好的东西是文件系统中的某种关系功能,就像使用RDBMSes一样。我知道那应该是Vista / 7的一部分,但是那也不属于功能列表。 当然,任何程序都可以存储二进制文件并在其中具有任何数据结构,为什么操作系统除了文件系统的简单体系结构之外,不能提供更复杂的数据存储方式?

15
位运算符有什么用处?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 编程语言通常带有各种位运算符(例如,按位左移和右移,按位AND,OR,XOR ...)。这些虽然很少使用,但至少我的经验是这样。有时将它们用于编程挑战或面试问题中,或者可能需要解决方案,例如: 不使用任何相等运算符,创建一个函数,true当两个值相等时返回 在不使用第三个变量的情况下,交换两个变量的值 然后这些,可能在现实世界中很少使用。我猜他们应该更快,因为它们直接在低级别上操纵内存。 为什么在大多数编程语言中都可以找到这种语言?任何现实的用例?


1
为什么Unicode中有这么多空格和换行符?
Unicode可能有50个空格 \ u0009 \ u000A- \ u000D \ u0020 \ u0085 \ u00A0 \ u1680 \ u180E \ u2000- \ u200A \ u2028 \ u2029 \ u202F \ u205F \ u3000] [\ u0009 \ u000A- \ u000D \ u0020 \ u0085 \ u00A0 \ u1680 \ u180E \ u2000- \ …
19 unicode 

9
作为一个新的团队负责带可维护性问题的项目该怎么办?
我刚刚负责一个涉及可维护性问题的代码项目。我怎样做才能使项目稳定下来? 我发现自己在一个我们正在使用非常大型的多层.NET系统的地方,该系统缺少许多重要的东西,例如单元测试,IOC,MEF,太多的静态类,纯数据集等。只有24岁,但我已经在这里待了将近三年(此应用程序已经开发了5年),并且主要是由于时间限制,我们一直在添加更多的废话以适应其他废话。在空闲时间做完许多项目之后,我开始理解所有这些概念的重要性。同样由于员工的转移,我发现自己现在是这个项目的团队负责人,我真的很想提出一些聪明的方法来改进此应用程序。可以向管理层解释价值的方式。我对自己想做的事情有想法,但是这些想法似乎都让人不知所措,没有太多前期收获。关于人们如何或将如何处理这个问题的任何故事都将是非常有趣的读物。谢谢。

3
用户界面文本中的“我的东西”与“您的东西”
在引用用户资料时,应使用My或Your,例如: 我的购物车 我的帐号| 我的收藏 要么 您的购物车 您的帐号| 您的心愿单 我发现这篇文章主张您使用。它说flikr这样做。它还说MySpace和MyYahoo是错误的。 我今天还注意到,亚马逊使用术语Your。但是,我听说他们是测试变体并找到最佳变体的大师,因此您在他们的站点上看到的可能是最佳变体,或者仅仅是他们当前正在测试的东西。 我个人喜欢我看起来更好的方式,但这仅是我的意见。 你怎么看?什么会对客户产生更好的影响?真的重要吗?


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.