Questions tagged «resources»

内存,文件,网络连接,I / O设备和其他必须先获取然后在程序中释放的对象。请不要使用此标签来询问有关教育资源的问题,例如教程,书籍,网站或课程。这些是程序员的题外话。

9
编程中的内存管理是否已成为无关紧要的问题?
背景信息 我重新访问了一个我很久没去过的古老(但很棒)的网站-Alioth Language Shootout(http://benchmarksgame.alioth.debian.org/)。 几年前,我开始使用C / C ++进行编程,但是由于参与的项目中的语言限制,从那时起,我几乎一直只在Java中工作。我不记得这些数字,而是想大致了解一下Java的状况。在资源使用方面与C / C ++背道而驰。 该执行时间仍然比较好,与Java在表现最差的4倍比C / C ++慢,但平均约(或以下)2倍。由于Java本身实现的性质,这不足为奇,并且它的性能时间实际上比我预期的要短。 真正的难题是内存分配 -最糟糕的是,Java分配了: 内存比C高52倍 比C ++高25倍。 52倍的内存...绝对令人讨厌,对吗?...还是?内存现在相对便宜。 问题: 如果我们不是在对工作内存(即嵌入式系统等)有严格限制的目标平台上说话,那么今天选择通用语言时是否应该考虑内存使用情况? 我之所以提出这样的要求,部分原因是因为我正在考虑迁移到Scala作为我的主要语言。我非常喜欢它的功能方面,但是从内存上看,它比Java还要昂贵。但是,由于内存似乎正在以每年更快,更便宜和更丰富的方式(似乎越来越难找到没有至少4GB DDR3 RAM的家用笔记本电脑),因此可以不争辩说资源管理正在变得越来越多与(可能需要昂贵的实现方式)高级语言功能无关,后者可以更快地构建更具可读性的解决方案?

2
做REST的正确方法是什么?
如今,每个人都在进行SOA,即使有些人实际上并不了解全部内容。所以他们做错了。以此为类比,我知道REST是什么(或者至少我认为我是这样做的),并且想要做一些。但是我想做对。 所以我的问题是做REST的正确方法是什么?

14
您观看过的开发人员中最鼓舞人心的演讲是什么?[关闭]
请直接链接到它。 必填: 仍在线可用(请直接链接到它) 必须是现任或前任开发人员的演讲 演讲者的受欢迎程度无关紧要 目标受众应该是其他开发人员 不需要主题是编程(任务)。我正在寻找的是一般在P.SE而不是SO中开发的主题。 解释它为什么令人鼓舞 (请以英语为母语的人,编辑我的问题)

5
Java / C#为什么不能实现RAII?
问题:Java / C#为什么不能实现RAII? 澄清:我知道垃圾收集器不是确定性的。因此,使用当前的语言功能,不可能在范围出口处自动调用对象的Dispose()方法。但是,可以添加这种确定性功能吗? 我的理解: 我认为RAI​​I的实现必须满足两个要求: 1.资源的生存期必须绑定到范围。 2.隐式的。必须在没有程序员明确声明的情况下释放资源。类似于垃圾回收器无需显式语句即可释放内存。“隐含性”仅需要在使用该类时发生。当然,类库创建者必须显式实现析构函数或Dispose()方法。 Java / C#满足点1。在C#中,可以将实现IDisposable的资源绑定到“使用”范围: void test() { using(Resource r = new Resource()) { r.foo(); }//resource released on scope exit } 这不满足第2点。程序员必须将对象明确绑定到特殊的“使用”范围。程序员可能(并且确实)忘记将资源显式绑定到作用域,从而造成泄漏。 实际上,“使用”块已由编译器转换为try-finally-dispose()代码。它具有与try-finally-dispose()模式相同的显式性质。如果没有隐式发布,则作用域的钩子就是语法糖。 void test() { //Programmer forgot (or was not aware of the need) to explicitly //bind Resource to a scope. Resource r …

12
在哪里可以获得免费的公共原始数据?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 在Web开发中,mashup是使用或组合来自两个或多个来源的数据,表示或功能以创建新服务的网页或应用程序。 有许多获取数据(原始信息)的来源。政府就是很好的例子。 但是,其中许多成本很高,而且许可复杂。例如,瑞典的SMHI出售温度数据,而我们的邻国挪威免费提供。 有人会说您正在构建什么样的应用程序,需要什么数据?我会说给我一些有趣的数据,我将对其进行很好的混搭。例如,我可以将其绘制在Google地图上。 所以问题是:在哪里可以获得免费数据? 注意:我对使用网络爬虫的数据挖掘不感兴趣! 请与我分享您的资源。
26 resources 

3
存在哪些替代数字食谱的现代方法?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 过去,《数字食谱》一书被认为是数值算法的黄金标准参考书。最早的Fortran版本紧随其后的是C,C ++和其他版本,从而使它更新了。通过这些,它为当今的最新算法提供了参考代码。 较早的版本现在可以在线免费获得。 不幸的是,我认为它现在仅作为一个历史性的书集才最有用。在我看来,“软件工程”实践已经过时了,实际内容并没有与文献同步。 现代程序员应该看什么类似的全面而平易近人的参考书呢?

4
为什么通常将字符串资源保留在代码外部而不是代码内部?
通常,在许多平台上,我都将字符串资源写入.resx或.xml文件,然后使用某种依赖于平台的方法来获取它们。 也就是说,在iOS上,我通过NSBundle.MainBundle和Context.Resources在Android上使用来获取它们。 这种方法的优点是什么,为什么不直接在代码中访问它,例如: 在跨平台项目中,任何平台都可以直接访问它,而无需集成。 在构建过程中,无需担心资源是否构建良好。 编码人员可以使用多种语言处理功能 长话短说:以这种方式构造字符串资源的原因是什么? [编辑] 假设我的文件是其他项目之间共享的“核心”项目的一部分。(考虑一下PCL跨平台项目文件结构。) 并假设我的文件与.resx / .xml文件完全相似,看起来像这样(我不是xml专业人士,对不起!):参数Paramètres 因此,这基本上是一个自定义xml,您在其中指向键/语言以获取正确的字符串。 该文件将成为应用程序的一部分,就像您在应用程序内添加任何可访问文件一样,并且系统将访问使用PCL编码的字符串资源。这会增加应用程序的开销吗?

4
如何确定项目所需的程序员数量
您如何知道一个特定项目需要多少个程序员才能成功? 我所服务的公司为客户公司履行订单。我们编写了一个内部仓库管理系统,该系统处理基于位置的库存管理,订单处理,提货单生成,开发票,货运审核和报告(可能有50个报告)。它还具有条形码扫描功能和客户端门户以及许多其他较小的功能。它还包括一个完整的员工时钟。它与Quickbooks,UPS和FedEx集成。它处理至少50个客户端的工作,这些客户端的功能略有不同。例如,我们从客户发送的文件中导入订单,但是每个客户发送不同的文件格式(csv,excel,平面文件和Web服务),因此我们有十几种订单转换方法设置。出口是同一回事。 该项目非常复杂,并且每天都有超过25万行代码的代码在不断增加。这大约是250,000行VB.NET代码,6,200行Ruby代码以及大约5,000行PHP。它还具有一个包含约200个表的MySQL数据库。 由于需求的不断变化和数十个客户的不同需求,代码本身的质量从极差的代码到相对较好的代码都有很大的不同。 当前,该项目只有一个程序员-我自己。我目前还为75人左右的公司提供所有产品支持。这包括故障排除和设置新客户端以及所需的任何新功能。另外,我们正在尝试将整个内容重写为100%基于Ruby on Rails。我们希望在明年左右将整个系统推向市场,以供其他公司使用。 目前,我们只有一名程序员,但我认为这还不够。对于这个规模的项目应该有多少个程序员,或者我们应该如何确定该问题的答案,没有人有任何建议吗?特别是考虑到管理层希望产品在明年之前达到商业质量?


4
如果我们产生datareader行而不读取所有记录,数据库连接会关闭吗?
在了解yield关键字的工作原理的同时,我遇到了StackOverflow 上的link1和link2,它主张yield return在DataReader 上进行迭代时使用它,它也适合我的需求。但是,这使我感到奇怪,如果发生如下情况,如果我yield return按如下所示使用,并且如果我不遍历整个DataReader,那么数据库连接会永远保持打开状态吗? IEnumerable<IDataRecord> GetRecords() { SqlConnection myConnection = new SqlConnection(@"..."); SqlCommand myCommand = new SqlCommand(@"...", myConnection); myCommand.CommandType = System.Data.CommandType.Text; myConnection.Open(); myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection); try { while (myReader.Read()) { yield return myReader; } } finally { myReader.Close(); } } void AnotherMethod() { foreach(var rec in GetRecords()) { i++; …
15 c#  database  .net  resources 

5
如何组织本地化字符串资源?
我们正在开发一个包含许多小程序包的大型应用程序。每个软件包都有自己的一组资源文件以进行本地化。 组织和命名本地化字符串的最佳方法是什么? 到目前为止,这是我的想法: 处理重复项 同一文本(例如“邮政编码”)在给定的程序包中可能多次出现。编程本能(DRY)告诉我创建一个由所有实例共享的单个字符串资源。 再者,翻译者可能希望在某些地方选择长译本(“ Postleitzahl”),在空间较小的地方选择短译本(“ PLZ”)。或者,我们可能决定在某些情况下添加冒号(“邮政编码:”),而在其他情况下则不添加。或者我们可能在某些地方要求使用不同的大写字母(“邮政编码”)。所有这些参数都指向每种用法创建一个资源,即使它们的内容相同。 命名 如果我们希望消除重复,则可以按内容命名资源,也许可以通过前缀提示使用的种类。因此,我们可能有labelOK= “ OK”,messageFileTooLarge= “文件超出了最大文件大小。” 和labelZipCode= “邮政编码”。 按内容命名具有自然处理格式参数的优势:资源messageFileHas_0_MBWhileMaximumIs_1_MB显然采用两个格式参数,即实际文件大小和最大文件大小。 但是,如果我们允许重复,则仅按内容命名是没有意义的。为了获得唯一的资源名称,我们必须以某种方式在资源名称中包括使用位置。这适用于图形控件,尽管标识符往往有点长:fileSelectionConfirmationButtonText= “ OK”,customerDetailsTableColumnZipCode= “邮政编码”。但是,对于非可视代码文件,它会变得更加困难。如果您不知道字符串的最终显示位置,该如何命名字符串的特定用法?通过代码文件和函数名称?对我来说似乎很笨拙。 总而言之,我倾向于允许重复,但是我一直在努力寻找一个支持此目的的一致命名方案。 编辑:这个问题有两个方面:如何组织资源(DRY与重复项)以及如何命名它们。到目前为止,答案集中在第一方面。非常感谢您提供有关命名约定的反馈!

2
Code Complete的哪些部分没有经受住时间的考验?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我在看书架上的Code Complete,心想:“在“神话般的月”之外,这可能是少数经受时间考验的大众市场软件工程书籍之一。因此,我正在考虑重新阅读它。 我很好奇-最近有没有其他人再次看过它?我是这样,您看到他有什么不对吗? 这不是攻击,也不是要求书评-我对多年来改变了哪些观念更感兴趣。 而且,请不要发表任何评论,“ Demarco / Spewak / Zachman经受了时间的考验……”​​我对Code Complete尤其感兴趣,因为它涵盖了广泛的领域,并且在该领域具有广泛的影响力。
14 coding  resources 

2
在有效负载中包含资源ID或从URI派生
在设计API时,我们遇到了一个问题,即PUT有效负载是否应包含要更新的资源的ID。 这是我们目前拥有的: PUT /users/123 Payload: {name: "Adrian"} 我们的路由代码从URI中提取ID,然后继续进行更新。 API的第一批用户在质疑为什么我们在有效负载中不允许使用ID: PUT /users/123 Payload: {id: 123, name: "Adrian"} 我们不允许这样做的原因是因为ID在有效负载和URI中重复。 再考虑一下,我们正在将资源耦合到URI。 如果URI没有ID,则需要修改有效负载: PUT /no/id/here Payload: {name: "Adrian"} < What user??? 有什么理由不这样做吗?
13 rest  resources 

2
Java 8 Stream实例是否应该始终是close()'?
对Javadoc的看法: 流具有BaseStream.close()方法并实现AutoCloseable,但实际上几乎所有流实例在使用后实际上都不需要关闭。通常,只有源是IO通道的流(例如,由Files.lines(Path,Charset)返回的流)才需要关闭。大多数流都由集合,数组或生成函数支持,不需要特殊的资源管理。(如果流确实需要关闭,则可以在try-with-resources语句中将其声明为资源。) “几乎所有”和“通常”是模糊的-如果您正在编写库,并且要从该Stream的用户中提取Stream的源,那么无论如何,您总是必须问自己一个问题-“我应该关闭这个?” IO支持的流需要关闭,因为终端操作不会调用close,所以有效地我总是必须记住/记录我的Stream的来源,或者我总是必须这样close做。 我猜想,最明智的选择是不从方法中返回Streams或接受Stream参数,这是JDK团队中某些人所认同的观点。考虑到Streams的实用性,我发现这过于局限。 关闭Streams的最佳做法是什么?我在网上寻找了一些JDK人员的答案,这些人员通常都积极参与类似的社区问题,但是没有发现任何相关的内容。
12 java  resources  java8 

5
如何将我的思想从C ++迁移到C#
我是一位经验丰富的C ++开发人员,我对语言非常了解,并且已经大量使用了其某些特定功能。另外,我了解OOD的原理和设计模式。我现在正在学习C#,但是我无法停止无法摆脱C ++心态的感觉。我将自己与C ++的优势紧密联系在一起,以致于我无法缺少某些功能。而且我在C#中找不到任何好的解决方法或替代方法。 有什么好的做法,设计模式,成语是在C#不同于C ++的角度可以建议?如何获得一个完美的C ++设计,而不是C#中的笨拙? 具体来说,我找不到一种很好的C#方式来处理(最近的示例): 控制需要确定性清除的资源(例如文件)的生命周期。这很容易using掌握,但是当资源的所有权正在转移时[...在线程之间]如何正确使用它呢?在C ++中,我只使用共享指针,并让它在适当的时候处理“垃圾回收”。 不断为特定泛型的重写功能而苦苦挣扎(我喜欢C ++中的部分模板专门化之类的东西)。我应该放弃使用C#进行通用编程的任何尝试吗?也许泛型是有目的的,除了特定领域的问题外,使用C并不是C#风格? 类似宏的功能。虽然通常是个坏主意,但对于某些问题领域,没有其他解决方法(例如,对语句的条件评估,例如只应运往Debug版本的日志)。没有它们意味着我需要放置更多if (condition) {...}样板,并且在触发副作用方面仍然不尽相同。

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.