软件工程

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

14
如何赢得团队领导的尊敬[关闭]
如果您被聘为新公司的团队负责人(比如说一个10人的团队),要做的重要事情之一就是赢得团队成员的尊重。在早期,新的团队负责人可能对团队文化,代码库和业务领域一无所知:换句话说,是完全的新手。 如何做到这一点?做什么和不做什么?


16
初级开发人员是否需要进行代码审查?
我曾在两家公司工作过,在进行代码审查时,每个公司都有不同的方法: 在第一家公司中,团队负责人进行了代码审查,并且在完成每个模块后都需要进行代码审查。 但是,在第二家公司中,不需要团队负责人进行任何代码审查,而只是检查功能和设计问题。 所以我很困惑。确实需要代码审查过程吗?如果是,为什么?如果不是,为什么不呢?


24
您如何专注于工作?[关闭]
有时候,我要做的事情很有趣而且很有趣。有时候,事实并非如此。有时候,他们确实不是。 当您的大脑宁愿做应做的事情以外的其他事情时,您是否有任何特殊的策略或技巧来应对这些枯燥的事情,尤其是当互联网及其无穷的机会吸引有趣的Slack时?

7
所有语言基本相同吗?
最近,我不得不了解一个用我不知道的语言编写的小程序的设计(ABAP,如果您必须知道的话)。我可以毫不费力地弄清楚。 我意识到掌握一种新语言是完全不同的球类游戏,但是如果您已经知道几种语言(最好是多种语言),那么直接理解任何一种语言的代码意图(特别是生产标准代码,不一定很复杂)都是很简单的。一种程序/ OO和一种功能)。 这通常是真的吗?所有编程语言是否都由类似的结构(如循环,条件语句和函数之间的消息传递)组成?是否存在典型的Java / Ruby / Haskell程序员无法理解的非深奥语言?所有语言都有共同的起源吗?

3
为什么在C样式语言中逻辑NOT运算符是“!”而不是“ ~~”?
对于二进制运算符,我们同时具有按位和逻辑运算符: & bitwise AND | bitwise OR && logical AND || logical OR 但是,NOT(一元运算符)的行为有所不同。有〜用于按位和!为逻辑。 我认识到与AND和OR相对,NOT是一元运算,但是我无法想到设计师为何选择偏离单数位和双数逻辑的原则,而是改用其他字符的原因。我猜您可能读错了它,就像总是返回操作数值的双按位运算一样。但这对我来说似乎不是一个真正的问题。 我有什么原因想念吗?
39 java  c#  c++  c 

2
您如何处理微服务架构中的共享概念?
我正在研究我正在开发的应用程序的体系结构模式,微服务方法似乎是一个不错的选择,但是我不确定如何处理服务之间的交互。 该应用程序主要处理用户,用户拥有的配置文件,照片以及代表照片中一对多配置文件的标签。可以想象有一些方法可以返回用户上传的照片,返回包含特定标记个人资料的照片,等等。 这是我设计基于微服务的体系结构的第一步,而我来自于启发式历史的整体式域模型。在那个世界中,控制器会将这些域对象缝合在一起,但是我很难理解如何以微服务方式工作。

4
UML类图符号:关联,聚合和组成之间的区别
我对UML类图的某些表示感到困惑。 我很确定我知道协会的意思。两个类的实例之间的任何关系(一个类的实例需要了解第二个类的实例才能执行其工作)都属于关联关系。关联通常意味着类A具有对类B实例的引用(字段)。 但是,我很难理解“ 聚合”和“ 组合”箭头的含义。我的部分困惑是由于遇到这些符号的不同定义引起的。 聚合符号的两个定义: 定义1:每当类A的实例持有类B的实例的集合(例如,列表,数组等)时,两个类之间的聚合符号就适用。 定义2:如果类A的实例持有对类B的实例的引用,并且实例B的依赖于实例A的生命周期,则两个类之间的聚合链接是合适的。含义:类A的实例被删除时,类B的实例也将被删除。类B的实例完全包含在类A的实例中,而不是类A的实例仅拥有对类A的引用的引用。 B类(常规协会)。 关于“组合”符号的含义以及它与“聚合”符号的区别,我不确定。 请澄清定义并帮助我理解。具体的例子将受到欢迎。

7
为什么“对象引用未设置为对象的实例”不能告诉我们哪个对象?
我们正在启动一个系统,有时我们会收到NullReferenceException消息中著名的异常Object reference not set to an instance of an object。 但是,在一种有将近20个对象的方法中,记录一个对象为空的日志实际上根本没有用。这就像告诉您,当您是研讨会的安全人员时,100位参加者中的一个人是恐怖分子。真的对您毫无用处。如果要检测哪个人是威胁性的人,则应该获取更多信息。 同样,如果要删除该错误,则需要知道哪个对象为空。 现在,有些事情困扰了我几个月,这就是: .NET为什么不给我们名称或对象引用的类型(至少为null)?。它不能从反射或任何其他来源理解类型吗? 另外,了解哪个对象为空的最佳实践是什么?我们是否应该始终在这些上下文中手动测试对象的可空性并记录结果?有没有更好的办法? 更新: 异常The system cannot find the file specified具有相同的性质。在附加到进程并进行调试之前,您无法找到哪个文件。我猜这些类型的异常会变得更聪明。如果.NET可以告诉我们c:\temp.txt doesn't exist.而不是一般性消息,会更好吗?作为开发人员,我投赞成票。

9
在什么时候对代码进行“建设性”批评会变得毫无用处?
我最近开始是一名初级开发人员。作为团队中经验最少的人之一,我也是一名女性,在男性主导的环境中工作时会遇到各种挑战。我最近遇到了麻烦,因为我觉得自己的工作受到了太多不必要的学问批评。让我给你举一个最近发生的事的例子。 团队负责人太忙了,无法推动我开设的某些分支机构,因此他直到周末才加入他们。我检查了我的邮件,但实际上并没有做任何工作的意思,发现我的两个分支已根据变量名被拒绝,使错误消息更具描述性,并将一些值移至配置文件。 我不认为在此基础上拒绝我的分支是没有用的。周末有很多人在工作,我从未说过我会工作。实际上,有些人可能因为我没有时间进行更改并重新提交而被阻止。我们正在开发一个对时间非常敏感的项目,在我看来,完全基于对客户透明的事物完全拒绝代码是没有帮助的。我可能是错的,但似乎我有时间时应在补丁类型提交中处理这类事情。 现在,我可以看到在某些环境中这是正常的。但是,批评似乎分布不均,这就是导致我遇到下一个问题的原因。这些问题中大多数的基础是由于我处于别人编写的代码库中并且试图做到微创的事实。我在模仿文件中其他地方使用的变量名。当我这样说时,我直言不讳地告诉我:“不要模仿别人,做对的事。” 这也许是我本该被告知的最没有用的东西。如果已经签入的代码是不可接受的,那么我该如何判断对与错呢?如果混淆的基础来自底层代码,我认为不是 在这种情况下,我感到非常单调和沮丧。我对遵循预期的标准有了更好的了解,例如,当我将一段代码重构为以前缺少的ADD错误检查时,我感到沮丧,我只是被告知我没有使错误足够详细(并且在此基础上分支被拒绝)。如果我从未添加过该怎么办?如果它是如此错误,它是如何进入代码的呢?这就是为什么我这么单调的原因:我经常遇到这个现有的有问题的代码,以至于我要么模仿要么重构。当我模仿它时,这是“错误的”,并且如果我重构它,我会因为没有做足够的事情而受到指责(如果我一直走下去,引入错误,等等)。再说一次,如果这是一个问题,我不明白任何代码如何进入代码库, 无论如何,我该如何处理?请记住,我在最上面说的是我是女人,并且我确定这些人在查看其他人的代码时通常不必担心礼节,但是老实说这对我不起作用,这使我的工作效率降低。我担心如果我和经理谈这件事,他会认为我无法处理环境等。

6
控制器层中应允许多少业务逻辑存在?
有时,我们的应用程序的控制器代码中表示了一些业务逻辑。通常,这是区分从模型调用什么方法和/或传递它们的参数的逻辑。 另一个示例是控制器中存在的一组实用程序功能,这些功能可以根据一组业务规则来格式化或清除从模型返回的数据。 这行得通,但我想知道它是否在灾难中调情。如果控制器和模型之间共享业务逻辑,则这两层将不再可分离,并且继承代码的人员可能会因与业务逻辑相关的代码位置不均匀而感到困惑。 我的问题是,控制器中应允许多少业务逻辑,以及在什么情况下(如果有)?

6
开发人员可以享受Microsoft产品的折扣吗?[关闭]
如果我将开始专注于.NET平台并成为个体经营者,那么我可能希望拥有一些Windows 7,Windows Server 2008,Visual Studio 2010许可(仅用于开发环境和测试),然后再购买一些许可用于生产环境(Windows Server 2008 Web),并在可用新版本时进行升级。这最终将花费大量金钱。 在这种情况下,我可以从Microsoft获得任何捆绑优惠吗?而要获得该折扣有什么要求?

8
我们是否应该删除数据库中的数据?
我是数据库新手,正在尝试了解基本概念。我已经学会了如何删除数据库中的数据。但是我的一个朋友告诉我,永远不要删除数据库中的数据。相反,当不再需要它时,最好将其标记或标记为“未使用”。 真的吗?如果是这样,那么像IBM这样的大公司将如何处理其一百年或更长时间的数据?

5
在函数式编程的背景下谈论贫血模型仍然有效吗?
DDD的大多数战术设计模式都属于面向对象的范式,而贫乏的模型则描述了将所有业务逻辑都置于服务而非对象中的情况,从而使它们成为一种DTO。换句话说,贫血模型是程序样式的同义词,不建议用于复杂模型。 我在纯函数式编程方面不是很有经验,但是我想知道DDD如何适合FP范例以及在这种情况下是否仍然存在“贫血模型”一词。 更新:纽崔里出版了有关该主题的书籍和视频。

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.