软件工程

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

1
使用REST API验证本地移动应用
我即将开始一个新项目,该项目针对所有主要移动平台(iOS,Android,Windows)的移动应用程序。这将是一个客户端-服务器架构。 该应用程序具有信息性和交易性。对于交易而言,他们必须先拥有一个帐户并登录才能进行交易。我是移动开发的新手,所以我不知道在这些平台上如何完成身份验证部分。客户端将通过REST API与服务器通信。当然会使用HTTPS。 我尚未决定是否要让用户在打开应用程序时登录,还是仅在执行交易时登录。 我有以下问题: 1)像Facebook应用程序一样,您只有在首次打开该应用程序时才输入凭据。之后,您每次打开应用程序都会自动登录。如何做到这一点?只是简单地通过将凭据加密并存储在设备上并在每次应用启动时发送凭据即可? 2)我是否需要针对对REST API进行的每个(交易)请求对用户进行身份验证,或使用基于令牌的方法? 请随时提出其他验证方式。 谢谢!

4
基于TimeZone存储DateTime的最佳实践
开发一个Web应用程序,该应用程序应允许用户根据其TimeZone安排约会。我将用户计划的日期时间作为服务器日期时间存储到数据库字段中。在显示计划信息时,将从数据库中检索值并转换为用户timzone。在代码库中进行处理我正在根据用户时区转换DateTime。请建议这是最佳做法还是存在任何简便方法?

3
将函数类型和方法名称放在C中不同行的原因
我刚开始在一家公司工作,在我的第一次代码审阅中,样式注释之一是返回类型和方法名称应该在不同的行上。例如这个 void foo() { } 应该是这个 void foo() { } 我一直使用第一样式,我想知道除了个人喜好之外,还有其他原因为什么人们使用第二样式吗?我认为第一个完全不会影响可读性。在C程序员和大型开源项目中,一种比另一种更普遍吗?
16 c  coding-style 

2
为什么xml注释不能包含两个连字符
当XmlParser报告--xml注释中不允许使用两个连字符()时,我在配置文件的xml注释中应用了markdown 注释。 检查XML规范,出于与SGML解析器兼容的原因,似乎xml注释未设计为包含两个连字符。 为什么SGML解析器在注释中不允许双连字符?
16 xml  sgml 


6
在调用方中验证输入参数:代码重复?
验证函数输入参数的最佳位置在哪里:在调用方中还是在函数本身中? 因为我想改善自己的编码风格,所以我尝试找到此问题的最佳实践或一些规则。何时何地更好。 在我以前的项目中,我们曾经检查并处理函数中的每个输入参数(例如,如果它不为null)。现在,我在这里已经在一些答案以及《实用程序员》一书中读到,输入参数的验证是调用者的责任。 因此,这意味着我应该在调用函数之前验证输入参数。调用该函数的任何地方。这就提出了一个问题:不是在调用函数的所有地方都产生了检查条件的重复吗? 我对空条件不感兴趣,但对任何输入变量的验证(sqrt函数的负值,被零除,状态和邮政编码的错误组合或其他任何东西)都不感兴趣。 有一些规则如何决定在哪里检查输入条件? 我在考虑一些争论: 当无效变量的处理方式可能有所不同时,最好在调用方进行验证(例如,sqrt()函数-在某些情况下,我可能想使用复数,因此我在调用方中处理条件) 当每个调用者的检查条件都相同时,最好在函数内部进行检查,以避免重复 调用方中输入参数的验证仅在使用此参数调用许多函数之前进行。因此,在每个函数中验证参数无效 正确的解决方案取决于具体情况 我希望这个问题不能与其他任何问题重复,我搜索了这个问题,发现了类似的问题,但是他们没有确切提及此案。

2
什么是声明性UI?
我一直在关于框架的博客中看到这个术语。虽然我理解了声明式和命令式编程之间的区别,但这如何专门应用于UI?为什么似乎有一个特殊术语?这些是不同的“事物”吗?如果是这样,声明性UI的替代方案是什么?为什么要使用它?
16 frameworks  ui 


4
注入依赖关系应该在ctor中还是在每个方法中完成?
考虑: public class CtorInjectionExample { public CtorInjectionExample(ISomeRepository SomeRepositoryIn, IOtherRepository OtherRepositoryIn) { this._someRepository = SomeRepositoryIn; this._otherRepository = OtherRepositoryIn; } public void SomeMethod() { //use this._someRepository } public void OtherMethod() { //use this._otherRepository } } 反对: public class MethodInjectionExample { public MethodInjectionExample() { } public void SomeMethod(ISomeRepository SomeRepositoryIn) { //use SomeRepositoryIn } …

5
DevOps和软件配置管理之间的区别
开发运营和软件配置管理有什么区别? 对我来说,只要DevOps和软件配置管理都专注于: 建立开发基础架构 -负责版本控制,构建管理,部署管理,依赖项管理,持续集成和交付等。 使用最佳实践来组织开发人员环境。 开发过程的质量保证 -收集开发有效性的度量标准,消除开发过程的瓶颈(运行单元测试,评估单元测试覆盖率,运行检查等) 基础架构管理 -目标平台及其详细信息。 发布管理 -确保发布已及时交付给客户。 也许我想念什么?此链接显示以“软件配置管理”一词为准。但是,您仍然希望使用什么单词组合来描述所列的活动范围:开发操作或软件配置管理?

2
IETF与W3C有何不同?
我已经关注这些组织(机构,实体等)近三个月了,他们两个都声称他们正在努力使互联网变得更美好。他们正在以RFC(对于IETF)和Recommendation(对于W3C)的名义创建文档,以指导其他人。 另一个名为WHATWG的组织已经开始了另一种开发Web的道路,另一个以Internet Society为题的社区正在行动。 我不知道,为什么有很多组织?我的意思是,他们不能简单地合并吗?他们真的不同吗?怎么样?

19
程序员需要良好的记忆力吗?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 似乎必须记住各种语法才能进行编程。如果没有足够的记忆力来记住名字,学习编程会更困难吗?
16 learning 

7
为什么SSL / TLS没有内置在现代操作系统中?
大多数主要操作系统都内置了许多构成Internet基础结构的基本网络协议。例如,TCP,UDP和DNS都内置在Linux,UNIX和Windows中,并可以通过低级系统API供程序员使用。 但是当涉及到SSL或TLS时,必须转向第三方库,例如OpenSSL或Mozilla NSS。 SSL是一个相对较旧的协议,它基本上是与TCP / IP一样普遍的行业标准,那么为什么它不内置在大多数操作系统中?

7
长期规划和敏捷?
我的团队最近完成了为我们的工作制定近一年计划的过程。我们将该计划分为三个阶段。每个阶段将包括几次启动。 从您的敏捷角度来看,我想知道这是错误的吗?我认为这不是一个坏主意,因为除了前几个步骤,我们没有花太多时间来设计任何东西。我们有可能改变方向。同时,很高兴我们不要在短期内采取行动。

11
我应该如何管理具有不同技能水平的团队?
我将与我的一些朋友一起进行软件项目,并且被任命为技术主管。这些家伙根本都不是一个糟糕的程序员,但我确实比他们有更多的经验。我需要能够在团队中的每个人之间分配工作,同时还要确保我们不会互相踩脚。他们满足了使该项目成功所需的相对较高的质量和可伸缩性标准,而无需我审查他们所做的一切。 如何避免微管理的同时保持标准?是否足以制作一些图表,安排一些代码审阅并相信我将能够修复可能会破坏的所有内容,还是应该走TDD路线并编写明确的测试以使团队满意?

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.