软件工程

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

4
跨平台的GUI工具包有趋势吗?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 目前,跨平台 GUI框架的使用趋势如何?是更多的人开始使用跨平台框架(例如GTK +,Qt和wxWidgets),还是有更多的人在使用更多与平台相关的框架(例如Cocoa或WPF)?它多少停滞不前?像过山车吗?从现在起的5年后,您认为这种趋势会如何? 使用Windows的人越来越少,操作系统的格局正在发生变化(个人观察)。这应该会增加对跨平台工具包的需求,不是吗? 编辑:此外,哪些工具(跨平台)正在增长最多,如果可以的话?

10
何时学习编程工具的命令行版本?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 几乎每个编程工具都具有命令行版本。其中许多还具有gui版本。学习不同的命令以及命令行版本的各种选项/开关需要花费大量时间和记忆。 因此,我有几个问题(不一定是互斥的): 1)什么时候您会花时间学习/记住工具的命令行版本中的命令,而该命令行版本也是gui版本的? 2)我应该学习哪些工具的命令行版本?....编译器?版本控制系统?等等

4
渐进式依赖注入方法
我正在使用依赖注入使我的课程可单元测试。但是其中一些类有很多客户端,而且我还没有准备好重构所有这些类以开始传递依赖项。所以我正在努力逐步做到;暂时保留默认依赖关系,但允许对其进行覆盖以进行测试。 我正在考虑的一种方法是将所有“新”调用移入它们自己的方法,例如: public MyObject createMyObject(args) { return new MyObject(args); } 然后,在我的单元测试中,我可以继承该类的子类,并覆盖create函数,以便由它们创建伪造的对象。 这是一个好方法吗?有什么缺点吗? 更一般而言,只要您可以替换它们以进行测试,就可以使用硬编码的依赖项吗?我知道首选方法是在构造函数中明确要求它们,而我希望最终到达那里。但是我想知道这是否是一个好的第一步。 我刚想到的一个缺点是:如果您有需要测试的真实子类,则无法重用为父类编写的测试子类。您必须为每个真实的子类创建一个测试子类,并且它必须覆盖相同的create函数。

2
将关键数据保存在(第三方)数据库中
如何在数据库中保存重要的(隐私方面)用户数据,例如SSN,信用卡号和地址? 方案: 仅保存需要可用的数据。例如,保存了SSN,因为该应用使用SSN来标识特定记录。或信用卡详细信息将被保存,以使一键式交易成为可能。某些此类数据可以加密和保存,但某些数据需要以纯文本格式提供(例如,用于全文搜索)。该应用程序使用第三方托管。 问题: 在HostGator或App Engine等第三方主机上,以纯文本格式(或其他格式)的此类数据的安全性如何? 您是否将此类数据保存在第三方主机上(推荐这种做法)? 您将其存储为纯文本格式还是对此类数据进行加密? 只有那些有资源拥有自己的服务器的公司才能继续构建此类应用程序吗?

6
学习C#并陷入车辙[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 我已经学习C#/。NET 4.0大约2/3个月了,这是我的第一门认真的编程语言(之前我研究过PHP,HTML,CSS,JavaScript和VBA,但从未深入研究过),开始变得有点卡住: 由于缺乏“大”项目,我的学习达到了顶峰。 缺乏复杂项目的工作使我对自己的能力产生怀疑。 2周前,我接受了一名初级程序员工作的面试,并设法回答了我的大部分问题,但由于缺乏实践经验,我仍然没有找到工作,我不确定该怎么做。做! 就像我之前说过的,我不会为开源项目做贡献,但是我不知道从哪里开始,我认为“大”项目只想要优秀的程序员:( 是否有任何形式的在线编程测试可以向我展示我目前的“好”(或“坏”)?:) 谢谢你的帮助。

5
编码标准是否有太多的统一性?
是否有太多的统一性?在我工作的地方,我们当然有一些标准,包括命名约定,体系结构,可利用的框架等。但是最近,我认为应该更多地考虑样式的事情很多。 例如if,使用c#??null-coalescing运算符而不是say == null,在多行对一行中编写语句,而不是缩进间隔等。 在我看来,这开始越来越多地成为个人风格的选择,而不必在团队或公司中保持统一。一个人的想法可能更清楚地阅读了另一个人。这种“额外”的均匀性是否有价值?

5
编码标准的演变,您如何处理它们?
在现有代码库的项目中,您如何处理编码标准/样式指南中的演变?假设您的团队中的某人在编程语言中发现了一种更好的对象实例化方法。并不是说旧的方法是不好的或越野的,而是新的方法不再那么冗长,而感觉却更加优雅。所有团队成员都非常喜欢。您会更改所有现有代码吗? 假设您的代码库大约有500.000多行代码。您是否仍要更改所有现有代码?还是只让新代码遵守新标准?基本上失去一致性? 您如何处理项目编码标准的演变?


5
哪些人力资源政策阻止您找到熟练的程序员?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 在面试过程中,我们给应聘者进行了编程测试以及编程设计问题。 出于法律方面的考虑,我们的人事部门已通知我们停止管理编程测试。这确实会阻碍我们筛选候选人的能力。 还有其他人力资源政策会阻止您雇用有能力的程序员吗?
12 interview 


7
HTML5 / JS最终会取代所有客户端语言吗?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我只是想知道这一切的未来。恕我直言,有4种力量定义了技术的发展方向:微软,苹果,谷歌,Adobe。 看起来在Apple的iPhone / iPad iAD中,现在可以使用HTML5对其进行编程了。那么这是否意味着HTML5最终将取代Objective-C? 而且,微软现在已经将重点从WPF / Silverlight转移到了HTML5,我认为Visual Studio 2011将全部是对HTML5的工具支持。因为那是微软所做的。(工具)。在几个月后的IE9中,最后一个主流浏览器将支持HTML5。 同样,Adobe正在加入HTML5潮流,并允许使用其最新工具将Flash内容导出到HTML5。 而且我们都知道html5对Google有多大帮助。哎呀,他们最新的操作系统(Chrome OS)只是一个庞大的网络浏览器。 对于一家公司来说,移动应用程序(例如iPhone,Android,WM7)很难编程,尤其是对于许多不同的设备(每种都有自己的语言)进行编程,因此我认为这不会持续太久。即,HTML5将成为统一语言。对于应用程序开发人员来说,这有点可悲,因为现在用户将可以在网络上免费玩“酷”的html5应用程序,并且很难为他们付费。 那么强类型语言真的注定了吗,在未来的5-10年内,客户端编程是否仅会使用HTML5?我们所有人都将成为javascript程序员吗?:)因为这些迹象肯定指向那个方向...

8
在关系数据库中建模单例的最佳方法
在为Web应用程序设计关系数据库架构时,经常会遇到一种情况,最终我创建了一个表,仅包含一行和一行。感觉那是设计它的错误方法,但是我无法提出任何明显更好的方法,或者那显然是“正确的方法”。 最近的示例是一个站点,该站点使用户可以手动控制主页上的内容。好吧,只有一个主页。我创建了一个表,其中包含构建主页的所有必要字段,例如包含描述性文本的区域的文本字段。一个用于存储大图像文件名称的字段。一些外键指向将在首页上显示的文章,等等。它虽然有效,但是只有一行的表感觉不对。 过去,我尝试了许多其他设计,例如允许主页表中包含多行并随机选择一个。我尝试添加一个名为“ active”的布尔字段,并随机选择一个活动主页。在应用程序逻辑中,我尝试在任何给定时间仅强制一行处于活动状态。我什至尝试不制作主页表,也不让所有其他项(例如文章)具有名称为featured_on_homepage之类的布尔字段。 在大多数情况下,我可以在设置文件中使用一堆常量来构建主页。设置文件的主要问题在于它在开发人员的控制之下。因为像主页内容这样的东西是用户要编辑的东西,所以它必须进入数据库。 在许多站点上,我没有这个问题,因为我可以通过查询来构建诸如首页之类的内容,例如选择五篇最新文章。但是,当我有严格要求的手动页面时,在数据库中对其建模就变得很棘手。但是想象一下,您有一张照片桌子和一张物品桌子。要求是首页要显示精确的五张照片,精确的三篇文章和两块由用户手动控制的任意文本。您如何在数据库中正确建模呢? 另外,除了首页以外,我在许多其他情况下都遇到了建模问题。这只是我能想到的最简单,最适用的示例。

5
什么是“无我编程”?
我大约十五年前第一次听说过这个词。 我的理解与Wikipedia文章和TechRepublic文章中描述的理解相似:您以“友好,合议的方式将个人感受放在一边”与同事合作。它包括诸如在相互尊重和学习欲望的情况下进行同行评审,而不是觉得自己是“自己的”代码之类的事情,因此,如果有人提出建议或说有错误或需要更改它,您就不会感到防御它。 我还认为,很大程度上是要有一种态度,以与其他程序员建立良好的关系为目标,以改进代码。因此,我没有看到它与以您的工作质量而感到自豪或因您所做的事情给客户带来麻烦而感到后悔不相容。 但是,对最近一个问题的回答使我认为其他一些程序员对“无我编程”有不同的理解。那么正确的定义是什么?它的含义是什么?

7
有什么错误的想法使人们无法使用线程?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 是的,在程序中实现线程很难,但是为什么有些人甚至在有明显需求的情况下也不会实现它们。 一个例子:程序必须从数据库加载数据集,要做的是建立连接并在工作线程中从数据库中获取数据,然后将其加载到GUI中,从而使GUI线程对用户保持响应。 但是,不,我与那些似乎认为线程既有弊又有弊的人进行了交谈,应该不惜一切代价避免使用它们。我什至听说有些班主任建议不要使用线程,因此不想覆盖线程的使用。什么??? 随着硬件进入多核,我认为我们需要更好地了解线程,而不要害怕使用它们。我个人觉得这是一个有趣的话题。 那么,您听说过关于线程的哪些错误消息?

10
开发人员驱动的产品好吗?
我在一家由首席执行官管理产品团队的公司工作,后者会模拟功能并让开发人员参与其中,然后实施这些功能。当然会有一些迭代,尊重开发人员的意见。但是我想知道这个过程有多有效。 杰森·卡拉卡尼斯( Jason Calacanis)刚刚写道: 扎克伯格学说:与产品经理和设计人员相比,开发人员设计的产品在速度和功能上有显着提高,其潜在的错误和弊端都得到了弥补。 ... 然后,这真的使我感到震惊:开发人员驱动的初创公司总是更快地生产产品。 这是有道理的:扎克伯格编写下一个功能时,我们的非技术人员正在进行讨论和辩论。这就是为什么没人能跟上Facebook的原因! 当MySpacers讨论如何迭代其产品时,Facebook只是尝试了一些东西。 这实际上在实践中会更好吗?

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.