软件工程

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

2
Bucket是什么意思?
我在旧版代码中发现了一个名为BucketService的类。 因为英语不是我的母语,所以我尝试翻译该语言,但这没有任何意义。 我没有找到诸如铲斗排序之类的术语,但我仍然不明白。实际上,这个词在编程中经常使用 对于该单词的一些简单说明,我会有所帮助

2
获取开源项目的徽标和图形[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我从事开源项目已有两年了。 我想创建一个网站,但是我的预算基本上为零。我还需要一个徽标。 我的问题:开源开发人员应该如何在不花费大量资金的情况下改善项目的“视觉吸引力”?有平面设计师愿意捐出时间吗?如何找到它们(如果存在)。 对于一个项目,您要花费大量时间-您想给它一个漂亮的网站,以吸引人们的眼球。另一方面,您不想花钱购买免费赠送的东西。 有没有人可以分享任何个人经验?

6
PHP和性能
我总是听到PHP用于中小型网站,而.NET和Java用于企业应用程序。我的问题是关于PHP的。为什么PHP不是企业Web应用程序的好选择?是否因为Web应用程序变得更大而使PHP变慢,因为它是一种解释语言? 我知道企业界会选择.NET或J2EE,因为它们与其产品集成在一起,并且由于后端服务等原因。但是,如果我们只有PHP来构建站点和Web应用程序,那么我们如何使用它来实现良好的性能呢?大网站? 简而言之,PHP的性能和网站的大小之间是否有关系?什么因素使PHP不适合用于大型站点?

4
在C ++中使用`using`还是避免使用?
由于ADL造成了语义上的细微差别,我通常应如何使用using?为什么?是否与情况有关(例如,标头为#included而源文件为d)? 另外,我该选择::std::还是std::? 命名空间级别using namespace: using namespace std; pair<string::const_iterator, string::const_iterator> f(const string &s) { return make_pair(s.begin(), s.end()); } 完全明确: std::pair<std::string::const_iterator, std::string::const_iterator> f(const std::string &s) { return std::make_pair(s.begin(), s.end()); } 命名空间级别的使用声明: using std::pair; using std::string; pair<string::const_iterator, string::const_iterator> f(const string &s) { return make_pair(s.begin(), s.end()); } 局部函数使用声明: std::pair<std::string::const_iterator, std::string::const_iterator> f(const std::string &s) { …
17 c++  namespace 

6
避免在Controllers中使用SQL的策略…或者我的模型中应该有多少种方法?
因此,我遇到的情况经常是我的模型开始出现以下情况之一: 用无数种方法成长为怪物 要么 允许您将SQL片段传递给它们,以便它们足够灵活,不需要一百万种不同的方法 例如,假设我们有一个“小部件”模型。我们从一些基本方法开始: get($ id) 插入($ record) 更新($ id,$ record) 删除($ id) getList()//获取小部件列表 一切都很好,但是然后我们需要一些报告: listCreatedBetween($ start_date,$ end_date) listPurchasedBetween($ start_date,$ end_date) listOfPending() 然后,报告开始变得复杂: listPendingCreatedBetween($ start_date,$ end_date) listForCustomer($ customer_id) listPendingCreatedBetweenForCustomer($ customer_id,$ start_date,$ end_date) 您可以看到增长的地方...最终,我们有如此多的特定查询要求,我要么需要实现大量的方法,要么可以将某种“查询”对象传递给单个-> query(query $ query)方法... ...或者只是硬着头皮,开始做这样的事情: list = MyModel-> query(“开始日期> X AND结束日期<Y AND待定= 1 AND customer_id = Z”) …

7
使用SQL查询构建器有哪些优势?
使用查询生成器而不是使用原始SQL有什么好处吗? 例如 $q->select('*') ->from('posts') ->innerJoin('terms', 'post_id') ->where(...) vs: SELECT * FROM posts WHERE ... 我看到许多框架都使用这些抽象层,但是我无法理解其好处。
17 php  sql  frameworks 

7
是否有建立新框架的一般规则或最佳做法?
我需要开始设计和开发新框架,以便与开源ECM进行交互。这包括一个自定义的数据模型,以帮助网站开发人员与此ECM进行交互,因此他们无需关心节点操作的细节和其他低级细节。那只是一堆要开发的类和方法。 我对如何处理该项目的组织和管理有一些疑问:开发此类项目是否需要遵循一些一般规则,技巧,最佳实践或一些注意事项? 我确信框架或库的开发与应用程序之间会有一些区别。

4
维修时间的行业平均值
一位经理最近宣布,他们花了太多时间来修复错误。我想他认为我们应该一直编写完美的代码(当然仍然要达到那些不可能的截止日期!),这让我想知道行业平均花费在错误修复v编写新代码上的时间是多少。 那么,有没有人有时间衡量针对新代码开发的错误修复的指标?还是对整个行业的错误修复时间进行任何实证分析?是花了50%的错误修复了太多东西,还是正确的?20%或33%呢? 我很高兴接受个人经验中的轶事证据,因为这将构成一些统计数据的一部分,可以与我们的表现进行比较。
17 metrics 

9
哪些静态类型的语言支持函数返回值的交集类型?
初步说明: 经过几次修改后,这个问题才得以解决,因为我缺乏适当的术语来准确说明我要寻找的内容。然后,Sam Tobin-Hochstadt发表了一条评论,这使我确切地知道了这是什么:支持函数返回值的交集类型的编程语言。 既然问题已经重新提出,我已经决定通过(希望)更精确的方式重写它来改进它。因此,下面的某些答案和注释可能不再有意义,因为它们是指先前的编辑。(在这种情况下,请参阅问题的编辑历史记录。) 是否有支持功能返回值的交集类型的流行的静态和强类型编程语言(例如Haskell,通用Java,C#,F#等)?如果是这样,那又如何? (老实说,我真的很希望看到有人演示一种如何使用主流语言(例如C#或Java)来表示交集类型的方法。) 我将使用一些类似于C#的伪代码给出一个简短的示例,说明交集类型的外观: interface IX { … } interface IY { … } interface IB { … } class A : IX, IY { … } class B : IX, IY, IB { … } T fn() where T : IX, IY { return … ? …

9
如何在没有技术专长的情况下领导开发项目
我在整个职业生涯中都是动手开发人员,并且喜欢使用代码。我一直对团队负责人感到不满,他们对某项技术几乎没有专门知识,却坚持要求一定的实施。 现在我发现自己在镜架的另一侧。我是使用C#实现的胖客户端的主要开发人员,但是我的专长是构建Java Web应用程序。虽然我知道我可以使用任何一种语言来利用设计模式和OO范式,但是在编码标准,项目生命周期工具和发布/分发过程方面我迷失了。我毫不怀疑我可以在一两个月内掌握基础知识,但是有一些经验只能随着时间的推移而积累。 我应该怎么做,如何避免成为我在开发时讨厌的项目负责人?


4
依赖注入和单例。他们是两个完全不同的概念吗?
我一直在听说要为我的同事在Singleton上使用依赖项注入。我仍然无法确定它们是否是可以互相替换的两个正交图案?还是DI是使Singleton模式可测试的方法? 请看下面的代码片段。 IMathFace obj = Singleton.Instance; SingletonConsumer singConsumer = new SingletonConsumer(obj); singConsumer.ConsumerAdd(10,20); 所述SingletonConsumer正在接受类型的参数IMathFace。而不是在内部访问singleton类,而是SingletonConsumer将获得调用者传递的singleton实例。这是通过依赖注入使用单例类的一个好例子吗?

5
长文件名扩展名:为什么不
我正在整理我的iPad应用程序,文件扩展名(主要用于Mail和Dropbox知道使用哪个程序打开文件)长12个字符。唯一可以扩展的文件扩展名是tax2010。为什么在这个主题上变化不大,通过为应用程序使用长文件名扩展名,我会遇到什么样的问题?这些文件将被邮寄,复制和共享*。 在所有测试中,它都能完美运行。 *我希望。

3
在我的绳子尽头[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 我是一家大公司的承包商。目前,该项目有三位开发人员,其中包括我自己。 问题是其他2个开发人员没有真正得到它。“它”的意思是: 他们不了解我们正在使用的技术的最佳实践。在我和其他人给他们提供示例六个月之后,就使用了可怕的反模式。 他们是“复制和粘贴”程序员,主要产生意大利面条代码。 他们不断地破坏事物,执行更改,但不进行基本的冒烟测试以查看一切是否良好 他们拒绝/很少要求进行代码审查。 他们甚至拒绝/很少做诸如格式化代码之类的基本事情。 没有关于任何类的文档(jsdocs) 害怕删除无能为力的代码 即使我们具有版本控制,也应将注释的代码块保留在任何地方。 我发现自己在格式化其他代码,修复错误,发现已损坏的功能以及创建抽象结构以删除意大利面条时感到越来越沮丧。 我真的不知道该怎么办。我尽量不要沮丧,但这只是一团糟。我像这些人一样喜欢这些人,但是我觉得编码情况太糟糕了,如果他们整天只浏览Web,我可以更快地行动。 要求我们的经理审查其他svn提交访问权限是否不合时宜;提交只能由对我们正在做的事情有知识的人进行审核后才能完成?作为承包商,我不确定这是否是最好的选择。 有没有一种微妙/不是那么微妙的方式来弄清楚我要修复的东西?
17 bad-code 

2
为什么认为Perl 5的智能匹配运算符已损坏?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我已经在网上看到许多评论,Perl的智能匹配运算符已损坏。我知道它最初是Perl 6的一部分,然后在规范的旧版本的Perl 5.10中实现,然后在5.10.1中进行了更正以匹配当前的Perl 6规范。 问题已在5.10.1+中解决,还是智能匹配运算符还有其他问题在实践中造成麻烦? 有什么问题? 是否有解决此问题的更新版本(也许是Perl 6)? 编辑:为澄清起见,我并不是在询问错误,而是想知道错误的预期行为~~是不好的。
17 perl 

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.