软件工程

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

8
保护开发人员的敏感数据
我运行的企业应用程序同时使用MySQL和MongoDB数据存储。我的开发团队都具有对计算机的SSH访问权限,以便执行应用程序发布,维护等。 最近,当用户开始在应用程序上存储高度敏感的数据时,我对企业产生了风险,因为开发人员可以间接访问此数据,这引起了很大的麻烦,因此我现在受命保护数据,以防止数据被盗用。无障碍。 在我看来,这是不可能的,因为如果应用程序可以访问数据库,那么有权访问计算机和应用程序源的开发人员将始终能够访问数据。

9
您如何跟踪您和您的团队日常工作?
我在努力跟踪自己和团队中每一个人每天的实际工作。每周检查完已完成的卡片后,我会得到一个全面的了解,并且站立式会有所帮助,但是我觉得我对团队的日常工作没有很好的处理能力。卡片将连续数天保持运行状态,而每天的站立状态不会有任何更新,而且某些工程师是我的团队中沟通能力最弱的。 我已经考虑过实施某种日常记录,每个人都可以填写(通过邮件列表或共享的Google文档),但这似乎很繁琐且手动。 监视GitHub的活动可以很好地完成工作,但每天发送多少封电子邮件可能会使您有些不知所措。我曾经考虑过要为其构建摘要系统,但没有时间可以节省时间。 您实施了哪些策略以保持团队日常工作的最高级,从而可以评估“进行中”任务的工作量?

6
为什么C#是用不同于Java的“ new”和“ virtual + override”关键字构成的?
在Java中没有virtual,new,override对于方法定义的关键字。因此,方法的工作很容易理解。因为如果DerivedClass扩展BaseClass的和具有相同的名称和它们的签名的方法BaseClass的那么压倒一切将发生在运行时多态性(提供的方法是不是static)。 BaseClass bcdc = new DerivedClass(); bcdc.doSomething() // will invoke DerivedClass's doSomething method. 现在来到C#时,可能会有太多的困惑,并且很难理解newor virtual+derive或new +虚拟重写的工作方式。 我不明白为什么在世界上为什么要在我的方法中添加一个DerivedClass具有相同名称和签名的方法,BaseClass并定义一个新的行为,但是在运行时多态时,BaseClass将调用该方法!(这不是覆盖,但在逻辑上应该覆盖)。 如果virtual + override逻辑实现是正确的,则程序员必须考虑在编码时应允许用户重写的方法。里面有一些有利条件(让我们现在不去那里)。 那么,为什么在C#中有如此大的空间用于非逻辑推理和混乱。所以,我可以重新塑造我的问题是在现实世界方面,我应该考虑使用virtual + override替代new,还可以使用的new,而不是virtual + override? 在获得了特别是Omar的一些非常好的回答之后,我发现C#设计人员更加强调程序员在创建方法之前应该思考的问题,这种方法很好并且可以处理Java中的一些菜鸟错误。 现在我想到一个问题。就像在Java中,如果我有类似的代码 Vehicle vehicle = new Car(); vehicle.accelerate(); 后来我提出新的类SpaceShip衍生Vehicle。然后我想将所有内容更改car为一个SpaceShip对象,而我只需要更改一行代码 Vehicle vehicle = new SpaceShip(); vehicle.accelerate(); 这不会在任何代码点破坏我的任何逻辑。 但是在C#的情况下,如果SpaceShip不覆盖Vehicle类accelerate并使用,new则代码的逻辑将被破坏。这不是不利条件吗?

5
除了能够或多或少地自由更改URL结构的能力之外,HATEOAS还提供了哪些可发现性和去耦性?
最近,我一直在阅读有关作为应用程序状态引擎(HATEOAS)的Hypermedia的信息,据称该约束使Web API成为“真正的RESTful”。它归结为基本上包括链接,这些链接包含对从当前状态可能进行的转换的每个响应。 让我根据自己的理解来说明HATEOAS是什么-如果错过任何事情,请纠正我。 / GET: { "_links": { "child": [ { "href": "http://myapi.com/articles", "title": "articles" } ] } } /articles?contains=HATEOAS GET: { "_items": [ { "uri": "http://myapi.com/articles/0", "title": "Why Should I Care About HATEOAS?" }, { "uri": "http://myapi.com/articles/1", "title": "HATEOAS: Problem or Solution?" } ], "_links": { "self": { "href": …
61 rest  http  hateoas 

9
没有IDE,如何调试?[关闭]
每当我寻找一个IDE时(目前我正在修补Go),我都会发现很多人在推荐Vi,Emacs,Notepad ++等。 我从未在IDE之外进行任何开发;我想我已经被宠坏了。在没有IDE的情况下如何调试?您是否仅限于记录?
61 ide  debugging 

14
禁止或控制“隐藏的IT ...”谁应该编写和维护临时软件应用程序?
大型公司通常会遇到这样的问题:由于缺少人员和金钱,不可能编写员工想要的所有程序(以节省时间和优化流程)。 然后,将由具有(至少一些)编码经验的人(或由便宜的学生/实习生...)创建隐藏程序。在某些情况下,这些应用程序将变得越来越重要,并从一个用户传播到整个部门。 还有一个关键点:谁来维护应用程序,添加新功能……?这个程序很关键。这是必需的。但是实习生已经离开了公司。没有人知道它是如何工作的。您只有一堆资源和一些文档。 尝试控制或禁止在IT部门之外临时进行应用程序开发是否有意义(Excel宏等次要内容除外)?

14
MVC不是OOP吗?
OOP背后的主要思想是统一单个实体(对象)中的数据和行为。在过程编程中,有数据和修改数据的单独算法。 在“模型-视图-控制器”模式中,数据和逻辑/算法分别放置在不同的实体中,分别是模型和控制器。在等效的OOP方法中,模型和控制器不应该放在同一逻辑实体中吗?

7
我是公司的.1x程序员。我如何才能最好地做出贡献?[关闭]
我在一家刚成立的五人创业公司工作。我们拥有机器学习博士学位,曾经是RSpec核心团队的成员,并且是为OS X编译Git二进制文件的人。创始人拥有博士学位,曾是一家价值数十亿美元的公司的首席技术官,然后离开了一家(成功的)创业公司,现在离开了创办这家公司。我们也可能会得到一个拥有数学博士学位的人。 啊,然后是我,大学辍学实习生。我认为我很聪明,而且我会不停地阅读,但是我和我的同事之间的经验,技能和知识的差异令人叹为观止。 因此,请专心于他们的工作:您有一个聪明的年轻实习生,他需要学习很多东西,但至少很有活力。会有什么烦人的事?您希望在此刻摆脱他的用处是什么?如果发生了什么会令人惊喜呢?

16
如何阻止开发规范在中间开发阶段发生变化?
问题:似乎我参与了几乎所有开发工作,无论在开始开发之前花了多少时间进行计划,在项目中期或项目结束时总是需要进行大量更改。这些有时是重大变化,需要大量重新开发。 我不为付钱的客户工作,这是内部开发网站上的内部开发团队。因此,这不是我可以为此付费的费用。最终,我们必须尝试按时完成任务。 问题:你们发现哪些最佳方法可以最小化并防止规格更改在开发中途或开发后出现?


8
在团队项目中避免“聪明人”综合症
在项目开始时就犯下了许多不良习惯,我认识到了这些不良习惯并与所有人进行了斗争。由于我没有选择战斗,我的老板现在认为我口中的任何事情都是一个过于复杂的反应,并花费大量时间亲自为自己辩护,而不是寻找项目的最大利益。 我该如何向正确的方向推动团队,而又不等四个月让大家一直试图达成的共识,或者使我在团队中的声誉变得难以理解?
61 teamwork 

6
这是构建数据库架构的一种荒谬方法,还是我完全缺少了什么?
我已经对关系数据库做了很多工作,并且认为我对良好模式设计的基本概念非常了解。我最近的任务是接管一个由高薪顾问设计数据库的项目。请让我知道我的直觉是否是“ WTF ??!?” -是必要的,还是这个人真是个天才,以至于他超出了我的领域? 有问题的数据库是一个内部应用程序,用于输入员工的请求。仅查看其中的一小部分,您就可以获得有关用户的信息以及有关所提出的请求的信息。我会这样设计: 用户表: UserID (primary Key, indexed, no dupes) FirstName LastName Department 要求表 RequestID (primary Key, indexed, no dupes) <...> various data fields containing request details UserID -- foreign key associated with User table 简单吧? 顾问是这样设计的(带有示例数据): 用户表 UserID FirstName LastName 234 John Doe 516 Jane Doe 123 …
61 database  sql  schema 


11
作为程序员赚取额外的现金[关闭]
我是一名全职程序员,在我居住的国家/地区有一份高薪的工作,但是目前我可以用一点点额外的钱做(妻子(着新厨房等等)。 我有兴趣在业余时间从事一些小型项目。我对编写恶意软件或获取丰富的快速方案不感兴趣。我已经签出了一些网站,程序员都是自由职业者网站,但是这些项目的收入都非常低,或者人们想要创建恶意软件(或两者都创建)。 有没有我可能错过的优质自由职业网站? 还有其他方法可以找到小型自由职业者项目吗?
61 project 

12
为什么函数式编程在业界并不流行?现在流行吗?[关闭]
在我上大学的四年中,我们一直在使用多种函数式编程语言来使用许多函数式编程。但是我也使用了很多面向对象的程序设计,实际上,在做自己的小型项目来准备我的第一份工作时,我更多地使用了面向对象的语言。但是我经常希望在执行这些项目时使用功能性编程语言进行编码。 但是,在寻找工作时,很少会遇到需要功能编程语言知识的工作。 为什么函数式编程语言在业界没有得到更多使用?如今,有关函数式编程语言的新闻很多,所以我想知道函数式编程现在是否在行业中流行起来?

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.