软件工程

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

8
如果我认识其他几种语言,我该如何快速学习一种新语言?[关闭]
想要改善这篇文章吗?提供此问题的详细答案,包括引文和为什么您的答案正确的解释。答案不够详细的答案可能会被编辑或删除。 关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 不断出现在Programmers.SE上的一种类型的问题是,在您认识其他几种语言的情况下(通常是通过大量的经验或教育),如何学习一种特定的语言。 但是,在某些情况下,可能需要快速起步才能完成工作,个人发展,甚至是检验热门的新平台。 根据您的经验,您使用了哪些一般策略来快速选择一种新语言?在开始感冒时,您会尝试着重于某种语言的特定方面吗?您认为在此过程中有哪些类型的资源有用?
14 education 


2
设计:对象方法与以对象为参数的单独类的方法?
例如,这样做更好吗? Pdf pdf = new Pdf(); pdf.Print(); 要么: Pdf pdf = new Pdf(); PdfPrinter printer = new PdfPrinter(); printer.Print(pdf); 另一个例子: Country m = new Country("Mexico"); double ratio = m.GetDebtToGDPRatio(); 要么: Country m = new Country("Mexico"); Country us = new Country("US"); DebtStatistics ds = new DebtStatistics(); double usRatio = ds.GetDebtToGDPRatio(us); double …

3
在采访中问初创企业的首席执行官和首席技术官的好问题[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 7年前关闭。 关于在面试中问潜在雇主的问题,本网站上有很多问题。但是,我想知道在小型创业公司进行面试时是否应该提出一些具体问题?在新成立的初创公司工作不同于我迄今必须雇用的任何雇主,我想知道是否有任何事情需要考虑在面试中询问初创公司的首席执行官和首席技术官。 我将面试统计学家/分析师的职位。 编辑: 我已经与首席执行官和首席技术官进行了两个一小时的电话交谈。这些并没有被称为面试,但我们谈到了我为什么要在那里工作,我的技能如何为公司做出贡献等。我们还在简历上谈到了一些事情,包括我的学历,工作经验和编程知识。在第二次电话交谈之后,他们给我买了一张机票,飞往飞往总部设在另一州的公司。我认为,如果我不是认真的候选人,他们不会以不同的状态将我送往他们的公司。

6
寻找有关TDD如何改善质量和/或开发速度的案例研究[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 6年前关闭。 在我的公司中,我正在努力说明为什么我们应该进行TDD。当前,大多数开发人员会尽其所能完成项目,然后在事实发生后添加单元测试,以满足经理的要求。来自开展TDD并看到收益的知名公司的任何示例将不胜感激。
14 tdd 

6
数据库程序员做什么?
每当我读到有关Oracle程序员的文章时,我都会感到困惑。我不知道他们到底在做什么。 据我了解,应用程序程序员需要开发核心功能。他们使用的库可能有助于GUI开发或数据库连接,但是使该应用程序必须对该应用程序进行编程的功能,以及使每个应用程序都不同的功能(有些可能是其他版本的调整版本)。 在这种关系中,数据库编程不是从根本上创建表吗?这些表是否不响应通常由前端应用程序发出的SQL语句进行处理?那么创建表有什么大不了的?

3
GitHub上的Git项目依赖项
我已经在该框架之上编写了一个PHP框架和一个CMS。CMS依赖于框架,但是框架作为CMS文件中的自包含文件夹存在。我想将它们作为单独的项目维护在GitHub上,但是我不想在每次更新框架时都有更新CMS项目的麻烦。理想情况下,我希望CMS以某种方式将框架文件包含在预定义的子目录中,而不是物理地提交这些文件。 Git / GitHub有可能吗?如果是这样,我需要知道什么才能使其正常工作?请记住,我对Git有非常非常基础的经验-我可以使用Eclipse的Git插件制作存储库并提交,连接到GitHub,就这样。我目前正独自从事这些项目,因此到目前为止,我还不需要了解更多有关Git的信息,但是我希望将来向其他人开放它,我想确保自己做对了。 另外,对于具有依赖性的项目,理想的工作流程应该是什么?任何有关该主题的技巧也将不胜感激。如果您需要有关我的设置的更多信息,请在评论中提问。
14 php  git  github  dependencies 

10
什么是真正的编程难题?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我想知道有什么真正令我思考的硬性书籍。我说的是低级语言,例如c等以及算法,点,函数等。 非常感谢。
14 books 

6
如果愿意,是否应该允许开发人员使用VSS?
我向公司介绍了Mercurial。我喜欢它,但这是我的第一个版本控制经验。我将其与NetBeans PHP一起用于Web开发。 另一个从事公司内部应用程序开发的开发人员喜欢使用Visual Source Safe,并且不想切换。他在Visual Studio环境中工作。 除此以外,所有其他开发商都购买了Mercurial。不过,在大多数情况下,我们所有人都非常独立地工作。 我正在努力朝着正确的方向发展这个部门,我已经为每个人在Kiln上建立了一个帐户,我希望也能使每个使用Fogbugz的人都走上一条路(因为目前没有维护任何错误数据库。)从未使用过VSS,但我听说过非常糟糕的事情。 如果他愿意,只允许他继续使用VSS会更好,还是让他加入Mercurial符合最大利益?

10
为什么动态类型语言不让开发人员指定类型?
我所知道的动态类型语言从不让开发人员指定变量的类型,或者至少对这种类型的支持非常有限。 例如,JavaScript方便时不提供任何机制来强制变量类型。PHP使您可以指定一些类型的方法参数,但是无法使用本机类型(int,string,等)的参数,也没有办法强制类型的参数比任何其他。 同时,可以方便地选择以动态类型语言指定变量的类型,而不是手动进行类型检查。 为什么会有这样的限制?是出于技术/性能方面的原因(我认为是JavaScript)还是出于政治方面的原因(我认为是PHP)?我不熟悉的其他动态类型语言是否属于这种情况? 编辑:在回答和评论之后,这是一个澄清的示例:假设我们在纯PHP中具有以下方法: public function CreateProduct($name, $description, $price, $quantity) { // Check the arguments. if (!is_string($name)) throw new Exception('The name argument is expected to be a string.'); if (!is_string($description)) throw new Exception('The description argument is expected to be a string.'); if (!is_float($price) || is_double($price)) throw new Exception('The price …

9
Ubuntu是否可以作为IT顾问的笔记本电脑使用?
我通常在大型企业中担任顾问程序员。我使用Windows笔记本电脑,而我的许多同事都使用Mac。 如果可以完全控制自己的开发环境,我个人将是运行Ubuntu。但是我偶尔会需要Microsoft特定的产品,尤其是IE。 在这种情况下,使用Mac的同事经常在虚拟机上运行Windows。 我的问题是:Ubuntu对于企业程序员的笔记本电脑是否可行?例如,在Ubuntu的VM上运行Windows是否像在Mac上一样容易?有没有人尝试过这个?在这种环境下,Ubuntu不能与Mac一样好地用于开发吗? 请注意,我没有进行.NET开发,因此通常要处理Java,该Java将在Apache服务器上运行,并由运行Windows的客户端使用。

4
您最喜欢的按位技术是什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 几天前,StackExchange成员Anto询问了按位运算符的有效用法。我说过,移位比将整数除以2的幂更快。StackExchange成员Daemin反驳说,右移带来了负数问题。 那时,我还没有真正考虑过将带符号整数用于移位运算符。我主要在底层软件开发中使用了该技术。因此,我总是使用无符号整数。C对无符号整数执行逻辑移位。执行逻辑右移时,无需注意符号位。空位用零填充。但是,当右移有符号整数时,C执行算术移位运算。空位用符号位填充。此差异导致负值四舍五入为无穷大而不是被舍弃为零,这与有符号整数除法不同。 经过几分钟的思考,得出了第一手的解决方案。该解决方案在移位之前有条件地将负值转换为正值。在执行移位操作后,值将有条件地转换回其负数形式。 int a = -5; int n = 1; int negative = q < 0; a = negative ? -a : a; a >>= n; a = negative ? -a : a; 该解决方案的问题在于,通常将条件赋值语句转换为至少一个跳转指令,并且在不对两个指令路径都进行解码的处理器上,跳转指令可能会非常昂贵。必须两次重新灌注指令流水线才能很好地降低通过分频获得的任何性能提升。 综上所述,我在周六醒来,回答了条件分配问题。我们在执行算术移位运算时遇到的舍入问题仅在使用二进制补码表示形式时发生。它不会以补码表示出现。该问题的解决方案包括在执行移位操作之前将二进制补码值转换为一个二进制补码值。然后,我们必须将一个人的补码值转换回一个两个人的补码值。令人惊讶的是,我们可以执行这组操作,而无需在执行移位操作之前有条件地转换负值。 int a = -5; int n = 1; register int sign …

1
声明事件的首选方式
我对.NET事件模型非常了解。我想我可能会误解该系统的细微差别。 当我开始将事件放入班级时,我将使用标准方式,如下所示: public event EventHandler<MyEventArgs> MyEvent; 这意味着任何订阅该事件的人都需要类似以下方法: void HandleThatEvent(object sender, MyEventArgs args){...} 很好,但是我发现我很少关心发送者,因此它使很多方法签名变得肿。 所以我改用声明自己的委托类型 public delegate void MyEventHandler(SomeClass argument); 它减少了混乱,但是在编写处理程序时却给我带来了一个小问题: eventImplmentor.MyEvent += HandleThatEvent; . . . void HandleThatEvent(/*oh, um, what arguments does it take? Intellisense isn't telling me*/) 因此,我将不得不返回到委托的声明,然后再查看并回写它们,或者编译它并等待被告知。 因此,现在,我只是用Action,Action<T>或任何模板适合。 public event Action<SomeClass> MyEvent; 这样我就可以将鼠标悬停在事件上,并被告知期望的参数。 毕竟,我的问题是:是否有在C#中声明事件的最佳实践?我应该回到原来的EventHandler<T>方式还是可以Action<T>接受?
14 c# 

14
读书时做练习吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 当您从一本书(与编程相关的任何书籍)中学习时,实际上有多少人在练习这些练习,我目前正在学习一本C ++书,并发现我觉得自己可以轻松完成一些练习。大多数人都这样做吗?还是他们阅读了整本书,然后又回到了看起来很困难的练习中?
14 learning  books 

12
在c#领域和方法之前,关于“ this”关键字的当前最佳实践是什么?
除非需要区分具有相同名称的变量和字段,否则我永远不会放在this.字段或C#中的任何成员访问前面。我认为这与m_C ++中常用的前缀没有什么不同,并且认为如果您确实需要指定它是成员,则您的类太大。 但是,我办公室中有很多人对此表示强烈反对。 当前认为最佳做法是this.什么? 编辑:为了澄清,我从不使用m_,仅this.在绝对必要时使用。
14 c#  coding-style 

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.