软件工程

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

8
为什么ASP.Net网站加载缓慢?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 有趣的是,我访问了许多.aspx网站,每个网站需要大量的加载时间。 我的经历是否独特? 如果没有,为什么ASP.Net网站加载缓慢? 编辑:现在大约7年后(12/29/2017)。好消息是,我再也看不到这个问题了,可能是因为Google开始惩罚加载速度太慢的网站。我现在使用ASP.NET MVC并取得了良好的效果,目前在Vultr专用虚拟服务器上运行(尝试使用Azure时速度太慢了。)我现在看到的一些最严重的违规行为是CMS系统,如Wordpress和Drupal,可能在对于网站获得的流量而言太慢或规格不足的硬件。-HK1

2
是否将所有UI逻辑都移到客户端?
我们的团队最初由大多数服务器端开发人员组成,他们只具备Javascript方面的最少专业知识。在ASP.NET中,我们过去经常在代码背后或通过MVC中的控制器编写许多UI逻辑。 不久前,有2位高级客户端开发人员加入了我们的团队。他们可以在HTMl / CSS / Javascript中完成我们以前使用服务器端代码和服务器端Web控件可以做的几乎所有事情: 显示/隐藏控件 做验证 控制AJAX刷新 因此,我开始认为,围绕我们的业务逻辑创建一个高级API可能会更有效,例如Amazon Fulfillment API:http : //docs.amazonwebservices.com/fws/latest/APIReference/,以便该客户端端开发人员将完全接管UI,而服务器端开发人员将仅专注于业务逻辑。 因此,对于订购系统,您将拥有一个高级API,例如: OrderService.asmx CreateOrderResponse CreateOrder(CreateOrderRequest) AddOrderItem AddPayment - SubmitPayment - GetOrderByID FindOrdersByCriteria ... 可以通过JSON / REST访问API,因此很容易从客户端UI中使用。我们可以使用此API进行内部UI开发,也可以让第三方使用此API创建自己的应用程序。 随着Javascript的发展以及优秀的客户端开发人员的可用性,现在是否是摆脱代码隐藏/控制器并仅专注于开发客户端开发人员可以使用的高级API(阿拉玛)的好时机?

3
如何在我的开源代码中包含apache库?
我拥有MIT许可的开放源代码,该许可使用Apache 2.0许可的库。 我想将此包含在我的项目中,以便可以立即构建它。 该许可证的第4点说明了如何重新分发它: 摘抄: 4。 重新分配。您可以在满足以下条件的情况下,以任何媒介(有或没有修改)以及以源或对象的形式复​​制和分发作品或其衍生作品的副本: 您必须向该作品或衍生作品的任何其他接收者提供本许可的副本;和 您必须使所有修改过的文件带有明显的声明,表明您已更改文件;和 您必须以您分发的任何衍生作品的“源”形式保留该作品“源”形式的所有版权,专利,商标和出处声明,但与这些衍生作品的任何部分无关的那些声明除外;和 如果作品包含“注意”文本文件作为其分发的一部分,则您分发的任何衍生作品都必须包括该通知文件中包含的署名声明的可读副本,但不包括与该声明的任何部分无关的那些声明衍生作品,至少应位于以下至少一个位置:在作为衍生作品一部分分发的NOTICE文本文件中;在原始表格或文档中(如果与衍生作品一起提供);或在“衍生作品”产生的显示中,通常在任何地方出现此类第三方通知。注意文件的内容仅供参考,请勿修改许可证。您可以在自己发布的衍生作品中添加自己的归属通知,或者在作品的NOTICE文本的旁边或作为附录,前提是此类附加的所有权声明不能解释为修改许可。您可以在自己的修改中添加自己的版权声明,并可以提供其他或不同的许可条款和条件,以供您使用,复制或分发您的修改,或任何此类衍生作品作为一个整体,但前提是您必须使用,复制和分发否则,作品应符合本许可中规定的条件。 我没有创建派生作品(我打算照原样提供)。 我没有NOTICE文件,只有我自己的LICENSE.txt文件。 问题:我应该在哪里提出一些建议:“该项目使用在Apache 2.0下分发的Xyz库……”?推荐什么? 我也应该提供Apache许可证文件吗?如果我只说“在此处在线查找许可证... ”,就足够了 我希望过去曾这样做的人可以对此事有所了解。

8
解释他人的源代码[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 注意:我知道这个问题。但是,这个问题更加具体和深入,侧重于阅读实际代码,而不是调试或询问作者。 作为入门级计算机科学班的学生,我的朋友偶尔会请我帮助他们完成作业。编程是我引以为傲的事情,所以我总是很乐意为之。但是,我通常很难解释它们的源代码。 有时这是由于样式奇怪或不一致,有时是由于作业中指定了奇怪的设计要求,有时是由于我的愚蠢。无论如何,我最终看起来像个白痴,盯着屏幕看了几分钟,说:“呃...” 我通常会先检查常见错误-缺少分号或括号,使用逗号而不是提取运算符等。 当那失败时,麻烦就来了。我经常不能调试程序,因为这是一个语法错误,我常常不能问作者,因为他/她自己不理解设计决策。 您通常如何阅读他人的源代码?您是从上至下阅读代码,还是按照每个函数的名称进行操作?您怎么知道何时说“该重构了?”


6
开发人员在下次启动时想学什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 作为开发人员,我知道我有多喜欢学习新知识。现在,我正在为初创公司招聘开发人员,我知道我无法与Google的数十亿美元的奖金和高档自助餐厅竞争,但我们为好奇的人们提供了很多学习的机会。我想设置一些东西来支持这一点。 因此,如果您是可能加入初创公司的开发人员,那么您想学什么?产品的东西?经营事情?用户研究,设计或技术运营?或者,如果您追求的是技术性更高的学习,您是否想进一步了解自己所知道的知识(例如,后端学习后端)或交叉训练(例如,前端学习后端)?还是还有其他东西?

1
Haskell记录语法让我感到不舒服
大多数Haskell语法具有纯净之美。但是记录语法看起来很丑。真不舒服 感觉与C有某种混合。它需要逗号和花括号。Haskell具有基于行的制表符分隔。因此,它看起来比原来要求的太冗长。为什么以这种方式设计?
9 syntax  haskell 

11
您在哪里进行优化?
有两个可能需要优化速度的区域: 花费最多时间的地方 最被称为的代码 哪个是开始优化的最佳位置? 通常,最常调用的代码执行时间已经很短。您是在优化较慢的,较少被调用的区域还是在优化较快的,频繁使用的区域?

7
HTML / CSS抄袭
我在这里面临一个问题。一位客户要求我复制一个确切的网站,即使我试图说服他要采用新的设计,他也不接受。他非常喜欢这种设计(顺便说一句,这太可怕了并且过时了,但我不会对他这么说!) 我们讨论此问题已经过去了两个星期,我不知道该怎么办。您有类似的经历吗?我不想失去客户,他付的钱很高,他的工作真的很轻松。同时,我不想在别人的作品上签名。 有什么建议么?类似的经历?谢谢!
9 design  ethics 

4
为什么不建议使用仅设置属性?
今天,在工作中,我的一位同事审查了我的代码,并建议我删除仅设置属性,而改用一种方法。 当我们俩都忙于其他事情时,他告诉我看Property Design《框架设计指南》一书中的部分。在书中,作者只是说要避免: setter的属性比getter具有更广泛的可访问性 现在,我想知道为什么不建议使用仅设置属性?有人可以帮我澄清一下吗?

4
如果我想建立一个搜索引擎,我将如何开始?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 有人可以指出我正确的方向吗?我确实没有编写代码的经验,但是我是一个快速学习的人。我并不是要说这很容易,但我希望有人能帮助我...

4
您的公司是否正在考虑从Java过渡到另一种技术?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 每个Java开发人员都知道,Oracle收购了Sun,而Java的未来似乎还不清楚,特别是因为Oracle希望通过 JVM 获利。在过去的几年中,Java作为一种语言也已经过时了,不包含闭包就是一个例子(它可能包含在Java 1.8中)。与此同时,正在使用一些新技术,例如Ruby,Scala和Groovy提供复杂的网站。 我想知道是否有公司或组织正在谈论,大刀阔斧或开始使用其他技术,以停止在新领域中使用Java的想法,就像15年前公司从C ++迁移到Perl一样和其他Java技术。我也想知道这种情况的印象,例如:计划在2年内迁移到其他技术。 明确地说,我并不是在问哪种技术更好。我在问您的组织是否正在考虑将Java用于其他技术。
9 java  java-ee 

4
对质量检查工程师有什么好的要求?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我们正在招聘一个质量检查人员,我应该提出一些面试问题。事实是,我对一个好的QA工程师应该知道的东西了解不多,而对好的面试问题可能所涉及的却不多。有人有建议吗? 一些信息:环境是用于Microsoft堆栈(ASP.NET,SQL Server,IIS)的两个单独的(但相互缠绕)的Web应用程序。
9 qa 

7
为什么没有一种为框架付费的文化?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 最近“精益”初创企业趋势和应用商店时代的副作用之一是,消费者更习惯于为小游戏/产品支付小价。 例如。: 每月收费约5美元的在线SAAS(产品的大本营风格) 短小,有趣且便宜的游戏(在App Store上的价格为0.99美元 这个市场的定义是“做好一件事情,并为此收费”。DHH of Rails / 37 Signals的名气认为,如果您的网站不赚钱,那就不要打扰。 为什么同一规则不适用于框架? 有许多软件框架项目-许多成熟且功能丰富的项目为开发人员提供了巨大的价值,但似乎并没有为此付出代价的市场或文化。 看来,收费的项目通常是UI组件工具集之类的东西,并且往往被边缘化以支持免费替代方案。 为什么是这样? 程序员/企业肯定会看到回馈给Ruby,Rails,Hibernate,Spring,Ant,Groovy,Gradle等项目的价值(列表还在继续)。 我并不是说这些框架应该对任何想使用它们的人开始收费,但是必须有一个有意义的商业模型,使开发人员从投资开发框架时就可以赚钱。 关于为什么这种模式没有出现/成功的任何想法? 编辑要明确:这不是关于淡化免费开放源代码软件重要性的文章。这是一篇有关询问为什么不存在为框架付费的文化的文章。

5
我刚刚收到我维护的网站用户的投诉。我应该做什么?
我从工作中维护的网站的用户那里收到了一封发给我大量文字的邮件。对于不得不处理超过6年以上未曾有任何重大更新的可怕过时的Web应用程序,他们显然感到不高兴。除了丑陋和坦率的尴尬之外,还没有进行任何重构,代码质量很差,安全性未受检查,策略合规性被忽略。请记住,这是一家小型企业,但每天有数百个用户使用该网站。我是那里的两个程序员之一,并且我在那里工作了两年。此人说他们大约我22岁,并且了解技术(但不能使用适当的语法)。 投诉提到了网站上的尴尬页面和操作,但他们甚至不知道该网站漏洞的严重性。现在,我很想老实地告诉他们,这家公司存在很多问题,并且该应用程序是在我们上高中时就构建的。尽管该网站糟糕透顶并不是我的错,但我是可以修复该网站的人。但是,另一方面,我什么也没说就忽略。 公开这样做会对未来的员工有任何好处(表现出正直),还是完全没有意义的错误?即使我只回答说一个人会读,这很奇怪。无论如何,我可能只会忽略它,并继续启动我的项目来重构网站。
9 ethics 

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.