软件工程

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

3
自由职业者的开源友好IP合同
我将要第一次进入咨询领域,并且必须写我的第一份合同。我遇到的一个问题是关于开源工作和知识产权。我喜欢从事开源项目,无论是现有项目还是我自己开始的项目。 问题是:我该如何写合同以适应以下情况: 在处理客户项目的过程中,我想以自己的名字向社区开放部分代码。 在处理客户项目的过程中,我正在利用一些现有的开源项目,并对它们进行改进。 在处理客户项目的过程中,我对第三方开源项目进行了改进,并将其回馈。 在处理客户项目的过程中,我们决定以客户的名义开放部分代码。 有什么先例? 更新:我在上面的列表中添加了一个项目(项目3)。

2
一次性原型和进化原型之间有什么区别?
我注意到了各种原型制作方法,并且在Internet上找到了几种定义,但是我想确认一下我学到了什么。 我知道一次性原型是从规范的概述中开发出来的,交付并修改了各种原型,直到客户对其功能满意为止。 另一方面,演化原型是根据最终用户收集的基本要求构建的。最初的原型将提供给用户并进行评估。根据反馈修改原型,直到客户满意为止。 它是否正确?有没有更好的抛弃式和进化原型的定义?


6
除浏览器以外的JavaScript测试环境?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 5年前关闭。 当我想用JavaScript测试某些东西时,我打开一个新的浏览器窗口(主要是Firefox)并开始在提供的控制台(主要是Firebug)中编写代码。 但是,这往往非常乏味且缓慢。是否存在可以测试JavaScript的环境(例如具有自执行功能的IDE)? 指南:我正在寻找类似jsfiddle的东西,但不在浏览器中,也不在线。我想要一个既离线又不是浏览器的执行环境。 我要问的是拥有像Firebug Console这样的东西作为单独的应用程序(最好是Windows应用程序),可以双击打开它,在其中可以编写JavaScript代码并单击execute。就这样。 简单来说,我想要的只是Firebug的控制台,没有Firefox。市场上有这样的东西吗?
12 javascript 

6
是什么使jQuery如此受欢迎?其他JavaScript库没有提供什么?
根据W3Tech的说法,该链接,此链接,此链接以及许多其他来源表明,jQuery确实正在成为IE在Web浏览器世界中的经验(在一段时间内占据了80%以上的市场)。 我不了解其他JavaScript库(例如MooTools,YUI等),因为当我开始进行Web开发时,jQuery已经领先并且我选择了它。 其他库真的那么糟糕吗,还是它们缺少jQuery专有的东西?这个巨大的市场份额背后的原因是什么?
12 jquery 

1
大量使用Ajax的Web应用程序的模式
到目前为止,我一直是开发Web应用程序的MVC模式的忠实拥护者。对于网络,我主要使用PHP(使用Kohana和CodeIgniter框架)和Ruby(RoR)开发。 随着我的应用程序在Ajax方面变得越来越繁重(单页应用程序等),我注意到我不禁出卖了MVC的最基本概念:Java语言正在做大部分工作;调用控制器只是为了请求视图或更多js / json代码似乎是错误的。 在努力将所有路由作业保留在控制器中之后,现在我从根本上将其分配给控制器和Javascript(即,从框架的PoV来看,是视图的一部分)。当请求json时,MVC的转换看起来更加明显:执行请求的js代码是控制器;框架的控制器仅充当模型数据的代理-实际上是我要的。 那么,我应该研究什么? 我当时在考虑使用纯JavaScript应用程序,例如,使用ribs.js和基于文档的JSON吐出数据库(couchDB)作为后端,但是我喜欢我的关系数据库。 另一个选择如下:我只是在PHP / ruby​​ / go / whatnot中创建“路由模型”。这些将分析请求,调用数据库,并返回一些json。 这种方法对我来说似乎很有趣,但是它没有任何实质性的文档或学术分析,因此我有点害怕这种飞跃。 有想法吗?

3
如何为解析器指定语法?
我已经进行了很多年的编程,但是仍然需要花费我很长时间的一项任务是为解析器指定语法,即使付出了如此多的努力,我也永远无法确定我想出的语法是否很好(以任何合理的方式衡量“良好”)。 我不希望有一种算法可以自动执行指定语法的过程,但是我希望有一些结构化问题的方法可以消除当前方法的大部分猜测和反复试验。 我的第一个念头是阅读解析器,而我已经做了一些,但是我在该主题上阅读的所有内容都将语法视为既定的(或者琐碎到可以通过检查指定的语法),并专注于将这个语法翻译成解析器的问题。我对之前的问题很感兴趣:首先如何指定语法。 我主要对指定一个正式代表具体示例(正例和负例)的语法的问题感兴趣。这与设计新语法的问题不同。感谢Macneil指出了这一区别。 我从来没有真正欣赏过语法和语法之间的区别,但是现在我开始明白它了,我可以通过说我主要对指定语法来强制执行一个语法的问题来加强我的第一说明。预定义的语法:就我而言,这种语法的基础通常是肯定和否定示例的集合。 如何为解析器指定语法?是否有一本书或参考资料是事实上的标准,用于描述最佳实践,设计方法以及有关为解析器指定语法的其他有用信息?在阅读解析器语法时,我应该重点注意什么?

13
编程专业不适合语言障碍者吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 我的朋友有15年的编程经验和博士学位。在数学上。他还患有脑瘫和语言障碍。由于他的残障,他在获得博士学位后选择了成为软件开发人员。据我所知,他仍然是一名出色的C#开发人员。 但是,如今,他很难找到自己的工作,因为大多数开发人员的工作都需要良好的沟通技巧。看着他这么挣扎,我是否必须建议他,软件行业不再适合他?对我朋友来说,这样做非常困难,但我认为这比浪费他的时间要好。 你怎么看? 更新:非常感谢您的出色回答。我可以看到大多数答案都不符合我的建议,我真的很希望你们是对的。但是实际上,他在100次左右的电话采访中被拒绝了。那就是我想成为潜在的不良顾问而不是政治上正确的朋友的地方。
12 hiring 

6
我该如何提高团队合作者的技能?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 7年前关闭。 目前,作为多学科团队中的唯一开发人员,我在研究实验室中梦想中的工作。我有点担心,因为我忘记了在团队中进行编码(我没有遗留代码,我维护自己的代码,处理自己的议程,等等)。尽管我只是尝试遵循一些最佳实践,例如持续交付,TDD和SCRUM,但我认为我正在失去在一组开发人员团队中工作的能力。 我加入了一个开源项目,并开始研究代码katas和代码golf。但是这些不会完善我的团队成员的资料。 您对提高我的团队合作者技能有什么建议? 更新:是的,我的沟通能力现在提高了,我可以前所未有地与博士交谈。就像@Nicholas和@Erick所说,总有一天,我将面对一个开发团队(也许正在我的工作中,也许没有),我想跟上那些使一个好的开发人员成为更好的团队成员的实践,例如结对编程或代码。评论。

4
工作时如何安排学习时间?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 7年前关闭。 我已经为一家公司编程了8年。我们建立商业智能软件系统。由于我认为工作是学习中的东西,所以我一直按照每周工作60个小时在公司工作的方式进行学习。但是,这些天来,我正在寻找一家新公司来工作,我发现这种想法很愚蠢,因为我经常因为没有其他领域的知识而在面试中经常失败。当然,我仍然愿意提高自己,并且确实在努力。但是,尽管每周要花费大量时间,但我找不到足够的学习时间来跟上。 我不认为我是对此唯一关心的人,所以我想问一下你们如何找到时间学习自己的职业?您分配多少小时学习其他领域?我是否缺少一些时间管理技能?

5
项目开始时的敏捷方法和数据库
敏捷的新手,我不确定如何开始。这个想法是在sprint中创建项目的一小部分。但是,我正在处理的项目需要一个数据库,并且该数据库必须具有几乎可以正常运行的功能才能对该项目执行任何操作。 那么,敏捷项目如何处理这个问题,首先要创建数据库吗? 您将如何操作,例如,如果使用Scrum,您将如何处理用户故事并测试数据库。 您是否愿意在还需要代码的故事中做数据库的一部分。 假设您有一个故事“作为用户,您必须能够注册...”,您是否会在数据库中创建user表作为该故事的一部分? 敏捷如何帮助您设计数据库?


4
使用/编写.Net自定义成员资格提供程序有哪些缺点?
最近,我在SO上发布了以下问题:https : //stackoverflow.com/questions/7197337/using-asp-net-membership-provider-with-an-existing-user-database 您可能会注意到,我最后回答了我自己的问题,指出编写/实现“自定义成员资格提供程序”看起来是一种方法。 从字面上看,几分钟后,我偶然发现了这个问题:https : //stackoverflow.com/questions/7222306/simple-login-attempt-counter-using-mvc-3-and-ajax/7222407#7222407 我尝试回答并获得评论,.Net成员资格提供程序“在许多级别上都很糟糕”。我承认,这是我第一次使用会员资格提供程序,但对我来说确实如此。 我没有看到任何支持“可怕”主张的东西,因此在实施“可怕”之前,我希望能从社区中得到一些反馈。

11
开发人员应该接受Excel宏完成的工作量估算吗?
在一个新项目中,一个朋友必须编写测试,编写测试所需的时间是由他的非开发人员经理编写的Excel宏计算出来的。 在这种情况下,开发人员是否应承担在计算的时间内编写和运行测试的责任?这些测试的结果值得信赖吗? 为了提供信息,我的朋友拒绝对他未做的估算负责,要求成功完成另一个项目,并由经验不足的校外“老兄”代替。

6
我应该如何处理无效的用户输入?
我考虑这个问题已有一段时间了,我很想征询其他开发人员的意见。 我倾向于具有非常防御性的编程风格。我典型的块或方法如下所示: T foo(par1, par2, par3, ...) { // Check that all parameters are correct, return undefined (null) // or throw exception if this is not the case. // Compute and (possibly) return result. } 另外,在计算过程中,我在取消引用所有指针之前先检查它们。我的想法是,如果存在某些错误,并且某些地方应该出现一些NULL指针,则我的程序应该很好地处理此问题,并且只是拒绝继续进行计算。当然,它可以通过日志或其他机制中的错误消息来通知问题。 换句话说,我的方法是 if all input is OK --> compute result else --> do not compute …

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.