企业应用的日期/时间和国际化 - 开发指南

时间:2010-02-20 19:30:47

标签: internationalization

与其他开发人员一起,我已经开始创建一个托管“CRM风格”应用程序的旅程,该应用程序将迎合企业级业务。这些企业将远程访问我们的应用程序,因此应用程序的托管性质将需要某些功能。例如,为了保证一定程度的专业服务,必须遵循以下要求:

  • 国际化需要多种语言以及各种时区和语言区域的日期/时间表示
  • 批处理任务和回滚功能的事务功能
  • 保护数据安全和远程调用免受攻击的安全问题
  • etcetera,列表继续

由于这些问题以及我作为负责服务器端开发的开发人员的角色,我对我早期做出的选择非常感兴趣。例如,关于时区和语言,是否存在与我选择的数据库或数据字段相关的问题?我是否选择在整个应用程序中使用UTC时间戳或日期字段,如果有的话,是否有标准格式?另外,对于不同的语言,我是否应该确保数据以UTF-8或unicode的形式存储在数据库中?

我真的想避免放下系统的信息结构,只是为了后来发现一个基本的决定不正确或不够大,足够宽,足够聪明等等。有人能指出我关于这些基本的正确方向吗?早期的决定?

编辑_好我欣赏广泛的回应,现在我看到我的问题有点过于不具体。我想关注问题中存在的更具体的元素,例如如何选择存储UTC日期/时间的正确格式或如何保存我的文本数据(我是否指定了UTF格式?)< / p>

4 个答案:

答案 0 :(得分:1)

如果您的目标是企业CRM,那么您将需要非常高水平的可定制性和与各种系统的集成。你会在设计上犯错误。你唯一的希望是隔离每一小段代码,以便你以后有机会修复它。

简而言之,基本的软件工程原则是您最好的选择。

答案 1 :(得分:0)

由于你没有提到你对这个问题的看法,你可能会发现我的答案或部分内容相当基本。

  1. 如果您不需要,请不要使用低级语言。我通常会将python用于CRM应用程序的第一个版本(希望它对下一个版本来说足够好),但这个决定还取决于域社区。
  2. 尝试自己编写最小代码,而不是依赖第三方库。人们可能会对此持不同意见,但我会自己编写代码作为最后一个选项。但下一点很重要。
  3. 选择要使用的库/框架时,请确保其背后的一方将持续,库是稳定的,并且软件许可证适合您的需要。
  4. 其他一般规则适用:关注客户,使用持续集成/测试等,使用日志等良好的软件实践。

答案 2 :(得分:0)

没有任何东西被存储为“unicode”,因为这是一个抽象的概念。 Unicode总是存储在某种unicode转换格式(UTF)中(或者是UCS,但我从来没有看到过在某处使用过)。最常用的UTF是UTF-8,但我建议使用你的平台的native / default。 wikipedia

答案 3 :(得分:0)

您正在讨论的内容称为多租户应用程序,其中您具有与具有逻辑或物理数据分离的多个客户(租户)使用的相同代码库。记住发展的基本规则:灵活性与复杂性有关。制作系统越灵活,它就越复杂。

RE:UTC

对于存储诸如何时进行呼叫以及何时召开会议等内容的CRM应用程序,我肯定会将所有这些存储在UTC中并让用户设置其本地时区。但是,您可能会遇到与时区无关的日期,对于那些日期,我会存储输入的日期。

RE:Unicode

是的,我会对所有用户输入的数据使用Unicode。但是,这不会让你本地化。例如,如果对于一家公司,您有一位香港用户输入中文文本,而阿姆斯特丹的用户用荷兰语输入文本,则您不会自动翻译。日期和数字格式之类的东西可以进行本地化,但原始文本就像下拉列表中使用的名称一样,可以是一项本地化的杂务。