提供一样功能、产品和服务的服务者中, 竞争力来自功能的多样化和服务品质的差别化, 不管是个体、企业仍是国家。html
这里的服务指功能、产品的实现程度和处理能力,以及研发/客服提供的技术支持程度(7*24, 随时响应, 沟通便捷,快速解决,舒适提示,有效指南等)。前端
从某种意义来讲, 一切皆服务。 功能和产品只是形式, 服务才是本质。服务响应某种需求从而具有存在价值。个体、企业为社会提供某种类型、某种程度的服务,并得到相应回报。程序员
程序员提供的服务是,在特定的工做环境和企业文化中,运用可用的资源以及本身的知识、技能、经验、时间、精力、资源,在适当可接受的开发成本下,经过将现实问题构造和组织成正确的逻辑流而得到问题的解决并持续维护的能力程度。正则表达式
每次解决用户最关心的前三个问题, 不为无关痛痒的事情浪费时间、精力和资源。数据库
如何保证服务端开发的功能和服务达到应有的品质呢?编程
软件是否正确实现了指定的功能, 知足客户的多样化须要。设计模式
软件在指定时间和可用资源的前提下实现功能和服务的响应能力和请求处理能力。 须要有偏差范围的测量或估算。缓存
软件应对错误的能力。可以在非预期环境降级运行,在预期环境可以捕获全部的错误条件(前提不符合、非预期输入、脏数据等)和异常状况并给出合适的返回信息。安全
程序运行过程当中输出适量的日志信息,便于追踪程序执行状态,快速排查错误【内部品质】。网络
主要是单元测试、自动化功能测试和性能测试。 单元测试和功能测试保证正确性,性能测试保证效率【内部品质】。
避免泄漏重要、敏感、隐私信息; 保护业务和数据不受非法访问、非受权访问的破坏; 追踪系统访问日志。
要求软件中的函数、方法、类、库、模块、组件、框架等可以在同一工程或不一样项目或不一样产品中屡次使用,便于替换更新【内部品质】。
要求软件容易理解、容易作出修改以知足新的需求,一般系统应具有模块化、高内聚、松耦合的特性【内部品质】。
"适当的注释"须要注明代码意图及设计思路, 做为理解代码的有效指南;"习惯用法"是代码的经常使用模式,便于快速浏览和理解。
请参考《敏捷软件开发:原则、模式和实践》一书,尽量知足五大设计原则(SRP, OCP, LSP, DIP, ISP),实现“对修改关闭,对扩展开放”的境界。即:对于新需求的开发,尽量仅仅是增长代码,而不须要修改原有代码。
量化: 理解一个功能须要的时长; 修改或扩展一个功能须要修改的代码行。
程序运行中可以始终如1、持续长时间地提供正确、一致性的服务。
服务在严重错误状况下的可恢复能力和可替换能力,避免单点故障,保证可用性,保证用户数据的正确性和完整性。
易用性是用户使用产品的难易程度的度量。 一般用于描述用户体验的前端领域。 不过服务端也有可用性的概念。
服务能够经过简单地部署在更多机器上提高服务能力(吞吐量),能够经过减小机器部署来下降成本。
软件可以在多种运行环境、平台上一致性地正确运行而只须要作出少许修改或无需修改。
服务发布后,管理大规模服务的运行、排查/诊断/解决问题的难度和速度、处理用户反馈的工做量。
是否容易针对客户的特殊需求进行定制;服务升级时是否能够尽可能不影响到用户的正常使用。
软件与其余系统交互的难易程度。主要包括通讯方式、版本兼容性。
转载请注明出处。谢谢! :)