软件工程

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

7
PHP中最可靠的会话存储是什么:内存缓存,数据库或文件?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 什么是处理PHP会话的最佳,最安全的方法。是将会话存储在以下位置的最佳方法: 数据库(更可靠,但瓶颈大,速度慢,不利于数据库使用率高的网站)? Memcache(超快,但分布更多的安全问题,服务器重新启动时丢失数据的可能性以及缓存已满时丢失数据的机会)? 文件(默认选项,我猜很慢,因为它从文件I / O读取和写入文件,降低安全性,等等)。 哪种方法最好?每种方法的问题和优点是什么?
10 php  session 

1
用于fread / fwrite的最佳缓冲区大小
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 7年前关闭。 通过POSIX fread / fwrite函数应该为读取/写入文件选择什么缓冲区大小?
10 c 

7
冗余检查条件是否不好?
我经常在代码中找到一些位置,一遍又一遍地检查特定条件。 我想举一个小例子:假设有一个文本文件,其中包含以“ a”开头的行,以“ b”开头的行以及其他行,而我实际上只想使用前两种行。我的代码看起来像这样(使用python,但将其读取为伪代码): # ... clear_lines() # removes every other line than those starting with "a" or "b" for line in lines: if (line.startsWith("a")): # do stuff elif (line.startsWith("b")): # magic else: # this else is redundant, I already made sure there is no else-case # by using clear_lines() …

5
其他开发者的收益递减
是否有一个术语来描述在软件项目中增加更多开发人员将带来越来越少的回报的观点? 我认识到,从较高的层次看,要使项目达到生产能力的开发人员(项目的前/后状态,添加的开发人员的质量)要复杂得多,但是我想提出一种通过重复将其与非技术管理联系起来的方法。我基本上是在寻找一个能唤起诸如“终极速度”之类的强烈心理意象的术语,布鲁克定律除外。

2
REST资源单数和复数是否合理?
我一直在想,而不是像这样更传统的布局: api/Products GET // gets product(s) by id PUT // updates product(s) by id DELETE // deletes (product(s) by id POST // creates product(s) 具有单数和复数会更有用,例如: api/Product GET // gets a product by id PUT // updates a product by id DELETE // deletes a product by id POST // creates …
10 rest 

1
AppMobi和PhoneGap有什么区别?
我是跨平台应用程序开发的新手。我遇到了非常相似的跨平台框架AppMobi和PhoneGap。 我想知道 使用Appmobi创建的apk / ipa和使用PhoneGap创建的apk / ipa之间有什么区别吗? 可以使用的本机功能是否有差异? appmobi优于phonegap或PhoneGap优于Appmobi的优势是什么? 两者之间还有其他区别。


5
针对软件漏洞的攻击/工具的软件生命周期的独特之处是什么?
在我当地的大学中,有一个约20名学生的小型学生计算俱乐部。该俱乐部有几个小组,专门负责特定领域,例如移动开发,机器人技术,游戏开发以及黑客/安全性。 我正在向几个团队介绍一些基本的敏捷开发概念,例如用户故事,估计任务的复杂性以及持续集成以进行版本控制和自动构建/测试。 我熟悉一些基本的开发生命周期,例如瀑布,螺旋,RUP,敏捷等,但是我想知道是否存在诸如用于黑客入侵/破坏安全性的软件开发生命周期之类的东西。当然,黑客正在编写计算机代码,但是该代码的生命周期是什么?我认为他们不会太在意维护,因为一旦发现并修补了漏洞,利用该漏洞的代码就没有用了。 我认为生命周期将是这样的: 找出安全漏洞 利用安全漏洞 采购有效载荷 利用有效载荷 当产品的目的是破坏安全性时,软件的开发生命周期会有什么样的差异(如果有)?

3
是否需要XML注释文档?
我曾经是要求XML注释用于文档的爱好者。从那以后,我改变了主意,主要有两个原因: 像好的代码一样,方法应该是不言自明的。 实际上,大多数XML注释都是无用的噪声,不会提供任何附加值。 很多时候,我们只是使用GhostDoc生成通用注释,这就是我所说的无用噪声: /// <summary> /// Gets or sets the unit of measure. /// </summary> /// <value> /// The unit of measure. /// </value> public string UnitOfMeasure { get; set; } 对我来说,这很明显。话虽如此,如果要包含特殊说明,那么我们绝对应该使用XML注释。 我喜欢这篇文章的摘录: 有时,您将需要写评论。但是,这应该是例外而不是规则。仅当注释表示无法用代码表达的内容时,才应使用注释。如果要编写简洁的代码,请努力消除注释,而改写自记录代码。 我认为我们仅应在代码不足以自行解释时使用XML注释吗? 我相信这是一个很好的示例,其中XML注释使漂亮的代码看起来很难看。需要上这样的课... public class RawMaterialLabel : EntityBase { public long Id { get; set; } …

1
期货/单股vs事件
在可以忽略性能影响(最大每秒10-20个事件)的应用程序框架中, 什么是更可维护且更灵活的方法,可以用作模块之间进行通信的首选介质-事件还是期货/承诺/单子? 人们常说,事件(发布/订阅,中介)允许松散耦合,因此-应用程序更易于维护...我的经验否认这一点:一旦您拥有20多个事件,调试就会变得很困难,重构也会变得更加困难-因为很难看到:谁,何时何地使用什么。 承诺(我用Java语言编写)比事件要丑陋得多。但是:您可以清楚地看到函数调用之间的连接,因此应用程序逻辑变得更加简单明了。我怕什么 但是,Promises会带来更多的困难吗? ps:答案不一定基于JS,非常欢迎其他功能语言的经验。

4
将函数分配给var有什么好处?
给定这个Javascript示例,我发现 var sum = function() { var i, sum = 0; for(i = 0; i < arguments.length; i += 1) { sum += arguments[i]; } return sum; }; 将函数分配给var有什么优势?
10 javascript 



1
我应该如何使用gitflow将修补程序重新合并到功能分支中?
我已经开始在项目中使用gitflow,并且拥有出色的功能分支以及新创建的修补程序。每gitflow工作流程,修复被同时应用于主和发展分支,但没有说或约现存功能分支完成。 不过,我想将修补程序更改合并回我的功能分支中,据我所知,它留下三个选项: 不要合并更改。如果功能分支需要更改,则应将其作为功能分支的一部分。 合并开发回要素分支。这似乎最好地遵循gitflow工作流程,但会导致乱序提交。 变基的特性分支上开发。这将保留提交顺序,但常规gitflow工作流程似乎完全没有重新定基础。 最佳做法是什么?
10 git  gitflow 

5
什么是好的快速算法刷新?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我有几个星期要进行编程采访。我前一段时间参加了算法课程,但可能忘记了一些关键概念。 我正在寻找一本关于算法的非常短的书(<100页),以使自己重新入门。排序算法,数据结构和任何其他要领都应包括在内。不必一定是书...只是想找到一种很好的方式来赶上一周的学习时间。 快速入门或复习算法的最佳工具是什么?

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.