软件工程

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

7
将SQL语句保存在表中以供以后执行是一个坏主意吗?
将SQL语句保存在MySQL表中以供以后执行是否是一个坏主意?SQL语句将准备好执行,例如,将没有参数可交换或任何其他内容DELETE FROM users WHERE id=1。 我想我很懒,但是我想到了这个主意,因为我正在从事一个需要大量cron作业并定期执行SQL语句的项目。
21 mysql 

3
为什么这么多语言将以0开头的数字视为八进制?
我读过八进制在哪里有用?八进制似乎曾经是有用的。 许多语言将以0开头的数字视为八进制,因此文字010实际上是8。其中一些是JavaScript,Python(2.7)和Ruby。 但是我真的不明白为什么这些语言需要八进制,尤其是当这种符号更可能的用法是表示带有多余0的十进制数字时。 JavaScript是一种客户端语言,八进制似乎毫无用处。从其他意义上讲,这三个都相当现代,我认为不会有太多使用八进制表示法的代码通过删除此“功能”而被破坏。 因此,我的问题是: 这些语言是否支持八进制文字? 如果八进制文字是必需的,为什么不使用类似0o10?为什么要复制覆盖更有用用例的旧符号?

5
如何分解构造函数?
可以说我有一个Enemy类,构造函数如下所示: public Enemy(String name, float width, float height, Vector2 position, float speed, int maxHp, int attackDamage, int defense... etc.){} 这看起来很糟糕,因为构造函数有很多参数,但是当我创建一个Enemy实例时,我需要指定所有这些内容。我还希望在Enemy类中具有这些属性,以便可以遍历它们的列表并获取/设置这些参数。我当时想也许可以将Enemy子类化为EnemyB,EnemyA,同时对它们的maxHp和其他特定属性进行硬编码,但是如果我想遍历一个Enemy列表(由EnemyA,EnemyB和EnemyC)。 我只是想学习如何干净地编码。如果有所作为,我将使用Java / C ++ / C#。朝正确方向的任何观点表示赞赏。

8
做设计模式扼杀创造力
许多年前,我曾与经济学教授讨论设计模式,如何为程序员建立通用语言以及如何以良好的方式解决众所周知的问题等。 然后,他对我说,这与他的经济学学生所用的方法完全相反。他通常会提出一个问题,并要求他们首先找到解决方案,因此他们可以先考虑一下,然后尝试找到首先解决问题的方法,然后才提出“经典”解决方案。 所以我在想,“设计模式”方法是否真的会使程序员变得更聪明或更笨拙,因为他们很多时候只是获得“针对此问题的正确解决方案”,而不是利用创造力和想象力来解决某个问题。创新的方式。 你怎么看?

7
Scrum冲刺是否意味着以最快的速度工作?
想要改善这篇文章吗?提供此问题的详细答案,包括引文和答案正确的解释。答案不够详细的答案可能会被编辑或删除。 我最近采访了一些从事敏捷,Scrum的公司,以进行更精确的介绍,有些事情在我看来并不像敏捷。现在,我将考虑一个特别令我感兴趣的案例,即Scrum冲刺。 我与一位特定的项目经理交谈(是的,我说项目经理)自豪地说,她的团队中的人们理解(“被告知”这是我从上下文中挑选的),当工作时间结束时,您不回家,无论完成多少工作,您都会在工作完成后回家。我在这两行之间读到的是,我们将尽可能多的功能组合到sprint中,并加班以实现它。 现在,我还没有做敏捷(与大多数仍然喜欢瀑布的金融和政府机构合作),但是我的理解是: Scrum中的sprint是敏捷中通用迭代的名称; 团队应该以可持续的速度工作,并尽量避免长期加班,因为这只会在短时间内产生影响,并且这种影响因长期存在的问题而相形见war。 我的陈述正确吗?而且,我是否应该将经理的介绍作为危险信号?


7
如何在程序中管理大量规则和幻数?
我是编程的新手(我是行业的机械工程师),并且在停机期间正在开发一个小程序,该程序将根据工厂周围各个人员的输入生成一个(solidworks)零件。 仅基于少量输入(准确地说是6个),我需要进行数百个API调用,每个API调用最多可以包含十二个参数。所有这些都是我在采访处理零件的每个人之后收集的一组规则所产生的。我的代码的规则和参数部分为250行,并且还在不断增加。 那么,保持我的代码可读性和可管理性的最佳方法是什么?如何分隔我所有的幻数,所有规则,算法和代码的程序部分?如何处理非常冗长而细致的API? 我的主要目标是能够在没有我输入的情况下将我的消息传递给某人,并让他们了解我在做什么。

7
Scrum Master如何参与日常站立训练?
我们有一个专业的Scrum Master顾问[*],他最近加入了我们的项目。不幸的是,我们不知道她的名字(她从未向我们介绍自己,她只是一天之内就说“我们每天都站起来”),除了主持一个椅子,她似乎没有做太多其他事情。每日站立会议-当我半开玩笑地要求她也在会议中提供每日反馈时,她感到非常不满,说这是Scrum Master的“促进而不是参与”的工作。 这似乎是相当反敏捷的(已经在其他敏捷项目中工作过,这些项目是团队自我指导的),应该是平等的,但是我不确定它在Scrum方法论中如何工作。我怀疑她整天没有做很多事情,这就是她在这个问题上采取防御措施的原因。 Scrum Master是在站立会议期间参加“昨天,今天,障碍”活动,还是只是主持(“协助”)会议? [*]我们实际上并没有告诉她她的工作,因为她自称为Scrum Master

3
实际上,开发人员还可以管理DBMS和系统吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我真的不知道该问什么。所以就到这里。 我在一家很小的公司工作,该公司生产ERP软件和网站。 1位具有10年以上经验的开发人员。 2位具有3年以上经验的开发人员。 3位具有1年经验的开发人员。 而已。 没有团队,没有DBA,没有系统管理员。 这里没有人拥有Web开发方面的专业知识,所以我碰巧负责Web开发。但是我只有3年的经验!作为开发人员! 我知道在一家小公司中,您需要做很多不同的事情,但是如果我必须做sysadmin,数据库体系结构,软件设计和开发,这是否太多了?哦,我被要求在不同的平台上做所有的事情。 我目前正在使用JSP,ASP,MSSQL,MySQL,Oracle,Windows Server和Linux。 在数据库中,我从编写查询到备份和恢复。 服务器设置,系统崩溃恢复,数据库和服务器迁移。 毛绒HTML,Javascript和CSS :) 我负责的项目数量:5 我不是所有的专家! 我必须搜索Internet,阅读教程并在StackOverflow中提出问题才能完成所有工作! 所以我问你,这正常吗? 这是正常的做法吗? 无论我去哪家小公司,我都会面对同样的情况吗? 我在韩国工作。贵国情况如何? PS 谢谢大家的意见。我要对所有人进行投票,因为所有人都以不同的方式帮助我看待它,但是显然您需要15的声誉才能投票:(

2
具有静态main方法的Java类的命名约定?
在阅读gnat的答案后,为什么在Java和C#中使用静态main方法而不是构造函数?我以他的回答来表示带有静态main方法的Java类的目的是to define a program entry point,而不是要成为程序本身。 可能有更好的方法来执行此操作,但是我通常使用带有静态main方法的类来执行以下简单操作: public class MenuLauncher { public static void main(String[] args) { Menu menu = new Menu(); menu.run(); } } 上面的代码是否是OOP的最佳实践,在这种情况下,具有静态main的类所做的仅是启动或启动包含在单独的非静态对象中的程序逻辑;毕竟main是静态的,所以MenuLauncher类本身不会受到很大限制吗?因为main是一个起点,所以除了作为切入点之外,我没有看到任何其他目的。 是否存在Java命名约定,通常用于包含main方法并用作程序入口点的类的类?

2
类型检查和递归类型(在Haskell / Ocaml中编写Y组合器)
当在Haskell的上下文中解释Y组合器时,通常会注意到,由于Haskell的递归类型,因此直接实现不会在Haskell中进行类型检查。 例如,从Rosettacode: The obvious definition of the Y combinator in Haskell canot be used because it contains an infinite recursive type (a = a -> b). Defining a data type (Mu) allows this recursion to be broken. newtype Mu a = Roll { unroll :: Mu a -> a } …

5
如何对需要Web服务调用的类进行单元测试?
我正在尝试测试一个调用某些Hadoop Web服务的类。代码几乎是以下形式: method() { ...use Jersey client to create WebResource... ...make request... ...do something with response... } 例如,有一个创建目录方法,一个创建文件夹方法等。 鉴于代码正在处理我无法控制的外部Web服务,我该如何对其进行单元测试?我可以尝试模拟Web服务客户端/响应,但这违反了我最近看到的指导方针:“不要模拟您不拥有的对象”。我可以设置一个虚拟Web服务实现-仍然构成“单元测试”还是将其作为集成测试?只是不可能在如此低的水平上进行单元测试-TDD从业者将如何做到这一点?

10
iPhone中64位A7有什么好处
我试图弄清楚为什么在iPhone中使用64位处理器如此重要。我知道寄存器将是原来的两倍,因此处理器可以处理两倍的数据,从而可以提高性能。 但是,我认为很快就不会有很多手机的内存超过4GB。似乎过大,会对电池寿命产生负面影响。 我看到的另一个问题是,现在大多数变量都需要两倍的内存。这将在具有少量内存的移动环境中产生问题。 我相信Apple的员工很聪明,他们这样做的理由可能很充分,我只是想了解他们。 编辑 对GPU的了解不多,但有人告诉我,使用64位寄存器,可以将2个像素加载到每个寄存器中,并且可以分别对其进行操作。关于64位有图形优势吗?
21 ios  iphone  64-bit 


3
有针对C ++编译器的一致性测试吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 5年前关闭。 是否在某处有一个免费可用/可访问的脚本,源文件或任何可以衡量给定C ++编译器符合性的文件? 例如,针对浏览器的Acid3测试:http : //acid3.acidtests.org/ 我梦想的结果将是一个整体百分比注释(或多个注释,每个标准一个注释,例如c ++ 98,c ++ 11,c ++ 14等),然后使用“成功”进行详细测试或“失败”。 背景:我在工作中讨论了boost和一些挑战性的编译器。我的对话者谈到boost是一个学术项目,因为它不能在主要的C ++编译器中使用,我回答说,那些精神上有挑战性的编译器不应该算在内。能够使用代码衡量编译器的实际一致性,将有助于评估编译器,并发现在使用它们编译的跨平台代码中应避免的“拐角情况”。 编辑:2013-06-22 这不是一个答案,但是显然,C ++委员会正在研究该主题: SG10,功能测试: Clark Nelson(Intel)。随着我们继续扩展该标准,调查是否以及如何标准化可移植代码以检查特定C ++产品是否实现了功能的方式。 资料来源:http : //isocpp.org/std/the-committee
21 c++ 

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.