问题标签 [forward-compatibility]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
serialization - 您为确保应用程序未来版本的数据兼容性做了哪些前期工程?
我正在对一个项目进行一些重要的重构和功能添加,并且刚刚破坏了与我的数据的向后兼容性。我通过从我用来存放数据的类中创建一堆子类来做到这一点,并且加载旧的序列化对象不再起作用..
您采用了什么样的预先设计或策略来避免这些类型的情况?我应该完全忘记序列化吗?它似乎特别容易出现这类问题。
c++ - 您今天如何使用 C++11?
这是一个分两部分的问题,第一部分是现在最重要和最关心的问题:
- 您是否在关注 C++11 的设计和演变?您关注哪些博客、新闻组、委员会文件和其他资源?
- 即使您没有使用任何新功能,它们对您当前的选择有何影响?
- 您现在正在使用哪些新功能,无论是在生产中还是在其他方面?
第二部分是后续,关于新标准一旦定稿:
- 您希望立即使用它吗?除了前面问题中列出的内容之外,您在为 C++11 做哪些准备工作?
- 显然,编译器支持必须存在,但仍然需要考虑同事、辅助工具和其他因素。什么对你的收养影响最大?
编辑:原版实在是太有争议了;但是,我仍然对潜在问题感兴趣,因此我尝试对其进行清理并希望使其可以接受。这似乎比复制要好得多——即使一些答案回应了争论的语气,它们仍然适用于他们解决问题的范围,所有答案都是社区财产,也需要酌情清理。
iphone - iPhone 屏幕分辨率。160 vs 163 vs. 未来
我正在尝试制作一个以真实世界单位显示某些内容的应用程序。它不是一个标尺应用程序,但它需要那种精度。
看起来 iPhone 和 iPod touch 已经有了不同的屏幕分辨率(分别为 160 和 163)
我发现这个 Calculating pixel size on an iPhone and this iPhone screen resolution changes in the future hardware and this http://forums.macrumors.com/showthread.php?t=350612
从我的阅读看来,我可以将 320 * 480 的屏幕空间视为 2 * 3.5 英寸,忽略 iPod 和 iPhone 分辨率之间的差异,这似乎只影响图像的清晰度,而不是大小。
我的问题是:这是真的吗?在代码中确定这个(320“像素”== 2英寸)的任何方法,所以如果它改变我不必更新。
python - 我应该使用什么版本的 Python 来开发 Web 应用程序?
目前我的系统上安装了 Python 3.1.1,我的服务器上安装了相同的版本,WSGI 3.0 在 Apache 2.2 上运行。
我想继续使用 Python 3.1,但我发现很多库/框架还不支持它,即 Django、Pylons、MySQLdb 等。
我还检查了我在朋友服务器上的一个帐户,它正在运行 Python 2.3.4 ...
我想编写一种可以扩展为 CMS 的博客/论坛类型的应用程序,并最终为其编写相关的桌面应用程序,作为一种长期的宠物项目。
我想尽可能使用最新版本的 Python 以获得最佳安全性和与未来桌面应用程序的最高一致性,同时仍保持良好的可移植性,并支持我将使用的大多数框架和库。
但我迷失了我应该选择哪一个。似乎 2.4 具有最大的可移植性,但它有点过时了,我不想最终使用一堆无法编译的 2.4 后特性,并且不得不用更混乱的代码重新编写补偿它。2.6 会更好,但似乎很多库仍在移植到它,而 3.1 将是最好的,因为它消除了语言中的许多繁琐。
我想强调的一件事是,如果我选择旧版本的 Python,我会很高兴知道我会错过什么。例如,如果我需要我的应用程序在我朋友服务器上的旧 Python 2.3.4 帐户上运行,我会缺少哪些新版本中存在的库/功能?我肯定会遇到哪些问题让我希望我使用的是 Python 2.6 或 3.1?这些功能中的哪些可以通过__future__
导入获得?
那么,最好的方向是什么?我应该只使用 2.6 并处理任何问题吗?我应该选择 2.4 以最大限度地提高将其分发到共享托管环境的能力吗?或者我应该直接跳到 3.1 并有一个稍微残废的应用程序,直到像 MySQLdb 这样的库赶上来?
c++ - 切换到 C++11
我们将开始一个使用 C++ 作为编程语言的长期项目。
我读到 C++0x 将在 2011 年问世,所以他们称之为 C++11。
当 C++11 出现时,我们仍将开发该项目,并且想知道现在是否可以使用新 C++ 标准的任何特性,以便能够:
- 代码比旧的 C++ 和
- 新标准到来时轻松切换?
android - 处理不需要 SD 卡的 Android 设备
HTC Incredible 和 Archos 5 IT 等一些 Android 设备似乎不需要 SD 卡进行存储。
读取和写入文件到“外部”存储(到目前为止是 SD 卡)的应用程序应该如何以尽可能向后和向前兼容的方式处理这个问题?
编辑:获取更多关于使用板载内存作为存储设备的报告,例如 Pandigital Novel,其中使用 SD 卡的 IO 操作失败。有任何想法吗?是权限问题吗?
java - 如何在使用不同 jdk 版本的两方之间实现兼容性
我的项目是在 1.4.2 JDK 中构建的。现在它将与第三方 jar 交互,内置 JDK 1.6
我在使用客户端类时遇到了兼容性问题。是否可以在不将我的 JDK 升级到 1.6 或在 1.4.2 中重建第三方 jar 的情况下解决它
java - 为什么有些框架拒绝放弃对古老 Java 版本的支持?
当我坐在这里修改PircBot时,我刚刚注意到整个后端都是为支持 Java 1.1而编写的。它有一个自定义队列实现,使用哈希表,基于 wait() 和 notify() 信号的自定义生产者/消费者实现等。即使是 Commons-lang 也缺乏对 Java 5 带来的泛型等事物的任何支持。您可以提取大量其他非常流行的框架示例,它们尽可能地支持 1.1。
我的问题是为什么?为什么 Java 社区的某些部分拒绝支持新版本?我遵循这个理论:旧版本使用旧版本的框架和旧 JVM,新版本使用升级的框架和 JVM。您可以使用软件升级所有内容。
现在我可以部分理解人们仍在运行 Java 1.5,但是 1.1?如果您在此之前运行任何东西,那么您显然不会因为愚蠢的政策/害怕未知而升级 JVM,因此不会升级到较新版本的软件。那我们为什么还要支持他们呢?
在相关的说明中,如果您正在编写一个新框架,您是否应该支持 <1.5 的任何内容?您是否应该尝试分叉现有框架,将其升级到 1.5,然后与维护人员讨论使用它?
更具体的讨论(这是关于一般支持的): 是否还有充分的理由支持 JDK 1.4?
hardware-interface - 前向兼容硬件检测
作为一个软件,我目前正在与一些硬件技术人员在硬件检测机制上进行斗争。
我觉得应该有可能建立一个“面向未来”的检测/发现机制,这样今天构建的检测软件将能够识别未来开发的所有硬件版本的一组有限属性.
反对的论点:目前的(dsp)芯片在不久的将来可能会过时;因此,我们不能保证未来的板子会与当前的发现协议兼容。
这对于例如 USB、PnP 是如何完成的,还有其他示例吗?
perl - 如何安全地为 Perl 5.8.9 编译 Perl 5.12 模块?
我想在我的 Perl 5.8.9 中安装 File::Fetch,它是 Perl 5.12 中的核心模块。一般来说,我想在过时的 Perl 中编译和安装过时的模块,因为我无法升级我的 Perl。
所以我下载了模块及其依赖项。遵循依赖树非常痛苦,但我更担心其中一些是核心模块这一事实。如果我安装这些,我的 Perl 5.8.9 核心将有来自 5.12 的补丁。
我的问题是我如何知道我是否可以安全地安装未来的模块,尤其是核心模块。是否有用于在 Perl 中测试向后兼容性的教程?
编辑:
我的模块是双重生命的,但我无法使用 cpan 编译它。它说我的 FTPsite.yaml 有一个坏元素。但是,我遵循了模块的 META 文件中的依赖关系,并且可以编译模块。这是cpan的奇怪位之一吗?谢谢你。
手动安装所有这些依赖项后,我无法重新创建问题。但这是错误: