软件工程

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

15
我如何说服我的团队使用较小的类/方法?
免责声明:我是新来者(这是我工作的第三天),我的大多数队友比我更有经验。 查看代码时,我会看到一些代码气味和不良的工程实践,例如: 命名准则有些不一致 可能时属性未标记为只读 大型类-我注意到一个实用程序类,其中包含数百个扩展方法(对于许多类型)。它超过2500行! 大型方法-我正在尝试重构一种150行长的方法。 后两者似乎是一个真正的问题。我想说服队友使用较小的类和方法。但是我应该这样做吗?如果是,那怎么办? 我的团队从主要团队(我们是卫星团队)中获得了导师。我应该先去找他吗? 更新:由于一些答复询问该项目,因此请知道这是一个有效的项目。恕我直言,这么大的类/方法总是不好的。 无论如何,我永远不想惹恼我的团队。这就是为什么我问-我应该这样做,如果是的话,那么我该如何轻轻地做到这一点? 更新:我决定根据公认的答案做某事:因为我是新来者,所以我以“新鲜的眼睛”看到一切,我会记下我发现的所有代码气味(位置,为什么不好,我们怎么做)更好,...),但此刻,我只是努力争取团队的尊重:写出“更好的代码”,认识人们,知道我们为什么这样做...在适当的时候,我会尝试向我的团队询问一些新的代码策略(命名准则,较小的类,较小的方法等),并在可能的情况下重构一些旧代码。它应该工作,恕我直言。 谢谢。

7
Web程序员应该对密码学有什么了解?[关闭]
构建网站/ Web应用程序的程序员是否应该理解密码学?我不知道大多数冷冻算法如何工作,我真的不了解md5 / des / aes / etc之间的区别。你们是否有需要深入了解密码学的需要? 我不需要它,但我想知道是否可能丢失了某些东西。我已经使用salt + md5哈希来加密密码,并且我告诉Web服务器使用SSL。除此之外,我不能说我用别的不多,我也可以有把握地说,怎么这些方法都是安全的。我之所以只使用它们是因为其他人声称它们是安全的。 除了这两个简单的示例,您是否曾经发现需要在Web编程中使用加密技术?

15
您应该为初级开发人员投入多少精力?[关闭]
在什么时候应该放弃? 我试图通过让他们给我阴影来帮助他们。我们同意休息一分钟,然后他们在行动中失踪了一段时间……然后回到他们的办公桌上。即使我知道他们已经做到了,我的一部分仍然觉得我不必去拿他们,而是他们应该对学习表现出兴趣。坦白说,这是我花了很多时间才能够做到的事情。我是否期望太多,如果他们想学习,就可以确保我知道他们已经准备好并愿意了? 他们去开会,没有被告知必须参加会议……好,但是然后坐在角落里睡觉……不好。我什至不知道该怎么办。 有时候,我给他们做些小事情,而他们却做得很好,所以我给他们做些困难,但他们完全失败了,很难。 他们签入东西而不进行测试。 我的一部分认为,也许我应该花更多的时间在他们身上,但是与此同时,我并没有看到太多的兴趣,而且我真的,老实说没有时间重复学习相同的东西。有时,如果您只是自己做一些工作来找出答案,我就会被问到非常非常容易回答的问题。其他时候我什么也没问。 我敢肯定,我会做得更好,但说实话...我真的不再想要了。
27 internship 

3
您可以使用哪些个人里程碑来衡量编程能力的增长?[关闭]
随着时间的流逝,如何客观地确定您在编写代码方面会变得越来越好?例如,我可能坐在这里,感觉到“我<language>现在知道,现在我在用<technique>,所以我必须变得更好。” 但这不能解释我自己的偏见,也不能解释我可能会以比预期的慢的速度变得更好,或者我可能确实会吸纳<technique>而没有意识到这一事实。有哪些方法可以客观地评价自己的能力?如何客观地将他们与同龄人进行比较?

7
出售Android应用的最佳策略是什么?[关闭]
我是一个年轻的开发人员,希望不久就能出售为Android开发的应用程序。我的应用程序基本上完成了99%,所以我正在研究哪种最佳的营销策略可以用来销售我的应用程序。我敢肯定,这里有聪明才智可以给我一些很好的建议。 我对您对以下几点的想法特别感兴趣(尤其是来自经验丰富的Android开发人员): 出售带有广告的免费应用程序或以价格出售没有广告的应用程序是否更有利可图?可能是免费广告版本和付费无广告版本的组合? 如果您免费赠送带有广告的应用程序,那么拒绝向后弯腰以支持该应用程序是否合乎道德? 盗版实际上对潜在销售有多大影响?应该采取任何预防措施吗? 如果您将应用程序开源,您还能从中获利吗?通过这样做,您能否从关注中获得更多收益? Google的Android市场真的是发布Android应用程序的最佳场所吗? 维护一个开发人员博客或网站足以使用户了解您的开发进度和软件版本是足够值得的吗? 您能给我带来最大利润的其他建议,同时让用户满意并回头以求更多,也将不胜感激。尽管我赞赏一般提示和技巧,但我想问,如果可能的话,请您多走一步,并说明它们特别适用于销售Android应用程序。我最想看到的是营销统计信息,开发人员回顾,以及您在销售Android应用程序时可以分享的任何其他经验。 非常感谢您抽出宝贵的时间。我非常感谢收到的所有回复。


21
将书读入简历
如果我将阅读过的书或至少与软件开发有关的书放在简历上,这是一个好主意吗?
27 books  resume 



13
依赖于IDE。怎么会伤害我?
我是高度依赖IDE的开发人员(因为我是JAVA开发人员,因此是NetBeans和Eclipse)。如果我有IDE,则可以正确编码。我可以在很大程度上依赖于此进行开发,调试和部署。但是如果没有IDE,我将无能为力。可以编写一个简单的hello world程序或一些简单的UI安排,但是我需要一个IDE来完成复杂的事情或对简单的事情进行长时间编码。 你觉得这对我有害吗?一些具有6年以上开发经验的程序员强烈认为这可能会造成危害,但是我认为,如果我能够快速正确地完成一些复杂的事情,为什么我应该坚持使用记事本和命令行工具来执行耗时的任务? IDE是否单击按钮即可执行此操作?
27 ide  coding 


14
在设计了某些东西之后激发自己去实际编写代码
它只会发生在我身上吗?还是您也很熟悉? 就像这样:您必须创建一些东西;模块,功能,整个应用程序……等等。这是您从未有过的有趣的事情,充满挑战。 因此,您开始考虑如何去做。你画一些草图。您编写一些原型来测试您的想法。您将不同的部分放在一起以获得完整的视图。 您最终会得到自己喜欢的设计,它是简单,所有人都清楚,易于维护...的名称。您覆盖了所有基础,想到了所有内容。您知道您将拥有此类,该文件以及该数据库架构。在此处进行配置,在此进行其他配置,等等。 但是现在,一切都解决了之后,您必须坐下来为它编写代码。并且不再具有挑战性。...去那儿了,做到了!现在编写代码只是“形式上的问题”,使它看起来像在重复您刚刚完成的工作。 在我以前的工作中,我有时会放弃它,因为有人根据我的规范进行了编码,但是在我的新工作中,我负责整个过程,所以我也必须这样做(因为我得到报酬做它)。 但是我有一个宠物项目,我下班后正在家里进行工作,只有我一个人,没有人付钱去做。我进行了创造性的工作,然后当需要将其写下来时,我感到不满意(让我们稍微浏览一下网络,看看P.SE上,SO上有什么新内容)。 我只想移至下一个具有挑战性的事物,然后移至下一个,下一个…… 这也发生在你身上吗?你如何解决? 您如何说服自己参与编写怪异的代码? 我会回答的。

18
停止无休止的技术讨论并做出决定
我总是遇到喜欢在最小的“技术性东西”上花了很多年的人。 不要误会我的意思,我是一个喜欢我所做的事情的怪胎程序员,但是您知道对话的类型。 Mac比Windows好得多 不要使用For Each循环,请使用While循环 不要购买基于Intel的PC,而是购买基于AMD的PC。 我们应该在另一个IoC容器上使用。 所有这些“东西”在双方都有有效的利弊,您将永远不会得到“正确”的答案,而且这个人也永远不会承认这一点。(当然,可能会有一些答案的地方:)。 我的问题(我要到达那里!)是:在一个软件团队中,您如何在不抑制创新的情况下完成这些漫长的讨论,以便可以做出决定,然后继续解决实际的业务问题。


12
JavaScript是如何流行的?
在古代历史中,Brendan Eich曾设计过一种语言,而在当今世界,JavaScript是一种在许多不同地方实现和使用的流行语言。 是什么导致该语言流行?是以前的程序员熟悉的类似C的语法吗?Netscape是否有足够的市场控制权来强制使用它?还是有更深层的原因使JavaScript流行而其他语言却不流行? 特别是,如果您必须使一种语言像JavaScript一样流行,那么您需要什么初始条件来重新获得其流行性?

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.