软件工程

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

2
Dijkstra的模棱两可程序示例
称呼。Dijkstra写道,即使是几行看似简单的代码也可能是模棱两可的。在至少一件我现在找不到能挽救生命的作品中,他举了一个小例子程序来证明这种歧义。谁能指出我的论文,其中包括以下示例之一?
12 ambiguity 

5
为什么要区分功能需求和非功能需求?
我理解两者之间的区别,但是我的同事质疑将标签要求标记为功能性或非功能性(或过渡性)的好处。为什么要这样做呢?他花了两天的时间仔细检查了一个项目的需求清单,但没有发现任何好处,因为最终结果是将文件提交给另一个业务实体,并下达命令“全部完成”。 我担心的是,要求汇总在一个文档中。我试图用实际的方式来解释好处,但是无法出售。如何出售记录哪些需求有效和哪些需求无效的好处。

4
在托管您的个人废弃项目时,一项服务和项目结构是否突出?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 我正在研究Google Code,SourceForge,BitBucket和GitHub,因为它们似乎是主要参与者。现在,我还没有分解它们提供的所有功能,但是我确实在寻找一个放置我编写的各种代码的地方(我为Euler项目提供的解决方案,可能为Code Golf编写的代码/在一个集中的位置编程拼图堆栈交换等。 因此,我的第一个问题是:在这种情况下,一项服务是否在其他服务中脱颖而出? 一旦选择了服务,就需要选择如何分发代码。我看到一些用于设置存储库和项目的选项。单个存储库可以容纳任意数量的项目-例如,对于我对Project Euler的所有各种解决方案,我可以拥有一个“ Tom Owens's Project Euler Solutions”存储库,该存储库内目录中的每种语言和环境的项目,另一个存储库适用于我的各种Code Kata解决方案等等。或者我可以按语言细分类似的内容(在一个存储库中有Python的Project Euler解决方案,在另一个存储库中有Java的PE解决方案,在第三个存储库中有Code Kata C ++解决方案)。 我的第二个问题:在确定应如何共享选择的代码示例时,是否存在任何限制或约定,特别是在创建存储库方面?我的想法是,这可能取决于您选择的服务(基于社区的惯例)。

5
函数式编程只是有所不同,还是真的更难?
函数式编程只是有所不同,还是真的更难? 假设某人以前从未学习过编程,而是接受过函数编程的培训。VS从未接触过编程的人,并且接受过命令式编程的教育。他会发现哪个更强硬?还是一样? 我的问题:说现在的问题是骆驼式输入 这样qwe_asd_zxc_rty_fgh_vbn变成qweAsdZxcRtyFghVbn 程序方式是: 沿 _ 遍历数组,跳过第一项 对于每个条目,我们将首字母大写 将结果结合在一起 功能方式是: 如果找不到_回报input 切掉input第一个_(这样我们就可以得到qwe和asd_zxc_rty_gfh_cvb) 大写的第一个字母head并与f(tail) 好吧,如果您有功能背景并且在过程编程方面有丰富的经验,我想问:确定过程方式是否需要花费更长的时间,或者确定函数方式需要更长的时间? 如果您有程序背景,但是有多年的函数式编程经验,我想问一个相同的问题:确定程序的方式会花费您更长的时间,还是找到功能的过程会花费更长的时间办法?

3
你们如何处理软件本地化的翻译?
我在职业生涯中编写的大多数软件都是为讲英语的客户而构建的,但是最近我正在从事一个项目,该项目需要将UI本地化为更广泛的语言。 我很好奇其他编程商店是如何获得翻译的。他们是否使用臭名昭著的在线翻译引擎? 我知道那里有聘用的翻译人员,但是我是否需要像许多翻译人员一样进行跟踪和签约,才能完成本地化界面的彻底工作?是否有专门针对各种语言的服务? 也许可以选择使用Amazon's Mechanical Turk之类的工具,但是我不知道该站点上的可用劳动力有多多样化。我想不是很好。

5
您是否应该发布自己可以破解的东西?
作为程序的创建者,您可能比其他任何人都更容易意识到安全漏洞和潜在的黑客攻击。如果您知道编写的系统中的漏洞,是否必须在发布之前添加增加安全性的标志,还是应该逐案评估以确定安全漏洞的严重性?
12 security  release 

5
擅长后端,但前端不好
我想开始Web开发,我一直在学习php。 我有Java,Python和C ++的 经验,这种经验使我擅长于Web开发的后端。 但是我在设计和图形方面很糟糕。 我要启动网站。 你们建议我做什么? 如果您的建议是要更好地使用图形,那是个好方法吗? 我也想知道你们在设计和图形上使用了什么,什么是学习的好地方?

5
为什么Windows Forms / Swing框架偏爱继承而不是Composition?
今天,我的一位教授评论说,他发现奇怪的是,尽管SWT的哲学是通过合成来进行自己的控制,但Swing似乎更喜欢继承。 我几乎没有接触过这两个框架,但是从我记得在C#的Windows窗体中,通常可以扩展控件,就像Swing一样。 既然人们通常倾向于使用合成而不是继承,那么Swing / Windows Forms的人们为什么不偏爱使用合成而不是继承?
12 c#  java  swing  forms 

1
PyPy有多成熟?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 除了阅读开发人员的意见外,我试图通过其他方式确定PyPy的成熟度。因此,我有兴趣听到有关使用PyPy的所有重要任务关键项目的信息。所有其他成熟度指标似乎都不错。在决定将其用于我的主要项目之前,我只是想念这个。
12 python 

5
Web应用程序身份验证/安全性的最佳做法(任何平台)
今天,我的经理向我提出了一个问题,问我关于什么是可以接受的Web表单应用程序身份验证设计的想法,特别是对于许多流行的浏览器的性质而言,“典型用户名”密码登录字段“记住密码” 。 我在想出一个我认为可以接受的答案时遇到了麻烦。鉴于Sony令人尴尬的安全漏洞,即使存储在人身上的数据敏感度较低,我也确实要小心。我们不存储社会安全号码,甚至不存储地址,但是我们存储电话号码,电子邮件地址和访客的照片。 他担心用户可以简单地在公共终端上记住密码,然后有人可以简单地跳到该终端上并以未经授权的方式开始查看或修改数据。但是,我相当确定,至少在Windows工作站上,浏览器不会跨Windows用户帐户“记住密码”。 除此之外,我正在服务器端实现一种单向密码加密(将加密的密码存储在数据库中,在服务器上加密用户提供的密码,与数据库中的加密字符串进行比较)。目前尚无合并SSL加密的计划,但这仍然是一个选择。 这种方法是否存在主要的安全缺陷?您有更好的建议吗?

5
如何在我的开源项目中使用徽章?
Stack Overflow有一套很棒的徽章,可以识别个人对社区的贡献,并使个人的能力随着贡献的增加而增长。 开源或编码项目可以使用哪些技术?例如,一个人对代码库的贡献为他们赢得了徽章以及项目上不断增加的功能集? 主持人备注 仅提供建议链接是不够的:请提供有关如何将游戏化元素纳入开源项目的详细答案。任何不这样做的答案将被删除。 有关我们正在寻找的程序员的问题类型和答案类型的更多信息,请参见良好主观,不良主观。

8
哪个工作间隔生产率更高:短期还是长期?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 哪段工作对编程更有效率:短(<= 30分钟),中长或长(> = 2小时)?在什么情况下?(考虑对新功能进行编码,做一些小的修改,调整UI,重构,调试,学习API,尝试理解他人的代码)。 您可以从自己的经历中看出什么?来自研究和最佳实践的信息也非常受欢迎。虽然很高兴看到链接或引用。 可靠信息胜于完整答案。 有价值的外卖: 集中思考是这里的最终目标 一般情况下,不间断的工作(> 2-3小时)会失去焦点和模糊的想法 当您流中时,最好让自己工作1-2个小时 值得尝试Pomodoro技术,以帮助克服思维的惯性和拖延,以获得更好的时间感。特别是可以帮助您开始做您不喜欢做的事情 当使用“休息管理”软件时,您可以让自己更加灵活,例如跳过1个休息,但不能更多。这使您能够适应以下情况:在流程中,有流程时,在不流程时保持可管理 休息期间的新鲜空气,放松和锻炼可以帮助使右半球参与进来,从而获得新的想法和解决方案 尝试用于“中断管理”的软件工具: Pomodairo-它另外跟踪任务列表并具有pice UI WorkRave-提供更大的配置灵活性。没有扬声器也可以使用

4
在开放您的娱乐项目中有什么价值[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我为我的项目写了很多有趣的东西,并向朋友等展示了它们。由于兴趣和实用性受到限制,因此在进行这些工作并使这些项目开源时是否有任何价值。

4
函数式编程—不变性
我试图理解在FP中处理不可变数据的情况(特别是在F#中,但是其他FP也可以),并打破了全态思维(OOP风格)的旧习惯。所选答案的问题的一部分在这里重申,我周边的任何问题写起坐由状态表示在OOP中FP解决与不变的人搜索(对于例如:与生产者和消费者队列)。有任何想法或链接吗?提前致谢。 编辑:为了进一步澄清这个问题,不可变结构(例如:队列)将如何在FP中的多个线程(例如,生产者和消费者)之间并发共享


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.